1*724ba675SRob Herring// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2*724ba675SRob Herring/* 3*724ba675SRob Herring * Copyright (c) 2019 Fuzhou Rockchip Electronics Co., Ltd 4*724ba675SRob Herring * Copyright (c) 2019 Vamrs Limited 5*724ba675SRob Herring * Copyright (c) 2019 Amarula Solutions(India) 6*724ba675SRob Herring */ 7*724ba675SRob Herring 8*724ba675SRob Herring#include <dt-bindings/gpio/gpio.h> 9*724ba675SRob Herring#include <dt-bindings/pinctrl/rockchip.h> 10*724ba675SRob Herring 11*724ba675SRob Herring/ { 12*724ba675SRob Herring compatible = "vamrs,rk3288-vmarc-som", "rockchip,rk3288"; 13*724ba675SRob Herring 14*724ba675SRob Herring vccio_flash: vccio-flash-regulator { 15*724ba675SRob Herring compatible = "regulator-fixed"; 16*724ba675SRob Herring regulator-name = "vccio_flash"; 17*724ba675SRob Herring regulator-min-microvolt = <1800000>; 18*724ba675SRob Herring regulator-max-microvolt = <1800000>; 19*724ba675SRob Herring vin-supply = <&vcc_io>; 20*724ba675SRob Herring }; 21*724ba675SRob Herring}; 22*724ba675SRob Herring 23*724ba675SRob Herring&emmc { 24*724ba675SRob Herring bus-width = <8>; 25*724ba675SRob Herring cap-mmc-highspeed; 26*724ba675SRob Herring disable-wp; 27*724ba675SRob Herring non-removable; 28*724ba675SRob Herring pinctrl-names = "default"; 29*724ba675SRob Herring pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_pwr &emmc_bus8>; 30*724ba675SRob Herring vmmc-supply = <&vcc_io>; 31*724ba675SRob Herring vqmmc-supply = <&vccio_flash>; 32*724ba675SRob Herring status = "okay"; 33*724ba675SRob Herring}; 34*724ba675SRob Herring 35*724ba675SRob Herring&gmac { 36*724ba675SRob Herring assigned-clocks = <&cru SCLK_MAC>; 37*724ba675SRob Herring phy-supply = <&vcc_io>; 38*724ba675SRob Herring snps,reset-gpio = <&gpio4 RK_PA7 GPIO_ACTIVE_HIGH>; 39*724ba675SRob Herring}; 40*724ba675SRob Herring 41*724ba675SRob Herring&hdmi { 42*724ba675SRob Herring ddc-i2c-bus = <&i2c5>; 43*724ba675SRob Herring pinctrl-names = "default"; 44*724ba675SRob Herring pinctrl-0 = <&hdmi_cec_c0>; 45*724ba675SRob Herring}; 46*724ba675SRob Herring 47*724ba675SRob Herring&i2c0 { 48*724ba675SRob Herring clock-frequency = <400000>; 49*724ba675SRob Herring status = "okay"; 50*724ba675SRob Herring 51*724ba675SRob Herring rk808: pmic@1b { 52*724ba675SRob Herring compatible = "rockchip,rk808"; 53*724ba675SRob Herring reg = <0x1b>; 54*724ba675SRob Herring interrupt-parent = <&gpio0>; 55*724ba675SRob Herring interrupts = <RK_PA4 IRQ_TYPE_LEVEL_LOW>; 56*724ba675SRob Herring pinctrl-names = "default"; 57*724ba675SRob Herring pinctrl-0 = <&pmic_int &global_pwroff>; 58*724ba675SRob Herring rockchip,system-power-controller; 59*724ba675SRob Herring wakeup-source; 60*724ba675SRob Herring #clock-cells = <1>; 61*724ba675SRob Herring clock-output-names = "rk808-clkout1", "rk808-clkout2"; 62*724ba675SRob Herring 63*724ba675SRob Herring vcc1-supply = <&vcc5v0_sys>; 64*724ba675SRob Herring vcc2-supply = <&vcc5v0_sys>; 65*724ba675SRob Herring vcc3-supply = <&vcc5v0_sys>; 66*724ba675SRob Herring vcc4-supply = <&vcc5v0_sys>; 67*724ba675SRob Herring vcc6-supply = <&vcc5v0_sys>; 68*724ba675SRob Herring vcc7-supply = <&vcc5v0_sys>; 69*724ba675SRob Herring vcc8-supply = <&vcc_io>; 70*724ba675SRob Herring vcc9-supply = <&vcc_io>; 71*724ba675SRob Herring vcc10-supply = <&vcc5v0_sys>; 72*724ba675SRob Herring vcc11-supply = <&vcc5v0_sys>; 73*724ba675SRob Herring vcc12-supply = <&vcc_io>; 74*724ba675SRob Herring vddio-supply = <&vcc_io>; 75*724ba675SRob Herring 76*724ba675SRob Herring regulators { 77*724ba675SRob Herring vdd_cpu: DCDC_REG1 { 78*724ba675SRob Herring regulator-name = "vdd_arm"; 79*724ba675SRob Herring regulator-always-on; 80*724ba675SRob Herring regulator-boot-on; 81*724ba675SRob Herring regulator-min-microvolt = <750000>; 82*724ba675SRob Herring regulator-max-microvolt = <1400000>; 83*724ba675SRob Herring regulator-state-mem { 84*724ba675SRob Herring regulator-off-in-suspend; 85*724ba675SRob Herring }; 86*724ba675SRob Herring }; 87*724ba675SRob Herring 88*724ba675SRob Herring vdd_gpu: DCDC_REG2 { 89*724ba675SRob Herring regulator-name = "vdd_gpu"; 90*724ba675SRob Herring regulator-always-on; 91*724ba675SRob Herring regulator-boot-on; 92*724ba675SRob Herring regulator-min-microvolt = <850000>; 93*724ba675SRob Herring regulator-max-microvolt = <1250000>; 94*724ba675SRob Herring regulator-ramp-delay = <6000>; 95*724ba675SRob Herring regulator-state-mem { 96*724ba675SRob Herring regulator-off-in-suspend; 97*724ba675SRob Herring }; 98*724ba675SRob Herring }; 99*724ba675SRob Herring 100*724ba675SRob Herring vcc_ddr: DCDC_REG3 { 101*724ba675SRob Herring regulator-name = "vcc_ddr"; 102*724ba675SRob Herring regulator-always-on; 103*724ba675SRob Herring regulator-boot-on; 104*724ba675SRob Herring regulator-state-mem { 105*724ba675SRob Herring regulator-on-in-suspend; 106*724ba675SRob Herring }; 107*724ba675SRob Herring }; 108*724ba675SRob Herring 109*724ba675SRob Herring vcc_io: DCDC_REG4 { 110*724ba675SRob Herring regulator-name = "vcc_io"; 111*724ba675SRob Herring regulator-always-on; 112*724ba675SRob Herring regulator-boot-on; 113*724ba675SRob Herring regulator-min-microvolt = <3300000>; 114*724ba675SRob Herring regulator-max-microvolt = <3300000>; 115*724ba675SRob Herring regulator-state-mem { 116*724ba675SRob Herring regulator-on-in-suspend; 117*724ba675SRob Herring regulator-suspend-microvolt = <3300000>; 118*724ba675SRob Herring }; 119*724ba675SRob Herring }; 120*724ba675SRob Herring 121*724ba675SRob Herring vcc_tp: LDO_REG1 { 122*724ba675SRob Herring regulator-name = "vcc_tp"; 123*724ba675SRob Herring regulator-always-on; 124*724ba675SRob Herring regulator-boot-on; 125*724ba675SRob Herring regulator-min-microvolt = <3300000>; 126*724ba675SRob Herring regulator-max-microvolt = <3300000>; 127*724ba675SRob Herring regulator-state-mem { 128*724ba675SRob Herring regulator-off-in-suspend; 129*724ba675SRob Herring }; 130*724ba675SRob Herring }; 131*724ba675SRob Herring 132*724ba675SRob Herring vcca_codec: LDO_REG2 { 133*724ba675SRob Herring regulator-name = "vcca_codec"; 134*724ba675SRob Herring regulator-always-on; 135*724ba675SRob Herring regulator-boot-on; 136*724ba675SRob Herring regulator-min-microvolt = <3300000>; 137*724ba675SRob Herring regulator-max-microvolt = <3300000>; 138*724ba675SRob Herring regulator-state-mem { 139*724ba675SRob Herring regulator-on-in-suspend; 140*724ba675SRob Herring regulator-suspend-microvolt = <3300000>; 141*724ba675SRob Herring }; 142*724ba675SRob Herring }; 143*724ba675SRob Herring 144*724ba675SRob Herring vdd_10: LDO_REG3 { 145*724ba675SRob Herring regulator-name = "vdd_10"; 146*724ba675SRob Herring regulator-always-on; 147*724ba675SRob Herring regulator-boot-on; 148*724ba675SRob Herring regulator-min-microvolt = <1000000>; 149*724ba675SRob Herring regulator-max-microvolt = <1000000>; 150*724ba675SRob Herring regulator-state-mem { 151*724ba675SRob Herring regulator-on-in-suspend; 152*724ba675SRob Herring regulator-suspend-microvolt = <1000000>; 153*724ba675SRob Herring }; 154*724ba675SRob Herring }; 155*724ba675SRob Herring 156*724ba675SRob Herring vcc_wl: LDO_REG4 { 157*724ba675SRob Herring regulator-name = "vcc_wl"; 158*724ba675SRob Herring regulator-always-on; 159*724ba675SRob Herring regulator-boot-on; 160*724ba675SRob Herring regulator-min-microvolt = <1800000>; 161*724ba675SRob Herring regulator-max-microvolt = <1800000>; 162*724ba675SRob Herring regulator-state-mem { 163*724ba675SRob Herring regulator-on-in-suspend; 164*724ba675SRob Herring }; 165*724ba675SRob Herring }; 166*724ba675SRob Herring 167*724ba675SRob Herring vccio_sd: LDO_REG5 { 168*724ba675SRob Herring regulator-name = "vccio_sd"; 169*724ba675SRob Herring regulator-always-on; 170*724ba675SRob Herring regulator-boot-on; 171*724ba675SRob Herring regulator-min-microvolt = <1800000>; 172*724ba675SRob Herring regulator-max-microvolt = <3300000>; 173*724ba675SRob Herring regulator-state-mem { 174*724ba675SRob Herring regulator-on-in-suspend; 175*724ba675SRob Herring regulator-suspend-microvolt = <3300000>; 176*724ba675SRob Herring }; 177*724ba675SRob Herring }; 178*724ba675SRob Herring 179*724ba675SRob Herring vdd10_lcd: LDO_REG6 { 180*724ba675SRob Herring regulator-name = "vdd10_lcd"; 181*724ba675SRob Herring regulator-always-on; 182*724ba675SRob Herring regulator-boot-on; 183*724ba675SRob Herring regulator-min-microvolt = <1000000>; 184*724ba675SRob Herring regulator-max-microvolt = <1000000>; 185*724ba675SRob Herring regulator-state-mem { 186*724ba675SRob Herring regulator-off-in-suspend; 187*724ba675SRob Herring }; 188*724ba675SRob Herring }; 189*724ba675SRob Herring 190*724ba675SRob Herring vcc_18: LDO_REG7 { 191*724ba675SRob Herring regulator-name = "vcc_18"; 192*724ba675SRob Herring regulator-always-on; 193*724ba675SRob Herring regulator-boot-on; 194*724ba675SRob Herring regulator-min-microvolt = <1800000>; 195*724ba675SRob Herring regulator-max-microvolt = <1800000>; 196*724ba675SRob Herring regulator-state-mem { 197*724ba675SRob Herring regulator-on-in-suspend; 198*724ba675SRob Herring regulator-suspend-microvolt = <1800000>; 199*724ba675SRob Herring }; 200*724ba675SRob Herring }; 201*724ba675SRob Herring 202*724ba675SRob Herring vcc18_lcd: LDO_REG8 { 203*724ba675SRob Herring regulator-name = "vcc18_lcd"; 204*724ba675SRob Herring regulator-always-on; 205*724ba675SRob Herring regulator-boot-on; 206*724ba675SRob Herring regulator-min-microvolt = <1800000>; 207*724ba675SRob Herring regulator-max-microvolt = <1800000>; 208*724ba675SRob Herring regulator-state-mem { 209*724ba675SRob Herring regulator-off-in-suspend; 210*724ba675SRob Herring }; 211*724ba675SRob Herring }; 212*724ba675SRob Herring 213*724ba675SRob Herring vcc_sd: SWITCH_REG1 { 214*724ba675SRob Herring regulator-name = "vcc_sd"; 215*724ba675SRob Herring regulator-always-on; 216*724ba675SRob Herring regulator-boot-on; 217*724ba675SRob Herring regulator-state-mem { 218*724ba675SRob Herring regulator-off-in-suspend; 219*724ba675SRob Herring }; 220*724ba675SRob Herring }; 221*724ba675SRob Herring 222*724ba675SRob Herring vcc_lcd: SWITCH_REG2 { 223*724ba675SRob Herring regulator-name = "vcc_lcd"; 224*724ba675SRob Herring regulator-always-on; 225*724ba675SRob Herring regulator-boot-on; 226*724ba675SRob Herring regulator-state-mem { 227*724ba675SRob Herring regulator-off-in-suspend; 228*724ba675SRob Herring }; 229*724ba675SRob Herring }; 230*724ba675SRob Herring }; 231*724ba675SRob Herring }; 232*724ba675SRob Herring}; 233*724ba675SRob Herring 234*724ba675SRob Herring&i2c1 { 235*724ba675SRob Herring clock-frequency = <400000>; 236*724ba675SRob Herring status = "okay"; 237*724ba675SRob Herring 238*724ba675SRob Herring hym8563: rtc@51 { 239*724ba675SRob Herring compatible = "haoyu,hym8563"; 240*724ba675SRob Herring reg = <0x51>; 241*724ba675SRob Herring interrupt-parent = <&gpio5>; 242*724ba675SRob Herring interrupts = <RK_PC3 IRQ_TYPE_LEVEL_LOW>; 243*724ba675SRob Herring #clock-cells = <0>; 244*724ba675SRob Herring clock-output-names = "hym8563"; 245*724ba675SRob Herring pinctrl-names = "default"; 246*724ba675SRob Herring pinctrl-0 = <&hym8563_int>; 247*724ba675SRob Herring }; 248*724ba675SRob Herring}; 249*724ba675SRob Herring 250*724ba675SRob Herring&i2c5 { 251*724ba675SRob Herring status = "okay"; 252*724ba675SRob Herring}; 253*724ba675SRob Herring 254*724ba675SRob Herring&io_domains { 255*724ba675SRob Herring bb-supply = <&vcc_io>; 256*724ba675SRob Herring flash0-supply = <&vccio_flash>; 257*724ba675SRob Herring gpio1830-supply = <&vcc_18>; 258*724ba675SRob Herring gpio30-supply = <&vcc_io>; 259*724ba675SRob Herring sdcard-supply = <&vccio_sd>; 260*724ba675SRob Herring wifi-supply = <&vcc_wl>; 261*724ba675SRob Herring status = "okay"; 262*724ba675SRob Herring}; 263*724ba675SRob Herring 264*724ba675SRob Herring&pinctrl { 265*724ba675SRob Herring hym8563 { 266*724ba675SRob Herring hym8563_int: hym8563-int { 267*724ba675SRob Herring rockchip,pins = <5 RK_PC3 RK_FUNC_GPIO &pcfg_pull_up>; 268*724ba675SRob Herring }; 269*724ba675SRob Herring }; 270*724ba675SRob Herring 271*724ba675SRob Herring pcfg_pull_none_drv_8ma: pcfg-pull-none-drv-8ma { 272*724ba675SRob Herring drive-strength = <8>; 273*724ba675SRob Herring }; 274*724ba675SRob Herring 275*724ba675SRob Herring pcfg_pull_up_drv_8ma: pcfg-pull-up-drv-8ma { 276*724ba675SRob Herring bias-pull-up; 277*724ba675SRob Herring drive-strength = <8>; 278*724ba675SRob Herring }; 279*724ba675SRob Herring 280*724ba675SRob Herring pmic { 281*724ba675SRob Herring pmic_int: pmic-int { 282*724ba675SRob Herring rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up>; 283*724ba675SRob Herring }; 284*724ba675SRob Herring }; 285*724ba675SRob Herring 286*724ba675SRob Herring sdio-pwrseq { 287*724ba675SRob Herring wifi_enable_h: wifi-enable-h { 288*724ba675SRob Herring rockchip,pins = <4 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>; 289*724ba675SRob Herring }; 290*724ba675SRob Herring }; 291*724ba675SRob Herring 292*724ba675SRob Herring sdmmc { 293*724ba675SRob Herring sdmmc_bus4: sdmmc-bus4 { 294*724ba675SRob Herring rockchip,pins = 295*724ba675SRob Herring <6 RK_PC0 1 &pcfg_pull_up_drv_8ma>, 296*724ba675SRob Herring <6 RK_PC1 1 &pcfg_pull_up_drv_8ma>, 297*724ba675SRob Herring <6 RK_PC2 1 &pcfg_pull_up_drv_8ma>, 298*724ba675SRob Herring <6 RK_PC3 1 &pcfg_pull_up_drv_8ma>; 299*724ba675SRob Herring }; 300*724ba675SRob Herring 301*724ba675SRob Herring sdmmc_clk: sdmmc-clk { 302*724ba675SRob Herring rockchip,pins = <6 RK_PC4 1 &pcfg_pull_none_drv_8ma>; 303*724ba675SRob Herring }; 304*724ba675SRob Herring 305*724ba675SRob Herring sdmmc_cmd: sdmmc-cmd { 306*724ba675SRob Herring rockchip,pins = <6 RK_PC5 1 &pcfg_pull_up_drv_8ma>; 307*724ba675SRob Herring }; 308*724ba675SRob Herring }; 309*724ba675SRob Herring 310*724ba675SRob Herring vbus_host { 311*724ba675SRob Herring usb1_en_oc: usb1-en-oc { 312*724ba675SRob Herring rockchip,pins = <0 RK_PC1 RK_FUNC_GPIO &pcfg_pull_up>; 313*724ba675SRob Herring }; 314*724ba675SRob Herring }; 315*724ba675SRob Herring 316*724ba675SRob Herring vbus_typec { 317*724ba675SRob Herring usb0_en_oc: usb0-en-oc { 318*724ba675SRob Herring rockchip,pins = <0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_up>; 319*724ba675SRob Herring }; 320*724ba675SRob Herring }; 321*724ba675SRob Herring}; 322*724ba675SRob Herring 323*724ba675SRob Herring&sdio_pwrseq { 324*724ba675SRob Herring /* 325*724ba675SRob Herring * On the module itself this is one of these (depending 326*724ba675SRob Herring * on the actual card populated): 327*724ba675SRob Herring * - SDIO_RESET_L_WL_REG_ON 328*724ba675SRob Herring * - PDN (power down when low) 329*724ba675SRob Herring */ 330*724ba675SRob Herring reset-gpios = <&gpio4 RK_PD4 GPIO_ACTIVE_LOW>; /* WIFI_REG_ON */ 331*724ba675SRob Herring}; 332*724ba675SRob Herring 333*724ba675SRob Herring&usbphy { 334*724ba675SRob Herring status = "okay"; 335*724ba675SRob Herring}; 336*724ba675SRob Herring 337*724ba675SRob Herring&usb_host0_ehci { 338*724ba675SRob Herring status = "okay"; 339*724ba675SRob Herring}; 340*724ba675SRob Herring 341*724ba675SRob Herring&usb_host0_ohci { 342*724ba675SRob Herring status = "okay"; 343*724ba675SRob Herring}; 344*724ba675SRob Herring 345*724ba675SRob Herring&usb_host1 { 346*724ba675SRob Herring status = "okay"; 347*724ba675SRob Herring}; 348*724ba675SRob Herring 349*724ba675SRob Herring&usb_otg { 350*724ba675SRob Herring status = "okay"; 351*724ba675SRob Herring}; 352*724ba675SRob Herring 353*724ba675SRob Herring&vbus_host { 354*724ba675SRob Herring enable-active-high; 355*724ba675SRob Herring gpio = <&gpio0 RK_PC1 GPIO_ACTIVE_HIGH>; /* USB1_EN_OC# */ 356*724ba675SRob Herring}; 357*724ba675SRob Herring 358*724ba675SRob Herring&vbus_typec { 359*724ba675SRob Herring enable-active-high; 360*724ba675SRob Herring gpio = <&gpio0 RK_PB5 GPIO_ACTIVE_HIGH>; /* USB0_EN_OC# */ 361*724ba675SRob Herring}; 362