Commit | Line | Data |
---|---|---|
48853353 JT |
1 | // SPDX-License-Identifier: (GPL-2.0+ OR MIT) |
2 | /* | |
3 | * Copyright (c) 2019 Fuzhou Rockchip Electronics Co., Ltd | |
4 | * Copyright (c) 2019 Vamrs Limited | |
5 | * Copyright (c) 2019 Amarula Solutions(India) | |
6 | */ | |
7 | ||
8 | #include <dt-bindings/gpio/gpio.h> | |
9 | #include <dt-bindings/pinctrl/rockchip.h> | |
10 | #include <dt-bindings/pwm/pwm.h> | |
11 | ||
12 | / { | |
13 | compatible = "vamrs,rk3399pro-vmarc-som", "rockchip,rk3399pro"; | |
93ca8ac2 | 14 | |
5dcbe7e3 | 15 | aliases { |
c80992ab JT |
16 | mmc0 = &sdhci; |
17 | mmc1 = &sdmmc; | |
5dcbe7e3 HS |
18 | }; |
19 | ||
93ca8ac2 JT |
20 | vcc3v3_pcie: vcc-pcie-regulator { |
21 | compatible = "regulator-fixed"; | |
22 | enable-active-high; | |
23 | gpio = <&gpio4 RK_PD4 GPIO_ACTIVE_HIGH>; | |
24 | pinctrl-names = "default"; | |
25 | pinctrl-0 = <&pcie_pwr>; | |
26 | regulator-name = "vcc3v3_pcie"; | |
27 | regulator-always-on; | |
28 | regulator-boot-on; | |
29 | vin-supply = <&vcc5v0_sys>; | |
30 | }; | |
48853353 JT |
31 | }; |
32 | ||
33 | &cpu_l0 { | |
34 | cpu-supply = <&vdd_cpu_l>; | |
35 | }; | |
36 | ||
37 | &cpu_l1 { | |
38 | cpu-supply = <&vdd_cpu_l>; | |
39 | }; | |
40 | ||
41 | &cpu_l2 { | |
42 | cpu-supply = <&vdd_cpu_l>; | |
43 | }; | |
44 | ||
45 | &cpu_l3 { | |
46 | cpu-supply = <&vdd_cpu_l>; | |
47 | }; | |
48 | ||
49 | &emmc_phy { | |
50 | status = "okay"; | |
51 | }; | |
52 | ||
53 | &gmac { | |
54 | assigned-clocks = <&cru SCLK_RMII_SRC>; | |
48853353 | 55 | phy-supply = <&vcc_lan>; |
48853353 | 56 | snps,reset-gpio = <&gpio3 RK_PB7 GPIO_ACTIVE_LOW>; |
48853353 JT |
57 | }; |
58 | ||
d0cb2f30 JT |
59 | &hdmi { |
60 | ddc-i2c-bus = <&i2c3>; | |
61 | pinctrl-names = "default"; | |
62 | pinctrl-0 = <&hdmi_cec>; | |
63 | }; | |
64 | ||
48853353 JT |
65 | &i2c0 { |
66 | clock-frequency = <400000>; | |
48853353 | 67 | i2c-scl-falling-time-ns = <30>; |
3047b384 | 68 | i2c-scl-rising-time-ns = <180>; |
48853353 JT |
69 | status = "okay"; |
70 | ||
71 | rk809: pmic@20 { | |
72 | compatible = "rockchip,rk809"; | |
73 | reg = <0x20>; | |
74 | interrupt-parent = <&gpio1>; | |
75 | interrupts = <RK_PC2 IRQ_TYPE_LEVEL_LOW>; | |
76 | #clock-cells = <1>; | |
77 | clock-output-names = "rk808-clkout1", "rk808-clkout2"; | |
78 | pinctrl-names = "default"; | |
79 | pinctrl-0 = <&pmic_int_l>; | |
80 | rockchip,system-power-controller; | |
81 | wakeup-source; | |
82 | ||
83 | vcc1-supply = <&vcc5v0_sys>; | |
84 | vcc2-supply = <&vcc5v0_sys>; | |
85 | vcc3-supply = <&vcc5v0_sys>; | |
86 | vcc4-supply = <&vcc5v0_sys>; | |
87 | vcc5-supply = <&vcc_buck5>; | |
88 | vcc6-supply = <&vcc_buck5>; | |
89 | vcc7-supply = <&vcc5v0_sys>; | |
90 | vcc8-supply = <&vcc3v3_sys>; | |
91 | vcc9-supply = <&vcc5v0_sys>; | |
92 | ||
93 | regulators { | |
94 | vdd_log: DCDC_REG1 { | |
95 | regulator-name = "vdd_log"; | |
96 | regulator-always-on; | |
97 | regulator-boot-on; | |
98 | regulator-min-microvolt = <750000>; | |
99 | regulator-max-microvolt = <1350000>; | |
100 | regulator-initial-mode = <0x2>; | |
101 | regulator-state-mem { | |
102 | regulator-off-in-suspend; | |
103 | regulator-suspend-microvolt = <900000>; | |
104 | }; | |
105 | }; | |
106 | ||
107 | vdd_cpu_l: DCDC_REG2 { | |
108 | regulator-name = "vdd_cpu_l"; | |
109 | regulator-always-on; | |
110 | regulator-boot-on; | |
111 | regulator-min-microvolt = <750000>; | |
112 | regulator-max-microvolt = <1350000>; | |
113 | regulator-ramp-delay = <6001>; | |
114 | regulator-initial-mode = <0x2>; | |
115 | regulator-state-mem { | |
116 | regulator-off-in-suspend; | |
117 | }; | |
118 | }; | |
119 | ||
120 | vcc_ddr: DCDC_REG3 { | |
121 | regulator-name = "vcc_ddr"; | |
122 | regulator-always-on; | |
123 | regulator-boot-on; | |
124 | regulator-initial-mode = <0x2>; | |
125 | regulator-state-mem { | |
126 | regulator-on-in-suspend; | |
127 | }; | |
128 | }; | |
129 | ||
130 | vcc3v3_sys: DCDC_REG4 { | |
131 | regulator-name = "vcc3v3_sys"; | |
132 | regulator-always-on; | |
133 | regulator-boot-on; | |
134 | regulator-min-microvolt = <3300000>; | |
135 | regulator-max-microvolt = <3300000>; | |
136 | regulator-initial-mode = <0x2>; | |
137 | regulator-state-mem { | |
138 | regulator-on-in-suspend; | |
139 | regulator-suspend-microvolt = <3300000>; | |
140 | }; | |
141 | }; | |
142 | ||
143 | vcc_buck5: DCDC_REG5 { | |
144 | regulator-name = "vcc_buck5"; | |
145 | regulator-always-on; | |
146 | regulator-boot-on; | |
147 | regulator-min-microvolt = <2200000>; | |
148 | regulator-max-microvolt = <2200000>; | |
149 | regulator-state-mem { | |
150 | regulator-on-in-suspend; | |
151 | regulator-suspend-microvolt = <2200000>; | |
152 | }; | |
153 | }; | |
154 | ||
155 | vcca_0v9: LDO_REG1 { | |
156 | regulator-name = "vcca_0v9"; | |
157 | regulator-always-on; | |
158 | regulator-boot-on; | |
159 | regulator-min-microvolt = <900000>; | |
160 | regulator-max-microvolt = <900000>; | |
161 | regulator-state-mem { | |
93ca8ac2 JT |
162 | regulator-on-in-suspend; |
163 | regulator-suspend-microvolt = <900000>; | |
48853353 JT |
164 | }; |
165 | }; | |
166 | ||
167 | vcc_1v8: LDO_REG2 { | |
168 | regulator-name = "vcc_1v8"; | |
169 | regulator-always-on; | |
170 | regulator-boot-on; | |
171 | regulator-min-microvolt = <1800000>; | |
172 | regulator-max-microvolt = <1800000>; | |
173 | regulator-state-mem { | |
174 | regulator-on-in-suspend; | |
175 | regulator-suspend-microvolt = <1800000>; | |
176 | }; | |
177 | }; | |
178 | ||
179 | vcc_0v9: LDO_REG3 { | |
180 | regulator-name = "vcc_0v9"; | |
181 | regulator-always-on; | |
182 | regulator-boot-on; | |
183 | regulator-min-microvolt = <900000>; | |
184 | regulator-max-microvolt = <900000>; | |
185 | regulator-state-mem { | |
186 | regulator-on-in-suspend; | |
187 | regulator-suspend-microvolt = <900000>; | |
188 | }; | |
189 | }; | |
190 | ||
191 | vcca_1v8: LDO_REG4 { | |
192 | regulator-name = "vcca_1v8"; | |
193 | regulator-always-on; | |
194 | regulator-boot-on; | |
195 | regulator-min-microvolt = <1850000>; | |
196 | regulator-max-microvolt = <1850000>; | |
197 | regulator-state-mem { | |
93ca8ac2 JT |
198 | regulator-on-in-suspend; |
199 | regulator-suspend-microvolt = <1850000>; | |
48853353 JT |
200 | }; |
201 | }; | |
202 | ||
203 | /* | |
204 | * As per BSP, but schematic not showing any regulator | |
205 | * pin for LD05. | |
206 | */ | |
207 | vdd1v5_dvp: LDO_REG5 { | |
208 | regulator-name = "vdd1v5_dvp"; | |
209 | regulator-always-on; | |
210 | regulator-boot-on; | |
211 | regulator-min-microvolt = <1500000>; | |
212 | regulator-max-microvolt = <1500000>; | |
213 | regulator-state-mem { | |
214 | regulator-off-in-suspend; | |
215 | }; | |
216 | }; | |
217 | ||
218 | vcc_1v5: LDO_REG6 { | |
219 | regulator-name = "vcc_1v5"; | |
220 | regulator-always-on; | |
221 | regulator-boot-on; | |
222 | regulator-min-microvolt = <1500000>; | |
223 | regulator-max-microvolt = <1500000>; | |
224 | regulator-state-mem { | |
225 | regulator-off-in-suspend; | |
226 | }; | |
227 | }; | |
228 | ||
229 | vccio_3v0: LDO_REG7 { | |
230 | regulator-name = "vccio_3v0"; | |
231 | regulator-always-on; | |
232 | regulator-boot-on; | |
233 | regulator-min-microvolt = <3000000>; | |
234 | regulator-max-microvolt = <3000000>; | |
235 | regulator-state-mem { | |
236 | regulator-off-in-suspend; | |
237 | }; | |
238 | }; | |
239 | ||
240 | vccio_sd: LDO_REG8 { | |
241 | regulator-name = "vccio_sd"; | |
242 | regulator-always-on; | |
243 | regulator-boot-on; | |
244 | regulator-min-microvolt = <1800000>; | |
245 | regulator-max-microvolt = <3300000>; | |
246 | regulator-state-mem { | |
247 | regulator-off-in-suspend; | |
248 | }; | |
249 | }; | |
250 | ||
251 | /* | |
252 | * As per BSP, but schematic not showing any regulator | |
253 | * pin for LD09. | |
254 | */ | |
255 | vcc_sd: LDO_REG9 { | |
256 | regulator-name = "vcc_sd"; | |
257 | regulator-always-on; | |
258 | regulator-boot-on; | |
259 | regulator-min-microvolt = <3300000>; | |
260 | regulator-max-microvolt = <3300000>; | |
261 | regulator-state-mem { | |
262 | regulator-off-in-suspend; | |
263 | }; | |
264 | }; | |
265 | ||
266 | vcc5v0_usb2: SWITCH_REG1 { | |
267 | regulator-name = "vcc5v0_usb2"; | |
268 | regulator-min-microvolt = <5000000>; | |
269 | regulator-max-microvolt = <5000000>; | |
270 | regulator-state-mem { | |
271 | regulator-on-in-suspend; | |
272 | regulator-suspend-microvolt = <5000000>; | |
273 | }; | |
274 | }; | |
275 | ||
276 | vccio_3v3: vcc_lan: SWITCH_REG2 { | |
277 | regulator-name = "vccio_3v3"; | |
278 | regulator-always-on; | |
279 | regulator-boot-on; | |
280 | regulator-min-microvolt = <3300000>; | |
281 | regulator-max-microvolt = <3300000>; | |
282 | regulator-state-mem { | |
283 | regulator-off-in-suspend; | |
284 | }; | |
285 | }; | |
286 | }; | |
287 | }; | |
288 | }; | |
289 | ||
c2f34351 JT |
290 | &i2c1 { |
291 | i2c-scl-falling-time-ns = <30>; | |
292 | i2c-scl-rising-time-ns = <140>; | |
293 | status = "okay"; | |
294 | }; | |
295 | ||
296 | &i2c2 { | |
297 | clock-frequency = <400000>; | |
298 | status = "okay"; | |
299 | ||
67a9aeef | 300 | hym8563: rtc@51 { |
c2f34351 JT |
301 | compatible = "haoyu,hym8563"; |
302 | reg = <0x51>; | |
303 | #clock-cells = <0>; | |
c2f34351 JT |
304 | clock-output-names = "hym8563"; |
305 | pinctrl-names = "default"; | |
306 | pinctrl-0 = <&hym8563_int>; | |
307 | interrupt-parent = <&gpio4>; | |
308 | interrupts = <RK_PD6 IRQ_TYPE_LEVEL_LOW>; | |
309 | }; | |
310 | }; | |
311 | ||
d0cb2f30 JT |
312 | &i2c3 { |
313 | i2c-scl-rising-time-ns = <450>; | |
314 | i2c-scl-falling-time-ns = <15>; | |
315 | status = "okay"; | |
316 | }; | |
317 | ||
48853353 JT |
318 | &io_domains { |
319 | status = "okay"; | |
320 | bt656-supply = <&vcca_1v8>; | |
48853353 | 321 | gpio1830-supply = <&vccio_3v0>; |
3047b384 JT |
322 | sdmmc-supply = <&vccio_sd>; |
323 | }; | |
324 | ||
93ca8ac2 JT |
325 | &pcie_phy { |
326 | status = "okay"; | |
327 | }; | |
328 | ||
329 | &pcie0 { | |
330 | ep-gpios = <&gpio0 RK_PB4 GPIO_ACTIVE_HIGH>; | |
93ca8ac2 JT |
331 | num-lanes = <4>; |
332 | pinctrl-0 = <&pcie_clkreqnb_cpm>; | |
333 | pinctrl-names = "default"; | |
334 | vpcie0v9-supply = <&vcca_0v9>; /* VCC_0V9_S0 */ | |
335 | vpcie1v8-supply = <&vcca_1v8>; /* VCC_1V8_S0 */ | |
336 | vpcie3v3-supply = <&vcc3v3_pcie>; | |
337 | status = "okay"; | |
338 | }; | |
339 | ||
3047b384 JT |
340 | &pinctrl { |
341 | hym8563 { | |
342 | hym8563_int: hym8563-int { | |
343 | rockchip,pins = <4 RK_PD6 0 &pcfg_pull_up>; | |
344 | }; | |
345 | }; | |
346 | ||
93ca8ac2 JT |
347 | pcie { |
348 | pcie_pwr: pcie-pwr { | |
41d97397 | 349 | rockchip,pins = <4 RK_PD4 RK_FUNC_GPIO &pcfg_pull_up>; |
93ca8ac2 JT |
350 | }; |
351 | }; | |
352 | ||
3047b384 JT |
353 | pmic { |
354 | pmic_int_l: pmic-int-l { | |
355 | rockchip,pins = <1 RK_PC2 0 &pcfg_pull_up>; | |
356 | }; | |
357 | }; | |
417b188a | 358 | |
29952fea JT |
359 | sdio-pwrseq { |
360 | wifi_enable_h: wifi-enable-h { | |
361 | rockchip,pins = <2 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>; | |
362 | }; | |
363 | }; | |
364 | ||
417b188a JT |
365 | vbus_host { |
366 | usb1_en_oc: usb1-en-oc { | |
367 | rockchip,pins = <4 RK_PD1 RK_FUNC_GPIO &pcfg_pull_up>; | |
368 | }; | |
369 | }; | |
370 | ||
371 | vbus_typec { | |
372 | usb0_en_oc: usb0-en-oc { | |
373 | rockchip,pins = <4 RK_PD2 RK_FUNC_GPIO &pcfg_pull_up>; | |
374 | }; | |
375 | }; | |
48853353 JT |
376 | }; |
377 | ||
378 | &pmu_io_domains { | |
379 | status = "okay"; | |
380 | pmu1830-supply = <&vcc_1v8>; | |
381 | }; | |
382 | ||
29952fea JT |
383 | &sdio_pwrseq { |
384 | /* | |
385 | * On the module itself this is one of these (depending | |
386 | * on the actual card populated): | |
387 | * - SDIO_RESET_L_WL_REG_ON | |
388 | * - PDN (power down when low) | |
389 | */ | |
390 | reset-gpios = <&gpio2 RK_PD3 GPIO_ACTIVE_LOW>; | |
391 | }; | |
392 | ||
48853353 JT |
393 | &sdhci { |
394 | bus-width = <8>; | |
395 | mmc-hs400-1_8v; | |
396 | mmc-hs400-enhanced-strobe; | |
397 | non-removable; | |
398 | status = "okay"; | |
399 | }; | |
400 | ||
a66bd94d JT |
401 | &sdmmc { |
402 | cd-gpios = <&gpio0 RK_PA7 GPIO_ACTIVE_LOW>; | |
403 | max-frequency = <150000000>; | |
404 | }; | |
405 | ||
417b188a JT |
406 | &tcphy0 { |
407 | status = "okay"; | |
408 | }; | |
409 | ||
48853353 | 410 | &tsadc { |
48853353 JT |
411 | rockchip,hw-tshut-mode = <1>; |
412 | rockchip,hw-tshut-polarity = <1>; | |
3047b384 | 413 | status = "okay"; |
48853353 | 414 | }; |
417b188a JT |
415 | |
416 | &u2phy0 { | |
417 | status = "okay"; | |
418 | ||
419 | u2phy0_otg: otg-port { | |
420 | phy-supply = <&vbus_typec>; | |
421 | status = "okay"; | |
422 | }; | |
423 | ||
424 | u2phy0_host: host-port { | |
425 | phy-supply = <&vbus_host>; | |
426 | status = "okay"; | |
427 | }; | |
428 | }; | |
429 | ||
430 | ||
431 | &u2phy1 { | |
432 | status = "okay"; | |
433 | ||
434 | u2phy1_host: host-port { | |
435 | phy-supply = <&vbus_host>; | |
436 | status = "okay"; | |
437 | }; | |
438 | }; | |
439 | ||
440 | &usb_host0_ehci { | |
441 | status = "okay"; | |
442 | }; | |
443 | ||
444 | &usb_host0_ohci { | |
445 | status = "okay"; | |
446 | }; | |
447 | ||
448 | &usb_host1_ehci { | |
449 | status = "okay"; | |
450 | }; | |
451 | ||
452 | &usb_host1_ohci { | |
453 | status = "okay"; | |
454 | }; | |
455 | ||
456 | &usbdrd3_0 { | |
457 | status = "okay"; | |
458 | }; | |
459 | ||
460 | &usbdrd_dwc3_0 { | |
461 | status = "okay"; | |
462 | }; | |
463 | ||
464 | &vbus_host { | |
465 | enable-active-high; | |
466 | gpio = <&gpio4 RK_PD1 GPIO_ACTIVE_HIGH>; /* USB1_EN_OC# */ | |
467 | pinctrl-names = "default"; | |
468 | pinctrl-0 = <&usb1_en_oc>; | |
469 | }; | |
470 | ||
471 | &vbus_typec { | |
472 | enable-active-high; | |
473 | gpio = <&gpio4 RK_PD2 GPIO_ACTIVE_HIGH>; /* USB0_EN_OC# */ | |
474 | pinctrl-names = "default"; | |
475 | pinctrl-0 = <&usb0_en_oc>; | |
476 | }; |