1b4b8f2c9SClément Péron// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
296219b00SIcenowy Zheng/*
396219b00SIcenowy Zheng * Copyright (c) 2017 Icenowy Zheng <icenowy@aosc.xyz>
496219b00SIcenowy Zheng *
596219b00SIcenowy Zheng * Based on sun50i-a64-pine64.dts, which is:
696219b00SIcenowy Zheng *   Copyright (c) 2016 ARM Ltd.
796219b00SIcenowy Zheng */
896219b00SIcenowy Zheng
996219b00SIcenowy Zheng/dts-v1/;
1096219b00SIcenowy Zheng
1196219b00SIcenowy Zheng#include "sun50i-a64-sopine.dtsi"
1296219b00SIcenowy Zheng
1396219b00SIcenowy Zheng/ {
1496219b00SIcenowy Zheng	model = "SoPine with baseboard";
1596219b00SIcenowy Zheng	compatible = "pine64,sopine-baseboard", "pine64,sopine",
1696219b00SIcenowy Zheng		     "allwinner,sun50i-a64";
1796219b00SIcenowy Zheng
1896219b00SIcenowy Zheng	aliases {
1994f44288SCorentin Labbe		ethernet0 = &emac;
2096219b00SIcenowy Zheng		serial0 = &uart0;
2113de0f0aSAlistair Francis		serial1 = &uart1;
2213de0f0aSAlistair Francis		serial2 = &uart2;
2313de0f0aSAlistair Francis		serial3 = &uart3;
2413de0f0aSAlistair Francis		serial4 = &uart4;
2596219b00SIcenowy Zheng	};
2696219b00SIcenowy Zheng
2796219b00SIcenowy Zheng	chosen {
2896219b00SIcenowy Zheng		stdout-path = "serial0:115200n8";
2996219b00SIcenowy Zheng	};
3096219b00SIcenowy Zheng
31f4e4453aSJagan Teki	hdmi-connector {
32f4e4453aSJagan Teki		compatible = "hdmi-connector";
33f4e4453aSJagan Teki		type = "a";
34f4e4453aSJagan Teki
35f4e4453aSJagan Teki		port {
36f4e4453aSJagan Teki			hdmi_con_in: endpoint {
37f4e4453aSJagan Teki				remote-endpoint = <&hdmi_out_con>;
38f4e4453aSJagan Teki			};
39f4e4453aSJagan Teki		};
40f4e4453aSJagan Teki	};
41f4e4453aSJagan Teki
4296219b00SIcenowy Zheng	reg_vcc1v8: vcc1v8 {
4396219b00SIcenowy Zheng		compatible = "regulator-fixed";
4496219b00SIcenowy Zheng		regulator-name = "vcc1v8";
4596219b00SIcenowy Zheng		regulator-min-microvolt = <1800000>;
4696219b00SIcenowy Zheng		regulator-max-microvolt = <1800000>;
4796219b00SIcenowy Zheng	};
4896219b00SIcenowy Zheng};
4996219b00SIcenowy Zheng
505e99c99aSOskari Lemmela&ac_power_supply {
515e99c99aSOskari Lemmela	status = "okay";
525e99c99aSOskari Lemmela};
535e99c99aSOskari Lemmela
545e99c99aSOskari Lemmela&battery_power_supply {
555e99c99aSOskari Lemmela	status = "okay";
565e99c99aSOskari Lemmela};
575e99c99aSOskari Lemmela
58498c21f2SVasily Khoruzhick&codec {
59498c21f2SVasily Khoruzhick	status = "okay";
60498c21f2SVasily Khoruzhick};
61498c21f2SVasily Khoruzhick
62498c21f2SVasily Khoruzhick&codec_analog {
63498c21f2SVasily Khoruzhick	status = "okay";
64498c21f2SVasily Khoruzhick};
65498c21f2SVasily Khoruzhick
66498c21f2SVasily Khoruzhick&dai {
67498c21f2SVasily Khoruzhick	status = "okay";
68498c21f2SVasily Khoruzhick};
69498c21f2SVasily Khoruzhick
70f4e4453aSJagan Teki&de {
71f4e4453aSJagan Teki	status = "okay";
72f4e4453aSJagan Teki};
73f4e4453aSJagan Teki
7496219b00SIcenowy Zheng&ehci0 {
7596219b00SIcenowy Zheng	status = "okay";
7696219b00SIcenowy Zheng};
7796219b00SIcenowy Zheng
7896219b00SIcenowy Zheng&ehci1 {
7996219b00SIcenowy Zheng	status = "okay";
8096219b00SIcenowy Zheng};
8196219b00SIcenowy Zheng
8294f44288SCorentin Labbe&emac {
8394f44288SCorentin Labbe	pinctrl-names = "default";
8494f44288SCorentin Labbe	pinctrl-0 = <&rgmii_pins>;
8594f44288SCorentin Labbe	phy-mode = "rgmii";
8694f44288SCorentin Labbe	phy-handle = <&ext_rgmii_phy>;
87bdfe4cebSIcenowy Zheng	phy-supply = <&reg_dc1sw>;
8894f44288SCorentin Labbe	status = "okay";
8994f44288SCorentin Labbe};
9094f44288SCorentin Labbe
91f4e4453aSJagan Teki&hdmi {
92f4e4453aSJagan Teki	hvcc-supply = <&reg_dldo1>;
93f4e4453aSJagan Teki	status = "okay";
94f4e4453aSJagan Teki};
95f4e4453aSJagan Teki
96f4e4453aSJagan Teki&hdmi_out {
97f4e4453aSJagan Teki	hdmi_out_con: endpoint {
98f4e4453aSJagan Teki		remote-endpoint = <&hdmi_con_in>;
99f4e4453aSJagan Teki	};
100f4e4453aSJagan Teki};
101f4e4453aSJagan Teki
10294f44288SCorentin Labbe&mdio {
10394f44288SCorentin Labbe	ext_rgmii_phy: ethernet-phy@1 {
10494f44288SCorentin Labbe		compatible = "ethernet-phy-ieee802.3-c22";
10594f44288SCorentin Labbe		reg = <1>;
10694f44288SCorentin Labbe	};
10794f44288SCorentin Labbe};
10894f44288SCorentin Labbe
10996219b00SIcenowy Zheng&mmc2 {
11096219b00SIcenowy Zheng	pinctrl-names = "default";
11196219b00SIcenowy Zheng	pinctrl-0 = <&mmc2_pins>;
1127d556bfcSJagan Teki	vmmc-supply = <&reg_dcdc1>;
11396219b00SIcenowy Zheng	vqmmc-supply = <&reg_vcc1v8>;
11496219b00SIcenowy Zheng	bus-width = <8>;
11596219b00SIcenowy Zheng	non-removable;
11696219b00SIcenowy Zheng	cap-mmc-hw-reset;
11796219b00SIcenowy Zheng	status = "okay";
11896219b00SIcenowy Zheng};
11996219b00SIcenowy Zheng
12096219b00SIcenowy Zheng&ohci0 {
12196219b00SIcenowy Zheng	status = "okay";
12296219b00SIcenowy Zheng};
12396219b00SIcenowy Zheng
12496219b00SIcenowy Zheng&ohci1 {
12596219b00SIcenowy Zheng	status = "okay";
12696219b00SIcenowy Zheng};
12796219b00SIcenowy Zheng
12878c3cbc8SIcenowy Zheng&reg_dc1sw {
129ccdf3aaaSJernej Skrabec	/*
130ccdf3aaaSJernej Skrabec	 * Ethernet PHY needs 30ms to properly power up and some more
131ccdf3aaaSJernej Skrabec	 * to initialize. 100ms should be plenty of time to finish
132ccdf3aaaSJernej Skrabec	 * whole process.
133ccdf3aaaSJernej Skrabec	 */
134ccdf3aaaSJernej Skrabec	regulator-enable-ramp-delay = <100000>;
13578c3cbc8SIcenowy Zheng	regulator-name = "vcc-phy";
13678c3cbc8SIcenowy Zheng};
13778c3cbc8SIcenowy Zheng
13878c3cbc8SIcenowy Zheng&reg_dldo1 {
13978c3cbc8SIcenowy Zheng	regulator-min-microvolt = <3300000>;
14078c3cbc8SIcenowy Zheng	regulator-max-microvolt = <3300000>;
14178c3cbc8SIcenowy Zheng	regulator-name = "vcc-hdmi";
14278c3cbc8SIcenowy Zheng};
14378c3cbc8SIcenowy Zheng
14478c3cbc8SIcenowy Zheng&reg_dldo2 {
14578c3cbc8SIcenowy Zheng	regulator-min-microvolt = <3300000>;
14678c3cbc8SIcenowy Zheng	regulator-max-microvolt = <3300000>;
14778c3cbc8SIcenowy Zheng	regulator-name = "vcc-mipi";
14878c3cbc8SIcenowy Zheng};
14978c3cbc8SIcenowy Zheng
15078c3cbc8SIcenowy Zheng&reg_dldo4 {
15178c3cbc8SIcenowy Zheng	regulator-min-microvolt = <3300000>;
15278c3cbc8SIcenowy Zheng	regulator-max-microvolt = <3300000>;
15378c3cbc8SIcenowy Zheng	regulator-name = "vcc-wifi";
15478c3cbc8SIcenowy Zheng};
15578c3cbc8SIcenowy Zheng
1565cbef9f9SIcenowy Zheng&simplefb_hdmi {
1575cbef9f9SIcenowy Zheng	vcc-hdmi-supply = <&reg_dldo1>;
1585cbef9f9SIcenowy Zheng};
1595cbef9f9SIcenowy Zheng
160498c21f2SVasily Khoruzhick&sound {
161498c21f2SVasily Khoruzhick	simple-audio-card,aux-devs = <&codec_analog>;
162498c21f2SVasily Khoruzhick	simple-audio-card,widgets = "Microphone", "Microphone Jack",
163498c21f2SVasily Khoruzhick				    "Headphone", "Headphone Jack";
164498c21f2SVasily Khoruzhick	simple-audio-card,routing =
165498c21f2SVasily Khoruzhick			"Left DAC", "AIF1 Slot 0 Left",
166498c21f2SVasily Khoruzhick			"Right DAC", "AIF1 Slot 0 Right",
167498c21f2SVasily Khoruzhick			"Headphone Jack", "HP",
168498c21f2SVasily Khoruzhick			"AIF1 Slot 0 Left ADC", "Left ADC",
169498c21f2SVasily Khoruzhick			"AIF1 Slot 0 Right ADC", "Right ADC",
170498c21f2SVasily Khoruzhick			"MIC2", "Microphone Jack";
171498c21f2SVasily Khoruzhick	status = "okay";
172498c21f2SVasily Khoruzhick};
173498c21f2SVasily Khoruzhick
17496219b00SIcenowy Zheng&uart0 {
17596219b00SIcenowy Zheng	pinctrl-names = "default";
176d91ebb95SChen-Yu Tsai	pinctrl-0 = <&uart0_pb_pins>;
17796219b00SIcenowy Zheng	status = "okay";
17896219b00SIcenowy Zheng};
17996219b00SIcenowy Zheng
18013de0f0aSAlistair Francis/* On Pi-2 connector */
18113de0f0aSAlistair Francis&uart2 {
18213de0f0aSAlistair Francis	pinctrl-names = "default";
18313de0f0aSAlistair Francis	pinctrl-0 = <&uart2_pins>;
18413de0f0aSAlistair Francis	status = "disabled";
18513de0f0aSAlistair Francis};
18613de0f0aSAlistair Francis
18713de0f0aSAlistair Francis/* On Euler connector */
18813de0f0aSAlistair Francis&uart3 {
18913de0f0aSAlistair Francis	pinctrl-names = "default";
19013de0f0aSAlistair Francis	pinctrl-0 = <&uart3_pins>;
19113de0f0aSAlistair Francis	status = "disabled";
19213de0f0aSAlistair Francis};
19313de0f0aSAlistair Francis
19413de0f0aSAlistair Francis/* On Euler connector, RTS/CTS optional */
19513de0f0aSAlistair Francis&uart4 {
19613de0f0aSAlistair Francis	pinctrl-names = "default";
19713de0f0aSAlistair Francis	pinctrl-0 = <&uart4_pins>;
19813de0f0aSAlistair Francis	status = "disabled";
19913de0f0aSAlistair Francis};
20013de0f0aSAlistair Francis
20196219b00SIcenowy Zheng&usb_otg {
20296219b00SIcenowy Zheng	dr_mode = "host";
20396219b00SIcenowy Zheng	status = "okay";
20496219b00SIcenowy Zheng};
20596219b00SIcenowy Zheng
20696219b00SIcenowy Zheng&usbphy {
20796219b00SIcenowy Zheng	status = "okay";
20896219b00SIcenowy Zheng};
209