xref: /freebsd/sys/contrib/device-tree/src/arm64/rockchip/rk3568-photonicat.dts (revision 8ccc0d235c226d84112561d453c49904398d085c)
1*8ccc0d23SEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2*8ccc0d23SEmmanuel Vadot
3*8ccc0d23SEmmanuel Vadot/dts-v1/;
4*8ccc0d23SEmmanuel Vadot
5*8ccc0d23SEmmanuel Vadot#include <dt-bindings/gpio/gpio.h>
6*8ccc0d23SEmmanuel Vadot#include <dt-bindings/pinctrl/rockchip.h>
7*8ccc0d23SEmmanuel Vadot#include <dt-bindings/soc/rockchip,vop2.h>
8*8ccc0d23SEmmanuel Vadot#include "rk3568.dtsi"
9*8ccc0d23SEmmanuel Vadot
10*8ccc0d23SEmmanuel Vadot/ {
11*8ccc0d23SEmmanuel Vadot	model = "Ariaboard Photonicat";
12*8ccc0d23SEmmanuel Vadot	compatible = "ariaboard,photonicat", "rockchip,rk3568";
13*8ccc0d23SEmmanuel Vadot
14*8ccc0d23SEmmanuel Vadot	aliases {
15*8ccc0d23SEmmanuel Vadot		ethernet0 = &gmac0;
16*8ccc0d23SEmmanuel Vadot		ethernet1 = &gmac1;
17*8ccc0d23SEmmanuel Vadot		mmc0 = &sdhci;
18*8ccc0d23SEmmanuel Vadot		mmc1 = &sdmmc0;
19*8ccc0d23SEmmanuel Vadot		mmc2 = &sdmmc1;
20*8ccc0d23SEmmanuel Vadot	};
21*8ccc0d23SEmmanuel Vadot
22*8ccc0d23SEmmanuel Vadot	battery: battery {
23*8ccc0d23SEmmanuel Vadot		compatible = "simple-battery";
24*8ccc0d23SEmmanuel Vadot		device-chemistry = "lithium-ion";
25*8ccc0d23SEmmanuel Vadot		charge-full-design-microamp-hours = <6800000>;
26*8ccc0d23SEmmanuel Vadot		energy-full-design-microwatt-hours = <25000000>;
27*8ccc0d23SEmmanuel Vadot		voltage-max-design-microvolt = <4200000>;
28*8ccc0d23SEmmanuel Vadot		voltage-min-design-microvolt = <3400000>;
29*8ccc0d23SEmmanuel Vadot
30*8ccc0d23SEmmanuel Vadot		ocv-capacity-celsius = <25>;
31*8ccc0d23SEmmanuel Vadot		ocv-capacity-table-0 =  <4100000 100>, <4040000 90>,
32*8ccc0d23SEmmanuel Vadot					<3980000 80>, <3920000 70>,
33*8ccc0d23SEmmanuel Vadot					<3870000 60>, <3820000 50>,
34*8ccc0d23SEmmanuel Vadot					<3790000 40>, <3770000 30>,
35*8ccc0d23SEmmanuel Vadot					<3740000 20>, <3680000 10>,
36*8ccc0d23SEmmanuel Vadot					<3450000 0>;
37*8ccc0d23SEmmanuel Vadot	};
38*8ccc0d23SEmmanuel Vadot
39*8ccc0d23SEmmanuel Vadot	chosen: chosen {
40*8ccc0d23SEmmanuel Vadot		stdout-path = "serial2:1500000n8";
41*8ccc0d23SEmmanuel Vadot	};
42*8ccc0d23SEmmanuel Vadot
43*8ccc0d23SEmmanuel Vadot	hdmi_con: hdmi-con {
44*8ccc0d23SEmmanuel Vadot		compatible = "hdmi-connector";
45*8ccc0d23SEmmanuel Vadot		type = "a";
46*8ccc0d23SEmmanuel Vadot
47*8ccc0d23SEmmanuel Vadot		port {
48*8ccc0d23SEmmanuel Vadot			hdmi_con_in: endpoint {
49*8ccc0d23SEmmanuel Vadot				remote-endpoint = <&hdmi_out_con>;
50*8ccc0d23SEmmanuel Vadot			};
51*8ccc0d23SEmmanuel Vadot		};
52*8ccc0d23SEmmanuel Vadot	};
53*8ccc0d23SEmmanuel Vadot
54*8ccc0d23SEmmanuel Vadot	vcc_1v8: regulator-vcc-1v8 {
55*8ccc0d23SEmmanuel Vadot		compatible = "regulator-fixed";
56*8ccc0d23SEmmanuel Vadot		regulator-name = "vcc_1v8";
57*8ccc0d23SEmmanuel Vadot		regulator-always-on;
58*8ccc0d23SEmmanuel Vadot		regulator-boot-on;
59*8ccc0d23SEmmanuel Vadot		regulator-min-microvolt = <1800000>;
60*8ccc0d23SEmmanuel Vadot		regulator-max-microvolt = <1800000>;
61*8ccc0d23SEmmanuel Vadot		vin-supply = <&vcc3v3_sys>;
62*8ccc0d23SEmmanuel Vadot	};
63*8ccc0d23SEmmanuel Vadot
64*8ccc0d23SEmmanuel Vadot	vcc_3v3: regulator-vcc-3v3 {
65*8ccc0d23SEmmanuel Vadot		compatible = "regulator-fixed";
66*8ccc0d23SEmmanuel Vadot		regulator-name = "vcc_3v3";
67*8ccc0d23SEmmanuel Vadot		regulator-always-on;
68*8ccc0d23SEmmanuel Vadot		regulator-boot-on;
69*8ccc0d23SEmmanuel Vadot		regulator-min-microvolt = <3300000>;
70*8ccc0d23SEmmanuel Vadot		regulator-max-microvolt = <3300000>;
71*8ccc0d23SEmmanuel Vadot		vin-supply = <&vcc3v3_sys>;
72*8ccc0d23SEmmanuel Vadot	};
73*8ccc0d23SEmmanuel Vadot
74*8ccc0d23SEmmanuel Vadot	/* actually fed by vcc_syson, dependent
75*8ccc0d23SEmmanuel Vadot	 * on pi6c clock generator
76*8ccc0d23SEmmanuel Vadot	 */
77*8ccc0d23SEmmanuel Vadot	vcc3v3_pcie: regulator-vcc3v3-pcie {
78*8ccc0d23SEmmanuel Vadot		compatible = "regulator-fixed";
79*8ccc0d23SEmmanuel Vadot		regulator-name = "vcc3v3_pcie";
80*8ccc0d23SEmmanuel Vadot		regulator-always-on;
81*8ccc0d23SEmmanuel Vadot		regulator-boot-on;
82*8ccc0d23SEmmanuel Vadot		regulator-min-microvolt = <3300000>;
83*8ccc0d23SEmmanuel Vadot		regulator-max-microvolt = <3300000>;
84*8ccc0d23SEmmanuel Vadot		vin-supply = <&vcc3v3_pi6c>;
85*8ccc0d23SEmmanuel Vadot	};
86*8ccc0d23SEmmanuel Vadot
87*8ccc0d23SEmmanuel Vadot	/* pi6c pcie clock generator */
88*8ccc0d23SEmmanuel Vadot	vcc3v3_pi6c: regulator-vcc3v3-pi6c {
89*8ccc0d23SEmmanuel Vadot		compatible = "regulator-fixed";
90*8ccc0d23SEmmanuel Vadot		enable-active-high;
91*8ccc0d23SEmmanuel Vadot		gpio = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>;
92*8ccc0d23SEmmanuel Vadot		pinctrl-names = "default";
93*8ccc0d23SEmmanuel Vadot		pinctrl-0 = <&pcie_pwren_h>;
94*8ccc0d23SEmmanuel Vadot		regulator-name = "vcc3v3_pi6c";
95*8ccc0d23SEmmanuel Vadot		regulator-min-microvolt = <3300000>;
96*8ccc0d23SEmmanuel Vadot		regulator-max-microvolt = <3300000>;
97*8ccc0d23SEmmanuel Vadot		vin-supply = <&vcc_syson>;
98*8ccc0d23SEmmanuel Vadot	};
99*8ccc0d23SEmmanuel Vadot
100*8ccc0d23SEmmanuel Vadot	vcc3v3_sd: regulator-vcc3v3-sd {
101*8ccc0d23SEmmanuel Vadot		compatible = "regulator-fixed";
102*8ccc0d23SEmmanuel Vadot		gpio = <&gpio0 RK_PB6 GPIO_ACTIVE_LOW>;
103*8ccc0d23SEmmanuel Vadot		pinctrl-names = "default";
104*8ccc0d23SEmmanuel Vadot		pinctrl-0 = <&sdmmc0_pwren>;
105*8ccc0d23SEmmanuel Vadot		regulator-boot-on;
106*8ccc0d23SEmmanuel Vadot		regulator-name = "vcc3v3_sd";
107*8ccc0d23SEmmanuel Vadot		regulator-min-microvolt = <3300000>;
108*8ccc0d23SEmmanuel Vadot		regulator-max-microvolt = <3300000>;
109*8ccc0d23SEmmanuel Vadot		vin-supply = <&vcc_3v3>;
110*8ccc0d23SEmmanuel Vadot	};
111*8ccc0d23SEmmanuel Vadot
112*8ccc0d23SEmmanuel Vadot	vcc3v3_sys: regulator-vcc3v3-sys {
113*8ccc0d23SEmmanuel Vadot		compatible = "regulator-fixed";
114*8ccc0d23SEmmanuel Vadot		regulator-name = "vcc3v3_sys";
115*8ccc0d23SEmmanuel Vadot		regulator-always-on;
116*8ccc0d23SEmmanuel Vadot		regulator-boot-on;
117*8ccc0d23SEmmanuel Vadot		regulator-min-microvolt = <3300000>;
118*8ccc0d23SEmmanuel Vadot		regulator-max-microvolt = <3300000>;
119*8ccc0d23SEmmanuel Vadot		vin-supply = <&vcc_syson>;
120*8ccc0d23SEmmanuel Vadot	};
121*8ccc0d23SEmmanuel Vadot
122*8ccc0d23SEmmanuel Vadot	vcc3v4_rf: regulator-vcc3v4-rf {
123*8ccc0d23SEmmanuel Vadot		compatible = "regulator-fixed";
124*8ccc0d23SEmmanuel Vadot		enable-active-high;
125*8ccc0d23SEmmanuel Vadot		gpio = <&gpio4 RK_PC2 GPIO_ACTIVE_HIGH>;
126*8ccc0d23SEmmanuel Vadot		pinctrl-names = "default";
127*8ccc0d23SEmmanuel Vadot		pinctrl-0 = <&rf_pwr_en>;
128*8ccc0d23SEmmanuel Vadot		regulator-name = "vcc3v4_rf";
129*8ccc0d23SEmmanuel Vadot		regulator-min-microvolt = <3400000>;
130*8ccc0d23SEmmanuel Vadot		regulator-max-microvolt = <3400000>;
131*8ccc0d23SEmmanuel Vadot		vin-supply = <&vccin_5v>;
132*8ccc0d23SEmmanuel Vadot	};
133*8ccc0d23SEmmanuel Vadot
134*8ccc0d23SEmmanuel Vadot	vcc5v0_usb30_otg0: regulator-vcc5v0-usb30-otg0 {
135*8ccc0d23SEmmanuel Vadot		compatible = "regulator-fixed";
136*8ccc0d23SEmmanuel Vadot		enable-active-high;
137*8ccc0d23SEmmanuel Vadot		gpio = <&gpio0 RK_PA5 GPIO_ACTIVE_HIGH>;
138*8ccc0d23SEmmanuel Vadot		pinctrl-names = "default";
139*8ccc0d23SEmmanuel Vadot		pinctrl-0 = <&usb_host_pwren_h>;
140*8ccc0d23SEmmanuel Vadot		regulator-name = "vcc5v0_usb30_otg0";
141*8ccc0d23SEmmanuel Vadot		regulator-min-microvolt = <5000000>;
142*8ccc0d23SEmmanuel Vadot		regulator-max-microvolt = <5000000>;
143*8ccc0d23SEmmanuel Vadot		vin-supply = <&vccin_5v>;
144*8ccc0d23SEmmanuel Vadot	};
145*8ccc0d23SEmmanuel Vadot
146*8ccc0d23SEmmanuel Vadot	vccin_5v: regulator-vccin-5v {
147*8ccc0d23SEmmanuel Vadot		compatible = "regulator-fixed";
148*8ccc0d23SEmmanuel Vadot		regulator-name = "vccin_5v";
149*8ccc0d23SEmmanuel Vadot		regulator-always-on;
150*8ccc0d23SEmmanuel Vadot		regulator-boot-on;
151*8ccc0d23SEmmanuel Vadot		regulator-min-microvolt = <5000000>;
152*8ccc0d23SEmmanuel Vadot		regulator-max-microvolt = <5000000>;
153*8ccc0d23SEmmanuel Vadot	};
154*8ccc0d23SEmmanuel Vadot
155*8ccc0d23SEmmanuel Vadot	vcc_sysin: regulator-vcc-sysin {
156*8ccc0d23SEmmanuel Vadot		compatible = "regulator-fixed";
157*8ccc0d23SEmmanuel Vadot		regulator-name = "vcc_sysin";
158*8ccc0d23SEmmanuel Vadot		regulator-always-on;
159*8ccc0d23SEmmanuel Vadot		regulator-boot-on;
160*8ccc0d23SEmmanuel Vadot		regulator-min-microvolt = <5000000>;
161*8ccc0d23SEmmanuel Vadot		regulator-max-microvolt = <5000000>;
162*8ccc0d23SEmmanuel Vadot		vin-supply = <&vccin_5v>;
163*8ccc0d23SEmmanuel Vadot	};
164*8ccc0d23SEmmanuel Vadot
165*8ccc0d23SEmmanuel Vadot	vcc_syson: regulator-vcc-syson {
166*8ccc0d23SEmmanuel Vadot		compatible = "regulator-fixed";
167*8ccc0d23SEmmanuel Vadot		regulator-name = "vcc_syson";
168*8ccc0d23SEmmanuel Vadot		regulator-always-on;
169*8ccc0d23SEmmanuel Vadot		regulator-boot-on;
170*8ccc0d23SEmmanuel Vadot		regulator-min-microvolt = <5000000>;
171*8ccc0d23SEmmanuel Vadot		regulator-max-microvolt = <5000000>;
172*8ccc0d23SEmmanuel Vadot		vin-supply = <&vcc_sysin>;
173*8ccc0d23SEmmanuel Vadot	};
174*8ccc0d23SEmmanuel Vadot
175*8ccc0d23SEmmanuel Vadot	vcca_1v8: regulator-vcca-1v8 {
176*8ccc0d23SEmmanuel Vadot		compatible = "regulator-fixed";
177*8ccc0d23SEmmanuel Vadot		regulator-name = "vcca_1v8";
178*8ccc0d23SEmmanuel Vadot		regulator-always-on;
179*8ccc0d23SEmmanuel Vadot		regulator-boot-on;
180*8ccc0d23SEmmanuel Vadot		regulator-min-microvolt = <1800000>;
181*8ccc0d23SEmmanuel Vadot		regulator-max-microvolt = <1800000>;
182*8ccc0d23SEmmanuel Vadot		vin-supply = <&vcc3v3_sys>;
183*8ccc0d23SEmmanuel Vadot	};
184*8ccc0d23SEmmanuel Vadot
185*8ccc0d23SEmmanuel Vadot	vdda_0v9: regulator-vdda-0v9 {
186*8ccc0d23SEmmanuel Vadot		compatible = "regulator-fixed";
187*8ccc0d23SEmmanuel Vadot		regulator-name = "vdda_0v9";
188*8ccc0d23SEmmanuel Vadot		regulator-always-on;
189*8ccc0d23SEmmanuel Vadot		regulator-boot-on;
190*8ccc0d23SEmmanuel Vadot		regulator-min-microvolt = <900000>;
191*8ccc0d23SEmmanuel Vadot		regulator-max-microvolt = <900000>;
192*8ccc0d23SEmmanuel Vadot		vin-supply = <&vcc3v3_sys>;
193*8ccc0d23SEmmanuel Vadot	};
194*8ccc0d23SEmmanuel Vadot
195*8ccc0d23SEmmanuel Vadot	vdd_gpu: regulator-vdd-gpu {
196*8ccc0d23SEmmanuel Vadot		compatible = "pwm-regulator";
197*8ccc0d23SEmmanuel Vadot		pwms = <&pwm2 0 5000 1>;
198*8ccc0d23SEmmanuel Vadot		pwm-supply = <&vcc_syson>;
199*8ccc0d23SEmmanuel Vadot		regulator-name = "vdd_gpu";
200*8ccc0d23SEmmanuel Vadot		regulator-min-microvolt = <800000>;
201*8ccc0d23SEmmanuel Vadot		regulator-max-microvolt = <1350000>;
202*8ccc0d23SEmmanuel Vadot		regulator-ramp-delay = <6001>;
203*8ccc0d23SEmmanuel Vadot		regulator-settling-time-up-us = <250>;
204*8ccc0d23SEmmanuel Vadot	};
205*8ccc0d23SEmmanuel Vadot
206*8ccc0d23SEmmanuel Vadot	vdd_logic: regulator-vdd-logic {
207*8ccc0d23SEmmanuel Vadot		compatible = "pwm-regulator";
208*8ccc0d23SEmmanuel Vadot		pwms = <&pwm1 0 5000 1>;
209*8ccc0d23SEmmanuel Vadot		pwm-supply = <&vcc_syson>;
210*8ccc0d23SEmmanuel Vadot		regulator-name = "vdd_logic";
211*8ccc0d23SEmmanuel Vadot		regulator-min-microvolt = <500000>;
212*8ccc0d23SEmmanuel Vadot		regulator-max-microvolt = <1350000>;
213*8ccc0d23SEmmanuel Vadot		regulator-ramp-delay = <6001>;
214*8ccc0d23SEmmanuel Vadot		regulator-settling-time-up-us = <250>;
215*8ccc0d23SEmmanuel Vadot	};
216*8ccc0d23SEmmanuel Vadot
217*8ccc0d23SEmmanuel Vadot	rfkill-modem {
218*8ccc0d23SEmmanuel Vadot		compatible = "rfkill-gpio";
219*8ccc0d23SEmmanuel Vadot		label = "M.2 USB Modem";
220*8ccc0d23SEmmanuel Vadot		radio-type = "wwan";
221*8ccc0d23SEmmanuel Vadot		shutdown-gpios = <&gpio4 RK_PC4 GPIO_ACTIVE_HIGH>;
222*8ccc0d23SEmmanuel Vadot	};
223*8ccc0d23SEmmanuel Vadot
224*8ccc0d23SEmmanuel Vadot	wifi_pwrseq: wifi-pwrseq {
225*8ccc0d23SEmmanuel Vadot		compatible = "mmc-pwrseq-simple";
226*8ccc0d23SEmmanuel Vadot		clocks = <&pmucru CLK_RTC_32K>;
227*8ccc0d23SEmmanuel Vadot		clock-names = "ext_clock";
228*8ccc0d23SEmmanuel Vadot		pinctrl-names = "default";
229*8ccc0d23SEmmanuel Vadot		pinctrl-0 = <&wifi_reg_on_h &clk32k_out1>;
230*8ccc0d23SEmmanuel Vadot		post-power-on-delay-ms = <200>;
231*8ccc0d23SEmmanuel Vadot		reset-gpios = <&gpio2 RK_PB1 GPIO_ACTIVE_LOW>;
232*8ccc0d23SEmmanuel Vadot	};
233*8ccc0d23SEmmanuel Vadot};
234*8ccc0d23SEmmanuel Vadot
235*8ccc0d23SEmmanuel Vadot&combphy0 {
236*8ccc0d23SEmmanuel Vadot	status = "okay";
237*8ccc0d23SEmmanuel Vadot};
238*8ccc0d23SEmmanuel Vadot
239*8ccc0d23SEmmanuel Vadot&combphy1 {
240*8ccc0d23SEmmanuel Vadot	status = "okay";
241*8ccc0d23SEmmanuel Vadot};
242*8ccc0d23SEmmanuel Vadot
243*8ccc0d23SEmmanuel Vadot&combphy2 {
244*8ccc0d23SEmmanuel Vadot	status = "okay";
245*8ccc0d23SEmmanuel Vadot};
246*8ccc0d23SEmmanuel Vadot
247*8ccc0d23SEmmanuel Vadot&cpu0 {
248*8ccc0d23SEmmanuel Vadot	cpu-supply = <&vdd_cpu>;
249*8ccc0d23SEmmanuel Vadot};
250*8ccc0d23SEmmanuel Vadot
251*8ccc0d23SEmmanuel Vadot&cpu1 {
252*8ccc0d23SEmmanuel Vadot	cpu-supply = <&vdd_cpu>;
253*8ccc0d23SEmmanuel Vadot};
254*8ccc0d23SEmmanuel Vadot
255*8ccc0d23SEmmanuel Vadot&cpu2 {
256*8ccc0d23SEmmanuel Vadot	cpu-supply = <&vdd_cpu>;
257*8ccc0d23SEmmanuel Vadot};
258*8ccc0d23SEmmanuel Vadot
259*8ccc0d23SEmmanuel Vadot&cpu3 {
260*8ccc0d23SEmmanuel Vadot	cpu-supply = <&vdd_cpu>;
261*8ccc0d23SEmmanuel Vadot};
262*8ccc0d23SEmmanuel Vadot
263*8ccc0d23SEmmanuel Vadot/* Motorcomm YT8521SC LAN port (require SGMII) */
264*8ccc0d23SEmmanuel Vadot&gmac0 {
265*8ccc0d23SEmmanuel Vadot	status = "disabled";
266*8ccc0d23SEmmanuel Vadot};
267*8ccc0d23SEmmanuel Vadot
268*8ccc0d23SEmmanuel Vadot/* Motorcomm YT8521SC WAN port */
269*8ccc0d23SEmmanuel Vadot&gmac1 {
270*8ccc0d23SEmmanuel Vadot	assigned-clocks = <&cru SCLK_GMAC1_RX_TX>, <&cru SCLK_GMAC1>;
271*8ccc0d23SEmmanuel Vadot	assigned-clock-parents = <&cru SCLK_GMAC1_RGMII_SPEED>;
272*8ccc0d23SEmmanuel Vadot	assigned-clock-rates = <0>, <125000000>;
273*8ccc0d23SEmmanuel Vadot	clock_in_out = "output";
274*8ccc0d23SEmmanuel Vadot	phy-handle = <&rgmii_phy>;
275*8ccc0d23SEmmanuel Vadot	phy-mode = "rgmii-id";
276*8ccc0d23SEmmanuel Vadot	phy-supply = <&vcc_3v3>;
277*8ccc0d23SEmmanuel Vadot	pinctrl-names = "default";
278*8ccc0d23SEmmanuel Vadot	pinctrl-0 = <&gmac1m1_miim
279*8ccc0d23SEmmanuel Vadot		     &gmac1m1_tx_bus2
280*8ccc0d23SEmmanuel Vadot		     &gmac1m1_rx_bus2
281*8ccc0d23SEmmanuel Vadot		     &gmac1m1_rgmii_clk
282*8ccc0d23SEmmanuel Vadot		     &gmac1m1_rgmii_bus>;
283*8ccc0d23SEmmanuel Vadot	status = "okay";
284*8ccc0d23SEmmanuel Vadot};
285*8ccc0d23SEmmanuel Vadot
286*8ccc0d23SEmmanuel Vadot&gpu {
287*8ccc0d23SEmmanuel Vadot	mali-supply = <&vdd_gpu>;
288*8ccc0d23SEmmanuel Vadot	status = "okay";
289*8ccc0d23SEmmanuel Vadot};
290*8ccc0d23SEmmanuel Vadot
291*8ccc0d23SEmmanuel Vadot&hdmi {
292*8ccc0d23SEmmanuel Vadot	avdd-0v9-supply = <&vdda_0v9>;
293*8ccc0d23SEmmanuel Vadot	avdd-1v8-supply = <&vcca_1v8>;
294*8ccc0d23SEmmanuel Vadot	status = "okay";
295*8ccc0d23SEmmanuel Vadot};
296*8ccc0d23SEmmanuel Vadot
297*8ccc0d23SEmmanuel Vadot&hdmi_in {
298*8ccc0d23SEmmanuel Vadot	hdmi_in_vp0: endpoint {
299*8ccc0d23SEmmanuel Vadot		remote-endpoint = <&vp0_out_hdmi>;
300*8ccc0d23SEmmanuel Vadot	};
301*8ccc0d23SEmmanuel Vadot};
302*8ccc0d23SEmmanuel Vadot
303*8ccc0d23SEmmanuel Vadot&hdmi_out {
304*8ccc0d23SEmmanuel Vadot	hdmi_out_con: endpoint {
305*8ccc0d23SEmmanuel Vadot		remote-endpoint = <&hdmi_con_in>;
306*8ccc0d23SEmmanuel Vadot	};
307*8ccc0d23SEmmanuel Vadot};
308*8ccc0d23SEmmanuel Vadot
309*8ccc0d23SEmmanuel Vadot&hdmi_sound {
310*8ccc0d23SEmmanuel Vadot	status = "okay";
311*8ccc0d23SEmmanuel Vadot};
312*8ccc0d23SEmmanuel Vadot
313*8ccc0d23SEmmanuel Vadot&i2c0 {
314*8ccc0d23SEmmanuel Vadot	status = "okay";
315*8ccc0d23SEmmanuel Vadot
316*8ccc0d23SEmmanuel Vadot	vdd_cpu: regulator@1c {
317*8ccc0d23SEmmanuel Vadot		compatible = "tcs,tcs4525";
318*8ccc0d23SEmmanuel Vadot		reg = <0x1c>;
319*8ccc0d23SEmmanuel Vadot		fcs,suspend-voltage-selector = <1>;
320*8ccc0d23SEmmanuel Vadot		regulator-name = "vdd_cpu";
321*8ccc0d23SEmmanuel Vadot		regulator-always-on;
322*8ccc0d23SEmmanuel Vadot		regulator-boot-on;
323*8ccc0d23SEmmanuel Vadot		regulator-min-microvolt = <800000>;
324*8ccc0d23SEmmanuel Vadot		regulator-max-microvolt = <1150000>;
325*8ccc0d23SEmmanuel Vadot		regulator-ramp-delay = <2300>;
326*8ccc0d23SEmmanuel Vadot		vin-supply = <&vcc_syson>;
327*8ccc0d23SEmmanuel Vadot
328*8ccc0d23SEmmanuel Vadot		regulator-state-mem {
329*8ccc0d23SEmmanuel Vadot			regulator-off-in-suspend;
330*8ccc0d23SEmmanuel Vadot		};
331*8ccc0d23SEmmanuel Vadot	};
332*8ccc0d23SEmmanuel Vadot};
333*8ccc0d23SEmmanuel Vadot
334*8ccc0d23SEmmanuel Vadot&i2c2 {
335*8ccc0d23SEmmanuel Vadot	pinctrl-names = "default";
336*8ccc0d23SEmmanuel Vadot	pinctrl-0 = <&i2c2m1_xfer>;
337*8ccc0d23SEmmanuel Vadot	status = "okay";
338*8ccc0d23SEmmanuel Vadot};
339*8ccc0d23SEmmanuel Vadot
340*8ccc0d23SEmmanuel Vadot&i2s0_8ch {
341*8ccc0d23SEmmanuel Vadot	status = "okay";
342*8ccc0d23SEmmanuel Vadot};
343*8ccc0d23SEmmanuel Vadot
344*8ccc0d23SEmmanuel Vadot&mdio1 {
345*8ccc0d23SEmmanuel Vadot	rgmii_phy: ethernet-phy@3 {
346*8ccc0d23SEmmanuel Vadot		compatible = "ethernet-phy-ieee802.3-c22";
347*8ccc0d23SEmmanuel Vadot		reg = <0x3>;
348*8ccc0d23SEmmanuel Vadot		reset-assert-us = <20000>;
349*8ccc0d23SEmmanuel Vadot		reset-deassert-us = <100000>;
350*8ccc0d23SEmmanuel Vadot		reset-gpios = <&gpio4 RK_PC0 GPIO_ACTIVE_LOW>;
351*8ccc0d23SEmmanuel Vadot		rx-internal-delay-ps = <1500>;
352*8ccc0d23SEmmanuel Vadot		tx-internal-delay-ps = <1500>;
353*8ccc0d23SEmmanuel Vadot	};
354*8ccc0d23SEmmanuel Vadot};
355*8ccc0d23SEmmanuel Vadot
356*8ccc0d23SEmmanuel Vadot&pcie30phy {
357*8ccc0d23SEmmanuel Vadot	status = "okay";
358*8ccc0d23SEmmanuel Vadot};
359*8ccc0d23SEmmanuel Vadot
360*8ccc0d23SEmmanuel Vadot/* M.2 E-Key for PCIe WLAN */
361*8ccc0d23SEmmanuel Vadot&pcie3x2 {
362*8ccc0d23SEmmanuel Vadot	max-link-speed = <1>;
363*8ccc0d23SEmmanuel Vadot	num-lanes = <1>;
364*8ccc0d23SEmmanuel Vadot	pinctrl-names = "default";
365*8ccc0d23SEmmanuel Vadot	pinctrl-0 = <&pcie30x1m0_pins>;
366*8ccc0d23SEmmanuel Vadot	reset-gpios = <&gpio0 RK_PC3 GPIO_ACTIVE_HIGH>;
367*8ccc0d23SEmmanuel Vadot	vpcie3v3-supply = <&vcc3v3_pcie>;
368*8ccc0d23SEmmanuel Vadot	status = "okay";
369*8ccc0d23SEmmanuel Vadot};
370*8ccc0d23SEmmanuel Vadot
371*8ccc0d23SEmmanuel Vadot&pinctrl {
372*8ccc0d23SEmmanuel Vadot	bt {
373*8ccc0d23SEmmanuel Vadot		bt_reg_on_h: bt-reg-on-h {
374*8ccc0d23SEmmanuel Vadot			rockchip,pins = <2 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>;
375*8ccc0d23SEmmanuel Vadot		};
376*8ccc0d23SEmmanuel Vadot	};
377*8ccc0d23SEmmanuel Vadot
378*8ccc0d23SEmmanuel Vadot	pcie {
379*8ccc0d23SEmmanuel Vadot		pcie_pwren_h: pcie-pwren-h {
380*8ccc0d23SEmmanuel Vadot			rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
381*8ccc0d23SEmmanuel Vadot		};
382*8ccc0d23SEmmanuel Vadot	};
383*8ccc0d23SEmmanuel Vadot
384*8ccc0d23SEmmanuel Vadot	sdmmc0 {
385*8ccc0d23SEmmanuel Vadot		sdmmc0_pwren: sdmmc0-pwren {
386*8ccc0d23SEmmanuel Vadot			rockchip,pins = <0 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>;
387*8ccc0d23SEmmanuel Vadot		};
388*8ccc0d23SEmmanuel Vadot	};
389*8ccc0d23SEmmanuel Vadot
390*8ccc0d23SEmmanuel Vadot	usb {
391*8ccc0d23SEmmanuel Vadot		rf_pwr_en: rf-pwr-en {
392*8ccc0d23SEmmanuel Vadot			rockchip,pins = <4 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>;
393*8ccc0d23SEmmanuel Vadot		};
394*8ccc0d23SEmmanuel Vadot
395*8ccc0d23SEmmanuel Vadot		usb_host_pwren_h: usb-host-pwren-h {
396*8ccc0d23SEmmanuel Vadot			rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>;
397*8ccc0d23SEmmanuel Vadot		};
398*8ccc0d23SEmmanuel Vadot	};
399*8ccc0d23SEmmanuel Vadot
400*8ccc0d23SEmmanuel Vadot	wifi {
401*8ccc0d23SEmmanuel Vadot		wifi_reg_on_h: wifi-reg-on-h {
402*8ccc0d23SEmmanuel Vadot			rockchip,pins = <2 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>;
403*8ccc0d23SEmmanuel Vadot		};
404*8ccc0d23SEmmanuel Vadot	};
405*8ccc0d23SEmmanuel Vadot};
406*8ccc0d23SEmmanuel Vadot
407*8ccc0d23SEmmanuel Vadot&pmu_io_domains {
408*8ccc0d23SEmmanuel Vadot	pmuio1-supply = <&vcc_3v3>;
409*8ccc0d23SEmmanuel Vadot	pmuio2-supply = <&vcc_3v3>;
410*8ccc0d23SEmmanuel Vadot	vccio1-supply = <&vcc_3v3>;
411*8ccc0d23SEmmanuel Vadot	vccio2-supply = <&vcc_1v8>;
412*8ccc0d23SEmmanuel Vadot	vccio3-supply = <&vcc_3v3>;
413*8ccc0d23SEmmanuel Vadot	vccio4-supply = <&vcc_1v8>;
414*8ccc0d23SEmmanuel Vadot	vccio5-supply = <&vcc_3v3>;
415*8ccc0d23SEmmanuel Vadot	vccio6-supply = <&vcc_3v3>;
416*8ccc0d23SEmmanuel Vadot	vccio7-supply = <&vcc_3v3>;
417*8ccc0d23SEmmanuel Vadot	status = "okay";
418*8ccc0d23SEmmanuel Vadot};
419*8ccc0d23SEmmanuel Vadot
420*8ccc0d23SEmmanuel Vadot&pwm1 {
421*8ccc0d23SEmmanuel Vadot	status = "okay";
422*8ccc0d23SEmmanuel Vadot};
423*8ccc0d23SEmmanuel Vadot
424*8ccc0d23SEmmanuel Vadot&pwm2 {
425*8ccc0d23SEmmanuel Vadot	status = "okay";
426*8ccc0d23SEmmanuel Vadot};
427*8ccc0d23SEmmanuel Vadot
428*8ccc0d23SEmmanuel Vadot&saradc {
429*8ccc0d23SEmmanuel Vadot	vref-supply = <&vcca_1v8>;
430*8ccc0d23SEmmanuel Vadot	status = "okay";
431*8ccc0d23SEmmanuel Vadot};
432*8ccc0d23SEmmanuel Vadot
433*8ccc0d23SEmmanuel Vadot/* eMMC */
434*8ccc0d23SEmmanuel Vadot&sdhci {
435*8ccc0d23SEmmanuel Vadot	bus-width = <8>;
436*8ccc0d23SEmmanuel Vadot	max-frequency = <200000000>;
437*8ccc0d23SEmmanuel Vadot	mmc-hs200-1_8v;
438*8ccc0d23SEmmanuel Vadot	non-removable;
439*8ccc0d23SEmmanuel Vadot	pinctrl-names = "default";
440*8ccc0d23SEmmanuel Vadot	pinctrl-0 = <&emmc_bus8 &emmc_clk &emmc_cmd>;
441*8ccc0d23SEmmanuel Vadot	vmmc-supply = <&vcc_3v3>;
442*8ccc0d23SEmmanuel Vadot	vqmmc-supply = <&vcc_1v8>;
443*8ccc0d23SEmmanuel Vadot	status = "okay";
444*8ccc0d23SEmmanuel Vadot};
445*8ccc0d23SEmmanuel Vadot
446*8ccc0d23SEmmanuel Vadot/* Micro SD card slot */
447*8ccc0d23SEmmanuel Vadot&sdmmc0 {
448*8ccc0d23SEmmanuel Vadot	bus-width = <4>;
449*8ccc0d23SEmmanuel Vadot	cap-sd-highspeed;
450*8ccc0d23SEmmanuel Vadot	cd-gpios = <&gpio0 RK_PB5 GPIO_ACTIVE_LOW>;
451*8ccc0d23SEmmanuel Vadot	disable-wp;
452*8ccc0d23SEmmanuel Vadot	no-1-8-v;
453*8ccc0d23SEmmanuel Vadot	pinctrl-names = "default";
454*8ccc0d23SEmmanuel Vadot	pinctrl-0 = <&sdmmc0_bus4 &sdmmc0_clk &sdmmc0_cmd>;
455*8ccc0d23SEmmanuel Vadot	vmmc-supply = <&vcc3v3_sd>;
456*8ccc0d23SEmmanuel Vadot	vqmmc-supply = <&vcc_3v3>;
457*8ccc0d23SEmmanuel Vadot	status = "okay";
458*8ccc0d23SEmmanuel Vadot};
459*8ccc0d23SEmmanuel Vadot
460*8ccc0d23SEmmanuel Vadot/* Qualcomm Atheros QCA9377 WiFi */
461*8ccc0d23SEmmanuel Vadot&sdmmc1 {
462*8ccc0d23SEmmanuel Vadot	bus-width = <4>;
463*8ccc0d23SEmmanuel Vadot	cap-sd-highspeed;
464*8ccc0d23SEmmanuel Vadot	cap-sdio-irq;
465*8ccc0d23SEmmanuel Vadot	keep-power-in-suspend;
466*8ccc0d23SEmmanuel Vadot	mmc-pwrseq = <&wifi_pwrseq>;
467*8ccc0d23SEmmanuel Vadot	non-removable;
468*8ccc0d23SEmmanuel Vadot	pinctrl-names = "default";
469*8ccc0d23SEmmanuel Vadot	pinctrl-0 = <&sdmmc1_bus4 &sdmmc1_cmd &sdmmc1_clk>;
470*8ccc0d23SEmmanuel Vadot	sd-uhs-sdr104;
471*8ccc0d23SEmmanuel Vadot	vmmc-supply = <&vcc3v3_sys>;
472*8ccc0d23SEmmanuel Vadot	vqmmc-supply = <&vcc_1v8>;
473*8ccc0d23SEmmanuel Vadot	#address-cells = <1>;
474*8ccc0d23SEmmanuel Vadot	#size-cells = <0>;
475*8ccc0d23SEmmanuel Vadot	status = "okay";
476*8ccc0d23SEmmanuel Vadot
477*8ccc0d23SEmmanuel Vadot	wifi: wifi@1 {
478*8ccc0d23SEmmanuel Vadot		reg = <1>;
479*8ccc0d23SEmmanuel Vadot		interrupt-parent = <&gpio2>;
480*8ccc0d23SEmmanuel Vadot		interrupts = <RK_PB2 IRQ_TYPE_LEVEL_HIGH>;
481*8ccc0d23SEmmanuel Vadot		interrupt-names = "host-wake";
482*8ccc0d23SEmmanuel Vadot	};
483*8ccc0d23SEmmanuel Vadot};
484*8ccc0d23SEmmanuel Vadot
485*8ccc0d23SEmmanuel Vadot&tsadc {
486*8ccc0d23SEmmanuel Vadot	rockchip,hw-tshut-mode = <1>;
487*8ccc0d23SEmmanuel Vadot	rockchip,hw-tshut-polarity = <0>;
488*8ccc0d23SEmmanuel Vadot	status = "okay";
489*8ccc0d23SEmmanuel Vadot};
490*8ccc0d23SEmmanuel Vadot
491*8ccc0d23SEmmanuel Vadot/* Qualcomm Atheros QCA9377 Bluetooth */
492*8ccc0d23SEmmanuel Vadot&uart1 {
493*8ccc0d23SEmmanuel Vadot	dma-names = "tx", "rx";
494*8ccc0d23SEmmanuel Vadot	pinctrl-names = "default";
495*8ccc0d23SEmmanuel Vadot	pinctrl-0 = <&uart1m0_xfer &uart1m0_ctsn &uart1m0_rtsn>;
496*8ccc0d23SEmmanuel Vadot	uart-has-rtscts;
497*8ccc0d23SEmmanuel Vadot	status = "okay";
498*8ccc0d23SEmmanuel Vadot
499*8ccc0d23SEmmanuel Vadot	bluetooth {
500*8ccc0d23SEmmanuel Vadot		compatible = "qcom,qca9377-bt";
501*8ccc0d23SEmmanuel Vadot		clocks = <&pmucru CLK_RTC_32K>;
502*8ccc0d23SEmmanuel Vadot		enable-gpios = <&gpio2 RK_PB7 GPIO_ACTIVE_HIGH>;
503*8ccc0d23SEmmanuel Vadot		pinctrl-names = "default";
504*8ccc0d23SEmmanuel Vadot		pinctrl-0 = <&bt_reg_on_h>;
505*8ccc0d23SEmmanuel Vadot		vddio-supply = <&vcc_1v8>;
506*8ccc0d23SEmmanuel Vadot	};
507*8ccc0d23SEmmanuel Vadot};
508*8ccc0d23SEmmanuel Vadot
509*8ccc0d23SEmmanuel Vadot/* Debug UART */
510*8ccc0d23SEmmanuel Vadot&uart2 {
511*8ccc0d23SEmmanuel Vadot	status = "okay";
512*8ccc0d23SEmmanuel Vadot};
513*8ccc0d23SEmmanuel Vadot
514*8ccc0d23SEmmanuel Vadot&uart3 {
515*8ccc0d23SEmmanuel Vadot	dma-names = "tx", "rx";
516*8ccc0d23SEmmanuel Vadot	status = "okay";
517*8ccc0d23SEmmanuel Vadot};
518*8ccc0d23SEmmanuel Vadot
519*8ccc0d23SEmmanuel Vadot/* Onboard power management MCU */
520*8ccc0d23SEmmanuel Vadot&uart4 {
521*8ccc0d23SEmmanuel Vadot	dma-names = "tx", "rx";
522*8ccc0d23SEmmanuel Vadot	status = "okay";
523*8ccc0d23SEmmanuel Vadot};
524*8ccc0d23SEmmanuel Vadot
525*8ccc0d23SEmmanuel Vadot/* M.2 E-Key for USB Bluetooth */
526*8ccc0d23SEmmanuel Vadot&usb_host0_ehci {
527*8ccc0d23SEmmanuel Vadot	status = "okay";
528*8ccc0d23SEmmanuel Vadot};
529*8ccc0d23SEmmanuel Vadot
530*8ccc0d23SEmmanuel Vadot&usb_host0_ohci {
531*8ccc0d23SEmmanuel Vadot	status = "okay";
532*8ccc0d23SEmmanuel Vadot};
533*8ccc0d23SEmmanuel Vadot
534*8ccc0d23SEmmanuel Vadot/* USB Type-A Port */
535*8ccc0d23SEmmanuel Vadot&usb_host0_xhci {
536*8ccc0d23SEmmanuel Vadot	dr_mode = "host";
537*8ccc0d23SEmmanuel Vadot	status = "okay";
538*8ccc0d23SEmmanuel Vadot};
539*8ccc0d23SEmmanuel Vadot
540*8ccc0d23SEmmanuel Vadot/* M.2 B-Key for USB Modem WWAN */
541*8ccc0d23SEmmanuel Vadot&usb_host1_xhci {
542*8ccc0d23SEmmanuel Vadot	status = "okay";
543*8ccc0d23SEmmanuel Vadot};
544*8ccc0d23SEmmanuel Vadot
545*8ccc0d23SEmmanuel Vadot&usb2phy0 {
546*8ccc0d23SEmmanuel Vadot	status = "okay";
547*8ccc0d23SEmmanuel Vadot};
548*8ccc0d23SEmmanuel Vadot
549*8ccc0d23SEmmanuel Vadot&usb2phy0_host {
550*8ccc0d23SEmmanuel Vadot	phy-supply = <&vcc3v4_rf>;
551*8ccc0d23SEmmanuel Vadot	status = "okay";
552*8ccc0d23SEmmanuel Vadot};
553*8ccc0d23SEmmanuel Vadot
554*8ccc0d23SEmmanuel Vadot&usb2phy0_otg {
555*8ccc0d23SEmmanuel Vadot	phy-supply = <&vcc5v0_usb30_otg0>;
556*8ccc0d23SEmmanuel Vadot	status = "okay";
557*8ccc0d23SEmmanuel Vadot};
558*8ccc0d23SEmmanuel Vadot
559*8ccc0d23SEmmanuel Vadot&usb2phy1 {
560*8ccc0d23SEmmanuel Vadot	status = "okay";
561*8ccc0d23SEmmanuel Vadot};
562*8ccc0d23SEmmanuel Vadot
563*8ccc0d23SEmmanuel Vadot&usb2phy1_otg {
564*8ccc0d23SEmmanuel Vadot	phy-supply = <&vcc5v0_usb30_otg0>;
565*8ccc0d23SEmmanuel Vadot	status = "okay";
566*8ccc0d23SEmmanuel Vadot};
567*8ccc0d23SEmmanuel Vadot
568*8ccc0d23SEmmanuel Vadot&vop {
569*8ccc0d23SEmmanuel Vadot	assigned-clocks = <&cru DCLK_VOP0>, <&cru DCLK_VOP1>;
570*8ccc0d23SEmmanuel Vadot	assigned-clock-parents = <&pmucru PLL_HPLL>, <&cru PLL_VPLL>;
571*8ccc0d23SEmmanuel Vadot	status = "okay";
572*8ccc0d23SEmmanuel Vadot};
573*8ccc0d23SEmmanuel Vadot
574*8ccc0d23SEmmanuel Vadot&vop_mmu {
575*8ccc0d23SEmmanuel Vadot	status = "okay";
576*8ccc0d23SEmmanuel Vadot};
577*8ccc0d23SEmmanuel Vadot
578*8ccc0d23SEmmanuel Vadot&vp0 {
579*8ccc0d23SEmmanuel Vadot	vp0_out_hdmi: endpoint@ROCKCHIP_VOP2_EP_HDMI0 {
580*8ccc0d23SEmmanuel Vadot		reg = <ROCKCHIP_VOP2_EP_HDMI0>;
581*8ccc0d23SEmmanuel Vadot		remote-endpoint = <&hdmi_in_vp0>;
582*8ccc0d23SEmmanuel Vadot	};
583*8ccc0d23SEmmanuel Vadot};
584*8ccc0d23SEmmanuel Vadot
585*8ccc0d23SEmmanuel Vadot&xin32k {
586*8ccc0d23SEmmanuel Vadot	pinctrl-names = "default";
587*8ccc0d23SEmmanuel Vadot	pinctrl-0 = <&clk32k_out1>;
588*8ccc0d23SEmmanuel Vadot};
589