xref: /rk3399_rockchip-uboot/arch/arm/dts/rk3399-firefly.dts (revision 56581d0ea3d03bc5e5fe22416074aa30a5d23a60)
1a6672683SKever Yang/*
2a6672683SKever Yang * Copyright (c) 2017 Fuzhou Rockchip Electronics Co., Ltd.
3a6672683SKever Yang *
4a6672683SKever Yang * SPDX-License-Identifier:     GPL-2.0+
5a6672683SKever Yang */
6a6672683SKever Yang
7a6672683SKever Yang/dts-v1/;
8a6672683SKever Yang#include <dt-bindings/pwm/pwm.h>
9a6672683SKever Yang#include <dt-bindings/pinctrl/rockchip.h>
10a6672683SKever Yang#include "rk3399.dtsi"
1156f2dd0aSKever Yang#include "rk3399-sdram-ddr3-1600.dtsi"
1248b6ef28SKever Yang#include "rk3399-u-boot.dtsi"
13a6672683SKever Yang
14a6672683SKever Yang/ {
15a6672683SKever Yang	model = "Firefly-RK3399 Board";
16a6672683SKever Yang	compatible = "firefly,firefly-rk3399", "rockchip,rk3399";
17a6672683SKever Yang
18a6672683SKever Yang	chosen {
19a6672683SKever Yang		stdout-path = &uart2;
20*56581d0eSKever Yang		u-boot,spl-boot-order = &sdmmc, &sdhci;
21a6672683SKever Yang	};
22a6672683SKever Yang
23a6672683SKever Yang	backlight: backlight {
24a6672683SKever Yang		compatible = "pwm-backlight";
25a6672683SKever Yang		enable-gpios = <&gpio1 RK_PB5 GPIO_ACTIVE_HIGH>;
26a6672683SKever Yang		pwms = <&pwm0 0 25000 0>;
27a6672683SKever Yang		brightness-levels = <
28a6672683SKever Yang			  0   1   2   3   4   5   6   7
29a6672683SKever Yang			  8   9  10  11  12  13  14  15
30a6672683SKever Yang			 16  17  18  19  20  21  22  23
31a6672683SKever Yang			 24  25  26  27  28  29  30  31
32a6672683SKever Yang			 32  33  34  35  36  37  38  39
33a6672683SKever Yang			 40  41  42  43  44  45  46  47
34a6672683SKever Yang			 48  49  50  51  52  53  54  55
35a6672683SKever Yang			 56  57  58  59  60  61  62  63
36a6672683SKever Yang			 64  65  66  67  68  69  70  71
37a6672683SKever Yang			 72  73  74  75  76  77  78  79
38a6672683SKever Yang			 80  81  82  83  84  85  86  87
39a6672683SKever Yang			 88  89  90  91  92  93  94  95
40a6672683SKever Yang			 96  97  98  99 100 101 102 103
41a6672683SKever Yang			104 105 106 107 108 109 110 111
42a6672683SKever Yang			112 113 114 115 116 117 118 119
43a6672683SKever Yang			120 121 122 123 124 125 126 127
44a6672683SKever Yang			128 129 130 131 132 133 134 135
45a6672683SKever Yang			136 137 138 139 140 141 142 143
46a6672683SKever Yang			144 145 146 147 148 149 150 151
47a6672683SKever Yang			152 153 154 155 156 157 158 159
48a6672683SKever Yang			160 161 162 163 164 165 166 167
49a6672683SKever Yang			168 169 170 171 172 173 174 175
50a6672683SKever Yang			176 177 178 179 180 181 182 183
51a6672683SKever Yang			184 185 186 187 188 189 190 191
52a6672683SKever Yang			192 193 194 195 196 197 198 199
53a6672683SKever Yang			200 201 202 203 204 205 206 207
54a6672683SKever Yang			208 209 210 211 212 213 214 215
55a6672683SKever Yang			216 217 218 219 220 221 222 223
56a6672683SKever Yang			224 225 226 227 228 229 230 231
57a6672683SKever Yang			232 233 234 235 236 237 238 239
58a6672683SKever Yang			240 241 242 243 244 245 246 247
59a6672683SKever Yang			248 249 250 251 252 253 254 255>;
60a6672683SKever Yang		default-brightness-level = <200>;
61a6672683SKever Yang	};
62a6672683SKever Yang
63a6672683SKever Yang	clkin_gmac: external-gmac-clock {
64a6672683SKever Yang		compatible = "fixed-clock";
65a6672683SKever Yang		clock-frequency = <125000000>;
66a6672683SKever Yang		clock-output-names = "clkin_gmac";
67a6672683SKever Yang		#clock-cells = <0>;
68a6672683SKever Yang	};
69a6672683SKever Yang
70a6672683SKever Yang	rt5640-sound {
71a6672683SKever Yang		compatible = "simple-audio-card";
72a6672683SKever Yang		simple-audio-card,name = "rockchip,rt5640-codec";
73a6672683SKever Yang		simple-audio-card,format = "i2s";
74a6672683SKever Yang		simple-audio-card,mclk-fs = <256>;
75a6672683SKever Yang		simple-audio-card,widgets =
76a6672683SKever Yang			"Microphone", "Mic Jack",
77a6672683SKever Yang			"Headphone", "Headphone Jack";
78a6672683SKever Yang		simple-audio-card,routing =
79a6672683SKever Yang			"Mic Jack", "MICBIAS1",
80a6672683SKever Yang			"IN1P", "Mic Jack",
81a6672683SKever Yang			"Headphone Jack", "HPOL",
82a6672683SKever Yang			"Headphone Jack", "HPOR";
83a6672683SKever Yang
84a6672683SKever Yang		simple-audio-card,cpu {
85a6672683SKever Yang			sound-dai = <&i2s1>;
86a6672683SKever Yang		};
87a6672683SKever Yang
88a6672683SKever Yang		simple-audio-card,codec {
89a6672683SKever Yang			sound-dai = <&rt5640>;
90a6672683SKever Yang		};
91a6672683SKever Yang	};
92a6672683SKever Yang
93a6672683SKever Yang	sdio_pwrseq: sdio-pwrseq {
94a6672683SKever Yang		compatible = "mmc-pwrseq-simple";
95a6672683SKever Yang		clocks = <&rk808 1>;
96a6672683SKever Yang		clock-names = "ext_clock";
97a6672683SKever Yang		pinctrl-names = "default";
98a6672683SKever Yang		pinctrl-0 = <&wifi_enable_h>;
99a6672683SKever Yang
100a6672683SKever Yang		/*
101a6672683SKever Yang		 * On the module itself this is one of these (depending
102a6672683SKever Yang		 * on the actual card populated):
103a6672683SKever Yang		 * - SDIO_RESET_L_WL_REG_ON
104a6672683SKever Yang		 * - PDN (power down when low)
105a6672683SKever Yang		 */
106a6672683SKever Yang		reset-gpios = <&gpio0 RK_PB2 GPIO_ACTIVE_LOW>;
107a6672683SKever Yang	};
108a6672683SKever Yang
109a6672683SKever Yang	vcc3v3_pcie: vcc3v3-pcie-regulator {
110a6672683SKever Yang		compatible = "regulator-fixed";
111a6672683SKever Yang		enable-active-high;
112a6672683SKever Yang		gpio = <&gpio1 RK_PC1 GPIO_ACTIVE_HIGH>;
113a6672683SKever Yang		pinctrl-names = "default";
114a6672683SKever Yang		pinctrl-0 = <&pcie_drv>;
115a6672683SKever Yang		regulator-name = "vcc3v3_pcie";
116a6672683SKever Yang		regulator-always-on;
117a6672683SKever Yang		regulator-boot-on;
118a6672683SKever Yang	};
119a6672683SKever Yang
120a6672683SKever Yang	vcc3v3_sys: vcc3v3-sys {
121a6672683SKever Yang		compatible = "regulator-fixed";
122a6672683SKever Yang		regulator-name = "vcc3v3_sys";
123a6672683SKever Yang		regulator-always-on;
124a6672683SKever Yang		regulator-boot-on;
125a6672683SKever Yang		regulator-min-microvolt = <3300000>;
126a6672683SKever Yang		regulator-max-microvolt = <3300000>;
127a6672683SKever Yang	};
128a6672683SKever Yang
129a6672683SKever Yang	vcc5v0_host: vcc5v0-host-regulator {
130a6672683SKever Yang		compatible = "regulator-fixed";
131a6672683SKever Yang		enable-active-high;
132a6672683SKever Yang		gpio = <&gpio1 RK_PA0 GPIO_ACTIVE_HIGH>;
133a6672683SKever Yang		pinctrl-names = "default";
134a6672683SKever Yang		pinctrl-0 = <&host_vbus_drv>;
135a6672683SKever Yang		regulator-name = "vcc5v0_host";
136a6672683SKever Yang		regulator-always-on;
137a6672683SKever Yang	};
138a6672683SKever Yang
139a6672683SKever Yang	vcc5v0_sys: vcc5v0-sys {
140a6672683SKever Yang		compatible = "regulator-fixed";
141a6672683SKever Yang		regulator-name = "vcc5v0_sys";
142a6672683SKever Yang		regulator-always-on;
143a6672683SKever Yang		regulator-boot-on;
144a6672683SKever Yang		regulator-min-microvolt = <5000000>;
145a6672683SKever Yang		regulator-max-microvolt = <5000000>;
146a6672683SKever Yang	};
147a6672683SKever Yang
148a6672683SKever Yang	vcc_phy: vcc-phy-regulator {
149a6672683SKever Yang		compatible = "regulator-fixed";
150a6672683SKever Yang		regulator-name = "vcc_phy";
151a6672683SKever Yang		regulator-always-on;
152a6672683SKever Yang		regulator-boot-on;
153a6672683SKever Yang	};
154a6672683SKever Yang
155a6672683SKever Yang	vdd_log: vdd-log {
156a6672683SKever Yang		compatible = "pwm-regulator";
157a6672683SKever Yang		pwms = <&pwm2 0 25000 1>;
158a6672683SKever Yang		regulator-name = "vdd_log";
159a6672683SKever Yang		regulator-always-on;
160a6672683SKever Yang		regulator-boot-on;
1617ba3182eSKever Yang		regulator-min-microvolt = <430000>;
162a6672683SKever Yang		regulator-max-microvolt = <1400000>;
1637ba3182eSKever Yang		regulator-init-microvolt = <950000>;
164a6672683SKever Yang	};
165a6672683SKever Yang
166a6672683SKever Yang	vccadc_ref: vccadc-ref {
167a6672683SKever Yang		compatible = "regulator-fixed";
168a6672683SKever Yang		regulator-name = "vcc1v8_sys";
169a6672683SKever Yang		regulator-always-on;
170a6672683SKever Yang		regulator-boot-on;
171a6672683SKever Yang		regulator-min-microvolt = <1800000>;
172a6672683SKever Yang		regulator-max-microvolt = <1800000>;
173a6672683SKever Yang	};
174a6672683SKever Yang};
175a6672683SKever Yang
176a6672683SKever Yang&cpu_l0 {
177a6672683SKever Yang	cpu-supply = <&vdd_cpu_l>;
178a6672683SKever Yang};
179a6672683SKever Yang
180a6672683SKever Yang&cpu_l1 {
181a6672683SKever Yang	cpu-supply = <&vdd_cpu_l>;
182a6672683SKever Yang};
183a6672683SKever Yang
184a6672683SKever Yang&cpu_l2 {
185a6672683SKever Yang	cpu-supply = <&vdd_cpu_l>;
186a6672683SKever Yang};
187a6672683SKever Yang
188a6672683SKever Yang&cpu_l3 {
189a6672683SKever Yang	cpu-supply = <&vdd_cpu_l>;
190a6672683SKever Yang};
191a6672683SKever Yang
192a6672683SKever Yang&cpu_b0 {
193a6672683SKever Yang	cpu-supply = <&vdd_cpu_b>;
194a6672683SKever Yang};
195a6672683SKever Yang
196a6672683SKever Yang&cpu_b1 {
197a6672683SKever Yang	cpu-supply = <&vdd_cpu_b>;
198a6672683SKever Yang};
199a6672683SKever Yang
200a6672683SKever Yang&emmc_phy {
201a6672683SKever Yang	status = "okay";
202a6672683SKever Yang};
203a6672683SKever Yang
204a6672683SKever Yang&gmac {
205a6672683SKever Yang	assigned-clocks = <&cru SCLK_RMII_SRC>;
206a6672683SKever Yang	assigned-clock-parents = <&clkin_gmac>;
207a6672683SKever Yang	clock_in_out = "input";
208a6672683SKever Yang	phy-supply = <&vcc_phy>;
209a6672683SKever Yang	phy-mode = "rgmii";
210a6672683SKever Yang	pinctrl-names = "default";
211a6672683SKever Yang	pinctrl-0 = <&rgmii_pins>;
212a6672683SKever Yang	snps,reset-gpio = <&gpio3 RK_PB7 GPIO_ACTIVE_LOW>;
213a6672683SKever Yang	snps,reset-active-low;
214a6672683SKever Yang	snps,reset-delays-us = <0 10000 50000>;
2151ade3a90SKever Yang	tx_delay = <0x33>;
2161ade3a90SKever Yang	rx_delay = <0x45>;
217a6672683SKever Yang	status = "okay";
218a6672683SKever Yang};
219a6672683SKever Yang
220a6672683SKever Yang&i2c0 {
221a6672683SKever Yang	clock-frequency = <400000>;
222a6672683SKever Yang	i2c-scl-rising-time-ns = <168>;
223a6672683SKever Yang	i2c-scl-falling-time-ns = <4>;
224a6672683SKever Yang	status = "okay";
225a6672683SKever Yang
226a6672683SKever Yang	rk808: pmic@1b {
227a6672683SKever Yang		compatible = "rockchip,rk808";
228a6672683SKever Yang		reg = <0x1b>;
229a6672683SKever Yang		interrupt-parent = <&gpio1>;
230a6672683SKever Yang		interrupts = <21 IRQ_TYPE_LEVEL_LOW>;
231a6672683SKever Yang		#clock-cells = <1>;
232a6672683SKever Yang		clock-output-names = "xin32k", "rk808-clkout2";
233a6672683SKever Yang		pinctrl-names = "default";
234a6672683SKever Yang		pinctrl-0 = <&pmic_int_l>;
235a6672683SKever Yang		rockchip,system-power-controller;
236a6672683SKever Yang		wakeup-source;
237a6672683SKever Yang
238a6672683SKever Yang		vcc1-supply = <&vcc3v3_sys>;
239a6672683SKever Yang		vcc2-supply = <&vcc3v3_sys>;
240a6672683SKever Yang		vcc3-supply = <&vcc3v3_sys>;
241a6672683SKever Yang		vcc4-supply = <&vcc3v3_sys>;
242a6672683SKever Yang		vcc6-supply = <&vcc3v3_sys>;
243a6672683SKever Yang		vcc7-supply = <&vcc3v3_sys>;
244a6672683SKever Yang		vcc8-supply = <&vcc3v3_sys>;
245a6672683SKever Yang		vcc9-supply = <&vcc3v3_sys>;
246a6672683SKever Yang		vcc10-supply = <&vcc3v3_sys>;
247a6672683SKever Yang		vcc11-supply = <&vcc3v3_sys>;
248a6672683SKever Yang		vcc12-supply = <&vcc3v3_sys>;
249a6672683SKever Yang		vddio-supply = <&vcc1v8_pmu>;
250a6672683SKever Yang
251a6672683SKever Yang		regulators {
252a6672683SKever Yang			vdd_center: DCDC_REG1 {
253a6672683SKever Yang				regulator-name = "vdd_center";
254a6672683SKever Yang				regulator-always-on;
255a6672683SKever Yang				regulator-boot-on;
256a6672683SKever Yang				regulator-min-microvolt = <750000>;
257a6672683SKever Yang				regulator-max-microvolt = <1350000>;
258a6672683SKever Yang				regulator-ramp-delay = <6001>;
259a6672683SKever Yang				regulator-state-mem {
260a6672683SKever Yang					regulator-off-in-suspend;
261a6672683SKever Yang				};
262a6672683SKever Yang			};
263a6672683SKever Yang
264a6672683SKever Yang			vdd_cpu_l: DCDC_REG2 {
265a6672683SKever Yang				regulator-name = "vdd_cpu_l";
266a6672683SKever Yang				regulator-always-on;
267a6672683SKever Yang				regulator-boot-on;
268a6672683SKever Yang				regulator-min-microvolt = <750000>;
269a6672683SKever Yang				regulator-max-microvolt = <1350000>;
270a6672683SKever Yang				regulator-ramp-delay = <6001>;
271a6672683SKever Yang				regulator-state-mem {
272a6672683SKever Yang					regulator-off-in-suspend;
273a6672683SKever Yang				};
274a6672683SKever Yang			};
275a6672683SKever Yang
276a6672683SKever Yang			vcc_ddr: DCDC_REG3 {
277a6672683SKever Yang				regulator-name = "vcc_ddr";
278a6672683SKever Yang				regulator-always-on;
279a6672683SKever Yang				regulator-boot-on;
280a6672683SKever Yang				regulator-state-mem {
281a6672683SKever Yang					regulator-on-in-suspend;
282a6672683SKever Yang				};
283a6672683SKever Yang			};
284a6672683SKever Yang
285a6672683SKever Yang			vcc_1v8: DCDC_REG4 {
286a6672683SKever Yang				regulator-name = "vcc_1v8";
287a6672683SKever Yang				regulator-always-on;
288a6672683SKever Yang				regulator-boot-on;
289a6672683SKever Yang				regulator-min-microvolt = <1800000>;
290a6672683SKever Yang				regulator-max-microvolt = <1800000>;
291a6672683SKever Yang				regulator-state-mem {
292a6672683SKever Yang					regulator-on-in-suspend;
293a6672683SKever Yang					regulator-suspend-microvolt = <1800000>;
294a6672683SKever Yang				};
295a6672683SKever Yang			};
296a6672683SKever Yang
297a6672683SKever Yang			vcc1v8_dvp: LDO_REG1 {
298a6672683SKever Yang				regulator-name = "vcc1v8_dvp";
299a6672683SKever Yang				regulator-always-on;
300a6672683SKever Yang				regulator-boot-on;
301a6672683SKever Yang				regulator-min-microvolt = <1800000>;
302a6672683SKever Yang				regulator-max-microvolt = <1800000>;
303a6672683SKever Yang				regulator-state-mem {
304a6672683SKever Yang					regulator-off-in-suspend;
305a6672683SKever Yang				};
306a6672683SKever Yang			};
307a6672683SKever Yang
308a6672683SKever Yang			vcc3v0_tp: LDO_REG2 {
309a6672683SKever Yang				regulator-name = "vcc3v0_tp";
310a6672683SKever Yang				regulator-always-on;
311a6672683SKever Yang				regulator-boot-on;
312a6672683SKever Yang				regulator-min-microvolt = <3000000>;
313a6672683SKever Yang				regulator-max-microvolt = <3000000>;
314a6672683SKever Yang				regulator-state-mem {
315a6672683SKever Yang					regulator-off-in-suspend;
316a6672683SKever Yang				};
317a6672683SKever Yang			};
318a6672683SKever Yang
319a6672683SKever Yang			vcc1v8_pmu: LDO_REG3 {
320a6672683SKever Yang				regulator-name = "vcc1v8_pmu";
321a6672683SKever Yang				regulator-always-on;
322a6672683SKever Yang				regulator-boot-on;
323a6672683SKever Yang				regulator-min-microvolt = <1800000>;
324a6672683SKever Yang				regulator-max-microvolt = <1800000>;
325a6672683SKever Yang				regulator-state-mem {
326a6672683SKever Yang					regulator-on-in-suspend;
327a6672683SKever Yang					regulator-suspend-microvolt = <1800000>;
328a6672683SKever Yang				};
329a6672683SKever Yang			};
330a6672683SKever Yang
331a6672683SKever Yang			vcc_sd: LDO_REG4 {
332a6672683SKever Yang				regulator-name = "vcc_sd";
333a6672683SKever Yang				regulator-always-on;
334a6672683SKever Yang				regulator-boot-on;
335a6672683SKever Yang				regulator-min-microvolt = <1800000>;
336352ddda1SKlaus Goger				regulator-max-microvolt = <3000000>;
337a6672683SKever Yang				regulator-state-mem {
338a6672683SKever Yang					regulator-on-in-suspend;
339352ddda1SKlaus Goger					regulator-suspend-microvolt = <3000000>;
340a6672683SKever Yang				};
341a6672683SKever Yang			};
342a6672683SKever Yang
343a6672683SKever Yang			vcca3v0_codec: LDO_REG5 {
344a6672683SKever Yang				regulator-name = "vcca3v0_codec";
345a6672683SKever Yang				regulator-always-on;
346a6672683SKever Yang				regulator-boot-on;
347a6672683SKever Yang				regulator-min-microvolt = <3000000>;
348a6672683SKever Yang				regulator-max-microvolt = <3000000>;
349a6672683SKever Yang				regulator-state-mem {
350a6672683SKever Yang					regulator-off-in-suspend;
351a6672683SKever Yang				};
352a6672683SKever Yang			};
353a6672683SKever Yang
354a6672683SKever Yang			vcc_1v5: LDO_REG6 {
355a6672683SKever Yang				regulator-name = "vcc_1v5";
356a6672683SKever Yang				regulator-always-on;
357a6672683SKever Yang				regulator-boot-on;
358a6672683SKever Yang				regulator-min-microvolt = <1500000>;
359a6672683SKever Yang				regulator-max-microvolt = <1500000>;
360a6672683SKever Yang				regulator-state-mem {
361a6672683SKever Yang					regulator-on-in-suspend;
362a6672683SKever Yang					regulator-suspend-microvolt = <1500000>;
363a6672683SKever Yang				};
364a6672683SKever Yang			};
365a6672683SKever Yang
366a6672683SKever Yang			vcca1v8_codec: LDO_REG7 {
367a6672683SKever Yang				regulator-name = "vcca1v8_codec";
368a6672683SKever Yang				regulator-always-on;
369a6672683SKever Yang				regulator-boot-on;
370a6672683SKever Yang				regulator-min-microvolt = <1800000>;
371a6672683SKever Yang				regulator-max-microvolt = <1800000>;
372a6672683SKever Yang				regulator-state-mem {
373a6672683SKever Yang					regulator-off-in-suspend;
374a6672683SKever Yang				};
375a6672683SKever Yang			};
376a6672683SKever Yang
377a6672683SKever Yang			vcc_3v0: LDO_REG8 {
378a6672683SKever Yang				regulator-name = "vcc_3v0";
379a6672683SKever Yang				regulator-always-on;
380a6672683SKever Yang				regulator-boot-on;
381a6672683SKever Yang				regulator-min-microvolt = <3000000>;
382a6672683SKever Yang				regulator-max-microvolt = <3000000>;
383a6672683SKever Yang				regulator-state-mem {
384a6672683SKever Yang					regulator-on-in-suspend;
385a6672683SKever Yang					regulator-suspend-microvolt = <3000000>;
386a6672683SKever Yang				};
387a6672683SKever Yang			};
388a6672683SKever Yang
389a6672683SKever Yang			vcc3v3_s3: SWITCH_REG1 {
390a6672683SKever Yang				regulator-name = "vcc3v3_s3";
391a6672683SKever Yang				regulator-always-on;
392a6672683SKever Yang				regulator-boot-on;
393a6672683SKever Yang				regulator-state-mem {
394a6672683SKever Yang					regulator-off-in-suspend;
395a6672683SKever Yang				};
396a6672683SKever Yang			};
397a6672683SKever Yang
398a6672683SKever Yang			vcc3v3_s0: SWITCH_REG2 {
399a6672683SKever Yang				regulator-name = "vcc3v3_s0";
400a6672683SKever Yang				regulator-always-on;
401a6672683SKever Yang				regulator-boot-on;
402a6672683SKever Yang				regulator-state-mem {
403a6672683SKever Yang					regulator-off-in-suspend;
404a6672683SKever Yang				};
405a6672683SKever Yang			};
406a6672683SKever Yang		};
407a6672683SKever Yang	};
408a6672683SKever Yang
409a6672683SKever Yang	vdd_cpu_b: regulator@40 {
410a6672683SKever Yang		compatible = "silergy,syr827";
411a6672683SKever Yang		reg = <0x40>;
412a6672683SKever Yang		fcs,suspend-voltage-selector = <0>;
413a6672683SKever Yang		regulator-name = "vdd_cpu_b";
414a6672683SKever Yang		regulator-min-microvolt = <712500>;
415a6672683SKever Yang		regulator-max-microvolt = <1500000>;
416a6672683SKever Yang		regulator-ramp-delay = <1000>;
417a6672683SKever Yang		regulator-always-on;
418a6672683SKever Yang		regulator-boot-on;
419a6672683SKever Yang		vin-supply = <&vcc5v0_sys>;
420a6672683SKever Yang
421a6672683SKever Yang		regulator-state-mem {
422a6672683SKever Yang			regulator-off-in-suspend;
423a6672683SKever Yang		};
424a6672683SKever Yang	};
425a6672683SKever Yang
426a6672683SKever Yang	vdd_gpu: regulator@41 {
427a6672683SKever Yang		compatible = "silergy,syr828";
428a6672683SKever Yang		reg = <0x41>;
429a6672683SKever Yang		fcs,suspend-voltage-selector = <1>;
430a6672683SKever Yang		regulator-name = "vdd_gpu";
431a6672683SKever Yang		regulator-min-microvolt = <712500>;
432a6672683SKever Yang		regulator-max-microvolt = <1500000>;
433a6672683SKever Yang		regulator-ramp-delay = <1000>;
434a6672683SKever Yang		regulator-always-on;
435a6672683SKever Yang		regulator-boot-on;
436a6672683SKever Yang		vin-supply = <&vcc5v0_sys>;
437a6672683SKever Yang
438a6672683SKever Yang		regulator-state-mem {
439a6672683SKever Yang			regulator-off-in-suspend;
440a6672683SKever Yang		};
441a6672683SKever Yang	};
442a6672683SKever Yang};
443a6672683SKever Yang
444a6672683SKever Yang&i2c1 {
445a6672683SKever Yang	i2c-scl-rising-time-ns = <300>;
446a6672683SKever Yang	i2c-scl-falling-time-ns = <15>;
447a6672683SKever Yang	status = "okay";
448a6672683SKever Yang
449a6672683SKever Yang	rt5640: rt5640@1c {
450a6672683SKever Yang		compatible = "realtek,rt5640";
451a6672683SKever Yang		reg = <0x1c>;
452a6672683SKever Yang		clocks = <&cru SCLK_I2S_8CH_OUT>;
453a6672683SKever Yang		clock-names = "mclk";
454a6672683SKever Yang		realtek,in1-differential;
455a6672683SKever Yang		#sound-dai-cells = <0>;
456a6672683SKever Yang		pinctrl-names = "default";
457a6672683SKever Yang		pinctrl-0 = <&rt5640_hpcon>;
458a6672683SKever Yang	};
459a6672683SKever Yang};
460a6672683SKever Yang
461a6672683SKever Yang&i2c3 {
462a6672683SKever Yang	i2c-scl-rising-time-ns = <450>;
463a6672683SKever Yang	i2c-scl-falling-time-ns = <15>;
464a6672683SKever Yang	status = "okay";
465a6672683SKever Yang};
466a6672683SKever Yang
467a6672683SKever Yang&i2c4 {
468a6672683SKever Yang	i2c-scl-rising-time-ns = <600>;
469a6672683SKever Yang	i2c-scl-falling-time-ns = <20>;
470a6672683SKever Yang	status = "okay";
471a6672683SKever Yang
472a6672683SKever Yang	accelerometer@68 {
473a6672683SKever Yang		compatible = "invensense,mpu6500";
474a6672683SKever Yang		reg = <0x68>;
475a6672683SKever Yang		interrupt-parent = <&gpio1>;
476a6672683SKever Yang		interrupts = <RK_PC6 IRQ_TYPE_EDGE_RISING>;
477a6672683SKever Yang	};
478a6672683SKever Yang};
479a6672683SKever Yang
480a6672683SKever Yang&i2s0 {
481a6672683SKever Yang	rockchip,playback-channels = <8>;
482a6672683SKever Yang	rockchip,capture-channels = <8>;
483a6672683SKever Yang	#sound-dai-cells = <0>;
484a6672683SKever Yang	status = "okay";
485a6672683SKever Yang};
486a6672683SKever Yang
487a6672683SKever Yang&i2s1 {
488a6672683SKever Yang	rockchip,playback-channels = <2>;
489a6672683SKever Yang	rockchip,capture-channels = <2>;
490a6672683SKever Yang	#sound-dai-cells = <0>;
491a6672683SKever Yang	status = "okay";
492a6672683SKever Yang};
493a6672683SKever Yang
494a6672683SKever Yang&i2s2 {
495a6672683SKever Yang	#sound-dai-cells = <0>;
496a6672683SKever Yang	status = "okay";
497a6672683SKever Yang};
498a6672683SKever Yang
499a6672683SKever Yang&io_domains {
500a6672683SKever Yang	status = "okay";
501a6672683SKever Yang
502a6672683SKever Yang	bt656-supply = <&vcc1v8_dvp>;
503a6672683SKever Yang	audio-supply = <&vcca1v8_codec>;
504a6672683SKever Yang	sdmmc-supply = <&vcc_sd>;
505a6672683SKever Yang	gpio1830-supply = <&vcc_3v0>;
506a6672683SKever Yang};
507a6672683SKever Yang
508a6672683SKever Yang&pcie_phy {
509a6672683SKever Yang	status = "okay";
510a6672683SKever Yang};
511a6672683SKever Yang
512a6672683SKever Yang&pcie0 {
513a6672683SKever Yang	ep-gpios = <&gpio4 RK_PD1 GPIO_ACTIVE_HIGH>;
514a6672683SKever Yang	num-lanes = <4>;
515a6672683SKever Yang	pinctrl-names = "default";
516a6672683SKever Yang	pinctrl-0 = <&pcie_clkreqn>;
517a6672683SKever Yang	status = "okay";
518a6672683SKever Yang};
519a6672683SKever Yang
520a6672683SKever Yang&pmu_io_domains {
521a6672683SKever Yang	pmu1830-supply = <&vcc_3v0>;
522a6672683SKever Yang	status = "okay";
523a6672683SKever Yang};
524a6672683SKever Yang
525a6672683SKever Yang&pinctrl {
526a6672683SKever Yang	buttons {
527a6672683SKever Yang		pwrbtn: pwrbtn {
528a6672683SKever Yang			rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>;
529a6672683SKever Yang		};
530a6672683SKever Yang	};
531a6672683SKever Yang
532a6672683SKever Yang	lcd-panel {
533a6672683SKever Yang		lcd_panel_reset: lcd-panel-reset {
534a6672683SKever Yang			rockchip,pins = <4 RK_PD6 RK_FUNC_GPIO &pcfg_pull_up>;
535a6672683SKever Yang		};
536a6672683SKever Yang	};
537a6672683SKever Yang
538a6672683SKever Yang	pcie {
539a6672683SKever Yang		pcie_drv: pcie-drv {
540a6672683SKever Yang			rockchip,pins = <1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>;
541a6672683SKever Yang		};
542a6672683SKever Yang
543a6672683SKever Yang		pcie_3g_drv: pcie-3g-drv {
544a6672683SKever Yang			rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>;
545a6672683SKever Yang		};
546a6672683SKever Yang	};
547a6672683SKever Yang
548a6672683SKever Yang	pmic {
549a6672683SKever Yang		vsel1_gpio: vsel1-gpio {
550a6672683SKever Yang			rockchip,pins = <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_down>;
551a6672683SKever Yang		};
552a6672683SKever Yang
553a6672683SKever Yang		vsel2_gpio: vsel2-gpio {
554a6672683SKever Yang			rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_down>;
555a6672683SKever Yang		};
556a6672683SKever Yang	};
557a6672683SKever Yang
558a6672683SKever Yang	sdio-pwrseq {
559a6672683SKever Yang		wifi_enable_h: wifi-enable-h {
560a6672683SKever Yang			rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
561a6672683SKever Yang		};
562a6672683SKever Yang	};
563a6672683SKever Yang
564a6672683SKever Yang	rt5640 {
565a6672683SKever Yang		rt5640_hpcon: rt5640-hpcon {
566a6672683SKever Yang			rockchip,pins = <4 RK_PC5 RK_FUNC_GPIO &pcfg_pull_none>;
567a6672683SKever Yang		};
568a6672683SKever Yang	};
569a6672683SKever Yang
570a6672683SKever Yang	pmic {
571a6672683SKever Yang		pmic_int_l: pmic-int-l {
572a6672683SKever Yang			rockchip,pins = <1 RK_PC5 RK_FUNC_GPIO &pcfg_pull_up>;
573a6672683SKever Yang		};
574a6672683SKever Yang	};
575a6672683SKever Yang
576a6672683SKever Yang	usb2 {
577a6672683SKever Yang		host_vbus_drv: host-vbus-drv {
578a6672683SKever Yang			rockchip,pins = <1 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>;
579a6672683SKever Yang		};
580a6672683SKever Yang	};
581a6672683SKever Yang};
582a6672683SKever Yang
583a6672683SKever Yang&pwm0 {
584a6672683SKever Yang	status = "okay";
585a6672683SKever Yang};
586a6672683SKever Yang
587a6672683SKever Yang&pwm2 {
588a6672683SKever Yang	status = "okay";
589a6672683SKever Yang};
590a6672683SKever Yang
591a6672683SKever Yang&saradc {
592a6672683SKever Yang	vref-supply = <&vccadc_ref>;
593a6672683SKever Yang	status = "okay";
594a6672683SKever Yang};
595a6672683SKever Yang
596522cd580SKever Yang&sdmmc {
597522cd580SKever Yang	bus-width = <4>;
598522cd580SKever Yang	status = "okay";
599522cd580SKever Yang};
600522cd580SKever Yang
601a6672683SKever Yang&sdhci {
602a6672683SKever Yang	bus-width = <8>;
603a6672683SKever Yang	keep-power-in-suspend;
604a6672683SKever Yang	mmc-hs400-1_8v;
605a6672683SKever Yang	mmc-hs400-enhanced-strobe;
606a6672683SKever Yang	non-removable;
607a6672683SKever Yang	status = "okay";
608a6672683SKever Yang};
609a6672683SKever Yang
610a6672683SKever Yang&tsadc {
611a6672683SKever Yang	/* tshut mode 0:CRU 1:GPIO */
612a6672683SKever Yang	rockchip,hw-tshut-mode = <1>;
613a6672683SKever Yang	/* tshut polarity 0:LOW 1:HIGH */
614a6672683SKever Yang	rockchip,hw-tshut-polarity = <1>;
615a6672683SKever Yang	status = "okay";
616a6672683SKever Yang};
617a6672683SKever Yang
618a6672683SKever Yang&u2phy0 {
619a6672683SKever Yang	status = "okay";
620a6672683SKever Yang
621a6672683SKever Yang	u2phy0_otg: otg-port {
622a6672683SKever Yang		status = "okay";
623a6672683SKever Yang	};
624a6672683SKever Yang
625a6672683SKever Yang	u2phy0_host: host-port {
626a6672683SKever Yang		phy-supply = <&vcc5v0_host>;
627a6672683SKever Yang		status = "okay";
628a6672683SKever Yang	};
629a6672683SKever Yang};
630a6672683SKever Yang
631a6672683SKever Yang&u2phy1 {
632a6672683SKever Yang	status = "okay";
633a6672683SKever Yang
634a6672683SKever Yang	u2phy1_otg: otg-port {
635a6672683SKever Yang		status = "okay";
636a6672683SKever Yang	};
637a6672683SKever Yang
638a6672683SKever Yang	u2phy1_host: host-port {
639a6672683SKever Yang		phy-supply = <&vcc5v0_host>;
640a6672683SKever Yang		status = "okay";
641a6672683SKever Yang	};
642a6672683SKever Yang};
643a6672683SKever Yang
644a6672683SKever Yang&uart0 {
645a6672683SKever Yang	pinctrl-names = "default";
646a6672683SKever Yang	pinctrl-0 = <&uart0_xfer &uart0_cts>;
647a6672683SKever Yang	status = "okay";
648a6672683SKever Yang};
649a6672683SKever Yang
650a6672683SKever Yang&usb_host0_ehci {
651a6672683SKever Yang	status = "okay";
652a6672683SKever Yang};
653a6672683SKever Yang
654a6672683SKever Yang&usb_host0_ohci {
655a6672683SKever Yang	status = "okay";
656a6672683SKever Yang};
657a6672683SKever Yang
658a6672683SKever Yang&usb_host1_ehci {
659a6672683SKever Yang	status = "okay";
660a6672683SKever Yang};
661a6672683SKever Yang
662a6672683SKever Yang&usb_host1_ohci {
663a6672683SKever Yang	status = "okay";
664a6672683SKever Yang};
665