xref: /freebsd/sys/contrib/device-tree/src/arm64/allwinner/sun55i-t527-orangepi-4a.dts (revision 833e5d42ab135b0238e61c5b3c19b8619677cbfa)
1*833e5d42SEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0-only OR MIT)
2*833e5d42SEmmanuel Vadot/*
3*833e5d42SEmmanuel Vadot * Copyright (C) 2025 Chen-Yu Tsai <wens@csie.org>
4*833e5d42SEmmanuel Vadot */
5*833e5d42SEmmanuel Vadot
6*833e5d42SEmmanuel Vadot/dts-v1/;
7*833e5d42SEmmanuel Vadot
8*833e5d42SEmmanuel Vadot#include "sun55i-a523.dtsi"
9*833e5d42SEmmanuel Vadot
10*833e5d42SEmmanuel Vadot#include <dt-bindings/gpio/gpio.h>
11*833e5d42SEmmanuel Vadot#include <dt-bindings/leds/common.h>
12*833e5d42SEmmanuel Vadot
13*833e5d42SEmmanuel Vadot/ {
14*833e5d42SEmmanuel Vadot	model = "OrangePi 4A";
15*833e5d42SEmmanuel Vadot	compatible = "xunlong,orangepi-4a", "allwinner,sun55i-t527";
16*833e5d42SEmmanuel Vadot
17*833e5d42SEmmanuel Vadot	aliases {
18*833e5d42SEmmanuel Vadot		serial0 = &uart0;
19*833e5d42SEmmanuel Vadot	};
20*833e5d42SEmmanuel Vadot
21*833e5d42SEmmanuel Vadot	chosen {
22*833e5d42SEmmanuel Vadot		stdout-path = "serial0:115200n8";
23*833e5d42SEmmanuel Vadot	};
24*833e5d42SEmmanuel Vadot
25*833e5d42SEmmanuel Vadot	ext_osc32k: ext-osc32k-clk {
26*833e5d42SEmmanuel Vadot		#clock-cells = <0>;
27*833e5d42SEmmanuel Vadot		compatible = "fixed-clock";
28*833e5d42SEmmanuel Vadot		clock-frequency = <32768>;
29*833e5d42SEmmanuel Vadot		clock-output-names = "ext_osc32k";
30*833e5d42SEmmanuel Vadot	};
31*833e5d42SEmmanuel Vadot
32*833e5d42SEmmanuel Vadot	leds {
33*833e5d42SEmmanuel Vadot		compatible = "gpio-leds";
34*833e5d42SEmmanuel Vadot
35*833e5d42SEmmanuel Vadot		/* PWM capable pin, but PWM isn't supported yet. */
36*833e5d42SEmmanuel Vadot		led {
37*833e5d42SEmmanuel Vadot			function = LED_FUNCTION_STATUS;
38*833e5d42SEmmanuel Vadot			color = <LED_COLOR_ID_GREEN>;
39*833e5d42SEmmanuel Vadot			gpios = <&pio 3 20 GPIO_ACTIVE_HIGH>; /* PD20 */
40*833e5d42SEmmanuel Vadot		};
41*833e5d42SEmmanuel Vadot	};
42*833e5d42SEmmanuel Vadot
43*833e5d42SEmmanuel Vadot	wifi_pwrseq: pwrseq {
44*833e5d42SEmmanuel Vadot		compatible = "mmc-pwrseq-simple";
45*833e5d42SEmmanuel Vadot		reset-gpios = <&r_pio 1 1 GPIO_ACTIVE_LOW>; /* PM1 */
46*833e5d42SEmmanuel Vadot		clocks = <&rtc CLK_OSC32K_FANOUT>;
47*833e5d42SEmmanuel Vadot		clock-names = "ext_clock";
48*833e5d42SEmmanuel Vadot	};
49*833e5d42SEmmanuel Vadot
50*833e5d42SEmmanuel Vadot	reg_otg_vbus: regulator-otg-vbus {
51*833e5d42SEmmanuel Vadot		compatible = "regulator-fixed";
52*833e5d42SEmmanuel Vadot		regulator-name = "otg-vbus";
53*833e5d42SEmmanuel Vadot		regulator-min-microvolt = <5000000>;
54*833e5d42SEmmanuel Vadot		regulator-max-microvolt = <5000000>;
55*833e5d42SEmmanuel Vadot		vin-supply = <&reg_vcc5v>;
56*833e5d42SEmmanuel Vadot		gpio = <&r_pio 0 4 GPIO_ACTIVE_HIGH>;	/* PL4 */
57*833e5d42SEmmanuel Vadot		enable-active-high;
58*833e5d42SEmmanuel Vadot	};
59*833e5d42SEmmanuel Vadot
60*833e5d42SEmmanuel Vadot	reg_pcie_vcc3v3: regulator-pcie-vcc3v3 {
61*833e5d42SEmmanuel Vadot		compatible = "regulator-fixed";
62*833e5d42SEmmanuel Vadot		regulator-name = "vcc-pcie-3v3";
63*833e5d42SEmmanuel Vadot		regulator-min-microvolt = <3300000>;
64*833e5d42SEmmanuel Vadot		regulator-max-microvolt = <3300000>;
65*833e5d42SEmmanuel Vadot		vin-supply = <&reg_vcc5v>;
66*833e5d42SEmmanuel Vadot		gpio = <&r_pio 0 8 GPIO_ACTIVE_HIGH>;	/* PL8 */
67*833e5d42SEmmanuel Vadot		enable-active-high;
68*833e5d42SEmmanuel Vadot	};
69*833e5d42SEmmanuel Vadot
70*833e5d42SEmmanuel Vadot	reg_usb_vbus: regulator-usb-vbus {
71*833e5d42SEmmanuel Vadot		compatible = "regulator-fixed";
72*833e5d42SEmmanuel Vadot		regulator-name = "usb-vbus";
73*833e5d42SEmmanuel Vadot		regulator-min-microvolt = <5000000>;
74*833e5d42SEmmanuel Vadot		regulator-max-microvolt = <5000000>;
75*833e5d42SEmmanuel Vadot		vin-supply = <&reg_vcc5v>;
76*833e5d42SEmmanuel Vadot		gpio = <&r_pio 0 12 GPIO_ACTIVE_HIGH>;	/* PL12 */
77*833e5d42SEmmanuel Vadot		enable-active-high;
78*833e5d42SEmmanuel Vadot	};
79*833e5d42SEmmanuel Vadot
80*833e5d42SEmmanuel Vadot	reg_vcc5v: regulator-vcc5v {
81*833e5d42SEmmanuel Vadot		/* board wide 5V supply from USB type-C port */
82*833e5d42SEmmanuel Vadot		compatible = "regulator-fixed";
83*833e5d42SEmmanuel Vadot		regulator-name = "vcc-5v";
84*833e5d42SEmmanuel Vadot		regulator-min-microvolt = <5000000>;
85*833e5d42SEmmanuel Vadot		regulator-max-microvolt = <5000000>;
86*833e5d42SEmmanuel Vadot		regulator-always-on;
87*833e5d42SEmmanuel Vadot	};
88*833e5d42SEmmanuel Vadot};
89*833e5d42SEmmanuel Vadot
90*833e5d42SEmmanuel Vadot&ehci0 {
91*833e5d42SEmmanuel Vadot	status = "okay";
92*833e5d42SEmmanuel Vadot};
93*833e5d42SEmmanuel Vadot
94*833e5d42SEmmanuel Vadot&ehci1 {
95*833e5d42SEmmanuel Vadot	status = "okay";
96*833e5d42SEmmanuel Vadot};
97*833e5d42SEmmanuel Vadot
98*833e5d42SEmmanuel Vadot&gpu {
99*833e5d42SEmmanuel Vadot	mali-supply = <&reg_dcdc2>;
100*833e5d42SEmmanuel Vadot	status = "okay";
101*833e5d42SEmmanuel Vadot};
102*833e5d42SEmmanuel Vadot
103*833e5d42SEmmanuel Vadot&mmc0 {
104*833e5d42SEmmanuel Vadot	vmmc-supply = <&reg_cldo3>;
105*833e5d42SEmmanuel Vadot	cd-gpios = <&pio 5 6 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; /* PF6 */
106*833e5d42SEmmanuel Vadot	bus-width = <4>;
107*833e5d42SEmmanuel Vadot	status = "okay";
108*833e5d42SEmmanuel Vadot};
109*833e5d42SEmmanuel Vadot
110*833e5d42SEmmanuel Vadot&mmc1 {
111*833e5d42SEmmanuel Vadot	bus-width = <4>;
112*833e5d42SEmmanuel Vadot	mmc-pwrseq = <&wifi_pwrseq>;
113*833e5d42SEmmanuel Vadot	non-removable;
114*833e5d42SEmmanuel Vadot	vmmc-supply = <&reg_dldo1_323>;
115*833e5d42SEmmanuel Vadot	vqmmc-supply = <&reg_bldo1>;
116*833e5d42SEmmanuel Vadot	status = "okay";
117*833e5d42SEmmanuel Vadot
118*833e5d42SEmmanuel Vadot	brcmf: wifi@1 {
119*833e5d42SEmmanuel Vadot		compatible = "brcm,bcm4329-fmac";
120*833e5d42SEmmanuel Vadot		reg = <1>;
121*833e5d42SEmmanuel Vadot		interrupt-parent = <&r_pio>;
122*833e5d42SEmmanuel Vadot		interrupts = <1 0 IRQ_TYPE_LEVEL_LOW>; /* PM0 */
123*833e5d42SEmmanuel Vadot		interrupt-names = "host-wake";
124*833e5d42SEmmanuel Vadot	};
125*833e5d42SEmmanuel Vadot};
126*833e5d42SEmmanuel Vadot
127*833e5d42SEmmanuel Vadot&mmc2 {
128*833e5d42SEmmanuel Vadot	bus-width = <8>;
129*833e5d42SEmmanuel Vadot	cap-mmc-hw-reset;
130*833e5d42SEmmanuel Vadot	mmc-ddr-1_8v;
131*833e5d42SEmmanuel Vadot	mmc-hs200-1_8v;
132*833e5d42SEmmanuel Vadot	non-removable;
133*833e5d42SEmmanuel Vadot	vmmc-supply = <&reg_cldo3>;
134*833e5d42SEmmanuel Vadot	vqmmc-supply = <&reg_cldo1>;
135*833e5d42SEmmanuel Vadot	status = "okay";
136*833e5d42SEmmanuel Vadot};
137*833e5d42SEmmanuel Vadot
138*833e5d42SEmmanuel Vadot&ohci0 {
139*833e5d42SEmmanuel Vadot	status = "okay";
140*833e5d42SEmmanuel Vadot};
141*833e5d42SEmmanuel Vadot
142*833e5d42SEmmanuel Vadot&ohci1 {
143*833e5d42SEmmanuel Vadot	status = "okay";
144*833e5d42SEmmanuel Vadot};
145*833e5d42SEmmanuel Vadot
146*833e5d42SEmmanuel Vadot&pio {
147*833e5d42SEmmanuel Vadot	vcc-pb-supply = <&reg_cldo3>;	/* via VCC-IO */
148*833e5d42SEmmanuel Vadot	vcc-pc-supply = <&reg_cldo1>;
149*833e5d42SEmmanuel Vadot	vcc-pd-supply = <&reg_cldo3>;
150*833e5d42SEmmanuel Vadot	vcc-pe-supply = <&reg_aldo2>;
151*833e5d42SEmmanuel Vadot	vcc-pf-supply = <&reg_cldo3>;	/* VCC-IO for 3.3v; VCC-MCSI for 1.8v */
152*833e5d42SEmmanuel Vadot	vcc-pg-supply = <&reg_bldo1>;
153*833e5d42SEmmanuel Vadot	vcc-ph-supply = <&reg_cldo3>;	/* via VCC-IO */
154*833e5d42SEmmanuel Vadot	vcc-pi-supply = <&reg_cldo3>;
155*833e5d42SEmmanuel Vadot	vcc-pj-supply = <&reg_cldo1>;
156*833e5d42SEmmanuel Vadot	vcc-pk-supply = <&reg_cldo1>;
157*833e5d42SEmmanuel Vadot};
158*833e5d42SEmmanuel Vadot
159*833e5d42SEmmanuel Vadot&r_i2c0 {
160*833e5d42SEmmanuel Vadot	status = "okay";
161*833e5d42SEmmanuel Vadot
162*833e5d42SEmmanuel Vadot	axp717: pmic@35 {
163*833e5d42SEmmanuel Vadot		compatible = "x-powers,axp717";
164*833e5d42SEmmanuel Vadot		reg = <0x35>;
165*833e5d42SEmmanuel Vadot		interrupt-controller;
166*833e5d42SEmmanuel Vadot		#interrupt-cells = <1>;
167*833e5d42SEmmanuel Vadot		interrupts-extended = <&nmi_intc 0 IRQ_TYPE_LEVEL_LOW>;
168*833e5d42SEmmanuel Vadot
169*833e5d42SEmmanuel Vadot		vin1-supply = <&reg_vcc5v>;
170*833e5d42SEmmanuel Vadot		vin2-supply = <&reg_vcc5v>;
171*833e5d42SEmmanuel Vadot		vin3-supply = <&reg_vcc5v>;
172*833e5d42SEmmanuel Vadot		vin4-supply = <&reg_vcc5v>;
173*833e5d42SEmmanuel Vadot		aldoin-supply = <&reg_vcc5v>;
174*833e5d42SEmmanuel Vadot		bldoin-supply = <&reg_vcc5v>;
175*833e5d42SEmmanuel Vadot		cldoin-supply = <&reg_vcc5v>;
176*833e5d42SEmmanuel Vadot
177*833e5d42SEmmanuel Vadot		regulators {
178*833e5d42SEmmanuel Vadot			/* Supplies the "little" cluster (1.4 GHz cores) */
179*833e5d42SEmmanuel Vadot			reg_dcdc1: dcdc1 {
180*833e5d42SEmmanuel Vadot				regulator-always-on;
181*833e5d42SEmmanuel Vadot				regulator-min-microvolt = <900000>;
182*833e5d42SEmmanuel Vadot				regulator-max-microvolt = <1160000>;
183*833e5d42SEmmanuel Vadot				regulator-name = "vdd-cpul";
184*833e5d42SEmmanuel Vadot			};
185*833e5d42SEmmanuel Vadot
186*833e5d42SEmmanuel Vadot			reg_dcdc2: dcdc2 {
187*833e5d42SEmmanuel Vadot				regulator-always-on;
188*833e5d42SEmmanuel Vadot				regulator-min-microvolt = <920000>;
189*833e5d42SEmmanuel Vadot				regulator-max-microvolt = <920000>;
190*833e5d42SEmmanuel Vadot				regulator-name = "vdd-gpu-sys";
191*833e5d42SEmmanuel Vadot			};
192*833e5d42SEmmanuel Vadot
193*833e5d42SEmmanuel Vadot			reg_dcdc3: dcdc3 {
194*833e5d42SEmmanuel Vadot				regulator-always-on;
195*833e5d42SEmmanuel Vadot				regulator-min-microvolt = <1160000>;
196*833e5d42SEmmanuel Vadot				regulator-max-microvolt = <1160000>;
197*833e5d42SEmmanuel Vadot				regulator-name = "vcc-dram";
198*833e5d42SEmmanuel Vadot			};
199*833e5d42SEmmanuel Vadot
200*833e5d42SEmmanuel Vadot			reg_dcdc4: dcdc4 {
201*833e5d42SEmmanuel Vadot				/* feeds 3.3V pin on GPIO header */
202*833e5d42SEmmanuel Vadot				regulator-always-on;
203*833e5d42SEmmanuel Vadot				regulator-min-microvolt = <3300000>;
204*833e5d42SEmmanuel Vadot				regulator-max-microvolt = <3300000>;
205*833e5d42SEmmanuel Vadot				regulator-name = "vdd-io";
206*833e5d42SEmmanuel Vadot			};
207*833e5d42SEmmanuel Vadot
208*833e5d42SEmmanuel Vadot			aldo1 {
209*833e5d42SEmmanuel Vadot				/* not actually connected */
210*833e5d42SEmmanuel Vadot				regulator-name = "avdd-csi";
211*833e5d42SEmmanuel Vadot			};
212*833e5d42SEmmanuel Vadot
213*833e5d42SEmmanuel Vadot			reg_aldo2: aldo2 {
214*833e5d42SEmmanuel Vadot				regulator-min-microvolt = <1800000>;
215*833e5d42SEmmanuel Vadot				regulator-max-microvolt = <1800000>;
216*833e5d42SEmmanuel Vadot				regulator-name = "vcc-pe";
217*833e5d42SEmmanuel Vadot			};
218*833e5d42SEmmanuel Vadot
219*833e5d42SEmmanuel Vadot			reg_aldo3: aldo3 {
220*833e5d42SEmmanuel Vadot				/* supplies the I2C pins for this PMIC */
221*833e5d42SEmmanuel Vadot				regulator-always-on;
222*833e5d42SEmmanuel Vadot				regulator-min-microvolt = <3300000>;
223*833e5d42SEmmanuel Vadot				regulator-max-microvolt = <3300000>;
224*833e5d42SEmmanuel Vadot				regulator-name = "vcc-pl-usb";
225*833e5d42SEmmanuel Vadot			};
226*833e5d42SEmmanuel Vadot
227*833e5d42SEmmanuel Vadot			reg_aldo4: aldo4 {
228*833e5d42SEmmanuel Vadot				regulator-always-on;
229*833e5d42SEmmanuel Vadot				regulator-min-microvolt = <1800000>;
230*833e5d42SEmmanuel Vadot				regulator-max-microvolt = <1800000>;
231*833e5d42SEmmanuel Vadot				regulator-name = "vcc-pll-dxco-avcc";
232*833e5d42SEmmanuel Vadot			};
233*833e5d42SEmmanuel Vadot
234*833e5d42SEmmanuel Vadot			reg_bldo1: bldo1 {
235*833e5d42SEmmanuel Vadot				regulator-min-microvolt = <1800000>;
236*833e5d42SEmmanuel Vadot				regulator-max-microvolt = <1800000>;
237*833e5d42SEmmanuel Vadot				regulator-name = "vcc-pg-wifi";
238*833e5d42SEmmanuel Vadot			};
239*833e5d42SEmmanuel Vadot
240*833e5d42SEmmanuel Vadot			reg_bldo2: bldo2 {
241*833e5d42SEmmanuel Vadot				regulator-always-on;
242*833e5d42SEmmanuel Vadot				regulator-min-microvolt = <1800000>;
243*833e5d42SEmmanuel Vadot				regulator-max-microvolt = <1800000>;
244*833e5d42SEmmanuel Vadot				regulator-name = "vcc-pm-lpddr";
245*833e5d42SEmmanuel Vadot			};
246*833e5d42SEmmanuel Vadot
247*833e5d42SEmmanuel Vadot			bldo3 {
248*833e5d42SEmmanuel Vadot				/* not actually connected */
249*833e5d42SEmmanuel Vadot				regulator-name = "afvcc-csi";
250*833e5d42SEmmanuel Vadot			};
251*833e5d42SEmmanuel Vadot
252*833e5d42SEmmanuel Vadot			bldo4 {
253*833e5d42SEmmanuel Vadot				/* not actually connected */
254*833e5d42SEmmanuel Vadot				regulator-name = "dvdd-csi";
255*833e5d42SEmmanuel Vadot			};
256*833e5d42SEmmanuel Vadot
257*833e5d42SEmmanuel Vadot			reg_cldo1: cldo1 {
258*833e5d42SEmmanuel Vadot				regulator-always-on;
259*833e5d42SEmmanuel Vadot				regulator-min-microvolt = <1800000>;
260*833e5d42SEmmanuel Vadot				regulator-max-microvolt = <1800000>;
261*833e5d42SEmmanuel Vadot				regulator-name = "vcc-cvp-pc-lvds-mcsi-pk-efuse-pcie-edp-1v8";
262*833e5d42SEmmanuel Vadot			};
263*833e5d42SEmmanuel Vadot
264*833e5d42SEmmanuel Vadot			reg_cldo2: cldo2 {
265*833e5d42SEmmanuel Vadot				regulator-min-microvolt = <3300000>;
266*833e5d42SEmmanuel Vadot				regulator-max-microvolt = <3300000>;
267*833e5d42SEmmanuel Vadot				regulator-name = "vcc3v3-csi";
268*833e5d42SEmmanuel Vadot			};
269*833e5d42SEmmanuel Vadot
270*833e5d42SEmmanuel Vadot			reg_cldo3: cldo3 {
271*833e5d42SEmmanuel Vadot				regulator-always-on;
272*833e5d42SEmmanuel Vadot				regulator-min-microvolt = <3300000>;
273*833e5d42SEmmanuel Vadot				regulator-max-microvolt = <3300000>;
274*833e5d42SEmmanuel Vadot				regulator-name = "vcc-io-mmc-nand-pd-pi-usb";
275*833e5d42SEmmanuel Vadot			};
276*833e5d42SEmmanuel Vadot
277*833e5d42SEmmanuel Vadot			reg_cldo4: cldo4 {
278*833e5d42SEmmanuel Vadot				regulator-min-microvolt = <3300000>;
279*833e5d42SEmmanuel Vadot				regulator-max-microvolt = <3300000>;
280*833e5d42SEmmanuel Vadot				regulator-name = "vcc-3v3-phy1-lcd";
281*833e5d42SEmmanuel Vadot			};
282*833e5d42SEmmanuel Vadot
283*833e5d42SEmmanuel Vadot			reg_cpusldo: cpusldo {
284*833e5d42SEmmanuel Vadot				/* supplies the management core */
285*833e5d42SEmmanuel Vadot				regulator-always-on;
286*833e5d42SEmmanuel Vadot				regulator-min-microvolt = <900000>;
287*833e5d42SEmmanuel Vadot				regulator-max-microvolt = <900000>;
288*833e5d42SEmmanuel Vadot				regulator-name = "vdd-cpus-usb-0v9";
289*833e5d42SEmmanuel Vadot			};
290*833e5d42SEmmanuel Vadot		};
291*833e5d42SEmmanuel Vadot	};
292*833e5d42SEmmanuel Vadot
293*833e5d42SEmmanuel Vadot	axp323: pmic@36 {
294*833e5d42SEmmanuel Vadot		compatible = "x-powers,axp323";
295*833e5d42SEmmanuel Vadot		reg = <0x36>;
296*833e5d42SEmmanuel Vadot		#interrupt-cells = <1>;
297*833e5d42SEmmanuel Vadot		interrupt-controller;
298*833e5d42SEmmanuel Vadot		status = "okay";
299*833e5d42SEmmanuel Vadot
300*833e5d42SEmmanuel Vadot		vin1-supply = <&reg_vcc5v>;
301*833e5d42SEmmanuel Vadot		vin2-supply = <&reg_vcc5v>;
302*833e5d42SEmmanuel Vadot		vin3-supply = <&reg_vcc5v>;
303*833e5d42SEmmanuel Vadot
304*833e5d42SEmmanuel Vadot		regulators {
305*833e5d42SEmmanuel Vadot			reg_aldo1_323: aldo1 {
306*833e5d42SEmmanuel Vadot				/* less capable and shares load with dldo1 */
307*833e5d42SEmmanuel Vadot				regulator-min-microvolt = <3300000>;
308*833e5d42SEmmanuel Vadot				regulator-max-microvolt = <3300000>;
309*833e5d42SEmmanuel Vadot				regulator-name = "vcc-wifi";
310*833e5d42SEmmanuel Vadot			};
311*833e5d42SEmmanuel Vadot
312*833e5d42SEmmanuel Vadot			reg_dldo1_323: dldo1 {
313*833e5d42SEmmanuel Vadot				/* more capable and shares load with aldo1 */
314*833e5d42SEmmanuel Vadot				regulator-min-microvolt = <3300000>;
315*833e5d42SEmmanuel Vadot				regulator-max-microvolt = <3300000>;
316*833e5d42SEmmanuel Vadot				regulator-name = "vcc-wifi2";
317*833e5d42SEmmanuel Vadot			};
318*833e5d42SEmmanuel Vadot
319*833e5d42SEmmanuel Vadot			/* Supplies the "big" cluster (1.8 GHz cores) */
320*833e5d42SEmmanuel Vadot			reg_dcdc1_323: dcdc1 {
321*833e5d42SEmmanuel Vadot				regulator-always-on;
322*833e5d42SEmmanuel Vadot				regulator-min-microvolt = <900000>;
323*833e5d42SEmmanuel Vadot				regulator-max-microvolt = <1150000>;
324*833e5d42SEmmanuel Vadot				regulator-name = "vdd-cpub";
325*833e5d42SEmmanuel Vadot			};
326*833e5d42SEmmanuel Vadot
327*833e5d42SEmmanuel Vadot			/* DCDC2 is polyphased with DCDC1 */
328*833e5d42SEmmanuel Vadot
329*833e5d42SEmmanuel Vadot			/* Some RISC-V management core related voltage */
330*833e5d42SEmmanuel Vadot			reg_dcdc3_323: dcdc3 {
331*833e5d42SEmmanuel Vadot				regulator-always-on;
332*833e5d42SEmmanuel Vadot				regulator-min-microvolt = <900000>;
333*833e5d42SEmmanuel Vadot				regulator-max-microvolt = <900000>;
334*833e5d42SEmmanuel Vadot				regulator-name = "vdd-dnr";
335*833e5d42SEmmanuel Vadot			};
336*833e5d42SEmmanuel Vadot		};
337*833e5d42SEmmanuel Vadot	};
338*833e5d42SEmmanuel Vadot};
339*833e5d42SEmmanuel Vadot
340*833e5d42SEmmanuel Vadot&r_pio {
341*833e5d42SEmmanuel Vadot/*
342*833e5d42SEmmanuel Vadot * Specifying the supply would create a circular dependency.
343*833e5d42SEmmanuel Vadot *
344*833e5d42SEmmanuel Vadot *	vcc-pl-supply = <&reg_aldo3>;
345*833e5d42SEmmanuel Vadot */
346*833e5d42SEmmanuel Vadot	vcc-pm-supply = <&reg_bldo2>;
347*833e5d42SEmmanuel Vadot};
348*833e5d42SEmmanuel Vadot
349*833e5d42SEmmanuel Vadot&uart0 {
350*833e5d42SEmmanuel Vadot	pinctrl-names = "default";
351*833e5d42SEmmanuel Vadot	pinctrl-0 = <&uart0_pb_pins>;
352*833e5d42SEmmanuel Vadot	status = "okay";
353*833e5d42SEmmanuel Vadot};
354*833e5d42SEmmanuel Vadot
355*833e5d42SEmmanuel Vadot&uart1 {
356*833e5d42SEmmanuel Vadot	pinctrl-names = "default";
357*833e5d42SEmmanuel Vadot	pinctrl-0 = <&uart1_pins>, <&uart1_rts_cts_pins>;
358*833e5d42SEmmanuel Vadot	uart-has-rtscts;
359*833e5d42SEmmanuel Vadot	status = "okay";
360*833e5d42SEmmanuel Vadot
361*833e5d42SEmmanuel Vadot	bluetooth {
362*833e5d42SEmmanuel Vadot		compatible = "brcm,bcm4345c5";
363*833e5d42SEmmanuel Vadot		clocks = <&rtc CLK_OSC32K_FANOUT>;
364*833e5d42SEmmanuel Vadot		clock-names = "lpo";
365*833e5d42SEmmanuel Vadot		vbat-supply = <&reg_aldo1_323>;
366*833e5d42SEmmanuel Vadot		vddio-supply = <&reg_bldo1>;
367*833e5d42SEmmanuel Vadot		device-wakeup-gpios = <&r_pio 1 3 GPIO_ACTIVE_HIGH>; /* PM3 */
368*833e5d42SEmmanuel Vadot		host-wakeup-gpios = <&r_pio 1 4 GPIO_ACTIVE_HIGH>; /* PM4 */
369*833e5d42SEmmanuel Vadot		shutdown-gpios = <&r_pio 1 2 GPIO_ACTIVE_HIGH>; /* PM2 */
370*833e5d42SEmmanuel Vadot	};
371*833e5d42SEmmanuel Vadot};
372*833e5d42SEmmanuel Vadot
373*833e5d42SEmmanuel Vadot&usb_otg {
374*833e5d42SEmmanuel Vadot	/*
375*833e5d42SEmmanuel Vadot	 * The OTG controller is connected to one of the type-A ports.
376*833e5d42SEmmanuel Vadot	 * There is a regulator, controlled by a GPIO, to provide VBUS power
377*833e5d42SEmmanuel Vadot	 * to the port, and a VBUSDET GPIO, to detect externally provided
378*833e5d42SEmmanuel Vadot	 * power. But without ID or CC pins there is no real way to do a
379*833e5d42SEmmanuel Vadot	 * runtime role detection.
380*833e5d42SEmmanuel Vadot	 */
381*833e5d42SEmmanuel Vadot	dr_mode = "host";
382*833e5d42SEmmanuel Vadot	status = "okay";
383*833e5d42SEmmanuel Vadot};
384*833e5d42SEmmanuel Vadot
385*833e5d42SEmmanuel Vadot&usbphy {
386*833e5d42SEmmanuel Vadot	usb0_vbus-supply = <&reg_otg_vbus>;
387*833e5d42SEmmanuel Vadot	usb0_vbus_det-gpios = <&r_pio 0 7 GPIO_ACTIVE_HIGH>; /* PL7 */
388*833e5d42SEmmanuel Vadot	usb1_vbus-supply = <&reg_usb_vbus>;
389*833e5d42SEmmanuel Vadot	status = "okay";
390*833e5d42SEmmanuel Vadot};
391