xref: /linux/scripts/dtc/include-prefixes/arm64/rockchip/rk3568-graperain-g3568-v2.dts (revision 67f8bc848ee31831336bd478e57d2f993551902e)
1*f296bb50SCoia Prant// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2*f296bb50SCoia Prant
3*f296bb50SCoia Prant/dts-v1/;
4*f296bb50SCoia Prant#include <dt-bindings/gpio/gpio.h>
5*f296bb50SCoia Prant#include <dt-bindings/input/input.h>
6*f296bb50SCoia Prant#include <dt-bindings/leds/common.h>
7*f296bb50SCoia Prant#include <dt-bindings/pinctrl/rockchip.h>
8*f296bb50SCoia Prant#include <dt-bindings/soc/rockchip,vop2.h>
9*f296bb50SCoia Prant#include "rk3568.dtsi"
10*f296bb50SCoia Prant
11*f296bb50SCoia Prant/ {
12*f296bb50SCoia Prant	model = "Graperain G3568 v2";
13*f296bb50SCoia Prant	compatible = "graperain,g3568-v2", "rockchip,rk3568";
14*f296bb50SCoia Prant
15*f296bb50SCoia Prant	aliases {
16*f296bb50SCoia Prant		ethernet0 = &gmac0;
17*f296bb50SCoia Prant		ethernet1 = &gmac1;
18*f296bb50SCoia Prant		mmc0 = &sdhci;
19*f296bb50SCoia Prant		mmc1 = &sdmmc0;
20*f296bb50SCoia Prant		mmc2 = &sdmmc2;
21*f296bb50SCoia Prant		rtc0 = &rtc0;
22*f296bb50SCoia Prant	};
23*f296bb50SCoia Prant
24*f296bb50SCoia Prant	chosen {
25*f296bb50SCoia Prant		stdout-path = "serial2:1500000n8";
26*f296bb50SCoia Prant	};
27*f296bb50SCoia Prant
28*f296bb50SCoia Prant	adc-keys {
29*f296bb50SCoia Prant		compatible = "adc-keys";
30*f296bb50SCoia Prant		io-channels = <&saradc 0>;
31*f296bb50SCoia Prant		io-channel-names = "buttons";
32*f296bb50SCoia Prant		keyup-threshold-microvolt = <1800000>;
33*f296bb50SCoia Prant		poll-interval = <100>;
34*f296bb50SCoia Prant
35*f296bb50SCoia Prant		button-esc {
36*f296bb50SCoia Prant			label = "esc";
37*f296bb50SCoia Prant			linux,code = <KEY_ESC>;
38*f296bb50SCoia Prant			press-threshold-microvolt = <1250000>;
39*f296bb50SCoia Prant		};
40*f296bb50SCoia Prant
41*f296bb50SCoia Prant		button-menu {
42*f296bb50SCoia Prant			label = "menu";
43*f296bb50SCoia Prant			linux,code = <KEY_MENU>;
44*f296bb50SCoia Prant			press-threshold-microvolt = <1600000>;
45*f296bb50SCoia Prant		};
46*f296bb50SCoia Prant
47*f296bb50SCoia Prant		button-vol-down {
48*f296bb50SCoia Prant			label = "volume down";
49*f296bb50SCoia Prant			linux,code = <KEY_VOLUMEDOWN>;
50*f296bb50SCoia Prant			press-threshold-microvolt = <600000>;
51*f296bb50SCoia Prant		};
52*f296bb50SCoia Prant
53*f296bb50SCoia Prant		button-vol-up {
54*f296bb50SCoia Prant			label = "volume up";
55*f296bb50SCoia Prant			linux,code = <KEY_VOLUMEUP>;
56*f296bb50SCoia Prant			press-threshold-microvolt = <100000>;
57*f296bb50SCoia Prant		};
58*f296bb50SCoia Prant	};
59*f296bb50SCoia Prant
60*f296bb50SCoia Prant	hdmi-con {
61*f296bb50SCoia Prant		compatible = "hdmi-connector";
62*f296bb50SCoia Prant		type = "a";
63*f296bb50SCoia Prant
64*f296bb50SCoia Prant		port {
65*f296bb50SCoia Prant			hdmi_con_in: endpoint {
66*f296bb50SCoia Prant				remote-endpoint = <&hdmi_out_con>;
67*f296bb50SCoia Prant			};
68*f296bb50SCoia Prant		};
69*f296bb50SCoia Prant	};
70*f296bb50SCoia Prant
71*f296bb50SCoia Prant	leds {
72*f296bb50SCoia Prant		compatible = "gpio-leds";
73*f296bb50SCoia Prant
74*f296bb50SCoia Prant		led_work: led-0 {
75*f296bb50SCoia Prant			color = <LED_COLOR_ID_BLUE>;
76*f296bb50SCoia Prant			function = LED_FUNCTION_HEARTBEAT;
77*f296bb50SCoia Prant			gpios = <&gpio0 RK_PC0 GPIO_ACTIVE_HIGH>;
78*f296bb50SCoia Prant			linux,default-trigger = "heartbeat";
79*f296bb50SCoia Prant			pinctrl-names = "default";
80*f296bb50SCoia Prant			pinctrl-0 = <&led_work_en>;
81*f296bb50SCoia Prant		};
82*f296bb50SCoia Prant	};
83*f296bb50SCoia Prant
84*f296bb50SCoia Prant	rk809-sound {
85*f296bb50SCoia Prant		compatible = "simple-audio-card";
86*f296bb50SCoia Prant		simple-audio-card,format = "i2s";
87*f296bb50SCoia Prant		simple-audio-card,name = "Analog RK809";
88*f296bb50SCoia Prant		simple-audio-card,mclk-fs = <256>;
89*f296bb50SCoia Prant
90*f296bb50SCoia Prant		simple-audio-card,cpu {
91*f296bb50SCoia Prant			sound-dai = <&i2s1_8ch>;
92*f296bb50SCoia Prant		};
93*f296bb50SCoia Prant		simple-audio-card,codec {
94*f296bb50SCoia Prant			sound-dai = <&rk809>;
95*f296bb50SCoia Prant		};
96*f296bb50SCoia Prant	};
97*f296bb50SCoia Prant
98*f296bb50SCoia Prant	pdm_codec: pdm-codec {
99*f296bb50SCoia Prant		compatible = "dmic-codec";
100*f296bb50SCoia Prant		num-channels = <2>;
101*f296bb50SCoia Prant		#sound-dai-cells = <0>;
102*f296bb50SCoia Prant	};
103*f296bb50SCoia Prant
104*f296bb50SCoia Prant	pdm_sound: pdm-sound {
105*f296bb50SCoia Prant		compatible = "simple-audio-card";
106*f296bb50SCoia Prant		simple-audio-card,name = "microphone";
107*f296bb50SCoia Prant
108*f296bb50SCoia Prant		simple-audio-card,cpu {
109*f296bb50SCoia Prant			sound-dai = <&pdm>;
110*f296bb50SCoia Prant		};
111*f296bb50SCoia Prant
112*f296bb50SCoia Prant		simple-audio-card,codec {
113*f296bb50SCoia Prant			sound-dai = <&pdm_codec>;
114*f296bb50SCoia Prant		};
115*f296bb50SCoia Prant	};
116*f296bb50SCoia Prant
117*f296bb50SCoia Prant	spdif_dit: spdif-dit {
118*f296bb50SCoia Prant		compatible = "linux,spdif-dit";
119*f296bb50SCoia Prant		#sound-dai-cells = <0>;
120*f296bb50SCoia Prant	};
121*f296bb50SCoia Prant
122*f296bb50SCoia Prant	spdif_sound: spdif-sound {
123*f296bb50SCoia Prant		compatible = "simple-audio-card";
124*f296bb50SCoia Prant		simple-audio-card,name = "SPDIF";
125*f296bb50SCoia Prant
126*f296bb50SCoia Prant		simple-audio-card,cpu {
127*f296bb50SCoia Prant			sound-dai = <&spdif>;
128*f296bb50SCoia Prant		};
129*f296bb50SCoia Prant		simple-audio-card,codec {
130*f296bb50SCoia Prant			sound-dai = <&spdif_dit>;
131*f296bb50SCoia Prant		};
132*f296bb50SCoia Prant	};
133*f296bb50SCoia Prant
134*f296bb50SCoia Prant	sdio_pwrseq: sdio-pwrseq {
135*f296bb50SCoia Prant		compatible = "mmc-pwrseq-simple";
136*f296bb50SCoia Prant		clocks = <&rk809 1>;
137*f296bb50SCoia Prant		clock-names = "ext_clock";
138*f296bb50SCoia Prant		pinctrl-names = "default";
139*f296bb50SCoia Prant		pinctrl-0 = <&wifi_enable>;
140*f296bb50SCoia Prant		post-power-on-delay-ms = <100>;
141*f296bb50SCoia Prant		power-off-delay-us = <300>;
142*f296bb50SCoia Prant		reset-gpios = <&gpio3 RK_PD5 GPIO_ACTIVE_LOW>;
143*f296bb50SCoia Prant	};
144*f296bb50SCoia Prant
145*f296bb50SCoia Prant	dc_12v: regulator-dc-12v {
146*f296bb50SCoia Prant		compatible = "regulator-fixed";
147*f296bb50SCoia Prant		regulator-name = "dc_12v";
148*f296bb50SCoia Prant		regulator-always-on;
149*f296bb50SCoia Prant		regulator-boot-on;
150*f296bb50SCoia Prant		regulator-min-microvolt = <12000000>;
151*f296bb50SCoia Prant		regulator-max-microvolt = <12000000>;
152*f296bb50SCoia Prant	};
153*f296bb50SCoia Prant
154*f296bb50SCoia Prant	pcie30_avdd0v9: regulator-pcie30-avdd0v9 {
155*f296bb50SCoia Prant		compatible = "regulator-fixed";
156*f296bb50SCoia Prant		regulator-name = "pcie30_avdd0v9";
157*f296bb50SCoia Prant		regulator-always-on;
158*f296bb50SCoia Prant		regulator-boot-on;
159*f296bb50SCoia Prant		regulator-min-microvolt = <900000>;
160*f296bb50SCoia Prant		regulator-max-microvolt = <900000>;
161*f296bb50SCoia Prant		vin-supply = <&vcc3v3_sys>;
162*f296bb50SCoia Prant	};
163*f296bb50SCoia Prant
164*f296bb50SCoia Prant	pcie30_avdd1v8: regulator-pcie30-avdd1v8 {
165*f296bb50SCoia Prant		compatible = "regulator-fixed";
166*f296bb50SCoia Prant		regulator-name = "pcie30_avdd1v8";
167*f296bb50SCoia Prant		regulator-always-on;
168*f296bb50SCoia Prant		regulator-boot-on;
169*f296bb50SCoia Prant		regulator-min-microvolt = <1800000>;
170*f296bb50SCoia Prant		regulator-max-microvolt = <1800000>;
171*f296bb50SCoia Prant		vin-supply = <&vcc3v3_sys>;
172*f296bb50SCoia Prant	};
173*f296bb50SCoia Prant
174*f296bb50SCoia Prant	vcc3v3_sys: regulator-vcc3v3-sys {
175*f296bb50SCoia Prant		compatible = "regulator-fixed";
176*f296bb50SCoia Prant		regulator-name = "vcc3v3_sys";
177*f296bb50SCoia Prant		regulator-always-on;
178*f296bb50SCoia Prant		regulator-boot-on;
179*f296bb50SCoia Prant		regulator-min-microvolt = <3300000>;
180*f296bb50SCoia Prant		regulator-max-microvolt = <3300000>;
181*f296bb50SCoia Prant		vin-supply = <&dc_12v>;
182*f296bb50SCoia Prant	};
183*f296bb50SCoia Prant
184*f296bb50SCoia Prant	vcc3v3_pcie: regulator-vcc3v3-pcie {
185*f296bb50SCoia Prant		compatible = "regulator-fixed";
186*f296bb50SCoia Prant		enable-active-high;
187*f296bb50SCoia Prant		gpios = <&gpio3 RK_PC3 GPIO_ACTIVE_HIGH>;
188*f296bb50SCoia Prant		pinctrl-names = "default";
189*f296bb50SCoia Prant		pinctrl-0 = <&vcc3v3_pcie_en_pin>;
190*f296bb50SCoia Prant		regulator-name = "vcc3v3_pcie";
191*f296bb50SCoia Prant		regulator-min-microvolt = <3300000>;
192*f296bb50SCoia Prant		regulator-max-microvolt = <3300000>;
193*f296bb50SCoia Prant		startup-delay-us = <5000>;
194*f296bb50SCoia Prant		vin-supply = <&dc_12v>;
195*f296bb50SCoia Prant	};
196*f296bb50SCoia Prant
197*f296bb50SCoia Prant	vcc5v0_sys: regulator-vcc5v0-sys {
198*f296bb50SCoia Prant		compatible = "regulator-fixed";
199*f296bb50SCoia Prant		regulator-name = "vcc5v0_sys";
200*f296bb50SCoia Prant		regulator-always-on;
201*f296bb50SCoia Prant		regulator-boot-on;
202*f296bb50SCoia Prant		regulator-min-microvolt = <5000000>;
203*f296bb50SCoia Prant		regulator-max-microvolt = <5000000>;
204*f296bb50SCoia Prant		vin-supply = <&dc_12v>;
205*f296bb50SCoia Prant	};
206*f296bb50SCoia Prant
207*f296bb50SCoia Prant	vcc5v0_usb: regulator-vcc5v0-usb {
208*f296bb50SCoia Prant		compatible = "regulator-fixed";
209*f296bb50SCoia Prant		regulator-name = "vcc5v0_usb";
210*f296bb50SCoia Prant		regulator-always-on;
211*f296bb50SCoia Prant		regulator-boot-on;
212*f296bb50SCoia Prant		regulator-min-microvolt = <5000000>;
213*f296bb50SCoia Prant		regulator-max-microvolt = <5000000>;
214*f296bb50SCoia Prant		vin-supply = <&dc_12v>;
215*f296bb50SCoia Prant	};
216*f296bb50SCoia Prant
217*f296bb50SCoia Prant	vcc5v0_usb_host: regulator-vcc5v0-usb-host {
218*f296bb50SCoia Prant		compatible = "regulator-fixed";
219*f296bb50SCoia Prant		enable-active-high;
220*f296bb50SCoia Prant		gpios = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>;
221*f296bb50SCoia Prant		pinctrl-names = "default";
222*f296bb50SCoia Prant		pinctrl-0 = <&vcc5v0_usb_host_en>;
223*f296bb50SCoia Prant		regulator-name = "vcc5v0_usb_host";
224*f296bb50SCoia Prant		regulator-min-microvolt = <5000000>;
225*f296bb50SCoia Prant		regulator-max-microvolt = <5000000>;
226*f296bb50SCoia Prant		vin-supply = <&vcc5v0_usb>;
227*f296bb50SCoia Prant	};
228*f296bb50SCoia Prant
229*f296bb50SCoia Prant	vcc5v0_usb_otg: regulator-vcc5v0-usb-otg {
230*f296bb50SCoia Prant		compatible = "regulator-fixed";
231*f296bb50SCoia Prant		enable-active-high;
232*f296bb50SCoia Prant		gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_HIGH>;
233*f296bb50SCoia Prant		pinctrl-names = "default";
234*f296bb50SCoia Prant		pinctrl-0 = <&vcc5v0_usb_otg_en>;
235*f296bb50SCoia Prant		regulator-name = "vcc5v0_usb_otg";
236*f296bb50SCoia Prant		regulator-min-microvolt = <5000000>;
237*f296bb50SCoia Prant		regulator-max-microvolt = <5000000>;
238*f296bb50SCoia Prant		vin-supply = <&vcc5v0_usb>;
239*f296bb50SCoia Prant	};
240*f296bb50SCoia Prant};
241*f296bb50SCoia Prant
242*f296bb50SCoia Prant&can1 {
243*f296bb50SCoia Prant	assigned-clocks = <&cru CLK_CAN1>;
244*f296bb50SCoia Prant	assigned-clock-rates = <150000000>;
245*f296bb50SCoia Prant	pinctrl-names = "default";
246*f296bb50SCoia Prant	pinctrl-0 = <&can1m1_pins>;
247*f296bb50SCoia Prant	status = "okay";
248*f296bb50SCoia Prant};
249*f296bb50SCoia Prant
250*f296bb50SCoia Prant/* used for usb_host0_xhci */
251*f296bb50SCoia Prant&combphy0 {
252*f296bb50SCoia Prant	status = "okay";
253*f296bb50SCoia Prant};
254*f296bb50SCoia Prant
255*f296bb50SCoia Prant/* used for usb_host1_xhci */
256*f296bb50SCoia Prant&combphy1 {
257*f296bb50SCoia Prant	status = "okay";
258*f296bb50SCoia Prant};
259*f296bb50SCoia Prant
260*f296bb50SCoia Prant/* connected to sata2 */
261*f296bb50SCoia Prant&combphy2 {
262*f296bb50SCoia Prant	status = "okay";
263*f296bb50SCoia Prant};
264*f296bb50SCoia Prant
265*f296bb50SCoia Prant&cpu0 {
266*f296bb50SCoia Prant	cpu-supply = <&vdd_cpu>;
267*f296bb50SCoia Prant};
268*f296bb50SCoia Prant
269*f296bb50SCoia Prant&cpu1 {
270*f296bb50SCoia Prant	cpu-supply = <&vdd_cpu>;
271*f296bb50SCoia Prant};
272*f296bb50SCoia Prant
273*f296bb50SCoia Prant&cpu2 {
274*f296bb50SCoia Prant	cpu-supply = <&vdd_cpu>;
275*f296bb50SCoia Prant};
276*f296bb50SCoia Prant
277*f296bb50SCoia Prant&cpu3 {
278*f296bb50SCoia Prant	cpu-supply = <&vdd_cpu>;
279*f296bb50SCoia Prant};
280*f296bb50SCoia Prant
281*f296bb50SCoia Prant&gmac0 {
282*f296bb50SCoia Prant	assigned-clocks = <&cru SCLK_GMAC0_RX_TX>, <&cru SCLK_GMAC0>;
283*f296bb50SCoia Prant	assigned-clock-parents = <&cru SCLK_GMAC0_RGMII_SPEED>;
284*f296bb50SCoia Prant	assigned-clock-rates = <0>, <125000000>;
285*f296bb50SCoia Prant	clock_in_out = "output";
286*f296bb50SCoia Prant	pinctrl-names = "default";
287*f296bb50SCoia Prant	pinctrl-0 = <&gmac0_miim
288*f296bb50SCoia Prant		     &gmac0_tx_bus2
289*f296bb50SCoia Prant		     &gmac0_rx_bus2
290*f296bb50SCoia Prant		     &gmac0_rgmii_clk
291*f296bb50SCoia Prant		     &gmac0_rgmii_bus>;
292*f296bb50SCoia Prant	phy-handle = <&rgmii_phy0>;
293*f296bb50SCoia Prant	phy-mode = "rgmii-id";
294*f296bb50SCoia Prant	status = "okay";
295*f296bb50SCoia Prant};
296*f296bb50SCoia Prant
297*f296bb50SCoia Prant&gmac1 {
298*f296bb50SCoia Prant	assigned-clocks = <&cru SCLK_GMAC1_RX_TX>, <&cru SCLK_GMAC1>;
299*f296bb50SCoia Prant	assigned-clock-parents = <&cru SCLK_GMAC1_RGMII_SPEED>;
300*f296bb50SCoia Prant	assigned-clock-rates = <0>, <125000000>;
301*f296bb50SCoia Prant	clock_in_out = "output";
302*f296bb50SCoia Prant	pinctrl-names = "default";
303*f296bb50SCoia Prant	pinctrl-0 = <&gmac1m1_miim
304*f296bb50SCoia Prant		     &gmac1m1_tx_bus2
305*f296bb50SCoia Prant		     &gmac1m1_rx_bus2
306*f296bb50SCoia Prant		     &gmac1m1_rgmii_clk
307*f296bb50SCoia Prant		     &gmac1m1_rgmii_bus>;
308*f296bb50SCoia Prant	phy-handle = <&rgmii_phy1>;
309*f296bb50SCoia Prant	phy-mode = "rgmii-id";
310*f296bb50SCoia Prant	status = "okay";
311*f296bb50SCoia Prant};
312*f296bb50SCoia Prant
313*f296bb50SCoia Prant&gpu {
314*f296bb50SCoia Prant	mali-supply = <&vdd_gpu>;
315*f296bb50SCoia Prant	status = "okay";
316*f296bb50SCoia Prant};
317*f296bb50SCoia Prant
318*f296bb50SCoia Prant&hdmi {
319*f296bb50SCoia Prant	avdd-0v9-supply = <&vdda0v9_image>;
320*f296bb50SCoia Prant	avdd-1v8-supply = <&vcca1v8_image>;
321*f296bb50SCoia Prant	status = "okay";
322*f296bb50SCoia Prant};
323*f296bb50SCoia Prant
324*f296bb50SCoia Prant&hdmi_in {
325*f296bb50SCoia Prant	hdmi_in_vp0: endpoint {
326*f296bb50SCoia Prant		remote-endpoint = <&vp0_out_hdmi>;
327*f296bb50SCoia Prant	};
328*f296bb50SCoia Prant};
329*f296bb50SCoia Prant
330*f296bb50SCoia Prant&hdmi_out {
331*f296bb50SCoia Prant	hdmi_out_con: endpoint {
332*f296bb50SCoia Prant		remote-endpoint = <&hdmi_con_in>;
333*f296bb50SCoia Prant	};
334*f296bb50SCoia Prant};
335*f296bb50SCoia Prant
336*f296bb50SCoia Prant&hdmi_sound {
337*f296bb50SCoia Prant	status = "okay";
338*f296bb50SCoia Prant};
339*f296bb50SCoia Prant
340*f296bb50SCoia Prant&i2c0 {
341*f296bb50SCoia Prant	status = "okay";
342*f296bb50SCoia Prant
343*f296bb50SCoia Prant	vdd_cpu: regulator@1c {
344*f296bb50SCoia Prant		compatible = "tcs,tcs4525";
345*f296bb50SCoia Prant		reg = <0x1c>;
346*f296bb50SCoia Prant		regulator-name = "vdd_cpu";
347*f296bb50SCoia Prant		regulator-always-on;
348*f296bb50SCoia Prant		regulator-boot-on;
349*f296bb50SCoia Prant		regulator-min-microvolt = <800000>;
350*f296bb50SCoia Prant		regulator-max-microvolt = <1150000>;
351*f296bb50SCoia Prant		regulator-ramp-delay = <2300>;
352*f296bb50SCoia Prant		vin-supply = <&vcc5v0_sys>;
353*f296bb50SCoia Prant		fcs,suspend-voltage-selector = <1>;
354*f296bb50SCoia Prant
355*f296bb50SCoia Prant		regulator-state-mem {
356*f296bb50SCoia Prant			regulator-off-in-suspend;
357*f296bb50SCoia Prant		};
358*f296bb50SCoia Prant	};
359*f296bb50SCoia Prant
360*f296bb50SCoia Prant	rk809: pmic@20 {
361*f296bb50SCoia Prant		compatible = "rockchip,rk809";
362*f296bb50SCoia Prant		reg = <0x20>;
363*f296bb50SCoia Prant		interrupt-parent = <&gpio0>;
364*f296bb50SCoia Prant		interrupts = <RK_PA3 IRQ_TYPE_LEVEL_LOW>;
365*f296bb50SCoia Prant		assigned-clocks = <&cru I2S1_MCLKOUT_TX>;
366*f296bb50SCoia Prant		assigned-clock-parents = <&cru CLK_I2S1_8CH_TX>;
367*f296bb50SCoia Prant		#clock-cells = <1>;
368*f296bb50SCoia Prant		clock-names = "mclk";
369*f296bb50SCoia Prant		clocks = <&cru I2S1_MCLKOUT_TX>;
370*f296bb50SCoia Prant		pinctrl-names = "default";
371*f296bb50SCoia Prant		pinctrl-0 = <&pmic_int>, <&i2s1m0_mclk>;
372*f296bb50SCoia Prant		system-power-controller;
373*f296bb50SCoia Prant		#sound-dai-cells = <0>;
374*f296bb50SCoia Prant		vcc1-supply = <&vcc3v3_sys>;
375*f296bb50SCoia Prant		vcc2-supply = <&vcc3v3_sys>;
376*f296bb50SCoia Prant		vcc3-supply = <&vcc3v3_sys>;
377*f296bb50SCoia Prant		vcc4-supply = <&vcc3v3_sys>;
378*f296bb50SCoia Prant		vcc5-supply = <&vcc3v3_sys>;
379*f296bb50SCoia Prant		vcc6-supply = <&vcc3v3_sys>;
380*f296bb50SCoia Prant		vcc7-supply = <&vcc3v3_sys>;
381*f296bb50SCoia Prant		vcc8-supply = <&vcc3v3_sys>;
382*f296bb50SCoia Prant		vcc9-supply = <&vcc3v3_sys>;
383*f296bb50SCoia Prant		wakeup-source;
384*f296bb50SCoia Prant
385*f296bb50SCoia Prant		regulators {
386*f296bb50SCoia Prant			vdd_logic: DCDC_REG1 {
387*f296bb50SCoia Prant				regulator-name = "vdd_logic";
388*f296bb50SCoia Prant				regulator-always-on;
389*f296bb50SCoia Prant				regulator-boot-on;
390*f296bb50SCoia Prant				regulator-initial-mode = <0x2>;
391*f296bb50SCoia Prant				regulator-min-microvolt = <500000>;
392*f296bb50SCoia Prant				regulator-max-microvolt = <1350000>;
393*f296bb50SCoia Prant				regulator-ramp-delay = <6001>;
394*f296bb50SCoia Prant
395*f296bb50SCoia Prant				regulator-state-mem {
396*f296bb50SCoia Prant					regulator-off-in-suspend;
397*f296bb50SCoia Prant				};
398*f296bb50SCoia Prant			};
399*f296bb50SCoia Prant
400*f296bb50SCoia Prant			vdd_gpu: DCDC_REG2 {
401*f296bb50SCoia Prant				regulator-name = "vdd_gpu";
402*f296bb50SCoia Prant				regulator-always-on;
403*f296bb50SCoia Prant				regulator-initial-mode = <0x2>;
404*f296bb50SCoia Prant				regulator-min-microvolt = <500000>;
405*f296bb50SCoia Prant				regulator-max-microvolt = <1350000>;
406*f296bb50SCoia Prant				regulator-ramp-delay = <6001>;
407*f296bb50SCoia Prant
408*f296bb50SCoia Prant				regulator-state-mem {
409*f296bb50SCoia Prant					regulator-off-in-suspend;
410*f296bb50SCoia Prant				};
411*f296bb50SCoia Prant			};
412*f296bb50SCoia Prant
413*f296bb50SCoia Prant			vcc_ddr: DCDC_REG3 {
414*f296bb50SCoia Prant				regulator-name = "vcc_ddr";
415*f296bb50SCoia Prant				regulator-always-on;
416*f296bb50SCoia Prant				regulator-boot-on;
417*f296bb50SCoia Prant				regulator-initial-mode = <0x2>;
418*f296bb50SCoia Prant
419*f296bb50SCoia Prant				regulator-state-mem {
420*f296bb50SCoia Prant					regulator-on-in-suspend;
421*f296bb50SCoia Prant				};
422*f296bb50SCoia Prant			};
423*f296bb50SCoia Prant
424*f296bb50SCoia Prant			vdd_npu: DCDC_REG4 {
425*f296bb50SCoia Prant				regulator-name = "vdd_npu";
426*f296bb50SCoia Prant				regulator-initial-mode = <0x2>;
427*f296bb50SCoia Prant				regulator-min-microvolt = <500000>;
428*f296bb50SCoia Prant				regulator-max-microvolt = <1350000>;
429*f296bb50SCoia Prant				regulator-ramp-delay = <6001>;
430*f296bb50SCoia Prant
431*f296bb50SCoia Prant				regulator-state-mem {
432*f296bb50SCoia Prant					regulator-off-in-suspend;
433*f296bb50SCoia Prant				};
434*f296bb50SCoia Prant			};
435*f296bb50SCoia Prant
436*f296bb50SCoia Prant			vcc_1v8: DCDC_REG5 {
437*f296bb50SCoia Prant				regulator-name = "vcc_1v8";
438*f296bb50SCoia Prant				regulator-always-on;
439*f296bb50SCoia Prant				regulator-boot-on;
440*f296bb50SCoia Prant				regulator-min-microvolt = <1800000>;
441*f296bb50SCoia Prant				regulator-max-microvolt = <1800000>;
442*f296bb50SCoia Prant
443*f296bb50SCoia Prant				regulator-state-mem {
444*f296bb50SCoia Prant					regulator-off-in-suspend;
445*f296bb50SCoia Prant				};
446*f296bb50SCoia Prant			};
447*f296bb50SCoia Prant
448*f296bb50SCoia Prant			vdda0v9_image: LDO_REG1 {
449*f296bb50SCoia Prant				regulator-name = "vdda0v9_image";
450*f296bb50SCoia Prant				regulator-min-microvolt = <900000>;
451*f296bb50SCoia Prant				regulator-max-microvolt = <900000>;
452*f296bb50SCoia Prant
453*f296bb50SCoia Prant				regulator-state-mem {
454*f296bb50SCoia Prant					regulator-off-in-suspend;
455*f296bb50SCoia Prant				};
456*f296bb50SCoia Prant			};
457*f296bb50SCoia Prant
458*f296bb50SCoia Prant			vdda_0v9: LDO_REG2 {
459*f296bb50SCoia Prant				regulator-name = "vdda_0v9";
460*f296bb50SCoia Prant				regulator-always-on;
461*f296bb50SCoia Prant				regulator-boot-on;
462*f296bb50SCoia Prant				regulator-min-microvolt = <900000>;
463*f296bb50SCoia Prant				regulator-max-microvolt = <900000>;
464*f296bb50SCoia Prant
465*f296bb50SCoia Prant				regulator-state-mem {
466*f296bb50SCoia Prant					regulator-off-in-suspend;
467*f296bb50SCoia Prant				};
468*f296bb50SCoia Prant			};
469*f296bb50SCoia Prant
470*f296bb50SCoia Prant			vdda0v9_pmu: LDO_REG3 {
471*f296bb50SCoia Prant				regulator-name = "vdda0v9_pmu";
472*f296bb50SCoia Prant				regulator-always-on;
473*f296bb50SCoia Prant				regulator-boot-on;
474*f296bb50SCoia Prant				regulator-min-microvolt = <900000>;
475*f296bb50SCoia Prant				regulator-max-microvolt = <900000>;
476*f296bb50SCoia Prant
477*f296bb50SCoia Prant				regulator-state-mem {
478*f296bb50SCoia Prant					regulator-on-in-suspend;
479*f296bb50SCoia Prant				};
480*f296bb50SCoia Prant			};
481*f296bb50SCoia Prant
482*f296bb50SCoia Prant			vccio_acodec: LDO_REG4 {
483*f296bb50SCoia Prant				regulator-name = "vccio_acodec";
484*f296bb50SCoia Prant				regulator-always-on;
485*f296bb50SCoia Prant				regulator-min-microvolt = <3300000>;
486*f296bb50SCoia Prant				regulator-max-microvolt = <3300000>;
487*f296bb50SCoia Prant
488*f296bb50SCoia Prant				regulator-state-mem {
489*f296bb50SCoia Prant					regulator-off-in-suspend;
490*f296bb50SCoia Prant				};
491*f296bb50SCoia Prant			};
492*f296bb50SCoia Prant
493*f296bb50SCoia Prant			vccio_sd: LDO_REG5 {
494*f296bb50SCoia Prant				regulator-name = "vccio_sd";
495*f296bb50SCoia Prant				regulator-min-microvolt = <1800000>;
496*f296bb50SCoia Prant				regulator-max-microvolt = <3300000>;
497*f296bb50SCoia Prant
498*f296bb50SCoia Prant				regulator-state-mem {
499*f296bb50SCoia Prant					regulator-off-in-suspend;
500*f296bb50SCoia Prant				};
501*f296bb50SCoia Prant			};
502*f296bb50SCoia Prant
503*f296bb50SCoia Prant			vcc3v3_pmu: LDO_REG6 {
504*f296bb50SCoia Prant				regulator-name = "vcc3v3_pmu";
505*f296bb50SCoia Prant				regulator-always-on;
506*f296bb50SCoia Prant				regulator-boot-on;
507*f296bb50SCoia Prant				regulator-min-microvolt = <3300000>;
508*f296bb50SCoia Prant				regulator-max-microvolt = <3300000>;
509*f296bb50SCoia Prant
510*f296bb50SCoia Prant				regulator-state-mem {
511*f296bb50SCoia Prant					regulator-on-in-suspend;
512*f296bb50SCoia Prant				};
513*f296bb50SCoia Prant			};
514*f296bb50SCoia Prant
515*f296bb50SCoia Prant			vcca_1v8: LDO_REG7 {
516*f296bb50SCoia Prant				regulator-name = "vcca_1v8";
517*f296bb50SCoia Prant				regulator-always-on;
518*f296bb50SCoia Prant				regulator-boot-on;
519*f296bb50SCoia Prant				regulator-min-microvolt = <1800000>;
520*f296bb50SCoia Prant				regulator-max-microvolt = <1800000>;
521*f296bb50SCoia Prant
522*f296bb50SCoia Prant				regulator-state-mem {
523*f296bb50SCoia Prant					regulator-off-in-suspend;
524*f296bb50SCoia Prant				};
525*f296bb50SCoia Prant			};
526*f296bb50SCoia Prant
527*f296bb50SCoia Prant			vcca1v8_pmu: LDO_REG8 {
528*f296bb50SCoia Prant				regulator-name = "vcca1v8_pmu";
529*f296bb50SCoia Prant				regulator-always-on;
530*f296bb50SCoia Prant				regulator-boot-on;
531*f296bb50SCoia Prant				regulator-min-microvolt = <1800000>;
532*f296bb50SCoia Prant				regulator-max-microvolt = <1800000>;
533*f296bb50SCoia Prant
534*f296bb50SCoia Prant				regulator-state-mem {
535*f296bb50SCoia Prant					regulator-on-in-suspend;
536*f296bb50SCoia Prant				};
537*f296bb50SCoia Prant			};
538*f296bb50SCoia Prant
539*f296bb50SCoia Prant			vcca1v8_image: LDO_REG9 {
540*f296bb50SCoia Prant				regulator-name = "vcca1v8_image";
541*f296bb50SCoia Prant				regulator-min-microvolt = <1800000>;
542*f296bb50SCoia Prant				regulator-max-microvolt = <1800000>;
543*f296bb50SCoia Prant
544*f296bb50SCoia Prant				regulator-state-mem {
545*f296bb50SCoia Prant					regulator-off-in-suspend;
546*f296bb50SCoia Prant				};
547*f296bb50SCoia Prant			};
548*f296bb50SCoia Prant
549*f296bb50SCoia Prant			vcc_3v3: SWITCH_REG1 {
550*f296bb50SCoia Prant				regulator-name = "vcc_3v3";
551*f296bb50SCoia Prant				regulator-always-on;
552*f296bb50SCoia Prant				regulator-boot-on;
553*f296bb50SCoia Prant
554*f296bb50SCoia Prant				regulator-state-mem {
555*f296bb50SCoia Prant					regulator-off-in-suspend;
556*f296bb50SCoia Prant				};
557*f296bb50SCoia Prant			};
558*f296bb50SCoia Prant
559*f296bb50SCoia Prant			vcc3v3_sd: SWITCH_REG2 {
560*f296bb50SCoia Prant				regulator-name = "vcc3v3_sd";
561*f296bb50SCoia Prant
562*f296bb50SCoia Prant				regulator-state-mem {
563*f296bb50SCoia Prant					regulator-off-in-suspend;
564*f296bb50SCoia Prant				};
565*f296bb50SCoia Prant			};
566*f296bb50SCoia Prant		};
567*f296bb50SCoia Prant
568*f296bb50SCoia Prant		codec {
569*f296bb50SCoia Prant			rockchip,mic-in-differential;
570*f296bb50SCoia Prant		};
571*f296bb50SCoia Prant	};
572*f296bb50SCoia Prant};
573*f296bb50SCoia Prant
574*f296bb50SCoia Prant&i2c5 {
575*f296bb50SCoia Prant	status = "okay";
576*f296bb50SCoia Prant
577*f296bb50SCoia Prant	rtc0: rtc@51 {
578*f296bb50SCoia Prant		compatible = "nxp,pcf8563";
579*f296bb50SCoia Prant		reg = <0x51>;
580*f296bb50SCoia Prant		#clock-cells = <0>;
581*f296bb50SCoia Prant	};
582*f296bb50SCoia Prant};
583*f296bb50SCoia Prant
584*f296bb50SCoia Prant&i2s0_8ch {
585*f296bb50SCoia Prant	status = "okay";
586*f296bb50SCoia Prant};
587*f296bb50SCoia Prant
588*f296bb50SCoia Prant&i2s1_8ch {
589*f296bb50SCoia Prant	pinctrl-0 = <&i2s1m0_sclktx &i2s1m0_lrcktx &i2s1m0_sdi0 &i2s1m0_sdo0>;
590*f296bb50SCoia Prant	rockchip,trcm-sync-tx-only;
591*f296bb50SCoia Prant	status = "okay";
592*f296bb50SCoia Prant};
593*f296bb50SCoia Prant
594*f296bb50SCoia Prant/* required rk3568-codec-digital for AP6356S Bluetooth Sound */
595*f296bb50SCoia Prant&i2s3_2ch {
596*f296bb50SCoia Prant	status = "disabled";
597*f296bb50SCoia Prant};
598*f296bb50SCoia Prant
599*f296bb50SCoia Prant&mdio0 {
600*f296bb50SCoia Prant	rgmii_phy0: ethernet-phy@1 {
601*f296bb50SCoia Prant		compatible = "ethernet-phy-ieee802.3-c22";
602*f296bb50SCoia Prant		reg = <1>;
603*f296bb50SCoia Prant		reset-assert-us = <20000>;
604*f296bb50SCoia Prant		reset-deassert-us = <100000>;
605*f296bb50SCoia Prant		reset-gpios = <&gpio2 RK_PD3 GPIO_ACTIVE_LOW>;
606*f296bb50SCoia Prant
607*f296bb50SCoia Prant		leds {
608*f296bb50SCoia Prant			#address-cells = <1>;
609*f296bb50SCoia Prant			#size-cells = <0>;
610*f296bb50SCoia Prant
611*f296bb50SCoia Prant			led@1 {
612*f296bb50SCoia Prant				reg = <1>;
613*f296bb50SCoia Prant				color = <LED_COLOR_ID_GREEN>;
614*f296bb50SCoia Prant				function = LED_FUNCTION_LAN;
615*f296bb50SCoia Prant				default-state = "keep";
616*f296bb50SCoia Prant			};
617*f296bb50SCoia Prant
618*f296bb50SCoia Prant			led@2 {
619*f296bb50SCoia Prant				reg = <2>;
620*f296bb50SCoia Prant				color = <LED_COLOR_ID_AMBER>;
621*f296bb50SCoia Prant				function = LED_FUNCTION_LAN;
622*f296bb50SCoia Prant				default-state = "keep";
623*f296bb50SCoia Prant			};
624*f296bb50SCoia Prant		};
625*f296bb50SCoia Prant	};
626*f296bb50SCoia Prant};
627*f296bb50SCoia Prant
628*f296bb50SCoia Prant&mdio1 {
629*f296bb50SCoia Prant	rgmii_phy1: ethernet-phy@1 {
630*f296bb50SCoia Prant		compatible = "ethernet-phy-ieee802.3-c22";
631*f296bb50SCoia Prant		reg = <1>;
632*f296bb50SCoia Prant		reset-assert-us = <20000>;
633*f296bb50SCoia Prant		reset-deassert-us = <100000>;
634*f296bb50SCoia Prant		reset-gpios = <&gpio2 RK_PD1 GPIO_ACTIVE_LOW>;
635*f296bb50SCoia Prant
636*f296bb50SCoia Prant		leds {
637*f296bb50SCoia Prant			#address-cells = <1>;
638*f296bb50SCoia Prant			#size-cells = <0>;
639*f296bb50SCoia Prant
640*f296bb50SCoia Prant			led@1 {
641*f296bb50SCoia Prant				reg = <1>;
642*f296bb50SCoia Prant				color = <LED_COLOR_ID_GREEN>;
643*f296bb50SCoia Prant				function = LED_FUNCTION_LAN;
644*f296bb50SCoia Prant				default-state = "keep";
645*f296bb50SCoia Prant			};
646*f296bb50SCoia Prant
647*f296bb50SCoia Prant			led@2 {
648*f296bb50SCoia Prant				reg = <2>;
649*f296bb50SCoia Prant				color = <LED_COLOR_ID_AMBER>;
650*f296bb50SCoia Prant				function = LED_FUNCTION_LAN;
651*f296bb50SCoia Prant				default-state = "keep";
652*f296bb50SCoia Prant			};
653*f296bb50SCoia Prant		};
654*f296bb50SCoia Prant	};
655*f296bb50SCoia Prant};
656*f296bb50SCoia Prant
657*f296bb50SCoia Prant&pcie30phy {
658*f296bb50SCoia Prant	status = "okay";
659*f296bb50SCoia Prant};
660*f296bb50SCoia Prant
661*f296bb50SCoia Prant&pcie3x2 {
662*f296bb50SCoia Prant	pinctrl-names = "default";
663*f296bb50SCoia Prant	pinctrl-0 = <&pcie_reset_pin>;
664*f296bb50SCoia Prant	reset-gpios = <&gpio2 RK_PD6 GPIO_ACTIVE_HIGH>;
665*f296bb50SCoia Prant	vpcie3v3-supply = <&vcc3v3_pcie>;
666*f296bb50SCoia Prant	status = "okay";
667*f296bb50SCoia Prant};
668*f296bb50SCoia Prant
669*f296bb50SCoia Prant&pdm {
670*f296bb50SCoia Prant	status = "okay";
671*f296bb50SCoia Prant};
672*f296bb50SCoia Prant
673*f296bb50SCoia Prant&pinctrl {
674*f296bb50SCoia Prant	bluetooth {
675*f296bb50SCoia Prant		bt_reg_on_h: bt-reg-on-h {
676*f296bb50SCoia Prant			rockchip,pins = <3 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>;
677*f296bb50SCoia Prant		};
678*f296bb50SCoia Prant
679*f296bb50SCoia Prant		bt_wake_host_h: bt-wake-host-h {
680*f296bb50SCoia Prant			rockchip,pins = <3 RK_PA1 RK_FUNC_GPIO &pcfg_pull_down>;
681*f296bb50SCoia Prant		};
682*f296bb50SCoia Prant
683*f296bb50SCoia Prant		host_wake_bt_h: host-wake-bt-h {
684*f296bb50SCoia Prant			rockchip,pins = <3 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
685*f296bb50SCoia Prant		};
686*f296bb50SCoia Prant	};
687*f296bb50SCoia Prant
688*f296bb50SCoia Prant	leds {
689*f296bb50SCoia Prant		led_work_en: led_work_en {
690*f296bb50SCoia Prant			rockchip,pins = <0 RK_PC0 RK_FUNC_GPIO &pcfg_pull_none>;
691*f296bb50SCoia Prant		};
692*f296bb50SCoia Prant	};
693*f296bb50SCoia Prant
694*f296bb50SCoia Prant	pmic {
695*f296bb50SCoia Prant		pmic_int: pmic_int {
696*f296bb50SCoia Prant			rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
697*f296bb50SCoia Prant		};
698*f296bb50SCoia Prant	};
699*f296bb50SCoia Prant
700*f296bb50SCoia Prant	pcie {
701*f296bb50SCoia Prant		pcie_reset_pin: pcie-reset-pin {
702*f296bb50SCoia Prant			rockchip,pins = <2 RK_PD6 RK_FUNC_GPIO &pcfg_pull_none>;
703*f296bb50SCoia Prant		};
704*f296bb50SCoia Prant		vcc3v3_pcie_en_pin: vcc3v3-pcie-en-pin {
705*f296bb50SCoia Prant			rockchip,pins = <3 RK_PC3 RK_FUNC_GPIO &pcfg_pull_none>;
706*f296bb50SCoia Prant		};
707*f296bb50SCoia Prant	};
708*f296bb50SCoia Prant
709*f296bb50SCoia Prant	sdio-pwrseq {
710*f296bb50SCoia Prant		wifi_enable: wifi-enable {
711*f296bb50SCoia Prant			rockchip,pins = <3 RK_PD5 RK_FUNC_GPIO &pcfg_pull_none>;
712*f296bb50SCoia Prant		};
713*f296bb50SCoia Prant	};
714*f296bb50SCoia Prant
715*f296bb50SCoia Prant	usb {
716*f296bb50SCoia Prant		vcc5v0_usb_host_en: vcc5v0_usb_host_en {
717*f296bb50SCoia Prant			rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
718*f296bb50SCoia Prant		};
719*f296bb50SCoia Prant		vcc5v0_usb_otg_en: vcc5v0_usb_otg_en {
720*f296bb50SCoia Prant			rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>;
721*f296bb50SCoia Prant		};
722*f296bb50SCoia Prant	};
723*f296bb50SCoia Prant
724*f296bb50SCoia Prant	wifi-irq {
725*f296bb50SCoia Prant		wifi_host_wake_irq: wifi-host-wake-irq {
726*f296bb50SCoia Prant			rockchip,pins = <3 RK_PD4 RK_FUNC_GPIO &pcfg_pull_down>;
727*f296bb50SCoia Prant		};
728*f296bb50SCoia Prant	};
729*f296bb50SCoia Prant};
730*f296bb50SCoia Prant
731*f296bb50SCoia Prant&pmu_io_domains {
732*f296bb50SCoia Prant	pmuio1-supply = <&vcc3v3_pmu>;
733*f296bb50SCoia Prant	pmuio2-supply = <&vcc3v3_pmu>;
734*f296bb50SCoia Prant	vccio1-supply = <&vccio_acodec>;
735*f296bb50SCoia Prant	vccio2-supply = <&vcc_1v8>;
736*f296bb50SCoia Prant	vccio3-supply = <&vccio_sd>;
737*f296bb50SCoia Prant	vccio4-supply = <&vcc_1v8>;
738*f296bb50SCoia Prant	vccio5-supply = <&vcc_3v3>;
739*f296bb50SCoia Prant	vccio6-supply = <&vcc_1v8>;
740*f296bb50SCoia Prant	vccio7-supply = <&vcc_3v3>;
741*f296bb50SCoia Prant	status = "okay";
742*f296bb50SCoia Prant};
743*f296bb50SCoia Prant
744*f296bb50SCoia Prant&pwm4 {
745*f296bb50SCoia Prant	status = "okay";
746*f296bb50SCoia Prant};
747*f296bb50SCoia Prant
748*f296bb50SCoia Prant&pwm5 {
749*f296bb50SCoia Prant	status = "okay";
750*f296bb50SCoia Prant};
751*f296bb50SCoia Prant
752*f296bb50SCoia Prant/* Required remotectl for IR receiver */
753*f296bb50SCoia Prant&pwm7 {
754*f296bb50SCoia Prant	status = "disabled";
755*f296bb50SCoia Prant};
756*f296bb50SCoia Prant
757*f296bb50SCoia Prant&saradc {
758*f296bb50SCoia Prant	vref-supply = <&vcca_1v8>;
759*f296bb50SCoia Prant	status = "okay";
760*f296bb50SCoia Prant};
761*f296bb50SCoia Prant
762*f296bb50SCoia Prant&sata2 {
763*f296bb50SCoia Prant	status = "okay";
764*f296bb50SCoia Prant};
765*f296bb50SCoia Prant
766*f296bb50SCoia Prant/* used for eMMC */
767*f296bb50SCoia Prant&sdhci {
768*f296bb50SCoia Prant	bus-width = <8>;
769*f296bb50SCoia Prant	max-frequency = <200000000>;
770*f296bb50SCoia Prant	mmc-hs200-1_8v;
771*f296bb50SCoia Prant	non-removable;
772*f296bb50SCoia Prant	pinctrl-names = "default";
773*f296bb50SCoia Prant	pinctrl-0 = <&emmc_bus8 &emmc_clk &emmc_cmd &emmc_datastrobe>;
774*f296bb50SCoia Prant	status = "okay";
775*f296bb50SCoia Prant};
776*f296bb50SCoia Prant
777*f296bb50SCoia Prant/* used for microSD (TF) Slot */
778*f296bb50SCoia Prant&sdmmc0 {
779*f296bb50SCoia Prant	bus-width = <4>;
780*f296bb50SCoia Prant	cap-sd-highspeed;
781*f296bb50SCoia Prant	cd-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_LOW>;
782*f296bb50SCoia Prant	disable-wp;
783*f296bb50SCoia Prant	pinctrl-names = "default";
784*f296bb50SCoia Prant	pinctrl-0 = <&sdmmc0_bus4 &sdmmc0_clk &sdmmc0_cmd &sdmmc0_det>;
785*f296bb50SCoia Prant	sd-uhs-sdr104;
786*f296bb50SCoia Prant	vmmc-supply = <&vcc3v3_sd>;
787*f296bb50SCoia Prant	vqmmc-supply = <&vccio_sd>;
788*f296bb50SCoia Prant	status = "okay";
789*f296bb50SCoia Prant};
790*f296bb50SCoia Prant
791*f296bb50SCoia Prant/* used for AP6356S WiFi */
792*f296bb50SCoia Prant&sdmmc2 {
793*f296bb50SCoia Prant	#address-cells = <1>;
794*f296bb50SCoia Prant	#size-cells = <0>;
795*f296bb50SCoia Prant
796*f296bb50SCoia Prant	bus-width = <4>;
797*f296bb50SCoia Prant	cap-sd-highspeed;
798*f296bb50SCoia Prant	cap-sdio-irq;
799*f296bb50SCoia Prant	keep-power-in-suspend;
800*f296bb50SCoia Prant	mmc-pwrseq = <&sdio_pwrseq>;
801*f296bb50SCoia Prant	non-removable;
802*f296bb50SCoia Prant	pinctrl-names = "default";
803*f296bb50SCoia Prant	pinctrl-0 = <&sdmmc2m0_bus4 &sdmmc2m0_cmd &sdmmc2m0_clk>;
804*f296bb50SCoia Prant	sd-uhs-sdr104;
805*f296bb50SCoia Prant	vmmc-supply = <&vcc3v3_sys>;
806*f296bb50SCoia Prant	vqmmc-supply = <&vcc_1v8>;
807*f296bb50SCoia Prant	status = "okay";
808*f296bb50SCoia Prant
809*f296bb50SCoia Prant	wifi@1 {
810*f296bb50SCoia Prant		compatible = "brcm,bcm4356-fmac", "brcm,bcm4329-fmac";
811*f296bb50SCoia Prant		reg = <1>;
812*f296bb50SCoia Prant		interrupt-parent = <&gpio3>;
813*f296bb50SCoia Prant		interrupts = <RK_PD4 IRQ_TYPE_LEVEL_HIGH>;
814*f296bb50SCoia Prant		interrupt-names = "host-wake";
815*f296bb50SCoia Prant		pinctrl-names = "default";
816*f296bb50SCoia Prant		pinctrl-0 = <&wifi_host_wake_irq>;
817*f296bb50SCoia Prant	};
818*f296bb50SCoia Prant};
819*f296bb50SCoia Prant
820*f296bb50SCoia Prant&spdif {
821*f296bb50SCoia Prant	status = "okay";
822*f296bb50SCoia Prant};
823*f296bb50SCoia Prant
824*f296bb50SCoia Prant&tsadc {
825*f296bb50SCoia Prant	rockchip,hw-tshut-mode = <1>;
826*f296bb50SCoia Prant	rockchip,hw-tshut-polarity = <0>;
827*f296bb50SCoia Prant	status = "okay";
828*f296bb50SCoia Prant};
829*f296bb50SCoia Prant
830*f296bb50SCoia Prant/* used for Debug */
831*f296bb50SCoia Prant&uart2 {
832*f296bb50SCoia Prant	status = "okay";
833*f296bb50SCoia Prant};
834*f296bb50SCoia Prant
835*f296bb50SCoia Prant&uart3 {
836*f296bb50SCoia Prant	pinctrl-0 = <&uart3m1_xfer>;
837*f296bb50SCoia Prant	status = "okay";
838*f296bb50SCoia Prant};
839*f296bb50SCoia Prant
840*f296bb50SCoia Prant&uart4 {
841*f296bb50SCoia Prant	pinctrl-0 = <&uart4m1_xfer>;
842*f296bb50SCoia Prant	status = "okay";
843*f296bb50SCoia Prant};
844*f296bb50SCoia Prant
845*f296bb50SCoia Prant/* used for AP6356S Bluetooth */
846*f296bb50SCoia Prant&uart8 {
847*f296bb50SCoia Prant	dma-names = "tx", "rx";
848*f296bb50SCoia Prant	pinctrl-names = "default";
849*f296bb50SCoia Prant	pinctrl-0 = <&uart8m0_xfer &uart8m0_ctsn &uart8m0_rtsn>;
850*f296bb50SCoia Prant	uart-has-rtscts;
851*f296bb50SCoia Prant	status = "okay";
852*f296bb50SCoia Prant
853*f296bb50SCoia Prant	bluetooth {
854*f296bb50SCoia Prant		compatible = "brcm,bcm4345c5";
855*f296bb50SCoia Prant		clocks = <&rk809 1>;
856*f296bb50SCoia Prant		clock-names = "lpo";
857*f296bb50SCoia Prant		device-wakeup-gpios = <&gpio3 RK_PA2 GPIO_ACTIVE_HIGH>;
858*f296bb50SCoia Prant		host-wakeup-gpios = <&gpio3 RK_PA1 GPIO_ACTIVE_HIGH>;
859*f296bb50SCoia Prant		max-speed = <1500000>;
860*f296bb50SCoia Prant		pinctrl-names = "default";
861*f296bb50SCoia Prant		pinctrl-0 = <&bt_reg_on_h &bt_wake_host_h &host_wake_bt_h>;
862*f296bb50SCoia Prant		shutdown-gpios = <&gpio3 RK_PA0 GPIO_ACTIVE_HIGH>;
863*f296bb50SCoia Prant		vddio-supply = <&vcc_1v8>;
864*f296bb50SCoia Prant	};
865*f296bb50SCoia Prant};
866*f296bb50SCoia Prant
867*f296bb50SCoia Prant&uart9 {
868*f296bb50SCoia Prant	pinctrl-0 = <&uart9m1_xfer>;
869*f296bb50SCoia Prant	status = "okay";
870*f296bb50SCoia Prant};
871*f296bb50SCoia Prant
872*f296bb50SCoia Prant&usb_host0_ehci {
873*f296bb50SCoia Prant	status = "okay";
874*f296bb50SCoia Prant};
875*f296bb50SCoia Prant
876*f296bb50SCoia Prant&usb_host0_ohci {
877*f296bb50SCoia Prant	status = "okay";
878*f296bb50SCoia Prant};
879*f296bb50SCoia Prant
880*f296bb50SCoia Prant&usb_host0_xhci {
881*f296bb50SCoia Prant	extcon = <&usb2phy0>;
882*f296bb50SCoia Prant	status = "okay";
883*f296bb50SCoia Prant};
884*f296bb50SCoia Prant
885*f296bb50SCoia Prant&usb_host1_ehci {
886*f296bb50SCoia Prant	status = "okay";
887*f296bb50SCoia Prant};
888*f296bb50SCoia Prant
889*f296bb50SCoia Prant&usb_host1_ohci {
890*f296bb50SCoia Prant	status = "okay";
891*f296bb50SCoia Prant};
892*f296bb50SCoia Prant
893*f296bb50SCoia Prant&usb_host1_xhci {
894*f296bb50SCoia Prant	status = "okay";
895*f296bb50SCoia Prant};
896*f296bb50SCoia Prant
897*f296bb50SCoia Prant&usb2phy0 {
898*f296bb50SCoia Prant	status = "okay";
899*f296bb50SCoia Prant};
900*f296bb50SCoia Prant
901*f296bb50SCoia Prant&usb2phy0_host {
902*f296bb50SCoia Prant	phy-supply = <&vcc5v0_usb_host>;
903*f296bb50SCoia Prant	status = "okay";
904*f296bb50SCoia Prant};
905*f296bb50SCoia Prant
906*f296bb50SCoia Prant&usb2phy0_otg {
907*f296bb50SCoia Prant	phy-supply = <&vcc5v0_usb_otg>;
908*f296bb50SCoia Prant	status = "okay";
909*f296bb50SCoia Prant};
910*f296bb50SCoia Prant
911*f296bb50SCoia Prant&usb2phy1 {
912*f296bb50SCoia Prant	status = "okay";
913*f296bb50SCoia Prant};
914*f296bb50SCoia Prant
915*f296bb50SCoia Prant&usb2phy1_host {
916*f296bb50SCoia Prant	phy-supply = <&vcc5v0_usb_host>;
917*f296bb50SCoia Prant	status = "okay";
918*f296bb50SCoia Prant};
919*f296bb50SCoia Prant
920*f296bb50SCoia Prant&usb2phy1_otg {
921*f296bb50SCoia Prant	phy-supply = <&vcc5v0_usb_host>;
922*f296bb50SCoia Prant	status = "okay";
923*f296bb50SCoia Prant};
924*f296bb50SCoia Prant
925*f296bb50SCoia Prant&vop {
926*f296bb50SCoia Prant	assigned-clocks = <&cru DCLK_VOP0>, <&cru DCLK_VOP1>;
927*f296bb50SCoia Prant	assigned-clock-parents = <&pmucru PLL_HPLL>, <&cru PLL_VPLL>;
928*f296bb50SCoia Prant	status = "okay";
929*f296bb50SCoia Prant};
930*f296bb50SCoia Prant
931*f296bb50SCoia Prant&vop_mmu {
932*f296bb50SCoia Prant	status = "okay";
933*f296bb50SCoia Prant};
934*f296bb50SCoia Prant
935*f296bb50SCoia Prant&vp0 {
936*f296bb50SCoia Prant	vp0_out_hdmi: endpoint@ROCKCHIP_VOP2_EP_HDMI0 {
937*f296bb50SCoia Prant		reg = <ROCKCHIP_VOP2_EP_HDMI0>;
938*f296bb50SCoia Prant		remote-endpoint = <&hdmi_in_vp0>;
939*f296bb50SCoia Prant	};
940*f296bb50SCoia Prant};
941