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