xref: /freebsd-src/sys/contrib/device-tree/src/arm64/rockchip/px30-evb.dts (revision 8d13bc63c0e1d50bc9e47ac1f26329c999bfecf0)
1c66ec88fSEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2c66ec88fSEmmanuel Vadot/*
3c66ec88fSEmmanuel Vadot * Copyright (c) 2018 Fuzhou Rockchip Electronics Co., Ltd
4c66ec88fSEmmanuel Vadot */
5c66ec88fSEmmanuel Vadot
6c66ec88fSEmmanuel Vadot/dts-v1/;
7c66ec88fSEmmanuel Vadot#include <dt-bindings/gpio/gpio.h>
8c66ec88fSEmmanuel Vadot#include <dt-bindings/input/input.h>
9c66ec88fSEmmanuel Vadot#include <dt-bindings/pinctrl/rockchip.h>
10c66ec88fSEmmanuel Vadot#include "px30.dtsi"
11c66ec88fSEmmanuel Vadot
12c66ec88fSEmmanuel Vadot/ {
13c66ec88fSEmmanuel Vadot	model = "Rockchip PX30 EVB";
14c66ec88fSEmmanuel Vadot	compatible = "rockchip,px30-evb", "rockchip,px30";
15c66ec88fSEmmanuel Vadot
162eb4d8dcSEmmanuel Vadot	aliases {
17*8d13bc63SEmmanuel Vadot		ethernet0 = &gmac;
182eb4d8dcSEmmanuel Vadot		mmc0 = &sdmmc;
192eb4d8dcSEmmanuel Vadot		mmc1 = &sdio;
202eb4d8dcSEmmanuel Vadot		mmc2 = &emmc;
212eb4d8dcSEmmanuel Vadot	};
222eb4d8dcSEmmanuel Vadot
23c66ec88fSEmmanuel Vadot	chosen {
24c66ec88fSEmmanuel Vadot		stdout-path = "serial5:115200n8";
25c66ec88fSEmmanuel Vadot	};
26c66ec88fSEmmanuel Vadot
27c66ec88fSEmmanuel Vadot	adc-keys {
28c66ec88fSEmmanuel Vadot		compatible = "adc-keys";
29c66ec88fSEmmanuel Vadot		io-channels = <&saradc 2>;
30c66ec88fSEmmanuel Vadot		io-channel-names = "buttons";
31c66ec88fSEmmanuel Vadot		keyup-threshold-microvolt = <1800000>;
32c66ec88fSEmmanuel Vadot		poll-interval = <100>;
33c66ec88fSEmmanuel Vadot
347ef62cebSEmmanuel Vadot		button-esc {
35c66ec88fSEmmanuel Vadot			label = "esc";
36c66ec88fSEmmanuel Vadot			linux,code = <KEY_ESC>;
37c66ec88fSEmmanuel Vadot			press-threshold-microvolt = <1310000>;
38c66ec88fSEmmanuel Vadot		};
39c66ec88fSEmmanuel Vadot
407ef62cebSEmmanuel Vadot		button-home {
41c66ec88fSEmmanuel Vadot			label = "home";
42c66ec88fSEmmanuel Vadot			linux,code = <KEY_HOME>;
43c66ec88fSEmmanuel Vadot			press-threshold-microvolt = <624000>;
44c66ec88fSEmmanuel Vadot		};
45c66ec88fSEmmanuel Vadot
467ef62cebSEmmanuel Vadot		button-menu {
47c66ec88fSEmmanuel Vadot			label = "menu";
48c66ec88fSEmmanuel Vadot			linux,code = <KEY_MENU>;
49c66ec88fSEmmanuel Vadot			press-threshold-microvolt = <987000>;
50c66ec88fSEmmanuel Vadot		};
51c66ec88fSEmmanuel Vadot
527ef62cebSEmmanuel Vadot		button-down {
53c66ec88fSEmmanuel Vadot			label = "volume down";
54c66ec88fSEmmanuel Vadot			linux,code = <KEY_VOLUMEDOWN>;
55c66ec88fSEmmanuel Vadot			press-threshold-microvolt = <300000>;
56c66ec88fSEmmanuel Vadot		};
57c66ec88fSEmmanuel Vadot
587ef62cebSEmmanuel Vadot		button-up {
59c66ec88fSEmmanuel Vadot			label = "volume up";
60c66ec88fSEmmanuel Vadot			linux,code = <KEY_VOLUMEUP>;
61c66ec88fSEmmanuel Vadot			press-threshold-microvolt = <17000>;
62c66ec88fSEmmanuel Vadot		};
63c66ec88fSEmmanuel Vadot	};
64c66ec88fSEmmanuel Vadot
65c66ec88fSEmmanuel Vadot	backlight: backlight {
66c66ec88fSEmmanuel Vadot		compatible = "pwm-backlight";
67c66ec88fSEmmanuel Vadot		pwms = <&pwm1 0 25000 0>;
68c66ec88fSEmmanuel Vadot		power-supply = <&vcc3v3_lcd>;
69c66ec88fSEmmanuel Vadot	};
70c66ec88fSEmmanuel Vadot
71c66ec88fSEmmanuel Vadot	emmc_pwrseq: emmc-pwrseq {
72c66ec88fSEmmanuel Vadot		compatible = "mmc-pwrseq-emmc";
73c66ec88fSEmmanuel Vadot		pinctrl-0 = <&emmc_reset>;
74c66ec88fSEmmanuel Vadot		pinctrl-names = "default";
75c66ec88fSEmmanuel Vadot		reset-gpios = <&gpio1 RK_PB3 GPIO_ACTIVE_HIGH>;
76c66ec88fSEmmanuel Vadot	};
77c66ec88fSEmmanuel Vadot
78c66ec88fSEmmanuel Vadot	sdio_pwrseq: sdio-pwrseq {
79c66ec88fSEmmanuel Vadot		compatible = "mmc-pwrseq-simple";
80c66ec88fSEmmanuel Vadot		pinctrl-names = "default";
81c66ec88fSEmmanuel Vadot		pinctrl-0 = <&wifi_enable_h>;
82c66ec88fSEmmanuel Vadot
83c66ec88fSEmmanuel Vadot		/*
84c66ec88fSEmmanuel Vadot		 * On the module itself this is one of these (depending
85c66ec88fSEmmanuel Vadot		 * on the actual card populated):
86c66ec88fSEmmanuel Vadot		 * - SDIO_RESET_L_WL_REG_ON
87c66ec88fSEmmanuel Vadot		 * - PDN (power down when low)
88c66ec88fSEmmanuel Vadot		 */
89c66ec88fSEmmanuel Vadot		reset-gpios = <&gpio0 RK_PA2 GPIO_ACTIVE_LOW>; /* GPIO3_A4 */
90c66ec88fSEmmanuel Vadot	};
91c66ec88fSEmmanuel Vadot
92c66ec88fSEmmanuel Vadot	vcc5v0_sys: vccsys {
93c66ec88fSEmmanuel Vadot		compatible = "regulator-fixed";
94c66ec88fSEmmanuel Vadot		regulator-name = "vcc5v0_sys";
95c66ec88fSEmmanuel Vadot		regulator-always-on;
96c66ec88fSEmmanuel Vadot		regulator-boot-on;
97c66ec88fSEmmanuel Vadot		regulator-min-microvolt = <5000000>;
98c66ec88fSEmmanuel Vadot		regulator-max-microvolt = <5000000>;
99c66ec88fSEmmanuel Vadot	};
100c66ec88fSEmmanuel Vadot};
101c66ec88fSEmmanuel Vadot
102c66ec88fSEmmanuel Vadot&cpu0 {
103c66ec88fSEmmanuel Vadot	cpu-supply = <&vdd_arm>;
104c66ec88fSEmmanuel Vadot};
105c66ec88fSEmmanuel Vadot
106c66ec88fSEmmanuel Vadot&cpu1 {
107c66ec88fSEmmanuel Vadot	cpu-supply = <&vdd_arm>;
108c66ec88fSEmmanuel Vadot};
109c66ec88fSEmmanuel Vadot
110c66ec88fSEmmanuel Vadot&cpu2 {
111c66ec88fSEmmanuel Vadot	cpu-supply = <&vdd_arm>;
112c66ec88fSEmmanuel Vadot};
113c66ec88fSEmmanuel Vadot
114c66ec88fSEmmanuel Vadot&cpu3 {
115c66ec88fSEmmanuel Vadot	cpu-supply = <&vdd_arm>;
116c66ec88fSEmmanuel Vadot};
117c66ec88fSEmmanuel Vadot
1188cc087a1SEmmanuel Vadot&csi_dphy {
1198cc087a1SEmmanuel Vadot	status = "okay";
1208cc087a1SEmmanuel Vadot};
1218cc087a1SEmmanuel Vadot
122c66ec88fSEmmanuel Vadot&display_subsystem {
123c66ec88fSEmmanuel Vadot	status = "okay";
124c66ec88fSEmmanuel Vadot};
125c66ec88fSEmmanuel Vadot
126c66ec88fSEmmanuel Vadot&dsi {
127c66ec88fSEmmanuel Vadot	status = "okay";
128c66ec88fSEmmanuel Vadot
129c66ec88fSEmmanuel Vadot	ports {
130c66ec88fSEmmanuel Vadot		mipi_out: port@1 {
131c66ec88fSEmmanuel Vadot			reg = <1>;
132c66ec88fSEmmanuel Vadot
133c66ec88fSEmmanuel Vadot			mipi_out_panel: endpoint {
134c66ec88fSEmmanuel Vadot				remote-endpoint = <&mipi_in_panel>;
135c66ec88fSEmmanuel Vadot			};
136c66ec88fSEmmanuel Vadot		};
137c66ec88fSEmmanuel Vadot	};
138c66ec88fSEmmanuel Vadot
139c66ec88fSEmmanuel Vadot	panel@0 {
140c66ec88fSEmmanuel Vadot		compatible = "xinpeng,xpp055c272";
141c66ec88fSEmmanuel Vadot		reg = <0>;
142c66ec88fSEmmanuel Vadot		backlight = <&backlight>;
143c66ec88fSEmmanuel Vadot		iovcc-supply = <&vcc_1v8>;
144c66ec88fSEmmanuel Vadot		vci-supply = <&vcc3v3_lcd>;
145c66ec88fSEmmanuel Vadot
146c66ec88fSEmmanuel Vadot		port {
147c66ec88fSEmmanuel Vadot			mipi_in_panel: endpoint {
148c66ec88fSEmmanuel Vadot				remote-endpoint = <&mipi_out_panel>;
149c66ec88fSEmmanuel Vadot			};
150c66ec88fSEmmanuel Vadot		};
151c66ec88fSEmmanuel Vadot	};
152c66ec88fSEmmanuel Vadot};
153c66ec88fSEmmanuel Vadot
154c66ec88fSEmmanuel Vadot&dsi_dphy {
155c66ec88fSEmmanuel Vadot	status = "okay";
156c66ec88fSEmmanuel Vadot};
157c66ec88fSEmmanuel Vadot
158c66ec88fSEmmanuel Vadot&emmc {
159c66ec88fSEmmanuel Vadot	cap-mmc-highspeed;
160c66ec88fSEmmanuel Vadot	mmc-hs200-1_8v;
161c66ec88fSEmmanuel Vadot	non-removable;
162c66ec88fSEmmanuel Vadot	mmc-pwrseq = <&emmc_pwrseq>;
163c66ec88fSEmmanuel Vadot	vmmc-supply = <&vcc_3v0>;
164c66ec88fSEmmanuel Vadot	vqmmc-supply = <&vccio_flash>;
165c66ec88fSEmmanuel Vadot	status = "okay";
166c66ec88fSEmmanuel Vadot};
167c66ec88fSEmmanuel Vadot
168c66ec88fSEmmanuel Vadot&gmac {
169c66ec88fSEmmanuel Vadot	clock_in_out = "output";
170c66ec88fSEmmanuel Vadot	phy-supply = <&vcc_rmii>;
171c66ec88fSEmmanuel Vadot	snps,reset-gpio = <&gpio2 13 GPIO_ACTIVE_LOW>;
172c66ec88fSEmmanuel Vadot	snps,reset-active-low;
173c66ec88fSEmmanuel Vadot	snps,reset-delays-us = <0 50000 50000>;
174c66ec88fSEmmanuel Vadot	status = "okay";
175c66ec88fSEmmanuel Vadot};
176c66ec88fSEmmanuel Vadot
177c66ec88fSEmmanuel Vadot&gpu {
178c66ec88fSEmmanuel Vadot	mali-supply = <&vdd_log>;
179c66ec88fSEmmanuel Vadot	status = "okay";
180c66ec88fSEmmanuel Vadot};
181c66ec88fSEmmanuel Vadot
182c66ec88fSEmmanuel Vadot&i2c0 {
183c66ec88fSEmmanuel Vadot	status = "okay";
184c66ec88fSEmmanuel Vadot
185c66ec88fSEmmanuel Vadot	rk809: pmic@20 {
186c66ec88fSEmmanuel Vadot		compatible = "rockchip,rk809";
187c66ec88fSEmmanuel Vadot		reg = <0x20>;
188c66ec88fSEmmanuel Vadot		interrupt-parent = <&gpio0>;
189c66ec88fSEmmanuel Vadot		interrupts = <7 IRQ_TYPE_LEVEL_LOW>;
190c66ec88fSEmmanuel Vadot		pinctrl-names = "default";
191c66ec88fSEmmanuel Vadot		pinctrl-0 = <&pmic_int>;
192c66ec88fSEmmanuel Vadot		rockchip,system-power-controller;
193c66ec88fSEmmanuel Vadot		wakeup-source;
194c66ec88fSEmmanuel Vadot		#clock-cells = <0>;
195c66ec88fSEmmanuel Vadot		clock-output-names = "xin32k";
196c66ec88fSEmmanuel Vadot
197c66ec88fSEmmanuel Vadot		vcc1-supply = <&vcc5v0_sys>;
198c66ec88fSEmmanuel Vadot		vcc2-supply = <&vcc5v0_sys>;
199c66ec88fSEmmanuel Vadot		vcc3-supply = <&vcc5v0_sys>;
200c66ec88fSEmmanuel Vadot		vcc4-supply = <&vcc5v0_sys>;
201c66ec88fSEmmanuel Vadot		vcc5-supply = <&vcc3v3_sys>;
202c66ec88fSEmmanuel Vadot		vcc6-supply = <&vcc3v3_sys>;
203c66ec88fSEmmanuel Vadot		vcc7-supply = <&vcc3v3_sys>;
204c66ec88fSEmmanuel Vadot		vcc8-supply = <&vcc3v3_sys>;
205c66ec88fSEmmanuel Vadot		vcc9-supply = <&vcc5v0_sys>;
206c66ec88fSEmmanuel Vadot
207c66ec88fSEmmanuel Vadot		regulators {
208c66ec88fSEmmanuel Vadot			vdd_log: DCDC_REG1 {
209c66ec88fSEmmanuel Vadot				regulator-name = "vdd_log";
210c66ec88fSEmmanuel Vadot				regulator-min-microvolt = <950000>;
211c66ec88fSEmmanuel Vadot				regulator-max-microvolt = <1350000>;
212c66ec88fSEmmanuel Vadot				regulator-ramp-delay = <6001>;
213c66ec88fSEmmanuel Vadot				regulator-always-on;
214c66ec88fSEmmanuel Vadot				regulator-boot-on;
215c66ec88fSEmmanuel Vadot
216c66ec88fSEmmanuel Vadot				regulator-state-mem {
217c66ec88fSEmmanuel Vadot					regulator-on-in-suspend;
218c66ec88fSEmmanuel Vadot					regulator-suspend-microvolt = <950000>;
219c66ec88fSEmmanuel Vadot				};
220c66ec88fSEmmanuel Vadot			};
221c66ec88fSEmmanuel Vadot
222c66ec88fSEmmanuel Vadot			vdd_arm: DCDC_REG2 {
223c66ec88fSEmmanuel Vadot				regulator-name = "vdd_arm";
224c66ec88fSEmmanuel Vadot				regulator-min-microvolt = <950000>;
225c66ec88fSEmmanuel Vadot				regulator-max-microvolt = <1350000>;
226c66ec88fSEmmanuel Vadot				regulator-ramp-delay = <6001>;
227c66ec88fSEmmanuel Vadot				regulator-always-on;
228c66ec88fSEmmanuel Vadot				regulator-boot-on;
229c66ec88fSEmmanuel Vadot
230c66ec88fSEmmanuel Vadot				regulator-state-mem {
231c66ec88fSEmmanuel Vadot					regulator-off-in-suspend;
232c66ec88fSEmmanuel Vadot					regulator-suspend-microvolt = <950000>;
233c66ec88fSEmmanuel Vadot				};
234c66ec88fSEmmanuel Vadot			};
235c66ec88fSEmmanuel Vadot
236c66ec88fSEmmanuel Vadot			vcc_ddr: DCDC_REG3 {
237c66ec88fSEmmanuel Vadot				regulator-name = "vcc_ddr";
238c66ec88fSEmmanuel Vadot				regulator-always-on;
239c66ec88fSEmmanuel Vadot				regulator-boot-on;
240c66ec88fSEmmanuel Vadot
241c66ec88fSEmmanuel Vadot				regulator-state-mem {
242c66ec88fSEmmanuel Vadot					regulator-on-in-suspend;
243c66ec88fSEmmanuel Vadot				};
244c66ec88fSEmmanuel Vadot			};
245c66ec88fSEmmanuel Vadot
246c66ec88fSEmmanuel Vadot			vcc_3v0: vcc_rmii: DCDC_REG4 {
247c66ec88fSEmmanuel Vadot				regulator-name = "vcc_3v0";
248c66ec88fSEmmanuel Vadot				regulator-min-microvolt = <3000000>;
249c66ec88fSEmmanuel Vadot				regulator-max-microvolt = <3000000>;
250c66ec88fSEmmanuel Vadot				regulator-always-on;
251c66ec88fSEmmanuel Vadot				regulator-boot-on;
252c66ec88fSEmmanuel Vadot
253c66ec88fSEmmanuel Vadot				regulator-state-mem {
254c66ec88fSEmmanuel Vadot					regulator-on-in-suspend;
255c66ec88fSEmmanuel Vadot					regulator-suspend-microvolt = <3000000>;
256c66ec88fSEmmanuel Vadot				};
257c66ec88fSEmmanuel Vadot			};
258c66ec88fSEmmanuel Vadot
259c66ec88fSEmmanuel Vadot			vcc3v3_sys: DCDC_REG5 {
260c66ec88fSEmmanuel Vadot				regulator-name = "vcc3v3_sys";
261c66ec88fSEmmanuel Vadot				regulator-min-microvolt = <3300000>;
262c66ec88fSEmmanuel Vadot				regulator-max-microvolt = <3300000>;
263c66ec88fSEmmanuel Vadot				regulator-always-on;
264c66ec88fSEmmanuel Vadot				regulator-boot-on;
265c66ec88fSEmmanuel Vadot
266c66ec88fSEmmanuel Vadot				regulator-state-mem {
267c66ec88fSEmmanuel Vadot					regulator-on-in-suspend;
268c66ec88fSEmmanuel Vadot					regulator-suspend-microvolt = <3300000>;
269c66ec88fSEmmanuel Vadot				};
270c66ec88fSEmmanuel Vadot			};
271c66ec88fSEmmanuel Vadot
272c66ec88fSEmmanuel Vadot			vcc_1v0: LDO_REG1 {
273c66ec88fSEmmanuel Vadot				regulator-name = "vcc_1v0";
274c66ec88fSEmmanuel Vadot				regulator-min-microvolt = <1000000>;
275c66ec88fSEmmanuel Vadot				regulator-max-microvolt = <1000000>;
276c66ec88fSEmmanuel Vadot				regulator-always-on;
277c66ec88fSEmmanuel Vadot				regulator-boot-on;
278c66ec88fSEmmanuel Vadot
279c66ec88fSEmmanuel Vadot				regulator-state-mem {
280c66ec88fSEmmanuel Vadot					regulator-on-in-suspend;
281c66ec88fSEmmanuel Vadot					regulator-suspend-microvolt = <1000000>;
282c66ec88fSEmmanuel Vadot				};
283c66ec88fSEmmanuel Vadot			};
284c66ec88fSEmmanuel Vadot
285c66ec88fSEmmanuel Vadot			vcc_1v8: vccio_flash: vccio_sdio: LDO_REG2 {
286c66ec88fSEmmanuel Vadot				regulator-name = "vcc_1v8";
287c66ec88fSEmmanuel Vadot				regulator-min-microvolt = <1800000>;
288c66ec88fSEmmanuel Vadot				regulator-max-microvolt = <1800000>;
289c66ec88fSEmmanuel Vadot				regulator-always-on;
290c66ec88fSEmmanuel Vadot				regulator-boot-on;
291c66ec88fSEmmanuel Vadot
292c66ec88fSEmmanuel Vadot				regulator-state-mem {
293c66ec88fSEmmanuel Vadot					regulator-on-in-suspend;
294c66ec88fSEmmanuel Vadot					regulator-suspend-microvolt = <1800000>;
295c66ec88fSEmmanuel Vadot				};
296c66ec88fSEmmanuel Vadot			};
297c66ec88fSEmmanuel Vadot
298c66ec88fSEmmanuel Vadot			vdd_1v0: LDO_REG3 {
299c66ec88fSEmmanuel Vadot				regulator-name = "vdd_1v0";
300c66ec88fSEmmanuel Vadot				regulator-min-microvolt = <1000000>;
301c66ec88fSEmmanuel Vadot				regulator-max-microvolt = <1000000>;
302c66ec88fSEmmanuel Vadot				regulator-always-on;
303c66ec88fSEmmanuel Vadot				regulator-boot-on;
304c66ec88fSEmmanuel Vadot
305c66ec88fSEmmanuel Vadot				regulator-state-mem {
306c66ec88fSEmmanuel Vadot					regulator-on-in-suspend;
307c66ec88fSEmmanuel Vadot					regulator-suspend-microvolt = <1000000>;
308c66ec88fSEmmanuel Vadot				};
309c66ec88fSEmmanuel Vadot			};
310c66ec88fSEmmanuel Vadot
311c66ec88fSEmmanuel Vadot			vcc3v0_pmu: LDO_REG4 {
312c66ec88fSEmmanuel Vadot				regulator-name = "vcc3v0_pmu";
313c66ec88fSEmmanuel Vadot				regulator-min-microvolt = <3000000>;
314c66ec88fSEmmanuel Vadot				regulator-max-microvolt = <3000000>;
315c66ec88fSEmmanuel Vadot				regulator-always-on;
316c66ec88fSEmmanuel Vadot				regulator-boot-on;
317c66ec88fSEmmanuel Vadot
318c66ec88fSEmmanuel Vadot				regulator-state-mem {
319c66ec88fSEmmanuel Vadot					regulator-on-in-suspend;
320c66ec88fSEmmanuel Vadot					regulator-suspend-microvolt = <3000000>;
321c66ec88fSEmmanuel Vadot				};
322c66ec88fSEmmanuel Vadot			};
323c66ec88fSEmmanuel Vadot
324c66ec88fSEmmanuel Vadot			vccio_sd: LDO_REG5 {
325c66ec88fSEmmanuel Vadot				regulator-name = "vccio_sd";
326c66ec88fSEmmanuel Vadot				regulator-min-microvolt = <1800000>;
327c66ec88fSEmmanuel Vadot				regulator-max-microvolt = <3300000>;
328c66ec88fSEmmanuel Vadot				regulator-always-on;
329c66ec88fSEmmanuel Vadot				regulator-boot-on;
330c66ec88fSEmmanuel Vadot
331c66ec88fSEmmanuel Vadot				regulator-state-mem {
332c66ec88fSEmmanuel Vadot					regulator-on-in-suspend;
333c66ec88fSEmmanuel Vadot					regulator-suspend-microvolt = <3300000>;
334c66ec88fSEmmanuel Vadot				};
335c66ec88fSEmmanuel Vadot			};
336c66ec88fSEmmanuel Vadot
337c66ec88fSEmmanuel Vadot			vcc_sd: LDO_REG6 {
338c66ec88fSEmmanuel Vadot				regulator-name = "vcc_sd";
339c66ec88fSEmmanuel Vadot				regulator-min-microvolt = <3300000>;
340c66ec88fSEmmanuel Vadot				regulator-max-microvolt = <3300000>;
341c66ec88fSEmmanuel Vadot				regulator-boot-on;
342c66ec88fSEmmanuel Vadot
343c66ec88fSEmmanuel Vadot				regulator-state-mem {
344c66ec88fSEmmanuel Vadot					regulator-on-in-suspend;
345c66ec88fSEmmanuel Vadot					regulator-suspend-microvolt = <3300000>;
346c66ec88fSEmmanuel Vadot				};
347c66ec88fSEmmanuel Vadot			};
348c66ec88fSEmmanuel Vadot
349c66ec88fSEmmanuel Vadot			vcc2v8_dvp: LDO_REG7 {
350c66ec88fSEmmanuel Vadot				regulator-name = "vcc2v8_dvp";
351c66ec88fSEmmanuel Vadot				regulator-min-microvolt = <2800000>;
352c66ec88fSEmmanuel Vadot				regulator-max-microvolt = <2800000>;
353c66ec88fSEmmanuel Vadot				regulator-boot-on;
354c66ec88fSEmmanuel Vadot
355c66ec88fSEmmanuel Vadot				regulator-state-mem {
356c66ec88fSEmmanuel Vadot					regulator-off-in-suspend;
357c66ec88fSEmmanuel Vadot					regulator-suspend-microvolt = <2800000>;
358c66ec88fSEmmanuel Vadot				};
359c66ec88fSEmmanuel Vadot			};
360c66ec88fSEmmanuel Vadot
361c66ec88fSEmmanuel Vadot			vcc1v8_dvp: LDO_REG8 {
362c66ec88fSEmmanuel Vadot				regulator-name = "vcc1v8_dvp";
363c66ec88fSEmmanuel Vadot				regulator-min-microvolt = <1800000>;
364c66ec88fSEmmanuel Vadot				regulator-max-microvolt = <1800000>;
365c66ec88fSEmmanuel Vadot				regulator-boot-on;
366c66ec88fSEmmanuel Vadot
367c66ec88fSEmmanuel Vadot				regulator-state-mem {
368c66ec88fSEmmanuel Vadot					regulator-on-in-suspend;
369c66ec88fSEmmanuel Vadot					regulator-suspend-microvolt = <1800000>;
370c66ec88fSEmmanuel Vadot				};
371c66ec88fSEmmanuel Vadot			};
372c66ec88fSEmmanuel Vadot
373c66ec88fSEmmanuel Vadot			vcc1v5_dvp: LDO_REG9 {
374c66ec88fSEmmanuel Vadot				regulator-name = "vcc1v5_dvp";
375c66ec88fSEmmanuel Vadot				regulator-min-microvolt = <1500000>;
376c66ec88fSEmmanuel Vadot				regulator-max-microvolt = <1500000>;
377c66ec88fSEmmanuel Vadot				regulator-boot-on;
378c66ec88fSEmmanuel Vadot
379c66ec88fSEmmanuel Vadot				regulator-state-mem {
380c66ec88fSEmmanuel Vadot					regulator-off-in-suspend;
381c66ec88fSEmmanuel Vadot					regulator-suspend-microvolt = <1500000>;
382c66ec88fSEmmanuel Vadot				};
383c66ec88fSEmmanuel Vadot			};
384c66ec88fSEmmanuel Vadot
385c66ec88fSEmmanuel Vadot			vcc3v3_lcd: SWITCH_REG1 {
386c66ec88fSEmmanuel Vadot				regulator-name = "vcc3v3_lcd";
387c66ec88fSEmmanuel Vadot				regulator-boot-on;
388c66ec88fSEmmanuel Vadot			};
389c66ec88fSEmmanuel Vadot
390c66ec88fSEmmanuel Vadot			vcc5v0_host: SWITCH_REG2 {
391c66ec88fSEmmanuel Vadot				regulator-name = "vcc5v0_host";
392c66ec88fSEmmanuel Vadot				regulator-always-on;
393c66ec88fSEmmanuel Vadot				regulator-boot-on;
394c66ec88fSEmmanuel Vadot			};
395c66ec88fSEmmanuel Vadot		};
396c66ec88fSEmmanuel Vadot	};
397c66ec88fSEmmanuel Vadot};
398c66ec88fSEmmanuel Vadot
399c66ec88fSEmmanuel Vadot&i2c1 {
400c66ec88fSEmmanuel Vadot	status = "okay";
401c66ec88fSEmmanuel Vadot
402c66ec88fSEmmanuel Vadot	sensor@d {
403c66ec88fSEmmanuel Vadot		compatible = "asahi-kasei,ak8963";
404c66ec88fSEmmanuel Vadot		reg = <0x0d>;
405c66ec88fSEmmanuel Vadot		gpios = <&gpio0 RK_PB7 GPIO_ACTIVE_HIGH>;
406c66ec88fSEmmanuel Vadot		vdd-supply = <&vcc3v0_pmu>;
407c66ec88fSEmmanuel Vadot		mount-matrix = "1", /* x0 */
408c66ec88fSEmmanuel Vadot			       "0", /* y0 */
409c66ec88fSEmmanuel Vadot			       "0", /* z0 */
410c66ec88fSEmmanuel Vadot			       "0", /* x1 */
411c66ec88fSEmmanuel Vadot			       "1", /* y1 */
412c66ec88fSEmmanuel Vadot			       "0", /* z1 */
413c66ec88fSEmmanuel Vadot			       "0", /* x2 */
414c66ec88fSEmmanuel Vadot			       "0", /* y2 */
415c66ec88fSEmmanuel Vadot			       "1"; /* z2 */
416c66ec88fSEmmanuel Vadot	};
417c66ec88fSEmmanuel Vadot
418c66ec88fSEmmanuel Vadot	touchscreen@14 {
419c66ec88fSEmmanuel Vadot		compatible = "goodix,gt1151";
420c66ec88fSEmmanuel Vadot		reg = <0x14>;
421c66ec88fSEmmanuel Vadot		interrupt-parent = <&gpio0>;
422c66ec88fSEmmanuel Vadot		interrupts = <RK_PA5 IRQ_TYPE_LEVEL_LOW>;
423c66ec88fSEmmanuel Vadot		irq-gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>;
424c66ec88fSEmmanuel Vadot		reset-gpios = <&gpio0 RK_PB4 GPIO_ACTIVE_HIGH>;
425c66ec88fSEmmanuel Vadot		VDDIO-supply = <&vcc3v3_lcd>;
426c66ec88fSEmmanuel Vadot	};
427c66ec88fSEmmanuel Vadot
428c66ec88fSEmmanuel Vadot	sensor@4c {
429c66ec88fSEmmanuel Vadot		compatible = "fsl,mma7660";
430c66ec88fSEmmanuel Vadot		reg = <0x4c>;
431c66ec88fSEmmanuel Vadot		interrupt-parent = <&gpio0>;
432c66ec88fSEmmanuel Vadot		interrupts = <RK_PB7 IRQ_TYPE_LEVEL_LOW>;
433c66ec88fSEmmanuel Vadot	};
434c66ec88fSEmmanuel Vadot};
435c66ec88fSEmmanuel Vadot
4368cc087a1SEmmanuel Vadot&i2c2 {
4378cc087a1SEmmanuel Vadot	status = "okay";
4388cc087a1SEmmanuel Vadot
4398cc087a1SEmmanuel Vadot	clock-frequency = <100000>;
4408cc087a1SEmmanuel Vadot
4418cc087a1SEmmanuel Vadot	/* These are relatively safe rise/fall times; TODO: measure */
4428cc087a1SEmmanuel Vadot	i2c-scl-falling-time-ns = <50>;
4438cc087a1SEmmanuel Vadot	i2c-scl-rising-time-ns = <300>;
4448cc087a1SEmmanuel Vadot
4458cc087a1SEmmanuel Vadot	ov5695: ov5695@36 {
4468cc087a1SEmmanuel Vadot		compatible = "ovti,ov5695";
4478cc087a1SEmmanuel Vadot		reg = <0x36>;
4488cc087a1SEmmanuel Vadot		avdd-supply = <&vcc2v8_dvp>;
4498cc087a1SEmmanuel Vadot		clocks = <&cru SCLK_CIF_OUT>;
4508cc087a1SEmmanuel Vadot		clock-names = "xvclk";
4518cc087a1SEmmanuel Vadot		dvdd-supply = <&vcc1v5_dvp>;
4528cc087a1SEmmanuel Vadot		dovdd-supply = <&vcc1v8_dvp>;
4538cc087a1SEmmanuel Vadot		pinctrl-names = "default";
4547ef62cebSEmmanuel Vadot		pinctrl-0 = <&cif_clkout_m0 &mipi_pdn>;
4557ef62cebSEmmanuel Vadot		reset-gpios = <&gpio2 RK_PB6 GPIO_ACTIVE_LOW>;
4568cc087a1SEmmanuel Vadot
4578cc087a1SEmmanuel Vadot		port {
4588cc087a1SEmmanuel Vadot			ucam_out: endpoint {
4598cc087a1SEmmanuel Vadot				remote-endpoint = <&mipi_in_ucam>;
4608cc087a1SEmmanuel Vadot				data-lanes = <1 2>;
4618cc087a1SEmmanuel Vadot			};
4628cc087a1SEmmanuel Vadot		};
4638cc087a1SEmmanuel Vadot	};
4648cc087a1SEmmanuel Vadot};
4658cc087a1SEmmanuel Vadot
466c66ec88fSEmmanuel Vadot&i2s1_2ch {
467c66ec88fSEmmanuel Vadot	status = "okay";
468c66ec88fSEmmanuel Vadot};
469c66ec88fSEmmanuel Vadot
470c66ec88fSEmmanuel Vadot&io_domains {
471c66ec88fSEmmanuel Vadot	status = "okay";
472c66ec88fSEmmanuel Vadot
473c66ec88fSEmmanuel Vadot	vccio1-supply = <&vccio_sdio>;
474c66ec88fSEmmanuel Vadot	vccio2-supply = <&vccio_sd>;
475c66ec88fSEmmanuel Vadot	vccio3-supply = <&vcc_3v0>;
476c66ec88fSEmmanuel Vadot	vccio4-supply = <&vcc3v0_pmu>;
477c66ec88fSEmmanuel Vadot	vccio5-supply = <&vcc_3v0>;
478c66ec88fSEmmanuel Vadot	vccio6-supply = <&vccio_flash>;
479c66ec88fSEmmanuel Vadot};
480c66ec88fSEmmanuel Vadot
4818cc087a1SEmmanuel Vadot&isp {
4828cc087a1SEmmanuel Vadot	status = "okay";
4838cc087a1SEmmanuel Vadot
4848cc087a1SEmmanuel Vadot	ports {
4858cc087a1SEmmanuel Vadot		port@0 {
4868cc087a1SEmmanuel Vadot			mipi_in_ucam: endpoint@0 {
4878cc087a1SEmmanuel Vadot				reg = <0>;
4888cc087a1SEmmanuel Vadot				data-lanes = <1 2>;
4898cc087a1SEmmanuel Vadot				remote-endpoint = <&ucam_out>;
4908cc087a1SEmmanuel Vadot			};
4918cc087a1SEmmanuel Vadot		};
4928cc087a1SEmmanuel Vadot	};
4938cc087a1SEmmanuel Vadot};
4948cc087a1SEmmanuel Vadot
4958cc087a1SEmmanuel Vadot&isp_mmu {
4968cc087a1SEmmanuel Vadot	status = "okay";
4978cc087a1SEmmanuel Vadot};
4988cc087a1SEmmanuel Vadot
499c66ec88fSEmmanuel Vadot&pinctrl {
500c66ec88fSEmmanuel Vadot	headphone {
501c66ec88fSEmmanuel Vadot		hp_det: hp-det {
502c66ec88fSEmmanuel Vadot			rockchip,pins =
503c66ec88fSEmmanuel Vadot				<2 RK_PB0 RK_FUNC_GPIO &pcfg_pull_down>;
504c66ec88fSEmmanuel Vadot		};
505c66ec88fSEmmanuel Vadot	};
506c66ec88fSEmmanuel Vadot
507c66ec88fSEmmanuel Vadot	emmc {
508c66ec88fSEmmanuel Vadot		emmc_reset: emmc-reset {
509c66ec88fSEmmanuel Vadot			rockchip,pins = <1 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
510c66ec88fSEmmanuel Vadot		};
511c66ec88fSEmmanuel Vadot	};
512c66ec88fSEmmanuel Vadot
513c66ec88fSEmmanuel Vadot	pmic {
514c66ec88fSEmmanuel Vadot		pmic_int: pmic_int {
515c66ec88fSEmmanuel Vadot			rockchip,pins =
516c66ec88fSEmmanuel Vadot				<0 RK_PA7 RK_FUNC_GPIO &pcfg_pull_up>;
517c66ec88fSEmmanuel Vadot		};
518c66ec88fSEmmanuel Vadot
519c66ec88fSEmmanuel Vadot		soc_slppin_gpio: soc_slppin_gpio {
520c66ec88fSEmmanuel Vadot			rockchip,pins =
521c66ec88fSEmmanuel Vadot				<0 RK_PA4 RK_FUNC_GPIO &pcfg_output_low>;
522c66ec88fSEmmanuel Vadot		};
523c66ec88fSEmmanuel Vadot
524c66ec88fSEmmanuel Vadot		soc_slppin_slp: soc_slppin_slp {
525c66ec88fSEmmanuel Vadot			rockchip,pins =
526c66ec88fSEmmanuel Vadot				<0 RK_PA4 1 &pcfg_pull_none>;
527c66ec88fSEmmanuel Vadot		};
528c66ec88fSEmmanuel Vadot
529c66ec88fSEmmanuel Vadot		soc_slppin_rst: soc_slppin_rst {
530c66ec88fSEmmanuel Vadot			rockchip,pins =
531c66ec88fSEmmanuel Vadot				<0 RK_PA4 2 &pcfg_pull_none>;
532c66ec88fSEmmanuel Vadot		};
533c66ec88fSEmmanuel Vadot	};
534c66ec88fSEmmanuel Vadot
535c66ec88fSEmmanuel Vadot	sdio-pwrseq {
536c66ec88fSEmmanuel Vadot		wifi_enable_h: wifi-enable-h {
537c66ec88fSEmmanuel Vadot			rockchip,pins =
538c66ec88fSEmmanuel Vadot				<0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
539c66ec88fSEmmanuel Vadot		};
540c66ec88fSEmmanuel Vadot	};
5417ef62cebSEmmanuel Vadot
5427ef62cebSEmmanuel Vadot	cif-m0 {
5437ef62cebSEmmanuel Vadot		cif_clkout_m0: cif-clkout-m0 {
5447ef62cebSEmmanuel Vadot			rockchip,pins =
5457ef62cebSEmmanuel Vadot				<2 RK_PB3 1 &pcfg_pull_none_12ma>;
5467ef62cebSEmmanuel Vadot		};
5477ef62cebSEmmanuel Vadot	};
5487ef62cebSEmmanuel Vadot
5497ef62cebSEmmanuel Vadot	mipi {
5507ef62cebSEmmanuel Vadot		mipi_pdn: mipi-pdn {
5517ef62cebSEmmanuel Vadot			rockchip,pins = <2 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>;
5527ef62cebSEmmanuel Vadot		};
5537ef62cebSEmmanuel Vadot	};
554c66ec88fSEmmanuel Vadot};
555c66ec88fSEmmanuel Vadot
556c66ec88fSEmmanuel Vadot&pmu_io_domains {
557c66ec88fSEmmanuel Vadot	status = "okay";
558c66ec88fSEmmanuel Vadot
559c66ec88fSEmmanuel Vadot	pmuio1-supply = <&vcc3v0_pmu>;
560c66ec88fSEmmanuel Vadot	pmuio2-supply = <&vcc3v0_pmu>;
561c66ec88fSEmmanuel Vadot};
562c66ec88fSEmmanuel Vadot
563c66ec88fSEmmanuel Vadot&pwm1 {
564c66ec88fSEmmanuel Vadot	status = "okay";
565c66ec88fSEmmanuel Vadot};
566c66ec88fSEmmanuel Vadot
567c66ec88fSEmmanuel Vadot&saradc {
568c66ec88fSEmmanuel Vadot	vref-supply = <&vcc_1v8>;
569c66ec88fSEmmanuel Vadot	status = "okay";
570c66ec88fSEmmanuel Vadot};
571c66ec88fSEmmanuel Vadot
572c66ec88fSEmmanuel Vadot&sdmmc {
573c66ec88fSEmmanuel Vadot	cap-mmc-highspeed;
574c66ec88fSEmmanuel Vadot	cap-sd-highspeed;
575c66ec88fSEmmanuel Vadot	card-detect-delay = <800>;
576c66ec88fSEmmanuel Vadot	sd-uhs-sdr12;
577c66ec88fSEmmanuel Vadot	sd-uhs-sdr25;
578c66ec88fSEmmanuel Vadot	sd-uhs-sdr50;
579c66ec88fSEmmanuel Vadot	sd-uhs-sdr104;
580c66ec88fSEmmanuel Vadot	vmmc-supply = <&vcc_sd>;
581c66ec88fSEmmanuel Vadot	vqmmc-supply = <&vccio_sd>;
582c66ec88fSEmmanuel Vadot	status = "okay";
583c66ec88fSEmmanuel Vadot};
584c66ec88fSEmmanuel Vadot
585c66ec88fSEmmanuel Vadot&sdio {
586c66ec88fSEmmanuel Vadot	cap-sd-highspeed;
587c66ec88fSEmmanuel Vadot	keep-power-in-suspend;
588c66ec88fSEmmanuel Vadot	non-removable;
589c66ec88fSEmmanuel Vadot	mmc-pwrseq = <&sdio_pwrseq>;
590c66ec88fSEmmanuel Vadot	sd-uhs-sdr104;
591c66ec88fSEmmanuel Vadot	status = "okay";
592c66ec88fSEmmanuel Vadot};
593c66ec88fSEmmanuel Vadot
594c66ec88fSEmmanuel Vadot&tsadc {
595c66ec88fSEmmanuel Vadot	rockchip,hw-tshut-mode = <1>;
596c66ec88fSEmmanuel Vadot	rockchip,hw-tshut-polarity = <1>;
597c66ec88fSEmmanuel Vadot	status = "okay";
598c66ec88fSEmmanuel Vadot};
599c66ec88fSEmmanuel Vadot
600c66ec88fSEmmanuel Vadot&u2phy {
601c66ec88fSEmmanuel Vadot	status = "okay";
602c66ec88fSEmmanuel Vadot
603c66ec88fSEmmanuel Vadot	u2phy_host: host-port {
604c66ec88fSEmmanuel Vadot		status = "okay";
605c66ec88fSEmmanuel Vadot	};
606c66ec88fSEmmanuel Vadot
607c66ec88fSEmmanuel Vadot	u2phy_otg: otg-port {
608c66ec88fSEmmanuel Vadot		status = "okay";
609c66ec88fSEmmanuel Vadot	};
610c66ec88fSEmmanuel Vadot};
611c66ec88fSEmmanuel Vadot
612c66ec88fSEmmanuel Vadot&uart1 {
613c66ec88fSEmmanuel Vadot	pinctrl-names = "default";
614c66ec88fSEmmanuel Vadot	pinctrl-0 = <&uart1_xfer &uart1_cts>;
615c66ec88fSEmmanuel Vadot	status = "okay";
616c66ec88fSEmmanuel Vadot};
617c66ec88fSEmmanuel Vadot
618c66ec88fSEmmanuel Vadot&uart5 {
619c66ec88fSEmmanuel Vadot	status = "okay";
620c66ec88fSEmmanuel Vadot};
621c66ec88fSEmmanuel Vadot
622c66ec88fSEmmanuel Vadot&usb20_otg {
623c66ec88fSEmmanuel Vadot	status = "okay";
624c66ec88fSEmmanuel Vadot};
625c66ec88fSEmmanuel Vadot
626c66ec88fSEmmanuel Vadot&usb_host0_ehci {
627c66ec88fSEmmanuel Vadot	status = "okay";
628c66ec88fSEmmanuel Vadot};
629c66ec88fSEmmanuel Vadot
630c66ec88fSEmmanuel Vadot&usb_host0_ohci {
631c66ec88fSEmmanuel Vadot	status = "okay";
632c66ec88fSEmmanuel Vadot};
633c66ec88fSEmmanuel Vadot
634c66ec88fSEmmanuel Vadot&vopb {
635c66ec88fSEmmanuel Vadot	status = "okay";
636c66ec88fSEmmanuel Vadot};
637c66ec88fSEmmanuel Vadot
638c66ec88fSEmmanuel Vadot&vopb_mmu {
639c66ec88fSEmmanuel Vadot	status = "okay";
640c66ec88fSEmmanuel Vadot};
641c66ec88fSEmmanuel Vadot
642c66ec88fSEmmanuel Vadot&vopl {
643c66ec88fSEmmanuel Vadot	status = "okay";
644c66ec88fSEmmanuel Vadot};
645c66ec88fSEmmanuel Vadot
646c66ec88fSEmmanuel Vadot&vopl_mmu {
647c66ec88fSEmmanuel Vadot	status = "okay";
648c66ec88fSEmmanuel Vadot};
649