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