blob: 4193f7208cd0129f1a4cb1971432157efd565134 [file] [log] [blame]
Jagan Tekicb681752020-01-23 19:42:20 +05301// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
Jagan Teki59ea6182017-09-12 17:15:47 +05302/*
3 * Copyright (C) 2017 Jagan Teki <jagan@amarulasolutions.com>
Jagan Teki59ea6182017-09-12 17:15:47 +05304 */
5
6/dts-v1/;
7#include "rk3288.dtsi"
8
9/ {
10 model = "Amarula Vyasa-RK3288";
11 compatible = "amarula,vyasa-rk3288", "rockchip,rk3288";
12
13 chosen {
14 stdout-path = &uart2;
15 };
16
17 memory {
Jagan Tekif233c432018-02-14 21:26:14 +053018 reg = <0x0 0x0 0x0 0x80000000>;
Jagan Teki59ea6182017-09-12 17:15:47 +053019 device_type = "memory";
Jagan Teki59ea6182017-09-12 17:15:47 +053020 };
21
Jagan Teki4d0706b2018-02-14 21:26:17 +053022 dc12_vbat: dc12-vbat {
23 compatible = "regulator-fixed";
24 regulator-name = "dc12_vbat";
25 regulator-min-microvolt = <12000000>;
26 regulator-max-microvolt = <12000000>;
27 regulator-always-on;
28 regulator-boot-on;
29 };
30
31 vboot_3v3: vboot-3v3 {
32 compatible = "regulator-fixed";
33 regulator-name = "vboot_3v3";
34 regulator-min-microvolt = <3300000>;
35 regulator-max-microvolt = <3300000>;
36 regulator-always-on;
37 regulator-boot-on;
38 vin-supply = <&dc12_vbat>;
39 };
40
Jagan Teki59ea6182017-09-12 17:15:47 +053041 vcc_sys: vsys-regulator {
42 compatible = "regulator-fixed";
43 regulator-name = "vcc_sys";
Jagan Teki4d0706b2018-02-14 21:26:17 +053044 regulator-min-microvolt = <3700000>;
45 regulator-max-microvolt = <3700000>;
46 regulator-always-on;
47 regulator-boot-on;
48 vin-supply = <&dc12_vbat>;
49 };
50
51 vboot_5v: vboot-5v {
52 compatible = "regulator-fixed";
53 regulator-name = "vboot_sv";
Jagan Teki59ea6182017-09-12 17:15:47 +053054 regulator-min-microvolt = <5000000>;
55 regulator-max-microvolt = <5000000>;
56 regulator-always-on;
57 regulator-boot-on;
Jagan Teki4d0706b2018-02-14 21:26:17 +053058 vin-supply = <&dc12_vbat>;
59 };
60
61 v3g_3v3: v3g-3v3 {
62 compatible = "regulator-fixed";
63 regulator-name = "v3g_3v3";
64 regulator-min-microvolt = <3300000>;
65 regulator-max-microvolt = <3300000>;
66 regulator-always-on;
67 regulator-boot-on;
68 vin-supply = <&dc12_vbat>;
Jagan Teki59ea6182017-09-12 17:15:47 +053069 };
Jagan Teki11afc3d2018-02-14 21:26:18 +053070
Jagan Tekidaffdd32018-02-14 21:26:20 +053071 vsus_5v: vsus-5v {
72 compatible = "regulator-fixed";
73 regulator-name = "vsus_5v";
74 regulator-min-microvolt = <5000000>;
75 regulator-max-microvolt = <5000000>;
76 regulator-always-on;
77 regulator-boot-on;
78 vin-supply = <&vcc_io>;
79 };
80
Jagan Tekicb681752020-01-23 19:42:20 +053081 vcc50_hdmi: vcc50-hdmi {
82 compatible = "regulator-fixed";
83 regulator-name = "vcc50_hdmi";
84 enable-active-high;
85 gpio = <&gpio7 RK_PB4 GPIO_ACTIVE_HIGH>; /* HDMI_EN */
86 pinctrl-names = "default";
87 pinctrl-0 = <&vcc50_hdmi_en>;
88 regulator-always-on;
89 regulator-boot-on;
90 vin-supply = <&vsus_5v>;
91 };
Jagan Tekicf106b62018-02-14 21:26:21 +053092 vusb1_5v: vusb1-5v {
93 compatible = "regulator-fixed";
94 regulator-name = "vusb1_5v";
95 enable-active-high;
96 gpio = <&gpio0 RK_PB4 GPIO_ACTIVE_HIGH>; /* OTG_VBUS_DRV */
97 pinctrl-names = "default";
98 pinctrl-0 = <&otg_vbus_drv>;
99 regulator-min-microvolt = <5000000>;
100 regulator-max-microvolt = <5000000>;
101 regulator-always-on;
102 regulator-boot-on;
103 vin-supply = <&vsus_5v>;
104 };
105
Jagan Tekidaffdd32018-02-14 21:26:20 +0530106 vusb2_5v: vusb2-5v {
107 compatible = "regulator-fixed";
108 regulator-name = "vusb2_5v";
109 enable-active-high;
110 gpio = <&gpio8 RK_PB1 GPIO_ACTIVE_HIGH>; /* USB2_PWR_EN */
111 pinctrl-names = "default";
112 pinctrl-0 = <&usb2_pwr_en>;
113 regulator-min-microvolt = <5000000>;
114 regulator-max-microvolt = <5000000>;
115 regulator-always-on;
116 regulator-boot-on;
117 vin-supply = <&vsus_5v>;
118 };
119
Jagan Teki11afc3d2018-02-14 21:26:18 +0530120 ext_gmac: external-gmac-clock {
121 compatible = "fixed-clock";
122 #clock-cells = <0>;
123 clock-frequency = <125000000>;
124 clock-output-names = "ext_gmac";
125 };
Jagan Teki59ea6182017-09-12 17:15:47 +0530126};
127
Jagan Teki59ea6182017-09-12 17:15:47 +0530128&cpu0 {
129 cpu0-supply = <&vdd_cpu>;
130};
131
Jagan Tekiec55f422018-02-14 21:26:22 +0530132&emmc {
133 bus-width = <8>;
134 cap-mmc-highspeed;
Jagan Tekiec55f422018-02-14 21:26:22 +0530135 non-removable;
136 pinctrl-names = "default";
137 pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_pwr &emmc_bus8>;
138 vmmc-supply = <&vcc_io>;
139 status = "okay";
140};
141
Jagan Teki11afc3d2018-02-14 21:26:18 +0530142&gmac {
143 assigned-clocks = <&cru SCLK_MAC>;
144 assigned-clock-parents = <&ext_gmac>;
145 clock_in_out = "input";
146 pinctrl-names = "default";
147 pinctrl-0 = <&rgmii_pins>, <&phy_rst>, <&phy_pmeb>, <&phy_int>;
148 phy-supply = <&vcc_lan>;
149 phy-mode = "rgmii";
150 snps,reset-active-low;
151 snps,reset-delays-us = <0 10000 1000000>;
152 snps,reset-gpio = <&gpio4 RK_PB0 GPIO_ACTIVE_LOW>;
153 tx_delay = <0x30>;
154 rx_delay = <0x10>;
155 status = "okay";
156};
157
Jagan Tekif233c432018-02-14 21:26:14 +0530158&gpu {
159 mali-supply = <&vdd_gpu>;
160 status = "okay";
161};
162
163&hdmi {
Jagan Tekicb681752020-01-23 19:42:20 +0530164 ddc-i2c-bus = <&i2c5>;
Jagan Tekif233c432018-02-14 21:26:14 +0530165 status = "okay";
166};
167
Jagan Teki59ea6182017-09-12 17:15:47 +0530168&i2c0 {
169 clock-frequency = <400000>;
170 status = "okay";
171
172 rk808: pmic@1b {
173 compatible = "rockchip,rk808";
174 reg = <0x1b>;
175 interrupt-parent = <&gpio0>;
176 interrupts = <RK_PA4 IRQ_TYPE_LEVEL_LOW>;
Jagan Tekif233c432018-02-14 21:26:14 +0530177 #clock-cells = <1>;
178 clock-output-names = "xin32k", "rk808-clkout2";
Jagan Teki59ea6182017-09-12 17:15:47 +0530179 pinctrl-names = "default";
180 pinctrl-0 = <&pmic_int &global_pwroff>;
Jagan Teki59ea6182017-09-12 17:15:47 +0530181 rockchip,system-power-controller;
Jagan Tekif233c432018-02-14 21:26:14 +0530182 wakeup-source;
Jagan Teki59ea6182017-09-12 17:15:47 +0530183
184 vcc1-supply = <&vcc_sys>;
185 vcc2-supply = <&vcc_sys>;
186 vcc3-supply = <&vcc_sys>;
187 vcc4-supply = <&vcc_sys>;
188 vcc6-supply = <&vcc_sys>;
189 vcc7-supply = <&vcc_sys>;
190 vcc8-supply = <&vcc_io>;
191 vcc9-supply = <&vcc_sys>;
192 vcc10-supply = <&vcc_sys>;
193 vcc11-supply = <&vcc_sys>;
194 vcc12-supply = <&vcc_io>;
195
196 regulators {
Jagan Teki91d838d2018-02-14 21:26:15 +0530197 vdd_cpu: DCDC_REG1 {
198 regulator-name = "vdd_arm";
Jagan Teki59ea6182017-09-12 17:15:47 +0530199 regulator-min-microvolt = <750000>;
200 regulator-max-microvolt = <1350000>;
Jagan Tekif233c432018-02-14 21:26:14 +0530201 regulator-always-on;
202 regulator-boot-on;
Jagan Teki59ea6182017-09-12 17:15:47 +0530203 regulator-state-mem {
204 regulator-off-in-suspend;
205 };
206 };
207
208 vdd_gpu: DCDC_REG2 {
Jagan Tekif233c432018-02-14 21:26:14 +0530209 regulator-name = "vdd_gpu";
Jagan Teki59ea6182017-09-12 17:15:47 +0530210 regulator-min-microvolt = <850000>;
211 regulator-max-microvolt = <1250000>;
Jagan Tekif233c432018-02-14 21:26:14 +0530212 regulator-always-on;
213 regulator-boot-on;
Jagan Teki59ea6182017-09-12 17:15:47 +0530214 regulator-state-mem {
215 regulator-on-in-suspend;
216 regulator-suspend-microvolt = <1000000>;
217 };
218 };
219
220 vcc_ddr: DCDC_REG3 {
Jagan Tekif233c432018-02-14 21:26:14 +0530221 regulator-name = "vcc_ddr";
Jagan Teki59ea6182017-09-12 17:15:47 +0530222 regulator-always-on;
223 regulator-boot-on;
Jagan Teki59ea6182017-09-12 17:15:47 +0530224 regulator-state-mem {
225 regulator-on-in-suspend;
226 };
227 };
228
229 vcc_io: DCDC_REG4 {
Jagan Tekif233c432018-02-14 21:26:14 +0530230 regulator-name = "vcc_io";
Jagan Teki59ea6182017-09-12 17:15:47 +0530231 regulator-min-microvolt = <3300000>;
232 regulator-max-microvolt = <3300000>;
Jagan Tekif233c432018-02-14 21:26:14 +0530233 regulator-always-on;
234 regulator-boot-on;
Jagan Teki59ea6182017-09-12 17:15:47 +0530235 regulator-state-mem {
236 regulator-on-in-suspend;
237 regulator-suspend-microvolt = <3300000>;
238 };
239 };
240
241 vcca_tp: LDO_REG1 {
Jagan Tekif233c432018-02-14 21:26:14 +0530242 regulator-name = "vcc_tp";
Jagan Teki59ea6182017-09-12 17:15:47 +0530243 regulator-min-microvolt = <3300000>;
244 regulator-max-microvolt = <3300000>;
Jagan Tekif233c432018-02-14 21:26:14 +0530245 regulator-always-on;
246 regulator-boot-on;
Jagan Teki59ea6182017-09-12 17:15:47 +0530247 regulator-state-mem {
248 regulator-on-in-suspend;
249 regulator-suspend-microvolt = <3300000>;
250 };
251 };
252
253 vcc_codec: LDO_REG2 {
Jagan Tekif233c432018-02-14 21:26:14 +0530254 regulator-name = "vcc_codec";
Jagan Teki59ea6182017-09-12 17:15:47 +0530255 regulator-min-microvolt = <3300000>;
256 regulator-max-microvolt = <3300000>;
Jagan Tekif233c432018-02-14 21:26:14 +0530257 regulator-always-on;
258 regulator-boot-on;
Jagan Teki59ea6182017-09-12 17:15:47 +0530259 regulator-state-mem {
260 regulator-off-in-suspend;
261 };
262 };
263
264 vdd_10: LDO_REG3 {
Jagan Tekif233c432018-02-14 21:26:14 +0530265 regulator-name = "vdd_10";
Jagan Teki59ea6182017-09-12 17:15:47 +0530266 regulator-min-microvolt = <1000000>;
267 regulator-max-microvolt = <1000000>;
Jagan Tekif233c432018-02-14 21:26:14 +0530268 regulator-always-on;
269 regulator-boot-on;
Jagan Teki59ea6182017-09-12 17:15:47 +0530270 regulator-state-mem {
271 regulator-on-in-suspend;
272 regulator-suspend-microvolt = <1000000>;
273 };
274 };
275
276 vcc_gps: LDO_REG4 {
Jagan Tekif233c432018-02-14 21:26:14 +0530277 regulator-name = "vcc_gps";
Jagan Teki59ea6182017-09-12 17:15:47 +0530278 regulator-min-microvolt = <1800000>;
279 regulator-max-microvolt = <1800000>;
Jagan Tekif233c432018-02-14 21:26:14 +0530280 regulator-always-on;
281 regulator-boot-on;
Jagan Teki59ea6182017-09-12 17:15:47 +0530282 regulator-state-mem {
283 regulator-on-in-suspend;
284 regulator-suspend-microvolt = <1800000>;
285 };
286 };
287
288 vccio_sd: LDO_REG5 {
Jagan Tekif233c432018-02-14 21:26:14 +0530289 regulator-name = "vccio_sd";
Jagan Teki59ea6182017-09-12 17:15:47 +0530290 regulator-min-microvolt = <1800000>;
291 regulator-max-microvolt = <3300000>;
Jagan Tekif233c432018-02-14 21:26:14 +0530292 regulator-always-on;
293 regulator-boot-on;
Jagan Teki59ea6182017-09-12 17:15:47 +0530294 regulator-state-mem {
295 regulator-on-in-suspend;
296 regulator-suspend-microvolt = <3300000>;
297 };
298 };
299
Jagan Tekicb681752020-01-23 19:42:20 +0530300 vdd10_lcd: LDO_REG6 {
301 regulator-name = "vdd10_lcd";
Jagan Teki59ea6182017-09-12 17:15:47 +0530302 regulator-min-microvolt = <1000000>;
303 regulator-max-microvolt = <1000000>;
Jagan Tekif233c432018-02-14 21:26:14 +0530304 regulator-always-on;
305 regulator-boot-on;
Jagan Teki59ea6182017-09-12 17:15:47 +0530306 regulator-state-mem {
307 regulator-on-in-suspend;
Jagan Tekicb681752020-01-23 19:42:20 +0530308 regulator-suspend-microvolt = <1000000>;
Jagan Teki59ea6182017-09-12 17:15:47 +0530309 };
310 };
311
312 vcc_18: LDO_REG7 {
Jagan Tekif233c432018-02-14 21:26:14 +0530313 regulator-name = "vcc_18";
Jagan Teki59ea6182017-09-12 17:15:47 +0530314 regulator-min-microvolt = <1800000>;
315 regulator-max-microvolt = <1800000>;
Jagan Tekif233c432018-02-14 21:26:14 +0530316 regulator-always-on;
317 regulator-boot-on;
Jagan Teki59ea6182017-09-12 17:15:47 +0530318 regulator-state-mem {
319 regulator-on-in-suspend;
320 regulator-suspend-microvolt = <1800000>;
321 };
322 };
323
324 vcc18_lcd: LDO_REG8 {
Jagan Tekif233c432018-02-14 21:26:14 +0530325 regulator-name = "vcc18_lcd";
Jagan Teki59ea6182017-09-12 17:15:47 +0530326 regulator-min-microvolt = <1800000>;
327 regulator-max-microvolt = <1800000>;
Jagan Tekif233c432018-02-14 21:26:14 +0530328 regulator-always-on;
329 regulator-boot-on;
Jagan Teki59ea6182017-09-12 17:15:47 +0530330 regulator-state-mem {
331 regulator-on-in-suspend;
332 regulator-suspend-microvolt = <1800000>;
333 };
334 };
335
Jagan Teki5d8a9b82018-02-14 21:26:16 +0530336 vcc_sd: SWITCH_REG1 {
337 regulator-name = "vcc_sd";
Jagan Teki59ea6182017-09-12 17:15:47 +0530338 regulator-min-microvolt = <3300000>;
339 regulator-max-microvolt = <3300000>;
Jagan Tekif233c432018-02-14 21:26:14 +0530340 regulator-always-on;
341 regulator-boot-on;
Jagan Teki59ea6182017-09-12 17:15:47 +0530342 regulator-state-mem {
343 regulator-on-in-suspend;
344 };
345 };
346
347 vcc_lan: SWITCH_REG2 {
Jagan Tekif233c432018-02-14 21:26:14 +0530348 regulator-name = "vcc_lan";
Jagan Teki59ea6182017-09-12 17:15:47 +0530349 regulator-min-microvolt = <3300000>;
350 regulator-max-microvolt = <3300000>;
Jagan Tekif233c432018-02-14 21:26:14 +0530351 regulator-always-on;
352 regulator-boot-on;
Jagan Teki59ea6182017-09-12 17:15:47 +0530353 regulator-state-mem {
354 regulator-on-in-suspend;
355 };
356 };
357 };
358 };
359};
360
Jagan Tekicb681752020-01-23 19:42:20 +0530361&i2c5 {
Jagan Teki59ea6182017-09-12 17:15:47 +0530362 status = "okay";
Jagan Tekif233c432018-02-14 21:26:14 +0530363};
Jagan Teki59ea6182017-09-12 17:15:47 +0530364
Jagan Tekif233c432018-02-14 21:26:14 +0530365&sdmmc {
Jagan Teki59ea6182017-09-12 17:15:47 +0530366 bus-width = <4>;
367 cap-mmc-highspeed;
368 cap-sd-highspeed;
369 card-detect-delay = <200>;
370 disable-wp;
371 pinctrl-names = "default";
372 pinctrl-0 = <&sdmmc_clk>, <&sdmmc_cmd>, <&sdmmc_cd>, <&sdmmc_bus4>;
373 vmmc-supply = <&vcc_sd>;
374 vqmmc-supply = <&vccio_sd>;
Jagan Tekif233c432018-02-14 21:26:14 +0530375 status = "okay";
Jagan Teki59ea6182017-09-12 17:15:47 +0530376};
377
Jagan Tekicb681752020-01-23 19:42:20 +0530378&tsadc {
379 rockchip,hw-tshut-mode = <1>; /* tshut mode 0:CRU 1:GPIO */
380 rockchip,hw-tshut-polarity = <1>; /* tshut polarity 0:LOW 1:HIGH */
381 status = "okay";
382};
383
Jagan Teki59ea6182017-09-12 17:15:47 +0530384&uart2 {
Jagan Tekif233c432018-02-14 21:26:14 +0530385 status = "okay";
386};
387
Jagan Tekidaffdd32018-02-14 21:26:20 +0530388&usbphy {
389 status = "okay";
390};
391
392&usb_host0_ehci {
393 status = "okay";
394};
395
396&usb_host1 {
397 pinctrl-names = "default";
398 pinctrl-0 = <&phy_pwr_en>;
399 status = "okay";
400};
401
Jagan Tekicf106b62018-02-14 21:26:21 +0530402&usb_otg {
403 status = "okay";
404};
405
Jagan Tekif233c432018-02-14 21:26:14 +0530406&vopb {
407 status = "okay";
408};
409
410&vopb_mmu {
Jagan Teki59ea6182017-09-12 17:15:47 +0530411 status = "okay";
412};
413
Jagan Tekif233c432018-02-14 21:26:14 +0530414&vopl {
415 status = "okay";
416};
417
418&vopl_mmu {
419 status = "okay";
420};
421
Jagan Teki59ea6182017-09-12 17:15:47 +0530422&wdt {
423 status = "okay";
424};
425
426&pinctrl {
Jagan Teki11afc3d2018-02-14 21:26:18 +0530427 pcfg_output_high: pcfg-output-high {
428 output-high;
429 };
430
431 gmac {
432 phy_int: phy-int {
433 rockchip,pins = <0 RK_PB1 RK_FUNC_GPIO &pcfg_pull_up>;
434 };
435
436 phy_pmeb: phy-pmeb {
437 rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_up>;
438 };
439
440 phy_rst: phy-rst {
441 rockchip,pins = <4 RK_PB0 RK_FUNC_GPIO &pcfg_output_high>;
442 };
443 };
444
Jagan Tekicb681752020-01-23 19:42:20 +0530445 hdmi {
446 vcc50_hdmi_en: vcc50-hdmi-en {
447 rockchip,pins = <7 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>;
448 };
449 };
450
Jagan Teki59ea6182017-09-12 17:15:47 +0530451 pmic {
452 pmic_int: pmic-int {
Jagan Tekicb681752020-01-23 19:42:20 +0530453 rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up>;
Jagan Teki59ea6182017-09-12 17:15:47 +0530454 };
455 };
Jagan Tekidaffdd32018-02-14 21:26:20 +0530456
457 usb_host {
458 phy_pwr_en: phy-pwr-en {
Jagan Tekicb681752020-01-23 19:42:20 +0530459 rockchip,pins = <2 RK_PB1 RK_FUNC_GPIO &pcfg_output_high>;
Jagan Tekidaffdd32018-02-14 21:26:20 +0530460 };
461
462 usb2_pwr_en: usb2-pwr-en {
463 rockchip,pins = <8 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>;
464 };
465 };
Jagan Tekicf106b62018-02-14 21:26:21 +0530466
467 usb_otg {
468 otg_vbus_drv: otg-vbus-drv {
Jagan Tekicb681752020-01-23 19:42:20 +0530469 rockchip,pins = <0 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>;
Jagan Tekicf106b62018-02-14 21:26:21 +0530470
471 };
472 };
Jagan Teki59ea6182017-09-12 17:15:47 +0530473};