xref: /freebsd/sys/contrib/device-tree/src/arm64/rockchip/rk3368-lba3368.dts (revision 0e8011faf58b743cc652e3b2ad0f7671227610df)
1*0e8011faSEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2*0e8011faSEmmanuel Vadot
3*0e8011faSEmmanuel Vadot/dts-v1/;
4*0e8011faSEmmanuel Vadot
5*0e8011faSEmmanuel Vadot#include <dt-bindings/clock/rockchip,rk808.h>
6*0e8011faSEmmanuel Vadot#include <dt-bindings/input/input.h>
7*0e8011faSEmmanuel Vadot#include <dt-bindings/leds/common.h>
8*0e8011faSEmmanuel Vadot#include <dt-bindings/sound/rt5640.h>
9*0e8011faSEmmanuel Vadot#include "rk3368.dtsi"
10*0e8011faSEmmanuel Vadot
11*0e8011faSEmmanuel Vadot/ {
12*0e8011faSEmmanuel Vadot	model = "Neardi LBA3368";
13*0e8011faSEmmanuel Vadot	compatible = "neardi,lba3368", "rockchip,rk3368";
14*0e8011faSEmmanuel Vadot
15*0e8011faSEmmanuel Vadot	aliases {
16*0e8011faSEmmanuel Vadot		ethernet0 = &gmac;
17*0e8011faSEmmanuel Vadot		mmc0 = &emmc;
18*0e8011faSEmmanuel Vadot		mmc1 = &sdmmc;
19*0e8011faSEmmanuel Vadot		mmc2 = &sdio0;
20*0e8011faSEmmanuel Vadot		rtc0 = &hym8563;
21*0e8011faSEmmanuel Vadot		rtc1 = &rk808;
22*0e8011faSEmmanuel Vadot	};
23*0e8011faSEmmanuel Vadot
24*0e8011faSEmmanuel Vadot	chosen {
25*0e8011faSEmmanuel Vadot		stdout-path = "serial1:115200n8";
26*0e8011faSEmmanuel Vadot	};
27*0e8011faSEmmanuel Vadot
28*0e8011faSEmmanuel Vadot	memory@0 {
29*0e8011faSEmmanuel Vadot		device_type = "memory";
30*0e8011faSEmmanuel Vadot		reg = <0x0 0x0 0x0 0x40000000>;
31*0e8011faSEmmanuel Vadot	};
32*0e8011faSEmmanuel Vadot
33*0e8011faSEmmanuel Vadot	adc-key {
34*0e8011faSEmmanuel Vadot		compatible = "adc-keys";
35*0e8011faSEmmanuel Vadot		io-channels = <&saradc 1>;
36*0e8011faSEmmanuel Vadot		io-channel-names = "buttons";
37*0e8011faSEmmanuel Vadot		poll-interval = <100>;
38*0e8011faSEmmanuel Vadot		keyup-threshold-microvolt = <1800000>;
39*0e8011faSEmmanuel Vadot
40*0e8011faSEmmanuel Vadot		button-recovery {
41*0e8011faSEmmanuel Vadot			label = "Recovery";
42*0e8011faSEmmanuel Vadot			linux,code = <KEY_VENDOR>;
43*0e8011faSEmmanuel Vadot			press-threshold-microvolt = <0>;
44*0e8011faSEmmanuel Vadot		};
45*0e8011faSEmmanuel Vadot	};
46*0e8011faSEmmanuel Vadot
47*0e8011faSEmmanuel Vadot	analog-sound {
48*0e8011faSEmmanuel Vadot		compatible = "audio-graph-card";
49*0e8011faSEmmanuel Vadot		dais = <&i2s_8ch_p0>;
50*0e8011faSEmmanuel Vadot		hp-det-gpio = <&gpio0 RK_PC7 GPIO_ACTIVE_HIGH>;
51*0e8011faSEmmanuel Vadot		label = "alc5640";
52*0e8011faSEmmanuel Vadot		routing = "Mic Jack", "MICBIAS1",
53*0e8011faSEmmanuel Vadot			  "IN1P", "Mic Jack",
54*0e8011faSEmmanuel Vadot			  "Headphone Jack", "HPOL",
55*0e8011faSEmmanuel Vadot			  "Headphone Jack", "HPOR",
56*0e8011faSEmmanuel Vadot			  "Speakers", "SPORP",
57*0e8011faSEmmanuel Vadot			  "Speakers", "SPORN",
58*0e8011faSEmmanuel Vadot			  "Speakers", "SPOLP",
59*0e8011faSEmmanuel Vadot			  "Speakers", "SPOLN";
60*0e8011faSEmmanuel Vadot		widgets = "Microphone", "Mic Jack",
61*0e8011faSEmmanuel Vadot			  "Headphone", "Headphone Jack",
62*0e8011faSEmmanuel Vadot			  "Speaker", "Speakers";
63*0e8011faSEmmanuel Vadot		pinctrl-names = "default";
64*0e8011faSEmmanuel Vadot		pinctrl-0 = <&hp_det>;
65*0e8011faSEmmanuel Vadot	};
66*0e8011faSEmmanuel Vadot
67*0e8011faSEmmanuel Vadot	dc_12v: dc-12v-regulator {
68*0e8011faSEmmanuel Vadot		compatible = "regulator-fixed";
69*0e8011faSEmmanuel Vadot		regulator-name = "dc_12v";
70*0e8011faSEmmanuel Vadot		regulator-min-microvolt = <12000000>;
71*0e8011faSEmmanuel Vadot		regulator-max-microvolt = <12000000>;
72*0e8011faSEmmanuel Vadot		regulator-always-on;
73*0e8011faSEmmanuel Vadot		regulator-boot-on;
74*0e8011faSEmmanuel Vadot	};
75*0e8011faSEmmanuel Vadot
76*0e8011faSEmmanuel Vadot	ext_gmac: gmac-clk {
77*0e8011faSEmmanuel Vadot		compatible = "fixed-clock";
78*0e8011faSEmmanuel Vadot		clock-frequency = <50000000>;
79*0e8011faSEmmanuel Vadot		clock-output-names = "ext_gmac";
80*0e8011faSEmmanuel Vadot		#clock-cells = <0>;
81*0e8011faSEmmanuel Vadot	};
82*0e8011faSEmmanuel Vadot
83*0e8011faSEmmanuel Vadot	hub_avdd: hub-avdd-regulator {
84*0e8011faSEmmanuel Vadot		compatible = "regulator-fixed";
85*0e8011faSEmmanuel Vadot		regulator-name = "hub_avdd";
86*0e8011faSEmmanuel Vadot		regulator-min-microvolt = <3300000>;
87*0e8011faSEmmanuel Vadot		regulator-max-microvolt = <3300000>;
88*0e8011faSEmmanuel Vadot		vin-supply = <&vcc_io>;
89*0e8011faSEmmanuel Vadot		regulator-always-on;
90*0e8011faSEmmanuel Vadot	};
91*0e8011faSEmmanuel Vadot
92*0e8011faSEmmanuel Vadot	leds {
93*0e8011faSEmmanuel Vadot		compatible = "gpio-leds";
94*0e8011faSEmmanuel Vadot
95*0e8011faSEmmanuel Vadot		power-led {
96*0e8011faSEmmanuel Vadot			gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_HIGH>;
97*0e8011faSEmmanuel Vadot			function = LED_FUNCTION_POWER;
98*0e8011faSEmmanuel Vadot			color = <LED_COLOR_ID_GREEN>;
99*0e8011faSEmmanuel Vadot			default-state = "on";
100*0e8011faSEmmanuel Vadot			pinctrl-names = "default";
101*0e8011faSEmmanuel Vadot			pinctrl-0 = <&power_led>;
102*0e8011faSEmmanuel Vadot		};
103*0e8011faSEmmanuel Vadot	};
104*0e8011faSEmmanuel Vadot
105*0e8011faSEmmanuel Vadot	sdio_pwrseq: sdio-pwrseq {
106*0e8011faSEmmanuel Vadot		compatible = "mmc-pwrseq-simple";
107*0e8011faSEmmanuel Vadot		clocks = <&rk808 RK808_CLKOUT1>;
108*0e8011faSEmmanuel Vadot		clock-names = "ext_clock";
109*0e8011faSEmmanuel Vadot		reset-gpios = <&gpio3 RK_PA5 GPIO_ACTIVE_LOW>;
110*0e8011faSEmmanuel Vadot		pinctrl-names = "default";
111*0e8011faSEmmanuel Vadot		pinctrl-0 = <&wifi_reg_on>;
112*0e8011faSEmmanuel Vadot	};
113*0e8011faSEmmanuel Vadot
114*0e8011faSEmmanuel Vadot	vcc_host: vcc-host-regulator {
115*0e8011faSEmmanuel Vadot		compatible = "regulator-fixed";
116*0e8011faSEmmanuel Vadot		gpio = <&gpio3 RK_PC1 GPIO_ACTIVE_HIGH>;
117*0e8011faSEmmanuel Vadot		regulator-name = "vcc_host";
118*0e8011faSEmmanuel Vadot		regulator-min-microvolt = <5000000>;
119*0e8011faSEmmanuel Vadot		regulator-max-microvolt = <5000000>;
120*0e8011faSEmmanuel Vadot		vin-supply = <&vcc_sys>;
121*0e8011faSEmmanuel Vadot		pinctrl-names = "default";
122*0e8011faSEmmanuel Vadot		pinctrl-0 = <&host_vbus_drv>;
123*0e8011faSEmmanuel Vadot		enable-active-high;
124*0e8011faSEmmanuel Vadot		regulator-always-on;
125*0e8011faSEmmanuel Vadot	};
126*0e8011faSEmmanuel Vadot
127*0e8011faSEmmanuel Vadot	vcc_lan: vcc-lan-regulator {
128*0e8011faSEmmanuel Vadot		compatible = "regulator-fixed";
129*0e8011faSEmmanuel Vadot		regulator-name = "vcc_lan";
130*0e8011faSEmmanuel Vadot		regulator-min-microvolt = <3300000>;
131*0e8011faSEmmanuel Vadot		regulator-max-microvolt = <3300000>;
132*0e8011faSEmmanuel Vadot		vin-supply = <&vcc_io>;
133*0e8011faSEmmanuel Vadot		regulator-always-on;
134*0e8011faSEmmanuel Vadot	};
135*0e8011faSEmmanuel Vadot
136*0e8011faSEmmanuel Vadot	vcc_otg: vcc-otg-regulator {
137*0e8011faSEmmanuel Vadot		compatible = "regulator-fixed";
138*0e8011faSEmmanuel Vadot		gpio = <&gpio0 RK_PC1 GPIO_ACTIVE_HIGH>;
139*0e8011faSEmmanuel Vadot		regulator-name = "vcc_otg";
140*0e8011faSEmmanuel Vadot		regulator-min-microvolt = <5000000>;
141*0e8011faSEmmanuel Vadot		regulator-max-microvolt = <5000000>;
142*0e8011faSEmmanuel Vadot		vin-supply = <&vcc_sys>;
143*0e8011faSEmmanuel Vadot		pinctrl-names = "default";
144*0e8011faSEmmanuel Vadot		pinctrl-0 = <&otg_vbus_drv>;
145*0e8011faSEmmanuel Vadot		enable-active-high;
146*0e8011faSEmmanuel Vadot		regulator-always-on;
147*0e8011faSEmmanuel Vadot	};
148*0e8011faSEmmanuel Vadot
149*0e8011faSEmmanuel Vadot	vcc_sys: vcc-sys-regulator {
150*0e8011faSEmmanuel Vadot		compatible = "regulator-fixed";
151*0e8011faSEmmanuel Vadot		regulator-name = "vcc_sys";
152*0e8011faSEmmanuel Vadot		regulator-min-microvolt = <5000000>;
153*0e8011faSEmmanuel Vadot		regulator-max-microvolt = <5000000>;
154*0e8011faSEmmanuel Vadot		vin-supply = <&dc_12v>;
155*0e8011faSEmmanuel Vadot		regulator-always-on;
156*0e8011faSEmmanuel Vadot		regulator-boot-on;
157*0e8011faSEmmanuel Vadot	};
158*0e8011faSEmmanuel Vadot
159*0e8011faSEmmanuel Vadot	vdd10_usb: vdd10-usb-regulator {
160*0e8011faSEmmanuel Vadot		compatible = "regulator-fixed";
161*0e8011faSEmmanuel Vadot		regulator-name = "vdd10_usb";
162*0e8011faSEmmanuel Vadot		regulator-min-microvolt = <1000000>;
163*0e8011faSEmmanuel Vadot		regulator-max-microvolt = <1000000>;
164*0e8011faSEmmanuel Vadot		vin-supply = <&vdd_10>;
165*0e8011faSEmmanuel Vadot		regulator-always-on;
166*0e8011faSEmmanuel Vadot	};
167*0e8011faSEmmanuel Vadot};
168*0e8011faSEmmanuel Vadot
169*0e8011faSEmmanuel Vadot&cpu_l0 {
170*0e8011faSEmmanuel Vadot	cpu-supply = <&vdd_cpu>;
171*0e8011faSEmmanuel Vadot};
172*0e8011faSEmmanuel Vadot
173*0e8011faSEmmanuel Vadot&cpu_l1 {
174*0e8011faSEmmanuel Vadot	cpu-supply = <&vdd_cpu>;
175*0e8011faSEmmanuel Vadot};
176*0e8011faSEmmanuel Vadot
177*0e8011faSEmmanuel Vadot&cpu_l2 {
178*0e8011faSEmmanuel Vadot	cpu-supply = <&vdd_cpu>;
179*0e8011faSEmmanuel Vadot};
180*0e8011faSEmmanuel Vadot
181*0e8011faSEmmanuel Vadot&cpu_l3 {
182*0e8011faSEmmanuel Vadot	cpu-supply = <&vdd_cpu>;
183*0e8011faSEmmanuel Vadot};
184*0e8011faSEmmanuel Vadot
185*0e8011faSEmmanuel Vadot&cpu_b0 {
186*0e8011faSEmmanuel Vadot	cpu-supply = <&vdd_cpu>;
187*0e8011faSEmmanuel Vadot};
188*0e8011faSEmmanuel Vadot
189*0e8011faSEmmanuel Vadot&cpu_b1 {
190*0e8011faSEmmanuel Vadot	cpu-supply = <&vdd_cpu>;
191*0e8011faSEmmanuel Vadot};
192*0e8011faSEmmanuel Vadot
193*0e8011faSEmmanuel Vadot&cpu_b2 {
194*0e8011faSEmmanuel Vadot	cpu-supply = <&vdd_cpu>;
195*0e8011faSEmmanuel Vadot};
196*0e8011faSEmmanuel Vadot
197*0e8011faSEmmanuel Vadot&cpu_b3 {
198*0e8011faSEmmanuel Vadot	cpu-supply = <&vdd_cpu>;
199*0e8011faSEmmanuel Vadot};
200*0e8011faSEmmanuel Vadot
201*0e8011faSEmmanuel Vadot&emmc {
202*0e8011faSEmmanuel Vadot	bus-width = <8>;
203*0e8011faSEmmanuel Vadot	vmmc-supply = <&vcc_io>;
204*0e8011faSEmmanuel Vadot	vqmmc-supply = <&vcc_18>;
205*0e8011faSEmmanuel Vadot	pinctrl-names = "default";
206*0e8011faSEmmanuel Vadot	pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_bus8>;
207*0e8011faSEmmanuel Vadot	cap-mmc-highspeed;
208*0e8011faSEmmanuel Vadot	non-removable;
209*0e8011faSEmmanuel Vadot	no-sd;
210*0e8011faSEmmanuel Vadot	no-sdio;
211*0e8011faSEmmanuel Vadot	mmc-hs200-1_8v;
212*0e8011faSEmmanuel Vadot	status = "okay";
213*0e8011faSEmmanuel Vadot};
214*0e8011faSEmmanuel Vadot
215*0e8011faSEmmanuel Vadot&gmac {
216*0e8011faSEmmanuel Vadot	clock_in_out = "input";
217*0e8011faSEmmanuel Vadot	phy-handle = <&phy>;
218*0e8011faSEmmanuel Vadot	phy-mode = "rmii";
219*0e8011faSEmmanuel Vadot	phy-supply = <&vcc_lan>;
220*0e8011faSEmmanuel Vadot	assigned-clocks = <&cru SCLK_MAC>;
221*0e8011faSEmmanuel Vadot	assigned-clock-parents = <&ext_gmac>;
222*0e8011faSEmmanuel Vadot	pinctrl-names = "default";
223*0e8011faSEmmanuel Vadot	pinctrl-0 = <&rmii_pins>;
224*0e8011faSEmmanuel Vadot	status = "okay";
225*0e8011faSEmmanuel Vadot
226*0e8011faSEmmanuel Vadot	mdio {
227*0e8011faSEmmanuel Vadot		compatible = "snps,dwmac-mdio";
228*0e8011faSEmmanuel Vadot		#address-cells = <1>;
229*0e8011faSEmmanuel Vadot		#size-cells = <0>;
230*0e8011faSEmmanuel Vadot
231*0e8011faSEmmanuel Vadot		phy: ethernet-phy@1 {
232*0e8011faSEmmanuel Vadot			compatible = "ethernet-phy-ieee802.3-c22";
233*0e8011faSEmmanuel Vadot			reg = <1>;
234*0e8011faSEmmanuel Vadot			max-speed = <100>;
235*0e8011faSEmmanuel Vadot			reset-assert-us = <10000>;
236*0e8011faSEmmanuel Vadot			reset-deassert-us = <1000000>;
237*0e8011faSEmmanuel Vadot			reset-gpios = <&gpio3 RK_PB4 GPIO_ACTIVE_LOW>;
238*0e8011faSEmmanuel Vadot			pinctrl-names = "default";
239*0e8011faSEmmanuel Vadot			pinctrl-0 = <&phy_rst>;
240*0e8011faSEmmanuel Vadot		};
241*0e8011faSEmmanuel Vadot	};
242*0e8011faSEmmanuel Vadot};
243*0e8011faSEmmanuel Vadot
244*0e8011faSEmmanuel Vadot&io_domains {
245*0e8011faSEmmanuel Vadot	audio-supply = <&vcca1v8_codec>;
246*0e8011faSEmmanuel Vadot	dvp-supply = <&vcc_18>;
247*0e8011faSEmmanuel Vadot	flash0-supply = <&vcc_18>;
248*0e8011faSEmmanuel Vadot	gpio1830-supply = <&vcc_io>;
249*0e8011faSEmmanuel Vadot	gpio30-supply = <&vcc_io>;
250*0e8011faSEmmanuel Vadot	sdcard-supply = <&vccio_sd>;
251*0e8011faSEmmanuel Vadot	wifi-supply = <&vdd1v8_wl>;
252*0e8011faSEmmanuel Vadot	status = "okay";
253*0e8011faSEmmanuel Vadot};
254*0e8011faSEmmanuel Vadot
255*0e8011faSEmmanuel Vadot&i2c0 {
256*0e8011faSEmmanuel Vadot	status = "okay";
257*0e8011faSEmmanuel Vadot
258*0e8011faSEmmanuel Vadot	rk808: pmic@1b {
259*0e8011faSEmmanuel Vadot		compatible = "rockchip,rk808";
260*0e8011faSEmmanuel Vadot		reg = <0x1b>;
261*0e8011faSEmmanuel Vadot		interrupts-extended = <&gpio0 RK_PA5 IRQ_TYPE_LEVEL_LOW>;
262*0e8011faSEmmanuel Vadot		clock-output-names = "rk808-clkout1", "xin32k_wifi_bt";
263*0e8011faSEmmanuel Vadot		vcc1-supply = <&vcc_sys>;
264*0e8011faSEmmanuel Vadot		vcc2-supply = <&vcc_sys>;
265*0e8011faSEmmanuel Vadot		vcc3-supply = <&vcc_sys>;
266*0e8011faSEmmanuel Vadot		vcc4-supply = <&vcc_sys>;
267*0e8011faSEmmanuel Vadot		vcc6-supply = <&vcc_sys>;
268*0e8011faSEmmanuel Vadot		vcc7-supply = <&vcc_sys>;
269*0e8011faSEmmanuel Vadot		vcc8-supply = <&vcc_io>;
270*0e8011faSEmmanuel Vadot		vcc9-supply = <&vcc_sys>;
271*0e8011faSEmmanuel Vadot		vcc10-supply = <&vcc_sys>;
272*0e8011faSEmmanuel Vadot		vcc11-supply = <&vcc_sys>;
273*0e8011faSEmmanuel Vadot		vcc12-supply = <&vcc_io>;
274*0e8011faSEmmanuel Vadot		pinctrl-names = "default";
275*0e8011faSEmmanuel Vadot		pinctrl-0 = <&pmic_int &pmic_sleep>;
276*0e8011faSEmmanuel Vadot		system-power-controller;
277*0e8011faSEmmanuel Vadot		wakeup-source;
278*0e8011faSEmmanuel Vadot		#clock-cells = <1>;
279*0e8011faSEmmanuel Vadot
280*0e8011faSEmmanuel Vadot		regulators {
281*0e8011faSEmmanuel Vadot			vdd_cpu: DCDC_REG1 {
282*0e8011faSEmmanuel Vadot				regulator-name = "vdd_cpu";
283*0e8011faSEmmanuel Vadot				regulator-min-microvolt = <700000>;
284*0e8011faSEmmanuel Vadot				regulator-max-microvolt = <1350000>;
285*0e8011faSEmmanuel Vadot				regulator-always-on;
286*0e8011faSEmmanuel Vadot				regulator-boot-on;
287*0e8011faSEmmanuel Vadot
288*0e8011faSEmmanuel Vadot				regulator-state-mem {
289*0e8011faSEmmanuel Vadot					regulator-off-in-suspend;
290*0e8011faSEmmanuel Vadot				};
291*0e8011faSEmmanuel Vadot			};
292*0e8011faSEmmanuel Vadot
293*0e8011faSEmmanuel Vadot			vdd_log: DCDC_REG2 {
294*0e8011faSEmmanuel Vadot				regulator-name = "vdd_log";
295*0e8011faSEmmanuel Vadot				regulator-min-microvolt = <1100000>;
296*0e8011faSEmmanuel Vadot				regulator-max-microvolt = <1500000>;
297*0e8011faSEmmanuel Vadot				regulator-ramp-delay = <6001>;
298*0e8011faSEmmanuel Vadot				regulator-always-on;
299*0e8011faSEmmanuel Vadot				regulator-boot-on;
300*0e8011faSEmmanuel Vadot
301*0e8011faSEmmanuel Vadot				regulator-state-mem {
302*0e8011faSEmmanuel Vadot					regulator-suspend-microvolt = <1000000>;
303*0e8011faSEmmanuel Vadot					regulator-on-in-suspend;
304*0e8011faSEmmanuel Vadot				};
305*0e8011faSEmmanuel Vadot			};
306*0e8011faSEmmanuel Vadot
307*0e8011faSEmmanuel Vadot			vcc_ddr: DCDC_REG3 {
308*0e8011faSEmmanuel Vadot				regulator-name = "vcc_ddr";
309*0e8011faSEmmanuel Vadot				regulator-always-on;
310*0e8011faSEmmanuel Vadot				regulator-boot-on;
311*0e8011faSEmmanuel Vadot
312*0e8011faSEmmanuel Vadot				regulator-state-mem {
313*0e8011faSEmmanuel Vadot					regulator-on-in-suspend;
314*0e8011faSEmmanuel Vadot				};
315*0e8011faSEmmanuel Vadot			};
316*0e8011faSEmmanuel Vadot
317*0e8011faSEmmanuel Vadot			vcc_io: DCDC_REG4 {
318*0e8011faSEmmanuel Vadot				regulator-name = "vcc_io";
319*0e8011faSEmmanuel Vadot				regulator-min-microvolt = <3300000>;
320*0e8011faSEmmanuel Vadot				regulator-max-microvolt = <3300000>;
321*0e8011faSEmmanuel Vadot				regulator-always-on;
322*0e8011faSEmmanuel Vadot				regulator-boot-on;
323*0e8011faSEmmanuel Vadot
324*0e8011faSEmmanuel Vadot				regulator-state-mem {
325*0e8011faSEmmanuel Vadot					regulator-suspend-microvolt = <3300000>;
326*0e8011faSEmmanuel Vadot					regulator-on-in-suspend;
327*0e8011faSEmmanuel Vadot				};
328*0e8011faSEmmanuel Vadot			};
329*0e8011faSEmmanuel Vadot
330*0e8011faSEmmanuel Vadot			vcca1v8_codec: LDO_REG1 {
331*0e8011faSEmmanuel Vadot				regulator-name = "vcca1v8_codec";
332*0e8011faSEmmanuel Vadot				regulator-min-microvolt = <1800000>;
333*0e8011faSEmmanuel Vadot				regulator-max-microvolt = <1800000>;
334*0e8011faSEmmanuel Vadot				regulator-always-on;
335*0e8011faSEmmanuel Vadot
336*0e8011faSEmmanuel Vadot				regulator-state-mem {
337*0e8011faSEmmanuel Vadot					regulator-off-in-suspend;
338*0e8011faSEmmanuel Vadot				};
339*0e8011faSEmmanuel Vadot			};
340*0e8011faSEmmanuel Vadot
341*0e8011faSEmmanuel Vadot			vcca3v0_codec: LDO_REG2 {
342*0e8011faSEmmanuel Vadot				regulator-name = "vcca3v0_codec";
343*0e8011faSEmmanuel Vadot				regulator-min-microvolt = <3000000>;
344*0e8011faSEmmanuel Vadot				regulator-max-microvolt = <3000000>;
345*0e8011faSEmmanuel Vadot				regulator-always-on;
346*0e8011faSEmmanuel Vadot
347*0e8011faSEmmanuel Vadot				regulator-state-mem {
348*0e8011faSEmmanuel Vadot					regulator-off-in-suspend;
349*0e8011faSEmmanuel Vadot				};
350*0e8011faSEmmanuel Vadot			};
351*0e8011faSEmmanuel Vadot
352*0e8011faSEmmanuel Vadot			vdd_10: LDO_REG3 {
353*0e8011faSEmmanuel Vadot				regulator-name = "vdd_10";
354*0e8011faSEmmanuel Vadot				regulator-min-microvolt = <1000000>;
355*0e8011faSEmmanuel Vadot				regulator-max-microvolt = <1000000>;
356*0e8011faSEmmanuel Vadot				regulator-always-on;
357*0e8011faSEmmanuel Vadot				regulator-boot-on;
358*0e8011faSEmmanuel Vadot
359*0e8011faSEmmanuel Vadot				regulator-state-mem {
360*0e8011faSEmmanuel Vadot					regulator-suspend-microvolt = <1000000>;
361*0e8011faSEmmanuel Vadot					regulator-on-in-suspend;
362*0e8011faSEmmanuel Vadot				};
363*0e8011faSEmmanuel Vadot			};
364*0e8011faSEmmanuel Vadot
365*0e8011faSEmmanuel Vadot			vdd1v8_wl: LDO_REG4 {
366*0e8011faSEmmanuel Vadot				regulator-name = "vdd1v8_wl";
367*0e8011faSEmmanuel Vadot				regulator-min-microvolt = <1800000>;
368*0e8011faSEmmanuel Vadot				regulator-max-microvolt = <1800000>;
369*0e8011faSEmmanuel Vadot
370*0e8011faSEmmanuel Vadot				regulator-state-mem {
371*0e8011faSEmmanuel Vadot					regulator-off-in-suspend;
372*0e8011faSEmmanuel Vadot				};
373*0e8011faSEmmanuel Vadot			};
374*0e8011faSEmmanuel Vadot
375*0e8011faSEmmanuel Vadot			vccio_sd: LDO_REG5 {
376*0e8011faSEmmanuel Vadot				regulator-name = "vccio_sd";
377*0e8011faSEmmanuel Vadot				regulator-min-microvolt = <1800000>;
378*0e8011faSEmmanuel Vadot				regulator-max-microvolt = <3300000>;
379*0e8011faSEmmanuel Vadot
380*0e8011faSEmmanuel Vadot				regulator-state-mem {
381*0e8011faSEmmanuel Vadot					regulator-off-in-suspend;
382*0e8011faSEmmanuel Vadot				};
383*0e8011faSEmmanuel Vadot			};
384*0e8011faSEmmanuel Vadot
385*0e8011faSEmmanuel Vadot			vdd10_lcd: LDO_REG6 {
386*0e8011faSEmmanuel Vadot				regulator-name = "vdd10_lcd";
387*0e8011faSEmmanuel Vadot				regulator-min-microvolt = <1000000>;
388*0e8011faSEmmanuel Vadot				regulator-max-microvolt = <1000000>;
389*0e8011faSEmmanuel Vadot
390*0e8011faSEmmanuel Vadot				regulator-state-mem {
391*0e8011faSEmmanuel Vadot					regulator-off-in-suspend;
392*0e8011faSEmmanuel Vadot				};
393*0e8011faSEmmanuel Vadot			};
394*0e8011faSEmmanuel Vadot
395*0e8011faSEmmanuel Vadot			vcc_18: LDO_REG7 {
396*0e8011faSEmmanuel Vadot				regulator-name = "vcc_18";
397*0e8011faSEmmanuel Vadot				regulator-min-microvolt = <1800000>;
398*0e8011faSEmmanuel Vadot				regulator-max-microvolt = <1800000>;
399*0e8011faSEmmanuel Vadot
400*0e8011faSEmmanuel Vadot				regulator-state-mem {
401*0e8011faSEmmanuel Vadot					regulator-suspend-microvolt = <1800000>;
402*0e8011faSEmmanuel Vadot					regulator-on-in-suspend;
403*0e8011faSEmmanuel Vadot				};
404*0e8011faSEmmanuel Vadot			};
405*0e8011faSEmmanuel Vadot
406*0e8011faSEmmanuel Vadot			vcc18_lcd: LDO_REG8 {
407*0e8011faSEmmanuel Vadot				regulator-name = "vcc18_lcd";
408*0e8011faSEmmanuel Vadot				regulator-min-microvolt = <1800000>;
409*0e8011faSEmmanuel Vadot				regulator-max-microvolt = <1800000>;
410*0e8011faSEmmanuel Vadot
411*0e8011faSEmmanuel Vadot				regulator-state-mem {
412*0e8011faSEmmanuel Vadot					regulator-off-in-suspend;
413*0e8011faSEmmanuel Vadot				};
414*0e8011faSEmmanuel Vadot			};
415*0e8011faSEmmanuel Vadot
416*0e8011faSEmmanuel Vadot			vcc_tp: SWITCH_REG1 {
417*0e8011faSEmmanuel Vadot				regulator-name = "vcc_tp";
418*0e8011faSEmmanuel Vadot
419*0e8011faSEmmanuel Vadot				regulator-state-mem {
420*0e8011faSEmmanuel Vadot					regulator-on-in-suspend;
421*0e8011faSEmmanuel Vadot				};
422*0e8011faSEmmanuel Vadot			};
423*0e8011faSEmmanuel Vadot
424*0e8011faSEmmanuel Vadot			vcc_sd: SWITCH_REG2 {
425*0e8011faSEmmanuel Vadot				regulator-name = "vcc_sd";
426*0e8011faSEmmanuel Vadot
427*0e8011faSEmmanuel Vadot				regulator-state-mem {
428*0e8011faSEmmanuel Vadot					regulator-off-in-suspend;
429*0e8011faSEmmanuel Vadot				};
430*0e8011faSEmmanuel Vadot			};
431*0e8011faSEmmanuel Vadot		};
432*0e8011faSEmmanuel Vadot	};
433*0e8011faSEmmanuel Vadot};
434*0e8011faSEmmanuel Vadot
435*0e8011faSEmmanuel Vadot&i2c1 {
436*0e8011faSEmmanuel Vadot	status = "okay";
437*0e8011faSEmmanuel Vadot
438*0e8011faSEmmanuel Vadot	codec@1c {
439*0e8011faSEmmanuel Vadot		compatible = "realtek,rt5640";
440*0e8011faSEmmanuel Vadot		reg = <0x1c>;
441*0e8011faSEmmanuel Vadot		clocks = <&cru SCLK_I2S_8CH_OUT>;
442*0e8011faSEmmanuel Vadot		clock-names = "mclk";
443*0e8011faSEmmanuel Vadot		realtek,dmic1-data-pin = <RT5640_DMIC1_DATA_PIN_IN1P>;
444*0e8011faSEmmanuel Vadot		realtek,dmic2-data-pin = <RT5640_DMIC2_DATA_PIN_IN1N>;
445*0e8011faSEmmanuel Vadot		realtek,in1-differential;
446*0e8011faSEmmanuel Vadot		#sound-dai-cells = <0>;
447*0e8011faSEmmanuel Vadot
448*0e8011faSEmmanuel Vadot		port {
449*0e8011faSEmmanuel Vadot			rt5640_p0_0: endpoint {
450*0e8011faSEmmanuel Vadot				remote-endpoint = <&i2s_8ch_p0_0>;
451*0e8011faSEmmanuel Vadot			};
452*0e8011faSEmmanuel Vadot		};
453*0e8011faSEmmanuel Vadot	};
454*0e8011faSEmmanuel Vadot
455*0e8011faSEmmanuel Vadot	hym8563: rtc@51 {
456*0e8011faSEmmanuel Vadot		compatible = "haoyu,hym8563";
457*0e8011faSEmmanuel Vadot		reg = <0x51>;
458*0e8011faSEmmanuel Vadot		clock-output-names = "xin32k";
459*0e8011faSEmmanuel Vadot		#clock-cells = <0>;
460*0e8011faSEmmanuel Vadot	};
461*0e8011faSEmmanuel Vadot};
462*0e8011faSEmmanuel Vadot
463*0e8011faSEmmanuel Vadot&i2s_8ch {
464*0e8011faSEmmanuel Vadot	status = "okay";
465*0e8011faSEmmanuel Vadot
466*0e8011faSEmmanuel Vadot	i2s_8ch_p0: port {
467*0e8011faSEmmanuel Vadot		i2s_8ch_p0_0: endpoint {
468*0e8011faSEmmanuel Vadot			dai-format = "i2s";
469*0e8011faSEmmanuel Vadot			mclk-fs = <256>;
470*0e8011faSEmmanuel Vadot			remote-endpoint = <&rt5640_p0_0>;
471*0e8011faSEmmanuel Vadot		};
472*0e8011faSEmmanuel Vadot	};
473*0e8011faSEmmanuel Vadot};
474*0e8011faSEmmanuel Vadot
475*0e8011faSEmmanuel Vadot&pinctrl {
476*0e8011faSEmmanuel Vadot	bluetooth {
477*0e8011faSEmmanuel Vadot		bt_host_wake: bt-host-wake {
478*0e8011faSEmmanuel Vadot			rockchip,pins = <3 RK_PA7 RK_FUNC_GPIO &pcfg_pull_none>;
479*0e8011faSEmmanuel Vadot		};
480*0e8011faSEmmanuel Vadot
481*0e8011faSEmmanuel Vadot		bt_reg_on: bt-reg-on {
482*0e8011faSEmmanuel Vadot			rockchip,pins = <3 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>;
483*0e8011faSEmmanuel Vadot		};
484*0e8011faSEmmanuel Vadot
485*0e8011faSEmmanuel Vadot		bt_wake: bt-wake {
486*0e8011faSEmmanuel Vadot			rockchip,pins = <3 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>;
487*0e8011faSEmmanuel Vadot		};
488*0e8011faSEmmanuel Vadot	};
489*0e8011faSEmmanuel Vadot
490*0e8011faSEmmanuel Vadot	leds {
491*0e8011faSEmmanuel Vadot		power_led: power-led {
492*0e8011faSEmmanuel Vadot			rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>;
493*0e8011faSEmmanuel Vadot		};
494*0e8011faSEmmanuel Vadot	};
495*0e8011faSEmmanuel Vadot
496*0e8011faSEmmanuel Vadot	phy {
497*0e8011faSEmmanuel Vadot		phy_rst: phy-rst {
498*0e8011faSEmmanuel Vadot			rockchip,pins = <3 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>;
499*0e8011faSEmmanuel Vadot		};
500*0e8011faSEmmanuel Vadot	};
501*0e8011faSEmmanuel Vadot
502*0e8011faSEmmanuel Vadot	pmic {
503*0e8011faSEmmanuel Vadot		pmic_int: pmic-int {
504*0e8011faSEmmanuel Vadot			rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>;
505*0e8011faSEmmanuel Vadot		};
506*0e8011faSEmmanuel Vadot
507*0e8011faSEmmanuel Vadot		pmic_sleep: pmic-sleep {
508*0e8011faSEmmanuel Vadot			rockchip,pins = <0 RK_PA0 2 &pcfg_pull_none>;
509*0e8011faSEmmanuel Vadot		};
510*0e8011faSEmmanuel Vadot	};
511*0e8011faSEmmanuel Vadot
512*0e8011faSEmmanuel Vadot	sdio-pwrseq {
513*0e8011faSEmmanuel Vadot		wifi_reg_on: wifi-reg-on {
514*0e8011faSEmmanuel Vadot			rockchip,pins = <3 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>;
515*0e8011faSEmmanuel Vadot		};
516*0e8011faSEmmanuel Vadot	};
517*0e8011faSEmmanuel Vadot
518*0e8011faSEmmanuel Vadot	sound {
519*0e8011faSEmmanuel Vadot		hp_det: hp-det {
520*0e8011faSEmmanuel Vadot			rockchip,pins = <0 RK_PC7 RK_FUNC_GPIO &pcfg_pull_none>;
521*0e8011faSEmmanuel Vadot		};
522*0e8011faSEmmanuel Vadot	};
523*0e8011faSEmmanuel Vadot
524*0e8011faSEmmanuel Vadot	usb {
525*0e8011faSEmmanuel Vadot		host_vbus_drv: host-vbus-drv {
526*0e8011faSEmmanuel Vadot			rockchip,pins = <3 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>;
527*0e8011faSEmmanuel Vadot		};
528*0e8011faSEmmanuel Vadot
529*0e8011faSEmmanuel Vadot		otg_vbus_drv: otg-vbus-drv {
530*0e8011faSEmmanuel Vadot			rockchip,pins = <0 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>;
531*0e8011faSEmmanuel Vadot		};
532*0e8011faSEmmanuel Vadot	};
533*0e8011faSEmmanuel Vadot
534*0e8011faSEmmanuel Vadot	wifi {
535*0e8011faSEmmanuel Vadot		wifi_host_wake: wifi-host-wake {
536*0e8011faSEmmanuel Vadot			rockchip,pins = <3 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
537*0e8011faSEmmanuel Vadot		};
538*0e8011faSEmmanuel Vadot	};
539*0e8011faSEmmanuel Vadot};
540*0e8011faSEmmanuel Vadot
541*0e8011faSEmmanuel Vadot&pmu_io_domains {
542*0e8011faSEmmanuel Vadot	pmu-supply = <&vcc_io>;
543*0e8011faSEmmanuel Vadot	vop-supply = <&vcc_io>;
544*0e8011faSEmmanuel Vadot	status = "okay";
545*0e8011faSEmmanuel Vadot};
546*0e8011faSEmmanuel Vadot
547*0e8011faSEmmanuel Vadot&saradc {
548*0e8011faSEmmanuel Vadot	vref-supply = <&vcc_18>;
549*0e8011faSEmmanuel Vadot	status = "okay";
550*0e8011faSEmmanuel Vadot};
551*0e8011faSEmmanuel Vadot
552*0e8011faSEmmanuel Vadot&sdio0 {
553*0e8011faSEmmanuel Vadot	bus-width = <4>;
554*0e8011faSEmmanuel Vadot	mmc-pwrseq = <&sdio_pwrseq>;
555*0e8011faSEmmanuel Vadot	vmmc-supply = <&vcc_io>;
556*0e8011faSEmmanuel Vadot	vqmmc-supply = <&vdd1v8_wl>;
557*0e8011faSEmmanuel Vadot	assigned-clocks = <&cru SCLK_SDIO0>;
558*0e8011faSEmmanuel Vadot	assigned-clock-parents = <&cru PLL_CPLL>;
559*0e8011faSEmmanuel Vadot	pinctrl-names = "default";
560*0e8011faSEmmanuel Vadot	pinctrl-0 = <&sdio0_bus4 &sdio0_cmd &sdio0_clk>;
561*0e8011faSEmmanuel Vadot	cap-sd-highspeed;
562*0e8011faSEmmanuel Vadot	cap-sdio-irq;
563*0e8011faSEmmanuel Vadot	no-sd;
564*0e8011faSEmmanuel Vadot	no-mmc;
565*0e8011faSEmmanuel Vadot	non-removable;
566*0e8011faSEmmanuel Vadot	sd-uhs-sdr104;
567*0e8011faSEmmanuel Vadot	#address-cells = <1>;
568*0e8011faSEmmanuel Vadot	#size-cells = <0>;
569*0e8011faSEmmanuel Vadot	status = "okay";
570*0e8011faSEmmanuel Vadot
571*0e8011faSEmmanuel Vadot	wifi@1 {
572*0e8011faSEmmanuel Vadot		compatible = "brcm,bcm43455-fmac", "brcm,bcm4329-fmac";
573*0e8011faSEmmanuel Vadot		reg = <1>;
574*0e8011faSEmmanuel Vadot		interrupts-extended = <&gpio3 RK_PA6 IRQ_TYPE_LEVEL_HIGH>;
575*0e8011faSEmmanuel Vadot		interrupt-names = "host-wake";
576*0e8011faSEmmanuel Vadot		pinctrl-names = "default";
577*0e8011faSEmmanuel Vadot		pinctrl-0 = <&wifi_host_wake>;
578*0e8011faSEmmanuel Vadot	};
579*0e8011faSEmmanuel Vadot};
580*0e8011faSEmmanuel Vadot
581*0e8011faSEmmanuel Vadot&sdmmc {
582*0e8011faSEmmanuel Vadot	bus-width = <4>;
583*0e8011faSEmmanuel Vadot	vmmc-supply = <&vcc_sd>;
584*0e8011faSEmmanuel Vadot	vqmmc-supply = <&vccio_sd>;
585*0e8011faSEmmanuel Vadot	pinctrl-names = "default";
586*0e8011faSEmmanuel Vadot	pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_bus4 &sdmmc_cd>;
587*0e8011faSEmmanuel Vadot	cap-sd-highspeed;
588*0e8011faSEmmanuel Vadot	disable-wp;
589*0e8011faSEmmanuel Vadot	no-mmc;
590*0e8011faSEmmanuel Vadot	no-sdio;
591*0e8011faSEmmanuel Vadot	sd-uhs-sdr12;
592*0e8011faSEmmanuel Vadot	sd-uhs-sdr25;
593*0e8011faSEmmanuel Vadot	sd-uhs-sdr50;
594*0e8011faSEmmanuel Vadot	sd-uhs-sdr104;
595*0e8011faSEmmanuel Vadot	status = "okay";
596*0e8011faSEmmanuel Vadot};
597*0e8011faSEmmanuel Vadot
598*0e8011faSEmmanuel Vadot&tsadc {
599*0e8011faSEmmanuel Vadot	rockchip,hw-tshut-mode = <0>;
600*0e8011faSEmmanuel Vadot	rockchip,hw-tshut-polarity = <1>;
601*0e8011faSEmmanuel Vadot	status = "okay";
602*0e8011faSEmmanuel Vadot};
603*0e8011faSEmmanuel Vadot
604*0e8011faSEmmanuel Vadot&uart0 {
605*0e8011faSEmmanuel Vadot	pinctrl-names = "default";
606*0e8011faSEmmanuel Vadot	pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>;
607*0e8011faSEmmanuel Vadot	uart-has-rtscts;
608*0e8011faSEmmanuel Vadot	status = "okay";
609*0e8011faSEmmanuel Vadot
610*0e8011faSEmmanuel Vadot	bluetooth {
611*0e8011faSEmmanuel Vadot		compatible = "brcm,bcm4345c5";
612*0e8011faSEmmanuel Vadot		interrupts-extended = <&gpio3 RK_PA7 GPIO_ACTIVE_HIGH>;
613*0e8011faSEmmanuel Vadot		interrupt-names = "host-wakeup";
614*0e8011faSEmmanuel Vadot		clocks = <&rk808 RK808_CLKOUT1>;
615*0e8011faSEmmanuel Vadot		clock-names = "lpo";
616*0e8011faSEmmanuel Vadot		device-wakeup-gpios = <&gpio3 RK_PA3 GPIO_ACTIVE_HIGH>;
617*0e8011faSEmmanuel Vadot		shutdown-gpios = <&gpio3 RK_PA2 GPIO_ACTIVE_HIGH>;
618*0e8011faSEmmanuel Vadot		max-speed = <15000000>;
619*0e8011faSEmmanuel Vadot		vbat-supply = <&vcc_io>;
620*0e8011faSEmmanuel Vadot		vddio-supply = <&vdd1v8_wl>;
621*0e8011faSEmmanuel Vadot		pinctrl-names = "default";
622*0e8011faSEmmanuel Vadot		pinctrl-0 = <&bt_host_wake &bt_wake &bt_reg_on>;
623*0e8011faSEmmanuel Vadot	};
624*0e8011faSEmmanuel Vadot};
625*0e8011faSEmmanuel Vadot
626*0e8011faSEmmanuel Vadot&uart1 {
627*0e8011faSEmmanuel Vadot	pinctrl-names = "default";
628*0e8011faSEmmanuel Vadot	pinctrl-0 = <&uart1_xfer>;
629*0e8011faSEmmanuel Vadot	status = "okay";
630*0e8011faSEmmanuel Vadot};
631*0e8011faSEmmanuel Vadot
632*0e8011faSEmmanuel Vadot&uart4 {
633*0e8011faSEmmanuel Vadot	pinctrl-names = "default";
634*0e8011faSEmmanuel Vadot	pinctrl-0 = <&uart4_xfer>;
635*0e8011faSEmmanuel Vadot	status = "okay";
636*0e8011faSEmmanuel Vadot};
637*0e8011faSEmmanuel Vadot
638*0e8011faSEmmanuel Vadot&usb_host0_ehci {
639*0e8011faSEmmanuel Vadot	#address-cells = <1>;
640*0e8011faSEmmanuel Vadot	#size-cells = <0>;
641*0e8011faSEmmanuel Vadot	status = "okay";
642*0e8011faSEmmanuel Vadot
643*0e8011faSEmmanuel Vadot	hub@1 {
644*0e8011faSEmmanuel Vadot		compatible = "usb5e3,610";
645*0e8011faSEmmanuel Vadot		reg = <1>;
646*0e8011faSEmmanuel Vadot		vdd-supply = <&hub_avdd>;
647*0e8011faSEmmanuel Vadot	};
648*0e8011faSEmmanuel Vadot};
649*0e8011faSEmmanuel Vadot
650*0e8011faSEmmanuel Vadot&usb_otg {
651*0e8011faSEmmanuel Vadot	vbus-supply = <&vcc_otg>;
652*0e8011faSEmmanuel Vadot	vusb_a-supply = <&vcc_io>;
653*0e8011faSEmmanuel Vadot	vusb_d-supply = <&vdd10_usb>;
654*0e8011faSEmmanuel Vadot	status = "okay";
655*0e8011faSEmmanuel Vadot};
656*0e8011faSEmmanuel Vadot
657*0e8011faSEmmanuel Vadot&wdt {
658*0e8011faSEmmanuel Vadot	status = "okay";
659*0e8011faSEmmanuel Vadot};
660