xref: /freebsd/sys/contrib/device-tree/src/arm64/rockchip/rk3588-friendlyelec-cm3588-nas.dts (revision 0e8011faf58b743cc652e3b2ad0f7671227610df)
1*0e8011faSEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2*0e8011faSEmmanuel Vadot/*
3*0e8011faSEmmanuel Vadot * Copyright (c) 2021 Rockchip Electronics Co., Ltd.
4*0e8011faSEmmanuel Vadot * Copyright (c) 2023 Thomas McKahan
5*0e8011faSEmmanuel Vadot * Copyright (c) 2024 Sebastian Kropatsch
6*0e8011faSEmmanuel Vadot *
7*0e8011faSEmmanuel Vadot */
8*0e8011faSEmmanuel Vadot
9*0e8011faSEmmanuel Vadot/dts-v1/;
10*0e8011faSEmmanuel Vadot
11*0e8011faSEmmanuel Vadot#include <dt-bindings/gpio/gpio.h>
12*0e8011faSEmmanuel Vadot#include <dt-bindings/input/input.h>
13*0e8011faSEmmanuel Vadot#include <dt-bindings/pinctrl/rockchip.h>
14*0e8011faSEmmanuel Vadot#include <dt-bindings/usb/pd.h>
15*0e8011faSEmmanuel Vadot#include "rk3588-friendlyelec-cm3588.dtsi"
16*0e8011faSEmmanuel Vadot
17*0e8011faSEmmanuel Vadot/ {
18*0e8011faSEmmanuel Vadot	model = "FriendlyElec CM3588 NAS";
19*0e8011faSEmmanuel Vadot	compatible = "friendlyarm,cm3588-nas", "friendlyarm,cm3588", "rockchip,rk3588";
20*0e8011faSEmmanuel Vadot
21*0e8011faSEmmanuel Vadot	adc_key_recovery: adc-key-recovery {
22*0e8011faSEmmanuel Vadot		compatible = "adc-keys";
23*0e8011faSEmmanuel Vadot		io-channels = <&saradc 1>;
24*0e8011faSEmmanuel Vadot		io-channel-names = "buttons";
25*0e8011faSEmmanuel Vadot		keyup-threshold-microvolt = <1800000>;
26*0e8011faSEmmanuel Vadot		poll-interval = <100>;
27*0e8011faSEmmanuel Vadot
28*0e8011faSEmmanuel Vadot		button-recovery {
29*0e8011faSEmmanuel Vadot			label = "Recovery";
30*0e8011faSEmmanuel Vadot			linux,code = <KEY_VENDOR>;
31*0e8011faSEmmanuel Vadot			press-threshold-microvolt = <17000>;
32*0e8011faSEmmanuel Vadot		};
33*0e8011faSEmmanuel Vadot	};
34*0e8011faSEmmanuel Vadot
35*0e8011faSEmmanuel Vadot	analog-sound {
36*0e8011faSEmmanuel Vadot		compatible = "simple-audio-card";
37*0e8011faSEmmanuel Vadot		pinctrl-names = "default";
38*0e8011faSEmmanuel Vadot		pinctrl-0 = <&headphone_detect>;
39*0e8011faSEmmanuel Vadot
40*0e8011faSEmmanuel Vadot		simple-audio-card,format = "i2s";
41*0e8011faSEmmanuel Vadot		simple-audio-card,hp-det-gpio = <&gpio1 RK_PC4 GPIO_ACTIVE_LOW>;
42*0e8011faSEmmanuel Vadot		simple-audio-card,mclk-fs = <256>;
43*0e8011faSEmmanuel Vadot		simple-audio-card,name = "realtek,rt5616-codec";
44*0e8011faSEmmanuel Vadot
45*0e8011faSEmmanuel Vadot		simple-audio-card,routing =
46*0e8011faSEmmanuel Vadot			"Headphones", "HPOL",
47*0e8011faSEmmanuel Vadot			"Headphones", "HPOR",
48*0e8011faSEmmanuel Vadot			"MIC1", "Microphone Jack",
49*0e8011faSEmmanuel Vadot			"Microphone Jack", "micbias1";
50*0e8011faSEmmanuel Vadot		simple-audio-card,widgets =
51*0e8011faSEmmanuel Vadot			"Headphone", "Headphones",
52*0e8011faSEmmanuel Vadot			"Microphone", "Microphone Jack";
53*0e8011faSEmmanuel Vadot
54*0e8011faSEmmanuel Vadot		simple-audio-card,cpu {
55*0e8011faSEmmanuel Vadot			sound-dai = <&i2s0_8ch>;
56*0e8011faSEmmanuel Vadot		};
57*0e8011faSEmmanuel Vadot
58*0e8011faSEmmanuel Vadot		simple-audio-card,codec {
59*0e8011faSEmmanuel Vadot			sound-dai = <&rt5616>;
60*0e8011faSEmmanuel Vadot		};
61*0e8011faSEmmanuel Vadot	};
62*0e8011faSEmmanuel Vadot
63*0e8011faSEmmanuel Vadot	buzzer: pwm-beeper {
64*0e8011faSEmmanuel Vadot		compatible = "pwm-beeper";
65*0e8011faSEmmanuel Vadot		amp-supply = <&vcc_5v0_sys>;
66*0e8011faSEmmanuel Vadot		beeper-hz = <500>;
67*0e8011faSEmmanuel Vadot		pwms = <&pwm8 0 500000 0>;
68*0e8011faSEmmanuel Vadot	};
69*0e8011faSEmmanuel Vadot
70*0e8011faSEmmanuel Vadot	fan: pwm-fan {
71*0e8011faSEmmanuel Vadot		compatible = "pwm-fan";
72*0e8011faSEmmanuel Vadot		#cooling-cells = <2>;
73*0e8011faSEmmanuel Vadot		cooling-levels = <0 50 80 120 160 220>;
74*0e8011faSEmmanuel Vadot		fan-supply = <&vcc_5v0_sys>;
75*0e8011faSEmmanuel Vadot		pwms = <&pwm1 0 50000 0>;
76*0e8011faSEmmanuel Vadot	};
77*0e8011faSEmmanuel Vadot
78*0e8011faSEmmanuel Vadot	gpio_keys: gpio-keys {
79*0e8011faSEmmanuel Vadot		compatible = "gpio-keys";
80*0e8011faSEmmanuel Vadot		pinctrl-names = "default";
81*0e8011faSEmmanuel Vadot		pinctrl-0 = <&key1_pin>;
82*0e8011faSEmmanuel Vadot
83*0e8011faSEmmanuel Vadot		button-user {
84*0e8011faSEmmanuel Vadot			debounce-interval = <50>;
85*0e8011faSEmmanuel Vadot			gpios = <&gpio0 RK_PD5 GPIO_ACTIVE_LOW>;
86*0e8011faSEmmanuel Vadot			label = "User Button";
87*0e8011faSEmmanuel Vadot			linux,code = <BTN_1>;
88*0e8011faSEmmanuel Vadot			wakeup-source;
89*0e8011faSEmmanuel Vadot		};
90*0e8011faSEmmanuel Vadot	};
91*0e8011faSEmmanuel Vadot
92*0e8011faSEmmanuel Vadot	ir-receiver {
93*0e8011faSEmmanuel Vadot		compatible = "gpio-ir-receiver";
94*0e8011faSEmmanuel Vadot		gpios = <&gpio0 RK_PD4 GPIO_ACTIVE_LOW>;
95*0e8011faSEmmanuel Vadot	};
96*0e8011faSEmmanuel Vadot
97*0e8011faSEmmanuel Vadot	vcc_12v_dcin: regulator-vcc-12v-dcin {
98*0e8011faSEmmanuel Vadot		compatible = "regulator-fixed";
99*0e8011faSEmmanuel Vadot		regulator-name = "vcc_12v_dcin";
100*0e8011faSEmmanuel Vadot		regulator-always-on;
101*0e8011faSEmmanuel Vadot		regulator-boot-on;
102*0e8011faSEmmanuel Vadot		regulator-min-microvolt = <12000000>;
103*0e8011faSEmmanuel Vadot		regulator-max-microvolt = <12000000>;
104*0e8011faSEmmanuel Vadot	};
105*0e8011faSEmmanuel Vadot
106*0e8011faSEmmanuel Vadot	vcc_3v3_m2_a: regulator-vcc-3v3-m2-a {
107*0e8011faSEmmanuel Vadot		compatible = "regulator-fixed";
108*0e8011faSEmmanuel Vadot		regulator-name = "vcc_3v3_m2_a";
109*0e8011faSEmmanuel Vadot		regulator-always-on;
110*0e8011faSEmmanuel Vadot		regulator-boot-on;
111*0e8011faSEmmanuel Vadot		regulator-min-microvolt = <3300000>;
112*0e8011faSEmmanuel Vadot		regulator-max-microvolt = <3300000>;
113*0e8011faSEmmanuel Vadot		vin-supply = <&vcc_12v_dcin>;
114*0e8011faSEmmanuel Vadot	};
115*0e8011faSEmmanuel Vadot
116*0e8011faSEmmanuel Vadot	vcc_3v3_m2_b: regulator-vcc-3v3-m2-b {
117*0e8011faSEmmanuel Vadot		compatible = "regulator-fixed";
118*0e8011faSEmmanuel Vadot		regulator-name = "vcc_3v3_m2_b";
119*0e8011faSEmmanuel Vadot		regulator-always-on;
120*0e8011faSEmmanuel Vadot		regulator-boot-on;
121*0e8011faSEmmanuel Vadot		regulator-min-microvolt = <3300000>;
122*0e8011faSEmmanuel Vadot		regulator-max-microvolt = <3300000>;
123*0e8011faSEmmanuel Vadot		vin-supply = <&vcc_12v_dcin>;
124*0e8011faSEmmanuel Vadot	};
125*0e8011faSEmmanuel Vadot
126*0e8011faSEmmanuel Vadot	vcc_3v3_m2_c: regulator-vcc-3v3-m2-c {
127*0e8011faSEmmanuel Vadot		compatible = "regulator-fixed";
128*0e8011faSEmmanuel Vadot		regulator-name = "vcc_3v3_m2_c";
129*0e8011faSEmmanuel Vadot		regulator-always-on;
130*0e8011faSEmmanuel Vadot		regulator-boot-on;
131*0e8011faSEmmanuel Vadot		regulator-min-microvolt = <3300000>;
132*0e8011faSEmmanuel Vadot		regulator-max-microvolt = <3300000>;
133*0e8011faSEmmanuel Vadot		vin-supply = <&vcc_12v_dcin>;
134*0e8011faSEmmanuel Vadot	};
135*0e8011faSEmmanuel Vadot
136*0e8011faSEmmanuel Vadot	vcc_3v3_m2_d: regulator-vcc-3v3-m2-d {
137*0e8011faSEmmanuel Vadot		compatible = "regulator-fixed";
138*0e8011faSEmmanuel Vadot		regulator-name = "vcc_3v3_m2_d";
139*0e8011faSEmmanuel Vadot		regulator-always-on;
140*0e8011faSEmmanuel Vadot		regulator-boot-on;
141*0e8011faSEmmanuel Vadot		regulator-min-microvolt = <3300000>;
142*0e8011faSEmmanuel Vadot		regulator-max-microvolt = <3300000>;
143*0e8011faSEmmanuel Vadot		vin-supply = <&vcc_12v_dcin>;
144*0e8011faSEmmanuel Vadot	};
145*0e8011faSEmmanuel Vadot
146*0e8011faSEmmanuel Vadot	/* vcc_5v0_sys powers the peripherals */
147*0e8011faSEmmanuel Vadot	vcc_5v0_sys: regulator-vcc-5v0-sys {
148*0e8011faSEmmanuel Vadot		compatible = "regulator-fixed";
149*0e8011faSEmmanuel Vadot		regulator-name = "vcc_5v0_sys";
150*0e8011faSEmmanuel Vadot		regulator-always-on;
151*0e8011faSEmmanuel Vadot		regulator-boot-on;
152*0e8011faSEmmanuel Vadot		regulator-min-microvolt = <5000000>;
153*0e8011faSEmmanuel Vadot		regulator-max-microvolt = <5000000>;
154*0e8011faSEmmanuel Vadot		vin-supply = <&vcc_12v_dcin>;
155*0e8011faSEmmanuel Vadot	};
156*0e8011faSEmmanuel Vadot
157*0e8011faSEmmanuel Vadot	/* SY6280AAC power switch (U14 in schematics) */
158*0e8011faSEmmanuel Vadot	vcc_5v0_host_20: regulator-vcc-5v0-host-20 {
159*0e8011faSEmmanuel Vadot		compatible = "regulator-fixed";
160*0e8011faSEmmanuel Vadot		enable-active-high;
161*0e8011faSEmmanuel Vadot		gpios = <&gpio1 RK_PA4 GPIO_ACTIVE_HIGH>;
162*0e8011faSEmmanuel Vadot		pinctrl-names = "default";
163*0e8011faSEmmanuel Vadot		pinctrl-0 = <&vcc_5v0_host20_en>;
164*0e8011faSEmmanuel Vadot		regulator-name = "vcc_5v0_host_20";
165*0e8011faSEmmanuel Vadot		regulator-min-microvolt = <5000000>;
166*0e8011faSEmmanuel Vadot		regulator-max-microvolt = <5000000>;
167*0e8011faSEmmanuel Vadot		vin-supply = <&vcc_5v0_sys>;
168*0e8011faSEmmanuel Vadot	};
169*0e8011faSEmmanuel Vadot
170*0e8011faSEmmanuel Vadot	/* SY6280AAC power switch (U8 in schematics) */
171*0e8011faSEmmanuel Vadot	vcc_5v0_host_30_p1: regulator-vcc-5v0-host-30-p1 {
172*0e8011faSEmmanuel Vadot		compatible = "regulator-fixed";
173*0e8011faSEmmanuel Vadot		enable-active-high;
174*0e8011faSEmmanuel Vadot		gpios = <&gpio4 RK_PB0 GPIO_ACTIVE_HIGH>;
175*0e8011faSEmmanuel Vadot		pinctrl-names = "default";
176*0e8011faSEmmanuel Vadot		pinctrl-0 = <&vcc_5v0_host30p1_en>;
177*0e8011faSEmmanuel Vadot		regulator-name = "vcc_5v0_host_30_p1";
178*0e8011faSEmmanuel Vadot		regulator-min-microvolt = <5000000>;
179*0e8011faSEmmanuel Vadot		regulator-max-microvolt = <5000000>;
180*0e8011faSEmmanuel Vadot		vin-supply = <&vcc_5v0_sys>;
181*0e8011faSEmmanuel Vadot	};
182*0e8011faSEmmanuel Vadot
183*0e8011faSEmmanuel Vadot	/* SY6280AAC power switch (U9 in schematics) */
184*0e8011faSEmmanuel Vadot	vcc_5v0_host_30_p2: regulator-vcc-5v0-host-30-p2 {
185*0e8011faSEmmanuel Vadot		compatible = "regulator-fixed";
186*0e8011faSEmmanuel Vadot		enable-active-high;
187*0e8011faSEmmanuel Vadot		gpios = <&gpio3 RK_PA5 GPIO_ACTIVE_HIGH>;
188*0e8011faSEmmanuel Vadot		pinctrl-names = "default";
189*0e8011faSEmmanuel Vadot		pinctrl-0 = <&vcc_5v0_host30p2_en>;
190*0e8011faSEmmanuel Vadot		regulator-name = "vcc_5v0_host_30_p2";
191*0e8011faSEmmanuel Vadot		regulator-min-microvolt = <5000000>;
192*0e8011faSEmmanuel Vadot		regulator-max-microvolt = <5000000>;
193*0e8011faSEmmanuel Vadot		vin-supply = <&vcc_5v0_sys>;
194*0e8011faSEmmanuel Vadot	};
195*0e8011faSEmmanuel Vadot
196*0e8011faSEmmanuel Vadot	/* SY6280AAC power switch (U10 in schematics) */
197*0e8011faSEmmanuel Vadot	vbus_5v0_typec: regulator-vbus-5v0-typec {
198*0e8011faSEmmanuel Vadot		compatible = "regulator-fixed";
199*0e8011faSEmmanuel Vadot		enable-active-high;
200*0e8011faSEmmanuel Vadot		gpios = <&gpio1 RK_PD2 GPIO_ACTIVE_HIGH>;
201*0e8011faSEmmanuel Vadot		pinctrl-names = "default";
202*0e8011faSEmmanuel Vadot		pinctrl-0 = <&typec_5v_pwr_en>;
203*0e8011faSEmmanuel Vadot		regulator-name = "vbus_5v0_typec";
204*0e8011faSEmmanuel Vadot		regulator-min-microvolt = <5000000>;
205*0e8011faSEmmanuel Vadot		regulator-max-microvolt = <5000000>;
206*0e8011faSEmmanuel Vadot		vin-supply = <&vcc_5v0_sys>;
207*0e8011faSEmmanuel Vadot	};
208*0e8011faSEmmanuel Vadot};
209*0e8011faSEmmanuel Vadot
210*0e8011faSEmmanuel Vadot/* vcc_4v0_sys powers the RK806 and RK860's */
211*0e8011faSEmmanuel Vadot&vcc_4v0_sys {
212*0e8011faSEmmanuel Vadot	vin-supply = <&vcc_12v_dcin>;
213*0e8011faSEmmanuel Vadot};
214*0e8011faSEmmanuel Vadot
215*0e8011faSEmmanuel Vadot/* Combo PHY 1 is configured to act as as PCIe 2.0 PHY */
216*0e8011faSEmmanuel Vadot/* Used by PCIe controller 2 (pcie2x1l0) */
217*0e8011faSEmmanuel Vadot&combphy1_ps {
218*0e8011faSEmmanuel Vadot	status = "okay";
219*0e8011faSEmmanuel Vadot};
220*0e8011faSEmmanuel Vadot
221*0e8011faSEmmanuel Vadot/* Combo PHY 2 is configured to act as USB3 PHY */
222*0e8011faSEmmanuel Vadot/* Used by USB 3.0 OTG 2 controller (USB 3.0 Type-A port 2) */
223*0e8011faSEmmanuel Vadot/* CM3588 USB Controller Config Table: USB30 HOST2 */
224*0e8011faSEmmanuel Vadot&combphy2_psu {
225*0e8011faSEmmanuel Vadot	status = "okay";
226*0e8011faSEmmanuel Vadot};
227*0e8011faSEmmanuel Vadot
228*0e8011faSEmmanuel Vadot/* GPIO names are in the format "Human-readable-name [SIGNAL_LABEL]" */
229*0e8011faSEmmanuel Vadot/* Signal labels match the official CM3588 NAS SDK schematic revision 2309 */
230*0e8011faSEmmanuel Vadot&gpio0 {
231*0e8011faSEmmanuel Vadot	gpio-line-names =
232*0e8011faSEmmanuel Vadot		/* GPIO0 A0-A7 */
233*0e8011faSEmmanuel Vadot		"", "", "", "",
234*0e8011faSEmmanuel Vadot		"MicroSD detect [SDMMC_DET_L]", "", "", "",
235*0e8011faSEmmanuel Vadot		/* GPIO0 B0-B7 */
236*0e8011faSEmmanuel Vadot		"", "", "", "",
237*0e8011faSEmmanuel Vadot		"", "", "", "",
238*0e8011faSEmmanuel Vadot		/* GPIO0 C0-C7 */
239*0e8011faSEmmanuel Vadot		"", "", "", "",
240*0e8011faSEmmanuel Vadot		"Pin 10 [UART0_RX_M0]", "Pin 08 [UART0_TX_M0/PWM4_M0]", "Pin 32 [PWM5_M1]", "",
241*0e8011faSEmmanuel Vadot		/* GPIO0 D0-D7 */
242*0e8011faSEmmanuel Vadot		"", "", "", "USB3 Type-C [CC_INT_L]",
243*0e8011faSEmmanuel Vadot		"IR receiver [PWM3_IR_M0]", "User Button", "", "";
244*0e8011faSEmmanuel Vadot};
245*0e8011faSEmmanuel Vadot
246*0e8011faSEmmanuel Vadot&gpio1 {
247*0e8011faSEmmanuel Vadot	gpio-line-names =
248*0e8011faSEmmanuel Vadot		/* GPIO1 A0-A7 */
249*0e8011faSEmmanuel Vadot		"Pin 27 [UART6_RX_M1]", "Pin 28 [UART6_TX_M1]", "", "",
250*0e8011faSEmmanuel Vadot		"USB2 Type-A [USB2_PWREN]", "", "", "Pin 15",
251*0e8011faSEmmanuel Vadot		/* GPIO1 B0-B7 */
252*0e8011faSEmmanuel Vadot		"Pin 26", "Pin 21 [SPI0_MISO_M2]", "Pin 19 [SPI0_MOSI_M2/UART4_RX_M2]", "Pin 23 [SPI0_CLK_M2/UART4_TX_M2]",
253*0e8011faSEmmanuel Vadot		"Pin 24 [SPI0_CS0_M2/UART7_RX_M2]", "Pin 22 [SPI0_CS1_M0/UART7_TX_M2]", "", "CSI-Pin 14 [MIPI_CAM2_CLKOUT]",
254*0e8011faSEmmanuel Vadot		/* GPIO1 C0-C7 */
255*0e8011faSEmmanuel Vadot		"", "", "", "",
256*0e8011faSEmmanuel Vadot		"Headphone detect [HP_DET_L]", "", "", "",
257*0e8011faSEmmanuel Vadot		/* GPIO1 D0-D7 */
258*0e8011faSEmmanuel Vadot		"", "", "USB3 Type-C [TYPEC5V_PWREN_H]", "5V Fan [PWM1_M1]",
259*0e8011faSEmmanuel Vadot		"", "HDMI-in detect [HDMIIRX_DET_L]", "Pin 05 [I2C8_SCL_M2]", "Pin 03 [I2C8_SDA_M2]";
260*0e8011faSEmmanuel Vadot};
261*0e8011faSEmmanuel Vadot
262*0e8011faSEmmanuel Vadot&gpio2 {
263*0e8011faSEmmanuel Vadot	gpio-line-names =
264*0e8011faSEmmanuel Vadot		/* GPIO2 A0-A7 */
265*0e8011faSEmmanuel Vadot		"", "", "", "",
266*0e8011faSEmmanuel Vadot		"", "", "SPI NOR Flash [FSPI_D0_M1]", "SPI NOR Flash [FSPI_D1_M1]",
267*0e8011faSEmmanuel Vadot		/* GPIO2 B0-B7 */
268*0e8011faSEmmanuel Vadot		"SPI NOR Flash [FSPI_D2_M1]", "SPI NOR Flash [FSPI_D3_M1]", "", "SPI NOR Flash [FSPI_CLK_M1]",
269*0e8011faSEmmanuel Vadot		"SPI NOR Flash [FSPI_CSN0_M1]", "", "", "",
270*0e8011faSEmmanuel Vadot		/* GPIO2 C0-C7 */
271*0e8011faSEmmanuel Vadot		"", "CSI-Pin 11 [MIPI_CAM2_RESET_L]", "CSI-Pin 12 [MIPI_CAM2_PDN_L]", "",
272*0e8011faSEmmanuel Vadot		"", "", "", "",
273*0e8011faSEmmanuel Vadot		/* GPIO2 D0-D7 */
274*0e8011faSEmmanuel Vadot		"", "", "", "",
275*0e8011faSEmmanuel Vadot		"", "", "", "";
276*0e8011faSEmmanuel Vadot};
277*0e8011faSEmmanuel Vadot
278*0e8011faSEmmanuel Vadot&gpio3 {
279*0e8011faSEmmanuel Vadot	gpio-line-names =
280*0e8011faSEmmanuel Vadot		/* GPIO3 A0-A7 */
281*0e8011faSEmmanuel Vadot		"Pin 35 [SPI4_MISO_M1/PWM10_M0]", "Pin 38 [SPI4_MOSI_M1]", "Pin 40 [SPI4_CLK_M1/UART8_TX_M1]", "Pin 36 [SPI4_CS0_M1/UART8_RX_M1]",
282*0e8011faSEmmanuel Vadot		"Pin 37 [SPI4_CS1_M1]", "USB3-A #2 [USB3_2_PWREN]", "DSI-Pin 12 [LCD_RST]", "Buzzer [PWM8_M0]",
283*0e8011faSEmmanuel Vadot		/* GPIO3 B0-B7 */
284*0e8011faSEmmanuel Vadot		"Pin 33 [PWM9_M0]", "DSI-Pin 10 [PWM2_M1/LCD_BL]", "Pin 07", "Pin 16",
285*0e8011faSEmmanuel Vadot		"Pin 18", "Pin 29 [UART3_TX_M1/PWM12_M0]", "Pin 31 [UART3_RX_M1/PWM13_M0]", "Pin 12",
286*0e8011faSEmmanuel Vadot		/* GPIO3 C0-C7 */
287*0e8011faSEmmanuel Vadot		"DSI-Pin 08 [TP_INT_L]", "DSI-Pin 14 [TP_RST_L]", "Pin 11 [PWM14_M0]", "Pin 13 [PWM15_IR_M0]",
288*0e8011faSEmmanuel Vadot		"", "", "", "DSI-Pin 06 [I2C5_SCL_M0_TP]",
289*0e8011faSEmmanuel Vadot		/* GPIO3 D0-D7 */
290*0e8011faSEmmanuel Vadot		"DSI-Pin 05 [I2C5_SDA_M0_TP]", "", "", "",
291*0e8011faSEmmanuel Vadot		"", "", "", "";
292*0e8011faSEmmanuel Vadot};
293*0e8011faSEmmanuel Vadot
294*0e8011faSEmmanuel Vadot&gpio4 {
295*0e8011faSEmmanuel Vadot	gpio-line-names =
296*0e8011faSEmmanuel Vadot		/* GPIO4 A0-A7 */
297*0e8011faSEmmanuel Vadot		"", "", "M.2 M-Key Slot4 [M2_D_PERST_L]", "",
298*0e8011faSEmmanuel Vadot		"", "", "", "",
299*0e8011faSEmmanuel Vadot		/* GPIO4 B0-B7 */
300*0e8011faSEmmanuel Vadot		"USB3-A #1 [USB3_TYPEC1_PWREN]", "", "", "M.2 M-Key Slot3 [M2_C_PERST_L]",
301*0e8011faSEmmanuel Vadot		"M.2 M-Key Slot2 [M2_B_PERST_L]", "M.2 M-Key Slot1 [M2_A_CLKREQ_L]", "M.2 M-Key Slot1 [M2_A_PERST_L]", "",
302*0e8011faSEmmanuel Vadot		/* GPIO4 C0-C7 */
303*0e8011faSEmmanuel Vadot		"", "", "", "",
304*0e8011faSEmmanuel Vadot		"", "", "", "",
305*0e8011faSEmmanuel Vadot		/* GPIO4 D0-D7 */
306*0e8011faSEmmanuel Vadot		"", "", "", "",
307*0e8011faSEmmanuel Vadot		"", "", "", "";
308*0e8011faSEmmanuel Vadot};
309*0e8011faSEmmanuel Vadot
310*0e8011faSEmmanuel Vadot/* Connected to MIPI-DSI0 */
311*0e8011faSEmmanuel Vadot&i2c5 {
312*0e8011faSEmmanuel Vadot	pinctrl-names = "default";
313*0e8011faSEmmanuel Vadot	pinctrl-0 = <&i2c5m0_xfer>;
314*0e8011faSEmmanuel Vadot	status = "disabled";
315*0e8011faSEmmanuel Vadot};
316*0e8011faSEmmanuel Vadot
317*0e8011faSEmmanuel Vadot&i2c6 {
318*0e8011faSEmmanuel Vadot	fusb302: typec-portc@22 {
319*0e8011faSEmmanuel Vadot		compatible = "fcs,fusb302";
320*0e8011faSEmmanuel Vadot		reg = <0x22>;
321*0e8011faSEmmanuel Vadot		interrupt-parent = <&gpio0>;
322*0e8011faSEmmanuel Vadot		interrupts = <RK_PD3 IRQ_TYPE_LEVEL_LOW>;
323*0e8011faSEmmanuel Vadot		pinctrl-names = "default";
324*0e8011faSEmmanuel Vadot		pinctrl-0 = <&usbc0_int>;
325*0e8011faSEmmanuel Vadot		vbus-supply = <&vbus_5v0_typec>;
326*0e8011faSEmmanuel Vadot
327*0e8011faSEmmanuel Vadot		usb_con: connector {
328*0e8011faSEmmanuel Vadot			compatible = "usb-c-connector";
329*0e8011faSEmmanuel Vadot			data-role = "dual";
330*0e8011faSEmmanuel Vadot			label = "USB-C";
331*0e8011faSEmmanuel Vadot			power-role = "source";
332*0e8011faSEmmanuel Vadot			source-pdos = <PDO_FIXED(5000, 2000, PDO_FIXED_USB_COMM)>;
333*0e8011faSEmmanuel Vadot			try-power-role = "source";
334*0e8011faSEmmanuel Vadot			vbus-supply = <&vbus_5v0_typec>;
335*0e8011faSEmmanuel Vadot
336*0e8011faSEmmanuel Vadot			ports {
337*0e8011faSEmmanuel Vadot				#address-cells = <1>;
338*0e8011faSEmmanuel Vadot				#size-cells = <0>;
339*0e8011faSEmmanuel Vadot
340*0e8011faSEmmanuel Vadot				port@0 {
341*0e8011faSEmmanuel Vadot					reg = <0>;
342*0e8011faSEmmanuel Vadot
343*0e8011faSEmmanuel Vadot					usbc0_orien_sw: endpoint {
344*0e8011faSEmmanuel Vadot						remote-endpoint = <&usbdp_phy0_orientation_switch>;
345*0e8011faSEmmanuel Vadot					};
346*0e8011faSEmmanuel Vadot				};
347*0e8011faSEmmanuel Vadot
348*0e8011faSEmmanuel Vadot				port@1 {
349*0e8011faSEmmanuel Vadot					reg = <1>;
350*0e8011faSEmmanuel Vadot
351*0e8011faSEmmanuel Vadot					usbc0_role_sw: endpoint {
352*0e8011faSEmmanuel Vadot						remote-endpoint = <&dwc3_0_role_switch>;
353*0e8011faSEmmanuel Vadot					};
354*0e8011faSEmmanuel Vadot				};
355*0e8011faSEmmanuel Vadot
356*0e8011faSEmmanuel Vadot				port@2 {
357*0e8011faSEmmanuel Vadot					reg = <2>;
358*0e8011faSEmmanuel Vadot
359*0e8011faSEmmanuel Vadot					dp_altmode_mux: endpoint {
360*0e8011faSEmmanuel Vadot						remote-endpoint = <&usbdp_phy0_dp_altmode_mux>;
361*0e8011faSEmmanuel Vadot					};
362*0e8011faSEmmanuel Vadot				};
363*0e8011faSEmmanuel Vadot			};
364*0e8011faSEmmanuel Vadot		};
365*0e8011faSEmmanuel Vadot	};
366*0e8011faSEmmanuel Vadot};
367*0e8011faSEmmanuel Vadot
368*0e8011faSEmmanuel Vadot/* Connected to MIPI-CSI1 */
369*0e8011faSEmmanuel Vadot/* &i2c7 */
370*0e8011faSEmmanuel Vadot
371*0e8011faSEmmanuel Vadot/* GPIO Connector, connected to 40-pin GPIO header */
372*0e8011faSEmmanuel Vadot&i2c8 {
373*0e8011faSEmmanuel Vadot	pinctrl-names = "default";
374*0e8011faSEmmanuel Vadot	pinctrl-0 = <&i2c8m2_xfer>;
375*0e8011faSEmmanuel Vadot	status = "okay";
376*0e8011faSEmmanuel Vadot};
377*0e8011faSEmmanuel Vadot
378*0e8011faSEmmanuel Vadot&pcie2x1l0 {
379*0e8011faSEmmanuel Vadot	/* 2. M.2 socket, CON14: pcie30phy port0 lane1, @fe170000 */
380*0e8011faSEmmanuel Vadot	max-link-speed = <3>;
381*0e8011faSEmmanuel Vadot	num-lanes = <1>;
382*0e8011faSEmmanuel Vadot	phys = <&pcie30phy>;
383*0e8011faSEmmanuel Vadot	pinctrl-names = "default";
384*0e8011faSEmmanuel Vadot	pinctrl-0 = <&pcie2_0_rst>;
385*0e8011faSEmmanuel Vadot	reset-gpios = <&gpio4 RK_PB4 GPIO_ACTIVE_HIGH>;
386*0e8011faSEmmanuel Vadot	vpcie3v3-supply = <&vcc_3v3_m2_b>;
387*0e8011faSEmmanuel Vadot	status = "okay";
388*0e8011faSEmmanuel Vadot};
389*0e8011faSEmmanuel Vadot
390*0e8011faSEmmanuel Vadot&pcie2x1l1 {
391*0e8011faSEmmanuel Vadot	/* 4. M.2 socket, CON16: pcie30phy port1 lane1, @fe180000 */
392*0e8011faSEmmanuel Vadot	max-link-speed = <3>;
393*0e8011faSEmmanuel Vadot	num-lanes = <1>;
394*0e8011faSEmmanuel Vadot	phys = <&pcie30phy>;
395*0e8011faSEmmanuel Vadot	pinctrl-names = "default";
396*0e8011faSEmmanuel Vadot	pinctrl-0 = <&pcie2_1_rst>;
397*0e8011faSEmmanuel Vadot	reset-gpios = <&gpio4 RK_PA2 GPIO_ACTIVE_HIGH>;
398*0e8011faSEmmanuel Vadot	vpcie3v3-supply = <&vcc_3v3_m2_d>;
399*0e8011faSEmmanuel Vadot	status = "okay";
400*0e8011faSEmmanuel Vadot};
401*0e8011faSEmmanuel Vadot
402*0e8011faSEmmanuel Vadot&pcie30phy {
403*0e8011faSEmmanuel Vadot	/*
404*0e8011faSEmmanuel Vadot	* Data lane mapping <1 3 2 4> = x1x1 x1x1 (bifurcation of both ports)
405*0e8011faSEmmanuel Vadot	* port 0 lane 0 - always mapped to controller 0 (4L)
406*0e8011faSEmmanuel Vadot	* port 0 lane 1 - map to controller 2 (1L0)
407*0e8011faSEmmanuel Vadot	* port 1 lane 0 - map to controller 1 (2L)
408*0e8011faSEmmanuel Vadot	* port 1 lane 1 - map to controller 3 (1L1)
409*0e8011faSEmmanuel Vadot	*/
410*0e8011faSEmmanuel Vadot	data-lanes = <1 3 2 4>;
411*0e8011faSEmmanuel Vadot	status = "okay";
412*0e8011faSEmmanuel Vadot};
413*0e8011faSEmmanuel Vadot
414*0e8011faSEmmanuel Vadot&pcie3x4 {
415*0e8011faSEmmanuel Vadot	/* 1. M.2 socket, CON13: pcie30phy port0 lane0, @fe150000 */
416*0e8011faSEmmanuel Vadot	max-link-speed = <3>;
417*0e8011faSEmmanuel Vadot	num-lanes = <1>;
418*0e8011faSEmmanuel Vadot	pinctrl-names = "default";
419*0e8011faSEmmanuel Vadot	pinctrl-0 = <&pcie3x4_rst>;
420*0e8011faSEmmanuel Vadot	reset-gpios = <&gpio4 RK_PB6 GPIO_ACTIVE_HIGH>;
421*0e8011faSEmmanuel Vadot	vpcie3v3-supply = <&vcc_3v3_m2_a>;
422*0e8011faSEmmanuel Vadot	status = "okay";
423*0e8011faSEmmanuel Vadot};
424*0e8011faSEmmanuel Vadot
425*0e8011faSEmmanuel Vadot&pcie3x2 {
426*0e8011faSEmmanuel Vadot	/* 3. M.2 socket, CON15: pcie30phy port1 lane0, @fe160000 */
427*0e8011faSEmmanuel Vadot	max-link-speed = <3>;
428*0e8011faSEmmanuel Vadot	num-lanes = <1>;
429*0e8011faSEmmanuel Vadot	pinctrl-names = "default";
430*0e8011faSEmmanuel Vadot	pinctrl-0 = <&pcie3x2_rst>;
431*0e8011faSEmmanuel Vadot	reset-gpios = <&gpio4 RK_PB3 GPIO_ACTIVE_HIGH>;
432*0e8011faSEmmanuel Vadot	vpcie3v3-supply = <&vcc_3v3_m2_c>;
433*0e8011faSEmmanuel Vadot	status = "okay";
434*0e8011faSEmmanuel Vadot};
435*0e8011faSEmmanuel Vadot
436*0e8011faSEmmanuel Vadot&pinctrl {
437*0e8011faSEmmanuel Vadot	audio {
438*0e8011faSEmmanuel Vadot		headphone_detect: headphone-detect {
439*0e8011faSEmmanuel Vadot			rockchip,pins = <1 RK_PC4 RK_FUNC_GPIO &pcfg_pull_none>;
440*0e8011faSEmmanuel Vadot		};
441*0e8011faSEmmanuel Vadot	};
442*0e8011faSEmmanuel Vadot
443*0e8011faSEmmanuel Vadot	gpio-key {
444*0e8011faSEmmanuel Vadot		key1_pin: key1-pin {
445*0e8011faSEmmanuel Vadot			rockchip,pins = <0 RK_PD5 RK_FUNC_GPIO &pcfg_pull_up>;
446*0e8011faSEmmanuel Vadot		};
447*0e8011faSEmmanuel Vadot	};
448*0e8011faSEmmanuel Vadot
449*0e8011faSEmmanuel Vadot	pcie {
450*0e8011faSEmmanuel Vadot		pcie2_0_rst: pcie2-0-rst {
451*0e8011faSEmmanuel Vadot			rockchip,pins = <4 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>;
452*0e8011faSEmmanuel Vadot		};
453*0e8011faSEmmanuel Vadot
454*0e8011faSEmmanuel Vadot		pcie2_1_rst: pcie2-1-rst {
455*0e8011faSEmmanuel Vadot			rockchip,pins = <4 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
456*0e8011faSEmmanuel Vadot		};
457*0e8011faSEmmanuel Vadot
458*0e8011faSEmmanuel Vadot		pcie3x2_rst: pcie3x2-rst {
459*0e8011faSEmmanuel Vadot			rockchip,pins = <4 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
460*0e8011faSEmmanuel Vadot		};
461*0e8011faSEmmanuel Vadot
462*0e8011faSEmmanuel Vadot		pcie3x4_rst: pcie3x4-rst {
463*0e8011faSEmmanuel Vadot			rockchip,pins = <4 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>;
464*0e8011faSEmmanuel Vadot		};
465*0e8011faSEmmanuel Vadot	};
466*0e8011faSEmmanuel Vadot
467*0e8011faSEmmanuel Vadot	usb {
468*0e8011faSEmmanuel Vadot		vcc_5v0_host20_en: vcc-5v0-host20-en {
469*0e8011faSEmmanuel Vadot			rockchip,pins = <1 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>;
470*0e8011faSEmmanuel Vadot		};
471*0e8011faSEmmanuel Vadot
472*0e8011faSEmmanuel Vadot		vcc_5v0_host30p1_en: vcc-5v0-host30p1-en {
473*0e8011faSEmmanuel Vadot			rockchip,pins = <4 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>;
474*0e8011faSEmmanuel Vadot		};
475*0e8011faSEmmanuel Vadot
476*0e8011faSEmmanuel Vadot		vcc_5v0_host30p2_en: vcc-5v0-host30p2-en {
477*0e8011faSEmmanuel Vadot			rockchip,pins = <3 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>;
478*0e8011faSEmmanuel Vadot		};
479*0e8011faSEmmanuel Vadot	};
480*0e8011faSEmmanuel Vadot
481*0e8011faSEmmanuel Vadot	usb-typec {
482*0e8011faSEmmanuel Vadot		usbc0_int: usbc0-int {
483*0e8011faSEmmanuel Vadot			rockchip,pins = <0 RK_PD3 RK_FUNC_GPIO &pcfg_pull_up>;
484*0e8011faSEmmanuel Vadot		};
485*0e8011faSEmmanuel Vadot
486*0e8011faSEmmanuel Vadot		typec_5v_pwr_en: typec-5v-pwr-en {
487*0e8011faSEmmanuel Vadot			rockchip,pins = <1 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>;
488*0e8011faSEmmanuel Vadot		};
489*0e8011faSEmmanuel Vadot	};
490*0e8011faSEmmanuel Vadot};
491*0e8011faSEmmanuel Vadot
492*0e8011faSEmmanuel Vadot/* Connected to 5V Fan */
493*0e8011faSEmmanuel Vadot&pwm1 {
494*0e8011faSEmmanuel Vadot	pinctrl-names = "default";
495*0e8011faSEmmanuel Vadot	pinctrl-0 = <&pwm1m1_pins>;
496*0e8011faSEmmanuel Vadot	status = "okay";
497*0e8011faSEmmanuel Vadot};
498*0e8011faSEmmanuel Vadot
499*0e8011faSEmmanuel Vadot/* Connected to MIPI-DSI0 */
500*0e8011faSEmmanuel Vadot&pwm2 {
501*0e8011faSEmmanuel Vadot	pinctrl-names = "default";
502*0e8011faSEmmanuel Vadot	pinctrl-0 = <&pwm2m1_pins>;
503*0e8011faSEmmanuel Vadot};
504*0e8011faSEmmanuel Vadot
505*0e8011faSEmmanuel Vadot/* Connected to IR Receiver */
506*0e8011faSEmmanuel Vadot&pwm3 {
507*0e8011faSEmmanuel Vadot	pinctrl-names = "default";
508*0e8011faSEmmanuel Vadot	pinctrl-0 = <&pwm3m0_pins>;
509*0e8011faSEmmanuel Vadot	status = "okay";
510*0e8011faSEmmanuel Vadot};
511*0e8011faSEmmanuel Vadot
512*0e8011faSEmmanuel Vadot/* GPIO Connector, connected to 40-pin GPIO header */
513*0e8011faSEmmanuel Vadot/* Shared with UART0 */
514*0e8011faSEmmanuel Vadot&pwm4 {
515*0e8011faSEmmanuel Vadot	pinctrl-names = "default";
516*0e8011faSEmmanuel Vadot	pinctrl-0 = <&pwm4m1_pins>;
517*0e8011faSEmmanuel Vadot	status = "disabled";
518*0e8011faSEmmanuel Vadot};
519*0e8011faSEmmanuel Vadot
520*0e8011faSEmmanuel Vadot/* GPIO Connector, connected to 40-pin GPIO header */
521*0e8011faSEmmanuel Vadot&pwm5 {
522*0e8011faSEmmanuel Vadot	pinctrl-names = "default";
523*0e8011faSEmmanuel Vadot	pinctrl-0 = <&pwm5m1_pins>;
524*0e8011faSEmmanuel Vadot	status = "okay";
525*0e8011faSEmmanuel Vadot};
526*0e8011faSEmmanuel Vadot
527*0e8011faSEmmanuel Vadot/* Connected to Buzzer */
528*0e8011faSEmmanuel Vadot&pwm8 {
529*0e8011faSEmmanuel Vadot	pinctrl-names = "default";
530*0e8011faSEmmanuel Vadot	pinctrl-0 = <&pwm8m0_pins>;
531*0e8011faSEmmanuel Vadot	status = "okay";
532*0e8011faSEmmanuel Vadot};
533*0e8011faSEmmanuel Vadot
534*0e8011faSEmmanuel Vadot/* GPIO Connector, connected to 40-pin GPIO header */
535*0e8011faSEmmanuel Vadot&pwm9 {
536*0e8011faSEmmanuel Vadot	pinctrl-names = "default";
537*0e8011faSEmmanuel Vadot	pinctrl-0 = <&pwm9m0_pins>;
538*0e8011faSEmmanuel Vadot	status = "okay";
539*0e8011faSEmmanuel Vadot};
540*0e8011faSEmmanuel Vadot
541*0e8011faSEmmanuel Vadot/* GPIO Connector, connected to 40-pin GPIO header */
542*0e8011faSEmmanuel Vadot/* Shared with SPI4 */
543*0e8011faSEmmanuel Vadot&pwm10 {
544*0e8011faSEmmanuel Vadot	pinctrl-names = "default";
545*0e8011faSEmmanuel Vadot	pinctrl-0 = <&pwm10m0_pins>;
546*0e8011faSEmmanuel Vadot	status = "disabled";
547*0e8011faSEmmanuel Vadot};
548*0e8011faSEmmanuel Vadot
549*0e8011faSEmmanuel Vadot/* GPIO Connector, connected to 40-pin GPIO header */
550*0e8011faSEmmanuel Vadot/* Shared with UART3 */
551*0e8011faSEmmanuel Vadot&pwm12 {
552*0e8011faSEmmanuel Vadot	pinctrl-names = "default";
553*0e8011faSEmmanuel Vadot	pinctrl-0 = <&pwm12m0_pins>;
554*0e8011faSEmmanuel Vadot	status = "disabled";
555*0e8011faSEmmanuel Vadot};
556*0e8011faSEmmanuel Vadot
557*0e8011faSEmmanuel Vadot/* GPIO Connector, connected to 40-pin GPIO header */
558*0e8011faSEmmanuel Vadot/* Shared with UART3 */
559*0e8011faSEmmanuel Vadot&pwm13 {
560*0e8011faSEmmanuel Vadot	pinctrl-names = "default";
561*0e8011faSEmmanuel Vadot	pinctrl-0 = <&pwm13m0_pins>;
562*0e8011faSEmmanuel Vadot	status = "disabled";
563*0e8011faSEmmanuel Vadot};
564*0e8011faSEmmanuel Vadot
565*0e8011faSEmmanuel Vadot/* GPIO Connector, connected to 40-pin GPIO header */
566*0e8011faSEmmanuel Vadot&pwm14 {
567*0e8011faSEmmanuel Vadot	pinctrl-names = "default";
568*0e8011faSEmmanuel Vadot	pinctrl-0 = <&pwm14m0_pins>;
569*0e8011faSEmmanuel Vadot	status = "okay";
570*0e8011faSEmmanuel Vadot};
571*0e8011faSEmmanuel Vadot
572*0e8011faSEmmanuel Vadot/* GPIO Connector, connected to 40-pin GPIO header */
573*0e8011faSEmmanuel Vadot/* Optimized for infrared applications */
574*0e8011faSEmmanuel Vadot&pwm15 {
575*0e8011faSEmmanuel Vadot	pinctrl-names = "default";
576*0e8011faSEmmanuel Vadot	pinctrl-0 = <&pwm15m0_pins>;
577*0e8011faSEmmanuel Vadot	status = "disabled";
578*0e8011faSEmmanuel Vadot};
579*0e8011faSEmmanuel Vadot
580*0e8011faSEmmanuel Vadot/* microSD card */
581*0e8011faSEmmanuel Vadot&sdmmc {
582*0e8011faSEmmanuel Vadot	status = "okay";
583*0e8011faSEmmanuel Vadot};
584*0e8011faSEmmanuel Vadot
585*0e8011faSEmmanuel Vadot/* GPIO Connector, connected to 40-pin GPIO header */
586*0e8011faSEmmanuel Vadot/* Shared with UART4, UART7 and PWM10 */
587*0e8011faSEmmanuel Vadot&spi0 {
588*0e8011faSEmmanuel Vadot	num-cs = <1>;
589*0e8011faSEmmanuel Vadot	pinctrl-names = "default";
590*0e8011faSEmmanuel Vadot	pinctrl-0 = <&spi0m2_cs0 &spi0m2_pins>;
591*0e8011faSEmmanuel Vadot	status = "disabled";
592*0e8011faSEmmanuel Vadot};
593*0e8011faSEmmanuel Vadot
594*0e8011faSEmmanuel Vadot/* GPIO Connector, connected to 40-pin GPIO header */
595*0e8011faSEmmanuel Vadot/* Shared with UART8 */
596*0e8011faSEmmanuel Vadot&spi4 {
597*0e8011faSEmmanuel Vadot	num-cs = <1>;
598*0e8011faSEmmanuel Vadot	pinctrl-names = "default";
599*0e8011faSEmmanuel Vadot	pinctrl-0 = <&spi4m1_cs0 &spi4m1_pins>;
600*0e8011faSEmmanuel Vadot	status = "disabled";
601*0e8011faSEmmanuel Vadot};
602*0e8011faSEmmanuel Vadot
603*0e8011faSEmmanuel Vadot/* GPIO Connector, connected to 40-pin GPIO header */
604*0e8011faSEmmanuel Vadot/* Shared with PWM4 */
605*0e8011faSEmmanuel Vadot&uart0 {
606*0e8011faSEmmanuel Vadot	pinctrl-names = "default";
607*0e8011faSEmmanuel Vadot	pinctrl-0 = <&uart0m0_xfer>;
608*0e8011faSEmmanuel Vadot	status = "disabled";
609*0e8011faSEmmanuel Vadot};
610*0e8011faSEmmanuel Vadot
611*0e8011faSEmmanuel Vadot/* Debug UART */
612*0e8011faSEmmanuel Vadot&uart2 {
613*0e8011faSEmmanuel Vadot	status = "okay";
614*0e8011faSEmmanuel Vadot};
615*0e8011faSEmmanuel Vadot
616*0e8011faSEmmanuel Vadot/* GPIO Connector, connected to 40-pin GPIO header */
617*0e8011faSEmmanuel Vadot/* Shared with PWM12 and PWM13 */
618*0e8011faSEmmanuel Vadot&uart3 {
619*0e8011faSEmmanuel Vadot	pinctrl-names = "default";
620*0e8011faSEmmanuel Vadot	pinctrl-0 = <&uart3m1_xfer>;
621*0e8011faSEmmanuel Vadot	status = "disabled";
622*0e8011faSEmmanuel Vadot};
623*0e8011faSEmmanuel Vadot
624*0e8011faSEmmanuel Vadot/* GPIO Connector, connected to 40-pin GPIO header */
625*0e8011faSEmmanuel Vadot/* Shared with SPI0 */
626*0e8011faSEmmanuel Vadot&uart4 {
627*0e8011faSEmmanuel Vadot	pinctrl-names = "default";
628*0e8011faSEmmanuel Vadot	pinctrl-0 = <&uart4m2_xfer>;
629*0e8011faSEmmanuel Vadot	status = "disabled";
630*0e8011faSEmmanuel Vadot};
631*0e8011faSEmmanuel Vadot
632*0e8011faSEmmanuel Vadot/* GPIO Connector, connected to 40-pin GPIO header */
633*0e8011faSEmmanuel Vadot&uart6 {
634*0e8011faSEmmanuel Vadot	pinctrl-names = "default";
635*0e8011faSEmmanuel Vadot	pinctrl-0 = <&uart6m1_xfer>;
636*0e8011faSEmmanuel Vadot	status = "okay";
637*0e8011faSEmmanuel Vadot};
638*0e8011faSEmmanuel Vadot
639*0e8011faSEmmanuel Vadot/* GPIO Connector, connected to 40-pin GPIO header */
640*0e8011faSEmmanuel Vadot/* Shared with SPI0 */
641*0e8011faSEmmanuel Vadot&uart7 {
642*0e8011faSEmmanuel Vadot	pinctrl-names = "default";
643*0e8011faSEmmanuel Vadot	pinctrl-0 = <&uart7m2_xfer>;
644*0e8011faSEmmanuel Vadot	status = "disabled";
645*0e8011faSEmmanuel Vadot};
646*0e8011faSEmmanuel Vadot
647*0e8011faSEmmanuel Vadot/* GPIO Connector, connected to 40-pin GPIO header */
648*0e8011faSEmmanuel Vadot/* Shared with SPI4 */
649*0e8011faSEmmanuel Vadot&uart8 {
650*0e8011faSEmmanuel Vadot	pinctrl-names = "default";
651*0e8011faSEmmanuel Vadot	pinctrl-0 = <&uart8m1_xfer>;
652*0e8011faSEmmanuel Vadot	status = "disabled";
653*0e8011faSEmmanuel Vadot};
654*0e8011faSEmmanuel Vadot
655*0e8011faSEmmanuel Vadot/* USB2 PHY for USB Type-C port */
656*0e8011faSEmmanuel Vadot/* CM3588 USB Controller Config Table: USB20 OTG0 */
657*0e8011faSEmmanuel Vadot&u2phy0 {
658*0e8011faSEmmanuel Vadot	status = "okay";
659*0e8011faSEmmanuel Vadot};
660*0e8011faSEmmanuel Vadot
661*0e8011faSEmmanuel Vadot&u2phy0_otg {
662*0e8011faSEmmanuel Vadot	phy-supply = <&vbus_5v0_typec>;
663*0e8011faSEmmanuel Vadot	status = "okay";
664*0e8011faSEmmanuel Vadot};
665*0e8011faSEmmanuel Vadot
666*0e8011faSEmmanuel Vadot/* USB2 PHY for USB 3.0 Type-A port 1 */
667*0e8011faSEmmanuel Vadot/* CM3588 USB Controller Config Table: USB20 OTG1 */
668*0e8011faSEmmanuel Vadot&u2phy1 {
669*0e8011faSEmmanuel Vadot	status = "okay";
670*0e8011faSEmmanuel Vadot};
671*0e8011faSEmmanuel Vadot
672*0e8011faSEmmanuel Vadot&u2phy1_otg {
673*0e8011faSEmmanuel Vadot	phy-supply = <&vcc_5v0_host_30_p1>;
674*0e8011faSEmmanuel Vadot	status = "okay";
675*0e8011faSEmmanuel Vadot};
676*0e8011faSEmmanuel Vadot
677*0e8011faSEmmanuel Vadot/* USB2 PHY for USB 2.0 Type-A */
678*0e8011faSEmmanuel Vadot/* CM3588 USB Controller Config Table: USB20 HOST0 */
679*0e8011faSEmmanuel Vadot&u2phy2 {
680*0e8011faSEmmanuel Vadot	status = "okay";
681*0e8011faSEmmanuel Vadot};
682*0e8011faSEmmanuel Vadot
683*0e8011faSEmmanuel Vadot&u2phy2_host {
684*0e8011faSEmmanuel Vadot	phy-supply = <&vcc_5v0_host_20>;
685*0e8011faSEmmanuel Vadot	status = "okay";
686*0e8011faSEmmanuel Vadot};
687*0e8011faSEmmanuel Vadot
688*0e8011faSEmmanuel Vadot/* USB2 PHY for USB 3.0 Type-A port 2 */
689*0e8011faSEmmanuel Vadot/* CM3588 USB Controller Config Table: USB20 HOST1 */
690*0e8011faSEmmanuel Vadot&u2phy3 {
691*0e8011faSEmmanuel Vadot	status = "okay";
692*0e8011faSEmmanuel Vadot};
693*0e8011faSEmmanuel Vadot
694*0e8011faSEmmanuel Vadot&u2phy3_host {
695*0e8011faSEmmanuel Vadot	phy-supply = <&vcc_5v0_host_30_p2>;
696*0e8011faSEmmanuel Vadot	status = "okay";
697*0e8011faSEmmanuel Vadot};
698*0e8011faSEmmanuel Vadot
699*0e8011faSEmmanuel Vadot/* USB 2.0 Type-A */
700*0e8011faSEmmanuel Vadot/* PHY: <&u2phy2_host> */
701*0e8011faSEmmanuel Vadot&usb_host0_ehci {
702*0e8011faSEmmanuel Vadot	status = "okay";
703*0e8011faSEmmanuel Vadot};
704*0e8011faSEmmanuel Vadot
705*0e8011faSEmmanuel Vadot/* USB 2.0 Type-A */
706*0e8011faSEmmanuel Vadot/* PHY: <&u2phy2_host> */
707*0e8011faSEmmanuel Vadot&usb_host0_ohci {
708*0e8011faSEmmanuel Vadot	status = "okay";
709*0e8011faSEmmanuel Vadot};
710*0e8011faSEmmanuel Vadot
711*0e8011faSEmmanuel Vadot/* USB Type-C */
712*0e8011faSEmmanuel Vadot/* PHYs: <&u2phy0_otg>, <&usbdp_phy0 PHY_TYPE_USB3> */
713*0e8011faSEmmanuel Vadot&usb_host0_xhci {
714*0e8011faSEmmanuel Vadot	usb-role-switch;
715*0e8011faSEmmanuel Vadot	status = "okay";
716*0e8011faSEmmanuel Vadot
717*0e8011faSEmmanuel Vadot	port {
718*0e8011faSEmmanuel Vadot		dwc3_0_role_switch: endpoint {
719*0e8011faSEmmanuel Vadot			remote-endpoint = <&usbc0_role_sw>;
720*0e8011faSEmmanuel Vadot		};
721*0e8011faSEmmanuel Vadot	};
722*0e8011faSEmmanuel Vadot};
723*0e8011faSEmmanuel Vadot
724*0e8011faSEmmanuel Vadot/* Lower USB 3.0 Type-A (port 2) */
725*0e8011faSEmmanuel Vadot/* PHY: <&u2phy3_host> */
726*0e8011faSEmmanuel Vadot&usb_host1_ehci {
727*0e8011faSEmmanuel Vadot	status = "okay";
728*0e8011faSEmmanuel Vadot};
729*0e8011faSEmmanuel Vadot
730*0e8011faSEmmanuel Vadot/* Lower USB 3.0 Type-A (port 2) */
731*0e8011faSEmmanuel Vadot/* PHY: <&u2phy3_host> */
732*0e8011faSEmmanuel Vadot&usb_host1_ohci {
733*0e8011faSEmmanuel Vadot	status = "okay";
734*0e8011faSEmmanuel Vadot};
735*0e8011faSEmmanuel Vadot
736*0e8011faSEmmanuel Vadot/* Upper USB 3.0 Type-A (port 1) */
737*0e8011faSEmmanuel Vadot/* PHYs: <&u2phy1_otg>, <&usbdp_phy1 PHY_TYPE_USB3> */
738*0e8011faSEmmanuel Vadot&usb_host1_xhci {
739*0e8011faSEmmanuel Vadot	dr_mode = "host";
740*0e8011faSEmmanuel Vadot	status = "okay";
741*0e8011faSEmmanuel Vadot};
742*0e8011faSEmmanuel Vadot
743*0e8011faSEmmanuel Vadot/* Lower USB 3.0 Type-A (port 2) */
744*0e8011faSEmmanuel Vadot/* PHYs: <&combphy2_psu PHY_TYPE_USB3> */
745*0e8011faSEmmanuel Vadot&usb_host2_xhci {
746*0e8011faSEmmanuel Vadot	status = "okay";
747*0e8011faSEmmanuel Vadot};
748*0e8011faSEmmanuel Vadot
749*0e8011faSEmmanuel Vadot/* USB3 PHY for USB Type-C port */
750*0e8011faSEmmanuel Vadot/* CM3588 USB Controller Config Table: USB30 OTG0 */
751*0e8011faSEmmanuel Vadot&usbdp_phy0 {
752*0e8011faSEmmanuel Vadot	mode-switch;
753*0e8011faSEmmanuel Vadot	orientation-switch;
754*0e8011faSEmmanuel Vadot	sbu1-dc-gpios = <&gpio4 RK_PA6 GPIO_ACTIVE_HIGH>;
755*0e8011faSEmmanuel Vadot	sbu2-dc-gpios = <&gpio4 RK_PA7 GPIO_ACTIVE_HIGH>;
756*0e8011faSEmmanuel Vadot	status = "okay";
757*0e8011faSEmmanuel Vadot
758*0e8011faSEmmanuel Vadot	port {
759*0e8011faSEmmanuel Vadot		#address-cells = <1>;
760*0e8011faSEmmanuel Vadot		#size-cells = <0>;
761*0e8011faSEmmanuel Vadot
762*0e8011faSEmmanuel Vadot		usbdp_phy0_orientation_switch: endpoint@0 {
763*0e8011faSEmmanuel Vadot			reg = <0>;
764*0e8011faSEmmanuel Vadot			remote-endpoint = <&usbc0_orien_sw>;
765*0e8011faSEmmanuel Vadot		};
766*0e8011faSEmmanuel Vadot
767*0e8011faSEmmanuel Vadot		usbdp_phy0_dp_altmode_mux: endpoint@1 {
768*0e8011faSEmmanuel Vadot			reg = <1>;
769*0e8011faSEmmanuel Vadot			remote-endpoint = <&dp_altmode_mux>;
770*0e8011faSEmmanuel Vadot		};
771*0e8011faSEmmanuel Vadot	};
772*0e8011faSEmmanuel Vadot};
773*0e8011faSEmmanuel Vadot
774*0e8011faSEmmanuel Vadot/* USB3 PHY for USB 3.0 Type-A port 1 */
775*0e8011faSEmmanuel Vadot/* CM3588 USB Controller Config Table: USB30 OTG1 */
776*0e8011faSEmmanuel Vadot&usbdp_phy1 {
777*0e8011faSEmmanuel Vadot	status = "okay";
778*0e8011faSEmmanuel Vadot};
779