0001 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
0002 /*
0003 * Copyright (C) 2017 Jagan Teki <jagan@amarulasolutions.com>
0004 */
0005
0006 /dts-v1/;
0007 #include "rk3288.dtsi"
0008
0009 / {
0010 model = "Amarula Vyasa-RK3288";
0011 compatible = "amarula,vyasa-rk3288", "rockchip,rk3288";
0012
0013 chosen {
0014 stdout-path = &uart2;
0015 };
0016
0017 memory {
0018 reg = <0x0 0x0 0x0 0x80000000>;
0019 device_type = "memory";
0020 };
0021
0022 dc12_vbat: dc12-vbat {
0023 compatible = "regulator-fixed";
0024 regulator-name = "dc12_vbat";
0025 regulator-min-microvolt = <12000000>;
0026 regulator-max-microvolt = <12000000>;
0027 regulator-always-on;
0028 regulator-boot-on;
0029 };
0030
0031 vboot_3v3: vboot-3v3 {
0032 compatible = "regulator-fixed";
0033 regulator-name = "vboot_3v3";
0034 regulator-min-microvolt = <3300000>;
0035 regulator-max-microvolt = <3300000>;
0036 regulator-always-on;
0037 regulator-boot-on;
0038 vin-supply = <&dc12_vbat>;
0039 };
0040
0041 vcc_sys: vsys-regulator {
0042 compatible = "regulator-fixed";
0043 regulator-name = "vcc_sys";
0044 regulator-min-microvolt = <3700000>;
0045 regulator-max-microvolt = <3700000>;
0046 regulator-always-on;
0047 regulator-boot-on;
0048 vin-supply = <&dc12_vbat>;
0049 };
0050
0051 vboot_5v: vboot-5v {
0052 compatible = "regulator-fixed";
0053 regulator-name = "vboot_sv";
0054 regulator-min-microvolt = <5000000>;
0055 regulator-max-microvolt = <5000000>;
0056 regulator-always-on;
0057 regulator-boot-on;
0058 vin-supply = <&dc12_vbat>;
0059 };
0060
0061 v3g_3v3: v3g-3v3 {
0062 compatible = "regulator-fixed";
0063 regulator-name = "v3g_3v3";
0064 regulator-min-microvolt = <3300000>;
0065 regulator-max-microvolt = <3300000>;
0066 regulator-always-on;
0067 regulator-boot-on;
0068 vin-supply = <&dc12_vbat>;
0069 };
0070
0071 vsus_5v: vsus-5v {
0072 compatible = "regulator-fixed";
0073 regulator-name = "vsus_5v";
0074 regulator-min-microvolt = <5000000>;
0075 regulator-max-microvolt = <5000000>;
0076 regulator-always-on;
0077 regulator-boot-on;
0078 vin-supply = <&vcc_io>;
0079 };
0080
0081 vcc50_hdmi: vcc50-hdmi {
0082 compatible = "regulator-fixed";
0083 regulator-name = "vcc50_hdmi";
0084 enable-active-high;
0085 gpio = <&gpio7 RK_PB4 GPIO_ACTIVE_HIGH>; /* HDMI_EN */
0086 pinctrl-names = "default";
0087 pinctrl-0 = <&vcc50_hdmi_en>;
0088 regulator-always-on;
0089 regulator-boot-on;
0090 vin-supply = <&vsus_5v>;
0091 };
0092
0093 vusb1_5v: vusb1-5v {
0094 compatible = "regulator-fixed";
0095 regulator-name = "vusb1_5v";
0096 enable-active-high;
0097 gpio = <&gpio0 RK_PB4 GPIO_ACTIVE_HIGH>; /* OTG_VBUS_DRV */
0098 pinctrl-names = "default";
0099 pinctrl-0 = <&otg_vbus_drv>;
0100 regulator-min-microvolt = <5000000>;
0101 regulator-max-microvolt = <5000000>;
0102 vin-supply = <&vsus_5v>;
0103 };
0104
0105 vusb2_5v: vusb2-5v {
0106 compatible = "regulator-fixed";
0107 regulator-name = "vusb2_5v";
0108 enable-active-high;
0109 gpio = <&gpio8 RK_PB1 GPIO_ACTIVE_HIGH>; /* USB2_PWR_EN */
0110 pinctrl-names = "default";
0111 pinctrl-0 = <&usb2_pwr_en>;
0112 regulator-min-microvolt = <5000000>;
0113 regulator-max-microvolt = <5000000>;
0114 regulator-always-on;
0115 regulator-boot-on;
0116 vin-supply = <&vsus_5v>;
0117 };
0118
0119 ext_gmac: external-gmac-clock {
0120 compatible = "fixed-clock";
0121 #clock-cells = <0>;
0122 clock-frequency = <125000000>;
0123 clock-output-names = "ext_gmac";
0124 };
0125 };
0126
0127 &cpu0 {
0128 cpu-supply = <&vdd_cpu>;
0129 };
0130
0131 &cpu1 {
0132 cpu-supply = <&vdd_cpu>;
0133 };
0134
0135 &cpu2 {
0136 cpu-supply = <&vdd_cpu>;
0137 };
0138
0139 &cpu3 {
0140 cpu-supply = <&vdd_cpu>;
0141 };
0142
0143 &emmc {
0144 bus-width = <8>;
0145 cap-mmc-highspeed;
0146 non-removable;
0147 pinctrl-names = "default";
0148 pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_pwr &emmc_bus8>;
0149 vmmc-supply = <&vcc_io>;
0150 status = "okay";
0151 };
0152
0153 &gmac {
0154 assigned-clocks = <&cru SCLK_MAC>;
0155 assigned-clock-parents = <&ext_gmac>;
0156 clock_in_out = "input";
0157 pinctrl-names = "default";
0158 pinctrl-0 = <&rgmii_pins>, <&phy_rst>, <&phy_pmeb>, <&phy_int>;
0159 phy-supply = <&vcc_lan>;
0160 phy-mode = "rgmii";
0161 snps,reset-active-low;
0162 snps,reset-delays-us = <0 10000 1000000>;
0163 snps,reset-gpio = <&gpio4 RK_PB0 GPIO_ACTIVE_LOW>;
0164 tx_delay = <0x30>;
0165 rx_delay = <0x10>;
0166 status = "okay";
0167 };
0168
0169 &gpu {
0170 mali-supply = <&vdd_gpu>;
0171 status = "okay";
0172 };
0173
0174 &hdmi {
0175 ddc-i2c-bus = <&i2c5>;
0176 status = "okay";
0177 };
0178
0179 &i2c0 {
0180 clock-frequency = <400000>;
0181 status = "okay";
0182
0183 rk808: pmic@1b {
0184 compatible = "rockchip,rk808";
0185 reg = <0x1b>;
0186 interrupt-parent = <&gpio0>;
0187 interrupts = <RK_PA4 IRQ_TYPE_LEVEL_LOW>;
0188 #clock-cells = <1>;
0189 clock-output-names = "xin32k", "rk808-clkout2";
0190 pinctrl-names = "default";
0191 pinctrl-0 = <&pmic_int &global_pwroff>;
0192 rockchip,system-power-controller;
0193 wakeup-source;
0194
0195 vcc1-supply = <&vcc_sys>;
0196 vcc2-supply = <&vcc_sys>;
0197 vcc3-supply = <&vcc_sys>;
0198 vcc4-supply = <&vcc_sys>;
0199 vcc6-supply = <&vcc_sys>;
0200 vcc7-supply = <&vcc_sys>;
0201 vcc8-supply = <&vcc_io>;
0202 vcc9-supply = <&vcc_sys>;
0203 vcc10-supply = <&vcc_sys>;
0204 vcc11-supply = <&vcc_sys>;
0205 vcc12-supply = <&vcc_io>;
0206
0207 regulators {
0208 vdd_cpu: DCDC_REG1 {
0209 regulator-name = "vdd_arm";
0210 regulator-min-microvolt = <750000>;
0211 regulator-max-microvolt = <1350000>;
0212 regulator-always-on;
0213 regulator-boot-on;
0214 regulator-state-mem {
0215 regulator-off-in-suspend;
0216 };
0217 };
0218
0219 vdd_gpu: DCDC_REG2 {
0220 regulator-name = "vdd_gpu";
0221 regulator-min-microvolt = <850000>;
0222 regulator-max-microvolt = <1250000>;
0223 regulator-always-on;
0224 regulator-boot-on;
0225 regulator-state-mem {
0226 regulator-on-in-suspend;
0227 regulator-suspend-microvolt = <1000000>;
0228 };
0229 };
0230
0231 vcc_ddr: DCDC_REG3 {
0232 regulator-name = "vcc_ddr";
0233 regulator-always-on;
0234 regulator-boot-on;
0235 regulator-state-mem {
0236 regulator-on-in-suspend;
0237 };
0238 };
0239
0240 vcc_io: DCDC_REG4 {
0241 regulator-name = "vcc_io";
0242 regulator-min-microvolt = <3300000>;
0243 regulator-max-microvolt = <3300000>;
0244 regulator-always-on;
0245 regulator-boot-on;
0246 regulator-state-mem {
0247 regulator-on-in-suspend;
0248 regulator-suspend-microvolt = <3300000>;
0249 };
0250 };
0251
0252 vcca_tp: LDO_REG1 {
0253 regulator-name = "vcc_tp";
0254 regulator-min-microvolt = <3300000>;
0255 regulator-max-microvolt = <3300000>;
0256 regulator-always-on;
0257 regulator-boot-on;
0258 regulator-state-mem {
0259 regulator-on-in-suspend;
0260 regulator-suspend-microvolt = <3300000>;
0261 };
0262 };
0263
0264 vcc_codec: LDO_REG2 {
0265 regulator-name = "vcc_codec";
0266 regulator-min-microvolt = <3300000>;
0267 regulator-max-microvolt = <3300000>;
0268 regulator-always-on;
0269 regulator-boot-on;
0270 regulator-state-mem {
0271 regulator-off-in-suspend;
0272 };
0273 };
0274
0275 vdd_10: LDO_REG3 {
0276 regulator-name = "vdd_10";
0277 regulator-min-microvolt = <1000000>;
0278 regulator-max-microvolt = <1000000>;
0279 regulator-always-on;
0280 regulator-boot-on;
0281 regulator-state-mem {
0282 regulator-on-in-suspend;
0283 regulator-suspend-microvolt = <1000000>;
0284 };
0285 };
0286
0287 vcc_gps: LDO_REG4 {
0288 regulator-name = "vcc_gps";
0289 regulator-min-microvolt = <1800000>;
0290 regulator-max-microvolt = <1800000>;
0291 regulator-always-on;
0292 regulator-boot-on;
0293 regulator-state-mem {
0294 regulator-on-in-suspend;
0295 regulator-suspend-microvolt = <1800000>;
0296 };
0297 };
0298
0299 vccio_sd: LDO_REG5 {
0300 regulator-name = "vccio_sd";
0301 regulator-min-microvolt = <1800000>;
0302 regulator-max-microvolt = <3300000>;
0303 regulator-always-on;
0304 regulator-boot-on;
0305 regulator-state-mem {
0306 regulator-on-in-suspend;
0307 regulator-suspend-microvolt = <3300000>;
0308 };
0309 };
0310
0311 vdd10_lcd: LDO_REG6 {
0312 regulator-name = "vdd10_lcd";
0313 regulator-min-microvolt = <1000000>;
0314 regulator-max-microvolt = <1000000>;
0315 regulator-always-on;
0316 regulator-boot-on;
0317 regulator-state-mem {
0318 regulator-on-in-suspend;
0319 regulator-suspend-microvolt = <1000000>;
0320 };
0321 };
0322
0323 vcc_18: LDO_REG7 {
0324 regulator-name = "vcc_18";
0325 regulator-min-microvolt = <1800000>;
0326 regulator-max-microvolt = <1800000>;
0327 regulator-always-on;
0328 regulator-boot-on;
0329 regulator-state-mem {
0330 regulator-on-in-suspend;
0331 regulator-suspend-microvolt = <1800000>;
0332 };
0333 };
0334
0335 vcc18_lcd: LDO_REG8 {
0336 regulator-name = "vcc18_lcd";
0337 regulator-min-microvolt = <1800000>;
0338 regulator-max-microvolt = <1800000>;
0339 regulator-always-on;
0340 regulator-boot-on;
0341 regulator-state-mem {
0342 regulator-on-in-suspend;
0343 regulator-suspend-microvolt = <1800000>;
0344 };
0345 };
0346
0347 vcc_sd: SWITCH_REG1 {
0348 regulator-name = "vcc_sd";
0349 regulator-min-microvolt = <3300000>;
0350 regulator-max-microvolt = <3300000>;
0351 regulator-always-on;
0352 regulator-boot-on;
0353 regulator-state-mem {
0354 regulator-on-in-suspend;
0355 };
0356 };
0357
0358 vcc_lan: SWITCH_REG2 {
0359 regulator-name = "vcc_lan";
0360 regulator-min-microvolt = <3300000>;
0361 regulator-max-microvolt = <3300000>;
0362 regulator-always-on;
0363 regulator-boot-on;
0364 regulator-state-mem {
0365 regulator-on-in-suspend;
0366 };
0367 };
0368 };
0369 };
0370 };
0371
0372 &i2c5 {
0373 status = "okay";
0374 };
0375
0376 &io_domains {
0377 status = "okay";
0378
0379 audio-supply = <&vcc_18>;
0380 bb-supply = <&vcc_io>;
0381 dvp-supply = <&vcc_io>;
0382 flash0-supply = <&vcc_18>;
0383 flash1-supply = <&vcc_lan>;
0384 gpio30-supply = <&vcc_io>;
0385 gpio1830-supply = <&vcc_io>;
0386 lcdc-supply = <&vcc_io>;
0387 sdcard-supply = <&vccio_sd>;
0388 wifi-supply = <&vcc_18>;
0389 };
0390
0391 &sdmmc {
0392 bus-width = <4>;
0393 cap-mmc-highspeed;
0394 cap-sd-highspeed;
0395 card-detect-delay = <200>;
0396 disable-wp;
0397 pinctrl-names = "default";
0398 pinctrl-0 = <&sdmmc_clk>, <&sdmmc_cmd>, <&sdmmc_cd>, <&sdmmc_bus4>;
0399 vmmc-supply = <&vcc_sd>;
0400 vqmmc-supply = <&vccio_sd>;
0401 status = "okay";
0402 };
0403
0404 &tsadc {
0405 rockchip,hw-tshut-mode = <1>; /* tshut mode 0:CRU 1:GPIO */
0406 rockchip,hw-tshut-polarity = <1>; /* tshut polarity 0:LOW 1:HIGH */
0407 status = "okay";
0408 };
0409
0410 &uart2 {
0411 status = "okay";
0412 };
0413
0414 &usbphy {
0415 status = "okay";
0416 };
0417
0418 &usb_host0_ehci {
0419 status = "okay";
0420 };
0421
0422 &usb_host1 {
0423 pinctrl-names = "default";
0424 pinctrl-0 = <&phy_pwr_en>;
0425 status = "okay";
0426 };
0427
0428 &usb_otg {
0429 vbus-supply = <&vusb1_5v>;
0430 status = "okay";
0431 };
0432
0433 &vopb {
0434 status = "okay";
0435 };
0436
0437 &vopb_mmu {
0438 status = "okay";
0439 };
0440
0441 &vopl {
0442 status = "okay";
0443 };
0444
0445 &vopl_mmu {
0446 status = "okay";
0447 };
0448
0449 &wdt {
0450 status = "okay";
0451 };
0452
0453 &pinctrl {
0454 pcfg_output_high: pcfg-output-high {
0455 output-high;
0456 };
0457
0458 gmac {
0459 phy_int: phy-int {
0460 rockchip,pins = <0 RK_PB1 RK_FUNC_GPIO &pcfg_pull_up>;
0461 };
0462
0463 phy_pmeb: phy-pmeb {
0464 rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_up>;
0465 };
0466
0467 phy_rst: phy-rst {
0468 rockchip,pins = <4 RK_PB0 RK_FUNC_GPIO &pcfg_output_high>;
0469 };
0470 };
0471
0472 hdmi {
0473 vcc50_hdmi_en: vcc50-hdmi-en {
0474 rockchip,pins = <7 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>;
0475 };
0476 };
0477
0478 pmic {
0479 pmic_int: pmic-int {
0480 rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up>;
0481 };
0482 };
0483
0484 usb_host {
0485 phy_pwr_en: phy-pwr-en {
0486 rockchip,pins = <2 RK_PB1 RK_FUNC_GPIO &pcfg_output_high>;
0487 };
0488
0489 usb2_pwr_en: usb2-pwr-en {
0490 rockchip,pins = <8 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>;
0491 };
0492 };
0493
0494 usb_otg {
0495 otg_vbus_drv: otg-vbus-drv {
0496 rockchip,pins = <0 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>;
0497
0498 };
0499 };
0500 };