xref: /linux/arch/arm64/boot/dts/rockchip/px30-pp1516.dtsi (revision ab93e0dd72c37d378dd936f031ffb83ff2bd87ce)
1*56198acdSHeiko Stuebner// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2*56198acdSHeiko Stuebner/*
3*56198acdSHeiko Stuebner * Copyright (c) 2025 Cherry Embedded Solutions GmbH
4*56198acdSHeiko Stuebner */
5*56198acdSHeiko Stuebner
6*56198acdSHeiko Stuebner/dts-v1/;
7*56198acdSHeiko Stuebner#include <dt-bindings/gpio/gpio.h>
8*56198acdSHeiko Stuebner#include <dt-bindings/input/input.h>
9*56198acdSHeiko Stuebner#include <dt-bindings/pinctrl/rockchip.h>
10*56198acdSHeiko Stuebner#include "px30.dtsi"
11*56198acdSHeiko Stuebner
12*56198acdSHeiko Stuebner/ {
13*56198acdSHeiko Stuebner	aliases {
14*56198acdSHeiko Stuebner		mmc0 = &emmc;
15*56198acdSHeiko Stuebner	};
16*56198acdSHeiko Stuebner
17*56198acdSHeiko Stuebner	chosen {
18*56198acdSHeiko Stuebner		stdout-path = "serial5:115200n8";
19*56198acdSHeiko Stuebner	};
20*56198acdSHeiko Stuebner
21*56198acdSHeiko Stuebner	backlight: backlight {
22*56198acdSHeiko Stuebner		compatible = "pwm-backlight";
23*56198acdSHeiko Stuebner		power-supply = <&vcc5v0_sys>;
24*56198acdSHeiko Stuebner		pwms = <&pwm0 0 25000 0>;
25*56198acdSHeiko Stuebner	};
26*56198acdSHeiko Stuebner
27*56198acdSHeiko Stuebner	beeper {
28*56198acdSHeiko Stuebner		compatible = "pwm-beeper";
29*56198acdSHeiko Stuebner		pwms = <&pwm1 0 1000 0>;
30*56198acdSHeiko Stuebner	};
31*56198acdSHeiko Stuebner
32*56198acdSHeiko Stuebner	emmc_pwrseq: emmc-pwrseq {
33*56198acdSHeiko Stuebner		compatible = "mmc-pwrseq-emmc";
34*56198acdSHeiko Stuebner		pinctrl-0 = <&emmc_reset>;
35*56198acdSHeiko Stuebner		pinctrl-names = "default";
36*56198acdSHeiko Stuebner		reset-gpios = <&gpio1 RK_PB3 GPIO_ACTIVE_HIGH>;
37*56198acdSHeiko Stuebner	};
38*56198acdSHeiko Stuebner
39*56198acdSHeiko Stuebner	gpio-leds {
40*56198acdSHeiko Stuebner		compatible = "gpio-leds";
41*56198acdSHeiko Stuebner		pinctrl-names = "default";
42*56198acdSHeiko Stuebner		pinctrl-0 = <&debug_led_pin>, <&heartbeat_led_pin>;
43*56198acdSHeiko Stuebner
44*56198acdSHeiko Stuebner		/*
45*56198acdSHeiko Stuebner		 * LED2 on the PCB, left of the USB-C connector.
46*56198acdSHeiko Stuebner		 * Typically NOT populated.
47*56198acdSHeiko Stuebner		 */
48*56198acdSHeiko Stuebner		debug: led-0 {
49*56198acdSHeiko Stuebner			label = "debug";
50*56198acdSHeiko Stuebner			gpios = <&gpio3 RK_PC3 GPIO_ACTIVE_HIGH>;
51*56198acdSHeiko Stuebner			linux,default-trigger = "none";
52*56198acdSHeiko Stuebner		};
53*56198acdSHeiko Stuebner
54*56198acdSHeiko Stuebner		/*
55*56198acdSHeiko Stuebner		 * LED14 on the PCB, left of the PX30 SoC.
56*56198acdSHeiko Stuebner		 * Typically NOT populated.
57*56198acdSHeiko Stuebner		 */
58*56198acdSHeiko Stuebner		heartbeat: led-1 {
59*56198acdSHeiko Stuebner			label = "heartbeat";
60*56198acdSHeiko Stuebner			gpios = <&gpio0 RK_PA0 GPIO_ACTIVE_HIGH>;
61*56198acdSHeiko Stuebner			linux,default-trigger = "heartbeat";
62*56198acdSHeiko Stuebner		};
63*56198acdSHeiko Stuebner	};
64*56198acdSHeiko Stuebner
65*56198acdSHeiko Stuebner	vcc5v0_sys: regulator-vccsys {
66*56198acdSHeiko Stuebner		compatible = "regulator-fixed";
67*56198acdSHeiko Stuebner		regulator-name = "vcc5v0_sys";
68*56198acdSHeiko Stuebner		regulator-always-on;
69*56198acdSHeiko Stuebner		regulator-boot-on;
70*56198acdSHeiko Stuebner		regulator-min-microvolt = <5000000>;
71*56198acdSHeiko Stuebner		regulator-max-microvolt = <5000000>;
72*56198acdSHeiko Stuebner	};
73*56198acdSHeiko Stuebner
74*56198acdSHeiko Stuebner	vcc_cam_avdd: regulator-vcc-cam-avdd {
75*56198acdSHeiko Stuebner		compatible  = "regulator-fixed";
76*56198acdSHeiko Stuebner		regulator-name = "vcc_cam_avdd";
77*56198acdSHeiko Stuebner		gpio = <&gpio3 RK_PC0 GPIO_ACTIVE_LOW>;
78*56198acdSHeiko Stuebner		pinctrl-names = "default";
79*56198acdSHeiko Stuebner		pinctrl-0 = <&cam_avdd_en>;
80*56198acdSHeiko Stuebner		regulator-min-microvolt = <2800000>;
81*56198acdSHeiko Stuebner		regulator-max-microvolt = <2800000>;
82*56198acdSHeiko Stuebner		vin-supply = <&vcc_2v8>;
83*56198acdSHeiko Stuebner	};
84*56198acdSHeiko Stuebner
85*56198acdSHeiko Stuebner	vcc_cam_dovdd: regulator-vcc-cam-dovdd {
86*56198acdSHeiko Stuebner		compatible  = "regulator-fixed";
87*56198acdSHeiko Stuebner		regulator-name = "vcc_cam_dovdd";
88*56198acdSHeiko Stuebner		gpio = <&gpio3 RK_PC1 GPIO_ACTIVE_LOW>;
89*56198acdSHeiko Stuebner		pinctrl-names = "default";
90*56198acdSHeiko Stuebner		pinctrl-0 = <&cam_dovdd_en>;
91*56198acdSHeiko Stuebner		regulator-min-microvolt = <1800000>;
92*56198acdSHeiko Stuebner		regulator-max-microvolt = <1800000>;
93*56198acdSHeiko Stuebner		vin-supply = <&vcc_1v8>;
94*56198acdSHeiko Stuebner	};
95*56198acdSHeiko Stuebner
96*56198acdSHeiko Stuebner	vcc_cam_dvdd: regulator-vcc-cam-dvdd {
97*56198acdSHeiko Stuebner		compatible  = "regulator-fixed";
98*56198acdSHeiko Stuebner		regulator-name = "vcc_cam_dvdd";
99*56198acdSHeiko Stuebner		gpio = <&gpio3 RK_PC5 GPIO_ACTIVE_HIGH>;
100*56198acdSHeiko Stuebner		enable-active-high;
101*56198acdSHeiko Stuebner		pinctrl-names = "default";
102*56198acdSHeiko Stuebner		pinctrl-0 = <&cam_dvdd_en>;
103*56198acdSHeiko Stuebner		regulator-min-microvolt = <1200000>;
104*56198acdSHeiko Stuebner		regulator-max-microvolt = <1200000>;
105*56198acdSHeiko Stuebner		vin-supply = <&vcc_3v3>;
106*56198acdSHeiko Stuebner	};
107*56198acdSHeiko Stuebner
108*56198acdSHeiko Stuebner	vcc_lens_afvdd: regulator-vcc-lens-afvdd {
109*56198acdSHeiko Stuebner		compatible  = "regulator-fixed";
110*56198acdSHeiko Stuebner		regulator-name = "vcc_lens_afvdd";
111*56198acdSHeiko Stuebner		gpio = <&gpio3 RK_PB2 GPIO_ACTIVE_LOW>;
112*56198acdSHeiko Stuebner		pinctrl-names = "default";
113*56198acdSHeiko Stuebner		pinctrl-0 = <&cam_afvdd_en>;
114*56198acdSHeiko Stuebner		regulator-min-microvolt = <2800000>;
115*56198acdSHeiko Stuebner		regulator-max-microvolt = <2800000>;
116*56198acdSHeiko Stuebner		vin-supply = <&vcc_2v8>;
117*56198acdSHeiko Stuebner	};
118*56198acdSHeiko Stuebner};
119*56198acdSHeiko Stuebner
120*56198acdSHeiko Stuebner&cpu0 {
121*56198acdSHeiko Stuebner	cpu-supply = <&vdd_arm>;
122*56198acdSHeiko Stuebner};
123*56198acdSHeiko Stuebner
124*56198acdSHeiko Stuebner&cpu1 {
125*56198acdSHeiko Stuebner	cpu-supply = <&vdd_arm>;
126*56198acdSHeiko Stuebner};
127*56198acdSHeiko Stuebner
128*56198acdSHeiko Stuebner&cpu2 {
129*56198acdSHeiko Stuebner	cpu-supply = <&vdd_arm>;
130*56198acdSHeiko Stuebner};
131*56198acdSHeiko Stuebner
132*56198acdSHeiko Stuebner&cpu3 {
133*56198acdSHeiko Stuebner	cpu-supply = <&vdd_arm>;
134*56198acdSHeiko Stuebner};
135*56198acdSHeiko Stuebner
136*56198acdSHeiko Stuebner&csi_dphy {
137*56198acdSHeiko Stuebner	status = "okay";
138*56198acdSHeiko Stuebner};
139*56198acdSHeiko Stuebner
140*56198acdSHeiko Stuebner&display_subsystem {
141*56198acdSHeiko Stuebner	status = "okay";
142*56198acdSHeiko Stuebner};
143*56198acdSHeiko Stuebner
144*56198acdSHeiko Stuebner&dsi_dphy {
145*56198acdSHeiko Stuebner	status = "okay";
146*56198acdSHeiko Stuebner};
147*56198acdSHeiko Stuebner
148*56198acdSHeiko Stuebner&emmc {
149*56198acdSHeiko Stuebner	bus-width = <8>;
150*56198acdSHeiko Stuebner	cap-mmc-highspeed;
151*56198acdSHeiko Stuebner	/*
152*56198acdSHeiko Stuebner	 * For hs200 support, U-Boot would have to set the RK809 DCDC4
153*56198acdSHeiko Stuebner	 * rail to 1.8V from the default of 3.0V. It doesn't do that on
154*56198acdSHeiko Stuebner	 * devices out in the field, so disable hs200.
155*56198acdSHeiko Stuebner	 * mmc-hs200-1_8v;
156*56198acdSHeiko Stuebner	 */
157*56198acdSHeiko Stuebner	mmc-pwrseq = <&emmc_pwrseq>;
158*56198acdSHeiko Stuebner	non-removable;
159*56198acdSHeiko Stuebner	vmmc-supply = <&vcc_3v3>;
160*56198acdSHeiko Stuebner	vqmmc-supply = <&vcc_emmc>;
161*56198acdSHeiko Stuebner	status = "okay";
162*56198acdSHeiko Stuebner};
163*56198acdSHeiko Stuebner
164*56198acdSHeiko Stuebner&gpu {
165*56198acdSHeiko Stuebner	mali-supply = <&vdd_log>;
166*56198acdSHeiko Stuebner	status = "okay";
167*56198acdSHeiko Stuebner};
168*56198acdSHeiko Stuebner
169*56198acdSHeiko Stuebner/* I2C0 = PMIC, Touchscreen */
170*56198acdSHeiko Stuebner&i2c0 {
171*56198acdSHeiko Stuebner	status = "okay";
172*56198acdSHeiko Stuebner
173*56198acdSHeiko Stuebner	touchscreen@14 {
174*56198acdSHeiko Stuebner		compatible = "goodix,gt911";
175*56198acdSHeiko Stuebner		reg = <0x14>;
176*56198acdSHeiko Stuebner		AVDD28-supply = <&vcc_2v8>;
177*56198acdSHeiko Stuebner		interrupt-parent = <&gpio0>;
178*56198acdSHeiko Stuebner		interrupts = <RK_PA1 IRQ_TYPE_LEVEL_LOW>;
179*56198acdSHeiko Stuebner		irq-gpios = <&gpio0 RK_PA1 GPIO_ACTIVE_HIGH>;
180*56198acdSHeiko Stuebner		pinctrl-names = "default";
181*56198acdSHeiko Stuebner		pinctrl-0 = <&tch_int &tch_rst>;
182*56198acdSHeiko Stuebner		reset-gpios = <&gpio0 RK_PB5 GPIO_ACTIVE_HIGH>;
183*56198acdSHeiko Stuebner		VDDIO-supply = <&vcc_3v3>;
184*56198acdSHeiko Stuebner	};
185*56198acdSHeiko Stuebner
186*56198acdSHeiko Stuebner	rk809: pmic@20 {
187*56198acdSHeiko Stuebner		compatible = "rockchip,rk809";
188*56198acdSHeiko Stuebner		reg = <0x20>;
189*56198acdSHeiko Stuebner		#clock-cells = <0>;
190*56198acdSHeiko Stuebner		clock-output-names = "xin32k";
191*56198acdSHeiko Stuebner		interrupt-parent = <&gpio0>;
192*56198acdSHeiko Stuebner		interrupts = <RK_PA7 IRQ_TYPE_LEVEL_LOW>;
193*56198acdSHeiko Stuebner		pinctrl-names = "default";
194*56198acdSHeiko Stuebner		pinctrl-0 = <&pmic_int>;
195*56198acdSHeiko Stuebner		system-power-controller;
196*56198acdSHeiko Stuebner		wakeup-source;
197*56198acdSHeiko Stuebner
198*56198acdSHeiko Stuebner		vcc1-supply = <&vcc5v0_sys>;
199*56198acdSHeiko Stuebner		vcc2-supply = <&vcc5v0_sys>;
200*56198acdSHeiko Stuebner		vcc3-supply = <&vcc5v0_sys>;
201*56198acdSHeiko Stuebner		vcc4-supply = <&vcc5v0_sys>;
202*56198acdSHeiko Stuebner		vcc5-supply = <&vcc_3v3>;
203*56198acdSHeiko Stuebner		vcc6-supply = <&vcc_3v3>;
204*56198acdSHeiko Stuebner		vcc7-supply = <&vcc_3v3>;
205*56198acdSHeiko Stuebner		vcc9-supply = <&vcc5v0_sys>;
206*56198acdSHeiko Stuebner
207*56198acdSHeiko Stuebner		regulators {
208*56198acdSHeiko Stuebner			vdd_log: DCDC_REG1 {
209*56198acdSHeiko Stuebner				regulator-name = "vdd_log";
210*56198acdSHeiko Stuebner				regulator-always-on;
211*56198acdSHeiko Stuebner				regulator-boot-on;
212*56198acdSHeiko Stuebner				regulator-min-microvolt = <950000>;
213*56198acdSHeiko Stuebner				regulator-max-microvolt = <1350000>;
214*56198acdSHeiko Stuebner				regulator-ramp-delay = <6001>;
215*56198acdSHeiko Stuebner
216*56198acdSHeiko Stuebner				regulator-state-mem {
217*56198acdSHeiko Stuebner					regulator-on-in-suspend;
218*56198acdSHeiko Stuebner					regulator-suspend-microvolt = <950000>;
219*56198acdSHeiko Stuebner				};
220*56198acdSHeiko Stuebner			};
221*56198acdSHeiko Stuebner
222*56198acdSHeiko Stuebner			vdd_arm: DCDC_REG2 {
223*56198acdSHeiko Stuebner				regulator-name = "vdd_arm";
224*56198acdSHeiko Stuebner				regulator-always-on;
225*56198acdSHeiko Stuebner				regulator-boot-on;
226*56198acdSHeiko Stuebner				regulator-min-microvolt = <950000>;
227*56198acdSHeiko Stuebner				regulator-max-microvolt = <1350000>;
228*56198acdSHeiko Stuebner				regulator-ramp-delay = <6001>;
229*56198acdSHeiko Stuebner
230*56198acdSHeiko Stuebner				regulator-state-mem {
231*56198acdSHeiko Stuebner					regulator-off-in-suspend;
232*56198acdSHeiko Stuebner					regulator-suspend-microvolt = <950000>;
233*56198acdSHeiko Stuebner				};
234*56198acdSHeiko Stuebner			};
235*56198acdSHeiko Stuebner
236*56198acdSHeiko Stuebner			vcc_ddr: DCDC_REG3 {
237*56198acdSHeiko Stuebner				regulator-name = "vcc_ddr";
238*56198acdSHeiko Stuebner				regulator-always-on;
239*56198acdSHeiko Stuebner				regulator-boot-on;
240*56198acdSHeiko Stuebner
241*56198acdSHeiko Stuebner				regulator-state-mem {
242*56198acdSHeiko Stuebner					regulator-on-in-suspend;
243*56198acdSHeiko Stuebner				};
244*56198acdSHeiko Stuebner			};
245*56198acdSHeiko Stuebner
246*56198acdSHeiko Stuebner			vcc_3v0_1v8: vcc_emmc: DCDC_REG4 {
247*56198acdSHeiko Stuebner				regulator-name = "vcc_3v0_1v8";
248*56198acdSHeiko Stuebner				regulator-always-on;
249*56198acdSHeiko Stuebner				regulator-boot-on;
250*56198acdSHeiko Stuebner				regulator-min-microvolt = <3000000>;
251*56198acdSHeiko Stuebner				regulator-max-microvolt = <3000000>;
252*56198acdSHeiko Stuebner
253*56198acdSHeiko Stuebner				regulator-state-mem {
254*56198acdSHeiko Stuebner					regulator-on-in-suspend;
255*56198acdSHeiko Stuebner					regulator-suspend-microvolt = <3000000>;
256*56198acdSHeiko Stuebner				};
257*56198acdSHeiko Stuebner			};
258*56198acdSHeiko Stuebner
259*56198acdSHeiko Stuebner			vcc_3v3: DCDC_REG5 {
260*56198acdSHeiko Stuebner				regulator-name = "vcc_3v3";
261*56198acdSHeiko Stuebner				regulator-always-on;
262*56198acdSHeiko Stuebner				regulator-boot-on;
263*56198acdSHeiko Stuebner				regulator-min-microvolt = <3300000>;
264*56198acdSHeiko Stuebner				regulator-max-microvolt = <3300000>;
265*56198acdSHeiko Stuebner
266*56198acdSHeiko Stuebner				regulator-state-mem {
267*56198acdSHeiko Stuebner					regulator-on-in-suspend;
268*56198acdSHeiko Stuebner					regulator-suspend-microvolt = <3300000>;
269*56198acdSHeiko Stuebner				};
270*56198acdSHeiko Stuebner			};
271*56198acdSHeiko Stuebner
272*56198acdSHeiko Stuebner			vcc_1v8: LDO_REG2 {
273*56198acdSHeiko Stuebner				regulator-name = "vcc_1v8";
274*56198acdSHeiko Stuebner				regulator-always-on;
275*56198acdSHeiko Stuebner				regulator-boot-on;
276*56198acdSHeiko Stuebner				regulator-min-microvolt = <1800000>;
277*56198acdSHeiko Stuebner				regulator-max-microvolt = <1800000>;
278*56198acdSHeiko Stuebner
279*56198acdSHeiko Stuebner				regulator-state-mem {
280*56198acdSHeiko Stuebner					regulator-on-in-suspend;
281*56198acdSHeiko Stuebner					regulator-suspend-microvolt = <1800000>;
282*56198acdSHeiko Stuebner				};
283*56198acdSHeiko Stuebner			};
284*56198acdSHeiko Stuebner
285*56198acdSHeiko Stuebner			vcc_1v0: LDO_REG3 {
286*56198acdSHeiko Stuebner				regulator-name = "vcc_1v0";
287*56198acdSHeiko Stuebner				regulator-always-on;
288*56198acdSHeiko Stuebner				regulator-boot-on;
289*56198acdSHeiko Stuebner				regulator-min-microvolt = <1000000>;
290*56198acdSHeiko Stuebner				regulator-max-microvolt = <1000000>;
291*56198acdSHeiko Stuebner
292*56198acdSHeiko Stuebner				regulator-state-mem {
293*56198acdSHeiko Stuebner					regulator-on-in-suspend;
294*56198acdSHeiko Stuebner					regulator-suspend-microvolt = <1000000>;
295*56198acdSHeiko Stuebner				};
296*56198acdSHeiko Stuebner			};
297*56198acdSHeiko Stuebner
298*56198acdSHeiko Stuebner			vcc_2v8: LDO_REG4 {
299*56198acdSHeiko Stuebner				regulator-name = "vcc_2v8";
300*56198acdSHeiko Stuebner				regulator-always-on;
301*56198acdSHeiko Stuebner				regulator-boot-on;
302*56198acdSHeiko Stuebner				regulator-min-microvolt = <2800000>;
303*56198acdSHeiko Stuebner				regulator-max-microvolt = <2800000>;
304*56198acdSHeiko Stuebner
305*56198acdSHeiko Stuebner				regulator-state-mem {
306*56198acdSHeiko Stuebner					regulator-off-in-suspend;
307*56198acdSHeiko Stuebner					regulator-suspend-microvolt = <2800000>;
308*56198acdSHeiko Stuebner				};
309*56198acdSHeiko Stuebner			};
310*56198acdSHeiko Stuebner
311*56198acdSHeiko Stuebner			vccio_sd: LDO_REG5 {
312*56198acdSHeiko Stuebner				regulator-name = "vccio_sd";
313*56198acdSHeiko Stuebner				regulator-always-on;
314*56198acdSHeiko Stuebner				regulator-boot-on;
315*56198acdSHeiko Stuebner				regulator-min-microvolt = <3000000>;
316*56198acdSHeiko Stuebner				regulator-max-microvolt = <3000000>;
317*56198acdSHeiko Stuebner
318*56198acdSHeiko Stuebner				regulator-state-mem {
319*56198acdSHeiko Stuebner					regulator-on-in-suspend;
320*56198acdSHeiko Stuebner					regulator-suspend-microvolt = <3000000>;
321*56198acdSHeiko Stuebner				};
322*56198acdSHeiko Stuebner			};
323*56198acdSHeiko Stuebner
324*56198acdSHeiko Stuebner			vcc_sdio: LDO_REG6 {
325*56198acdSHeiko Stuebner				regulator-name = "vcc_sdio";
326*56198acdSHeiko Stuebner				regulator-always-on;
327*56198acdSHeiko Stuebner				regulator-boot-on;
328*56198acdSHeiko Stuebner				regulator-min-microvolt = <1800000>;
329*56198acdSHeiko Stuebner				regulator-max-microvolt = <1800000>;
330*56198acdSHeiko Stuebner
331*56198acdSHeiko Stuebner				regulator-state-mem {
332*56198acdSHeiko Stuebner					regulator-on-in-suspend;
333*56198acdSHeiko Stuebner					regulator-suspend-microvolt = <1800000>;
334*56198acdSHeiko Stuebner				};
335*56198acdSHeiko Stuebner			};
336*56198acdSHeiko Stuebner
337*56198acdSHeiko Stuebner			vcc_lcd: LDO_REG7 {
338*56198acdSHeiko Stuebner				regulator-name = "vcc_lcd";
339*56198acdSHeiko Stuebner				regulator-always-on;
340*56198acdSHeiko Stuebner				regulator-boot-on;
341*56198acdSHeiko Stuebner				regulator-min-microvolt = <1000000>;
342*56198acdSHeiko Stuebner				regulator-max-microvolt = <1000000>;
343*56198acdSHeiko Stuebner
344*56198acdSHeiko Stuebner				regulator-state-mem {
345*56198acdSHeiko Stuebner					regulator-off-in-suspend;
346*56198acdSHeiko Stuebner					regulator-suspend-microvolt = <1000000>;
347*56198acdSHeiko Stuebner				};
348*56198acdSHeiko Stuebner			};
349*56198acdSHeiko Stuebner
350*56198acdSHeiko Stuebner			vcc_1v8_lcd: LDO_REG8 {
351*56198acdSHeiko Stuebner				regulator-name = "vcc_1v8_lcd";
352*56198acdSHeiko Stuebner				regulator-always-on;
353*56198acdSHeiko Stuebner				regulator-boot-on;
354*56198acdSHeiko Stuebner				regulator-min-microvolt = <1800000>;
355*56198acdSHeiko Stuebner				regulator-max-microvolt = <1800000>;
356*56198acdSHeiko Stuebner
357*56198acdSHeiko Stuebner				regulator-state-mem {
358*56198acdSHeiko Stuebner					regulator-on-in-suspend;
359*56198acdSHeiko Stuebner					regulator-suspend-microvolt = <1800000>;
360*56198acdSHeiko Stuebner				};
361*56198acdSHeiko Stuebner			};
362*56198acdSHeiko Stuebner
363*56198acdSHeiko Stuebner			vcca_1v8: LDO_REG9 {
364*56198acdSHeiko Stuebner				regulator-name = "vcca_1v8";
365*56198acdSHeiko Stuebner				regulator-always-on;
366*56198acdSHeiko Stuebner				regulator-boot-on;
367*56198acdSHeiko Stuebner				regulator-min-microvolt = <1800000>;
368*56198acdSHeiko Stuebner				regulator-max-microvolt = <1800000>;
369*56198acdSHeiko Stuebner
370*56198acdSHeiko Stuebner				regulator-state-mem {
371*56198acdSHeiko Stuebner					regulator-off-in-suspend;
372*56198acdSHeiko Stuebner					regulator-suspend-microvolt = <1800000>;
373*56198acdSHeiko Stuebner				};
374*56198acdSHeiko Stuebner			};
375*56198acdSHeiko Stuebner		};
376*56198acdSHeiko Stuebner	};
377*56198acdSHeiko Stuebner};
378*56198acdSHeiko Stuebner
379*56198acdSHeiko Stuebner&i2c1 {
380*56198acdSHeiko Stuebner	clock-frequency = <100000>;
381*56198acdSHeiko Stuebner	status = "okay";
382*56198acdSHeiko Stuebner};
383*56198acdSHeiko Stuebner
384*56198acdSHeiko Stuebner/* I2C2 = Accelerometer + Camera */
385*56198acdSHeiko Stuebner&i2c2 {
386*56198acdSHeiko Stuebner	/* MEMSIC MXC4005 accelerometer is rated for I2C Fast Mode (<=400KHz) */
387*56198acdSHeiko Stuebner	/* OmniVision OV5675 camera is rated for I2C Fast Mode (<=400KHz) */
388*56198acdSHeiko Stuebner	clock-frequency = <400000>;
389*56198acdSHeiko Stuebner	status = "okay";
390*56198acdSHeiko Stuebner
391*56198acdSHeiko Stuebner	focus: focus@c {
392*56198acdSHeiko Stuebner		compatible = "dongwoon,dw9714";
393*56198acdSHeiko Stuebner		reg = <0xc>;
394*56198acdSHeiko Stuebner		vcc-supply = <&vcc_lens_afvdd>;
395*56198acdSHeiko Stuebner	};
396*56198acdSHeiko Stuebner
397*56198acdSHeiko Stuebner	accel@15 {
398*56198acdSHeiko Stuebner		compatible = "memsic,mxc4005";
399*56198acdSHeiko Stuebner		reg = <0x15>;
400*56198acdSHeiko Stuebner		interrupt-parent = <&gpio2>;
401*56198acdSHeiko Stuebner		interrupts = <RK_PB4 IRQ_TYPE_LEVEL_LOW>;
402*56198acdSHeiko Stuebner		pinctrl-names = "default";
403*56198acdSHeiko Stuebner		pinctrl-0 = <&accel_int>;
404*56198acdSHeiko Stuebner	};
405*56198acdSHeiko Stuebner
406*56198acdSHeiko Stuebner	camera@36 {
407*56198acdSHeiko Stuebner		compatible = "ovti,ov5675";
408*56198acdSHeiko Stuebner		reg = <0x36>;
409*56198acdSHeiko Stuebner		clocks = <&cru SCLK_CIF_OUT>;
410*56198acdSHeiko Stuebner		assigned-clocks = <&cru SCLK_CIF_OUT>;
411*56198acdSHeiko Stuebner		assigned-clock-rates = <19200000>;
412*56198acdSHeiko Stuebner		avdd-supply = <&vcc_cam_avdd>;
413*56198acdSHeiko Stuebner		dvdd-supply = <&vcc_cam_dvdd>;
414*56198acdSHeiko Stuebner		dovdd-supply = <&vcc_cam_dovdd>;
415*56198acdSHeiko Stuebner		lens-focus = <&focus>;
416*56198acdSHeiko Stuebner		orientation = <0>;
417*56198acdSHeiko Stuebner		pinctrl-names = "default";
418*56198acdSHeiko Stuebner		pinctrl-0 = <&cif_clkout_m0 &cam_pwdn>;
419*56198acdSHeiko Stuebner		reset-gpios = <&gpio2 RK_PB0 GPIO_ACTIVE_LOW>;
420*56198acdSHeiko Stuebner		rotation = <0>;
421*56198acdSHeiko Stuebner
422*56198acdSHeiko Stuebner		port {
423*56198acdSHeiko Stuebner			ucam_out: endpoint {
424*56198acdSHeiko Stuebner				remote-endpoint = <&mipi_in_ucam>;
425*56198acdSHeiko Stuebner				data-lanes = <1 2>;
426*56198acdSHeiko Stuebner				link-frequencies = /bits/ 64 <450000000>;
427*56198acdSHeiko Stuebner			};
428*56198acdSHeiko Stuebner		};
429*56198acdSHeiko Stuebner	};
430*56198acdSHeiko Stuebner};
431*56198acdSHeiko Stuebner
432*56198acdSHeiko Stuebner&io_domains {
433*56198acdSHeiko Stuebner	vccio1-supply = <&vcc_sdio>;
434*56198acdSHeiko Stuebner	vccio2-supply = <&vccio_sd>;
435*56198acdSHeiko Stuebner	vccio3-supply = <&vcc_1v8>;
436*56198acdSHeiko Stuebner	vccio4-supply = <&vcc_3v3>;
437*56198acdSHeiko Stuebner	vccio5-supply = <&vcc_3v3>;
438*56198acdSHeiko Stuebner	vccio6-supply = <&vcc_emmc>;
439*56198acdSHeiko Stuebner	status = "okay";
440*56198acdSHeiko Stuebner};
441*56198acdSHeiko Stuebner
442*56198acdSHeiko Stuebner&isp {
443*56198acdSHeiko Stuebner	status = "okay";
444*56198acdSHeiko Stuebner
445*56198acdSHeiko Stuebner	ports {
446*56198acdSHeiko Stuebner		port@0 {
447*56198acdSHeiko Stuebner			mipi_in_ucam: endpoint {
448*56198acdSHeiko Stuebner				data-lanes = <1 2>;
449*56198acdSHeiko Stuebner				remote-endpoint = <&ucam_out>;
450*56198acdSHeiko Stuebner			};
451*56198acdSHeiko Stuebner		};
452*56198acdSHeiko Stuebner	};
453*56198acdSHeiko Stuebner};
454*56198acdSHeiko Stuebner
455*56198acdSHeiko Stuebner&isp_mmu {
456*56198acdSHeiko Stuebner	status = "okay";
457*56198acdSHeiko Stuebner};
458*56198acdSHeiko Stuebner
459*56198acdSHeiko Stuebner&pinctrl {
460*56198acdSHeiko Stuebner	accel {
461*56198acdSHeiko Stuebner		accel_int: accel-int {
462*56198acdSHeiko Stuebner			rockchip,pins =
463*56198acdSHeiko Stuebner				<2 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>;
464*56198acdSHeiko Stuebner		};
465*56198acdSHeiko Stuebner	};
466*56198acdSHeiko Stuebner
467*56198acdSHeiko Stuebner	camera {
468*56198acdSHeiko Stuebner		cam_afvdd_en: cam-afvdd-en {
469*56198acdSHeiko Stuebner			rockchip,pins =
470*56198acdSHeiko Stuebner				<3 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
471*56198acdSHeiko Stuebner		};
472*56198acdSHeiko Stuebner
473*56198acdSHeiko Stuebner		cam_avdd_en: cam-avdd-en {
474*56198acdSHeiko Stuebner			rockchip,pins =
475*56198acdSHeiko Stuebner				<3 RK_PC0 RK_FUNC_GPIO &pcfg_pull_none>;
476*56198acdSHeiko Stuebner		};
477*56198acdSHeiko Stuebner
478*56198acdSHeiko Stuebner		cam_dovdd_en: cam-dovdd-en {
479*56198acdSHeiko Stuebner			rockchip,pins =
480*56198acdSHeiko Stuebner				<3 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>;
481*56198acdSHeiko Stuebner		};
482*56198acdSHeiko Stuebner
483*56198acdSHeiko Stuebner		cam_dvdd_en: cam-dvdd-en {
484*56198acdSHeiko Stuebner			rockchip,pins =
485*56198acdSHeiko Stuebner				<3 RK_PC5 RK_FUNC_GPIO &pcfg_pull_none>;
486*56198acdSHeiko Stuebner		};
487*56198acdSHeiko Stuebner
488*56198acdSHeiko Stuebner		cam_pwdn: cam-pwdn {
489*56198acdSHeiko Stuebner			rockchip,pins =
490*56198acdSHeiko Stuebner				<2 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>;
491*56198acdSHeiko Stuebner		};
492*56198acdSHeiko Stuebner	};
493*56198acdSHeiko Stuebner
494*56198acdSHeiko Stuebner	emmc {
495*56198acdSHeiko Stuebner		emmc_reset: emmc-reset {
496*56198acdSHeiko Stuebner			rockchip,pins =
497*56198acdSHeiko Stuebner				<1 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
498*56198acdSHeiko Stuebner		};
499*56198acdSHeiko Stuebner	};
500*56198acdSHeiko Stuebner
501*56198acdSHeiko Stuebner	leds {
502*56198acdSHeiko Stuebner		debug_led_pin: debug-led-pin {
503*56198acdSHeiko Stuebner			rockchip,pins =
504*56198acdSHeiko Stuebner				<3 RK_PC3 RK_FUNC_GPIO &pcfg_pull_none>;
505*56198acdSHeiko Stuebner		};
506*56198acdSHeiko Stuebner
507*56198acdSHeiko Stuebner		heartbeat_led_pin: heartbeat-led-pin {
508*56198acdSHeiko Stuebner			rockchip,pins =
509*56198acdSHeiko Stuebner				<0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>;
510*56198acdSHeiko Stuebner		};
511*56198acdSHeiko Stuebner	};
512*56198acdSHeiko Stuebner
513*56198acdSHeiko Stuebner	panel {
514*56198acdSHeiko Stuebner		dsp_rst: dsp-rst {
515*56198acdSHeiko Stuebner			rockchip,pins =
516*56198acdSHeiko Stuebner				<0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_down>;
517*56198acdSHeiko Stuebner		};
518*56198acdSHeiko Stuebner
519*56198acdSHeiko Stuebner		tch_int: tch-int {
520*56198acdSHeiko Stuebner			rockchip,pins =
521*56198acdSHeiko Stuebner				<0 RK_PA1 RK_FUNC_GPIO &pcfg_pull_none>;
522*56198acdSHeiko Stuebner		};
523*56198acdSHeiko Stuebner
524*56198acdSHeiko Stuebner		tch_rst: tch-rst {
525*56198acdSHeiko Stuebner			rockchip,pins =
526*56198acdSHeiko Stuebner				<0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
527*56198acdSHeiko Stuebner		};
528*56198acdSHeiko Stuebner	};
529*56198acdSHeiko Stuebner
530*56198acdSHeiko Stuebner	pmic {
531*56198acdSHeiko Stuebner		pmic_int: pmic-int {
532*56198acdSHeiko Stuebner			rockchip,pins =
533*56198acdSHeiko Stuebner				<0 RK_PA7 RK_FUNC_GPIO &pcfg_pull_up>;
534*56198acdSHeiko Stuebner		};
535*56198acdSHeiko Stuebner	};
536*56198acdSHeiko Stuebner};
537*56198acdSHeiko Stuebner
538*56198acdSHeiko Stuebner&pmu_io_domains {
539*56198acdSHeiko Stuebner	pmuio1-supply = <&vcc_3v3>;
540*56198acdSHeiko Stuebner	pmuio2-supply = <&vcc_3v3>;
541*56198acdSHeiko Stuebner	status = "okay";
542*56198acdSHeiko Stuebner};
543*56198acdSHeiko Stuebner
544*56198acdSHeiko Stuebner&pwm0 {
545*56198acdSHeiko Stuebner	status = "okay";
546*56198acdSHeiko Stuebner};
547*56198acdSHeiko Stuebner
548*56198acdSHeiko Stuebner&pwm1 {
549*56198acdSHeiko Stuebner	status = "okay";
550*56198acdSHeiko Stuebner};
551*56198acdSHeiko Stuebner
552*56198acdSHeiko Stuebner&saradc {
553*56198acdSHeiko Stuebner	vref-supply = <&vcc_1v8>;
554*56198acdSHeiko Stuebner	status = "okay";
555*56198acdSHeiko Stuebner};
556*56198acdSHeiko Stuebner
557*56198acdSHeiko Stuebner&tsadc {
558*56198acdSHeiko Stuebner	status = "okay";
559*56198acdSHeiko Stuebner};
560*56198acdSHeiko Stuebner
561*56198acdSHeiko Stuebner&u2phy {
562*56198acdSHeiko Stuebner	status = "okay";
563*56198acdSHeiko Stuebner};
564*56198acdSHeiko Stuebner
565*56198acdSHeiko Stuebner&u2phy_host {
566*56198acdSHeiko Stuebner	status = "okay";
567*56198acdSHeiko Stuebner};
568*56198acdSHeiko Stuebner
569*56198acdSHeiko Stuebner&u2phy_otg {
570*56198acdSHeiko Stuebner	status = "okay";
571*56198acdSHeiko Stuebner};
572*56198acdSHeiko Stuebner
573*56198acdSHeiko Stuebner&uart5 {
574*56198acdSHeiko Stuebner	pinctrl-0 = <&uart5_xfer>;
575*56198acdSHeiko Stuebner	status = "okay";
576*56198acdSHeiko Stuebner};
577*56198acdSHeiko Stuebner
578*56198acdSHeiko Stuebner&usb20_otg {
579*56198acdSHeiko Stuebner	dr_mode = "peripheral";
580*56198acdSHeiko Stuebner	status = "okay";
581*56198acdSHeiko Stuebner};
582*56198acdSHeiko Stuebner
583*56198acdSHeiko Stuebner&usb_host0_ehci {
584*56198acdSHeiko Stuebner	status = "okay";
585*56198acdSHeiko Stuebner};
586*56198acdSHeiko Stuebner
587*56198acdSHeiko Stuebner&usb_host0_ohci {
588*56198acdSHeiko Stuebner	status = "okay";
589*56198acdSHeiko Stuebner};
590*56198acdSHeiko Stuebner
591*56198acdSHeiko Stuebner&vopb {
592*56198acdSHeiko Stuebner	status = "okay";
593*56198acdSHeiko Stuebner};
594*56198acdSHeiko Stuebner
595*56198acdSHeiko Stuebner&vopb_mmu {
596*56198acdSHeiko Stuebner	status = "okay";
597*56198acdSHeiko Stuebner};
598*56198acdSHeiko Stuebner
599*56198acdSHeiko Stuebner&wdt {
600*56198acdSHeiko Stuebner	status = "okay";
601*56198acdSHeiko Stuebner};
602*56198acdSHeiko Stuebner