1724ba675SRob Herring// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2724ba675SRob Herring/* 3724ba675SRob Herring * Copyright (c) 2019 Fuzhou Rockchip Electronics Co., Ltd 4724ba675SRob Herring * Copyright (c) 2019 Vamrs Limited 5724ba675SRob Herring * Copyright (c) 2019 Amarula Solutions(India) 6724ba675SRob Herring */ 7724ba675SRob Herring 8724ba675SRob Herring#include <dt-bindings/gpio/gpio.h> 9724ba675SRob Herring#include <dt-bindings/pinctrl/rockchip.h> 10724ba675SRob Herring 11724ba675SRob Herring/ { 12724ba675SRob Herring compatible = "vamrs,rk3288-vmarc-som", "rockchip,rk3288"; 13724ba675SRob Herring 14*2c3944d9SJohan Jonker vccio_flash: regulator-vccio-flash { 15724ba675SRob Herring compatible = "regulator-fixed"; 16724ba675SRob Herring regulator-name = "vccio_flash"; 17724ba675SRob Herring regulator-min-microvolt = <1800000>; 18724ba675SRob Herring regulator-max-microvolt = <1800000>; 19724ba675SRob Herring vin-supply = <&vcc_io>; 20724ba675SRob Herring }; 21724ba675SRob Herring}; 22724ba675SRob Herring 23724ba675SRob Herring&emmc { 24724ba675SRob Herring bus-width = <8>; 25724ba675SRob Herring cap-mmc-highspeed; 26724ba675SRob Herring disable-wp; 27724ba675SRob Herring non-removable; 28724ba675SRob Herring pinctrl-names = "default"; 29724ba675SRob Herring pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_pwr &emmc_bus8>; 30724ba675SRob Herring vmmc-supply = <&vcc_io>; 31724ba675SRob Herring vqmmc-supply = <&vccio_flash>; 32724ba675SRob Herring status = "okay"; 33724ba675SRob Herring}; 34724ba675SRob Herring 35724ba675SRob Herring&gmac { 36724ba675SRob Herring assigned-clocks = <&cru SCLK_MAC>; 37724ba675SRob Herring phy-supply = <&vcc_io>; 38724ba675SRob Herring snps,reset-gpio = <&gpio4 RK_PA7 GPIO_ACTIVE_HIGH>; 39724ba675SRob Herring}; 40724ba675SRob Herring 41724ba675SRob Herring&hdmi { 42724ba675SRob Herring ddc-i2c-bus = <&i2c5>; 43724ba675SRob Herring pinctrl-names = "default"; 44724ba675SRob Herring pinctrl-0 = <&hdmi_cec_c0>; 45724ba675SRob Herring}; 46724ba675SRob Herring 47724ba675SRob Herring&i2c0 { 48724ba675SRob Herring clock-frequency = <400000>; 49724ba675SRob Herring status = "okay"; 50724ba675SRob Herring 51724ba675SRob Herring rk808: pmic@1b { 52724ba675SRob Herring compatible = "rockchip,rk808"; 53724ba675SRob Herring reg = <0x1b>; 54724ba675SRob Herring interrupt-parent = <&gpio0>; 55724ba675SRob Herring interrupts = <RK_PA4 IRQ_TYPE_LEVEL_LOW>; 56724ba675SRob Herring pinctrl-names = "default"; 57724ba675SRob Herring pinctrl-0 = <&pmic_int &global_pwroff>; 58724ba675SRob Herring rockchip,system-power-controller; 59724ba675SRob Herring wakeup-source; 60724ba675SRob Herring #clock-cells = <1>; 61724ba675SRob Herring clock-output-names = "rk808-clkout1", "rk808-clkout2"; 62724ba675SRob Herring 63724ba675SRob Herring vcc1-supply = <&vcc5v0_sys>; 64724ba675SRob Herring vcc2-supply = <&vcc5v0_sys>; 65724ba675SRob Herring vcc3-supply = <&vcc5v0_sys>; 66724ba675SRob Herring vcc4-supply = <&vcc5v0_sys>; 67724ba675SRob Herring vcc6-supply = <&vcc5v0_sys>; 68724ba675SRob Herring vcc7-supply = <&vcc5v0_sys>; 69724ba675SRob Herring vcc8-supply = <&vcc_io>; 70724ba675SRob Herring vcc9-supply = <&vcc_io>; 71724ba675SRob Herring vcc10-supply = <&vcc5v0_sys>; 72724ba675SRob Herring vcc11-supply = <&vcc5v0_sys>; 73724ba675SRob Herring vcc12-supply = <&vcc_io>; 74724ba675SRob Herring vddio-supply = <&vcc_io>; 75724ba675SRob Herring 76724ba675SRob Herring regulators { 77724ba675SRob Herring vdd_cpu: DCDC_REG1 { 78724ba675SRob Herring regulator-name = "vdd_arm"; 79724ba675SRob Herring regulator-always-on; 80724ba675SRob Herring regulator-boot-on; 81724ba675SRob Herring regulator-min-microvolt = <750000>; 82724ba675SRob Herring regulator-max-microvolt = <1400000>; 83724ba675SRob Herring regulator-state-mem { 84724ba675SRob Herring regulator-off-in-suspend; 85724ba675SRob Herring }; 86724ba675SRob Herring }; 87724ba675SRob Herring 88724ba675SRob Herring vdd_gpu: DCDC_REG2 { 89724ba675SRob Herring regulator-name = "vdd_gpu"; 90724ba675SRob Herring regulator-always-on; 91724ba675SRob Herring regulator-boot-on; 92724ba675SRob Herring regulator-min-microvolt = <850000>; 93724ba675SRob Herring regulator-max-microvolt = <1250000>; 94724ba675SRob Herring regulator-ramp-delay = <6000>; 95724ba675SRob Herring regulator-state-mem { 96724ba675SRob Herring regulator-off-in-suspend; 97724ba675SRob Herring }; 98724ba675SRob Herring }; 99724ba675SRob Herring 100724ba675SRob Herring vcc_ddr: DCDC_REG3 { 101724ba675SRob Herring regulator-name = "vcc_ddr"; 102724ba675SRob Herring regulator-always-on; 103724ba675SRob Herring regulator-boot-on; 104724ba675SRob Herring regulator-state-mem { 105724ba675SRob Herring regulator-on-in-suspend; 106724ba675SRob Herring }; 107724ba675SRob Herring }; 108724ba675SRob Herring 109724ba675SRob Herring vcc_io: DCDC_REG4 { 110724ba675SRob Herring regulator-name = "vcc_io"; 111724ba675SRob Herring regulator-always-on; 112724ba675SRob Herring regulator-boot-on; 113724ba675SRob Herring regulator-min-microvolt = <3300000>; 114724ba675SRob Herring regulator-max-microvolt = <3300000>; 115724ba675SRob Herring regulator-state-mem { 116724ba675SRob Herring regulator-on-in-suspend; 117724ba675SRob Herring regulator-suspend-microvolt = <3300000>; 118724ba675SRob Herring }; 119724ba675SRob Herring }; 120724ba675SRob Herring 121724ba675SRob Herring vcc_tp: LDO_REG1 { 122724ba675SRob Herring regulator-name = "vcc_tp"; 123724ba675SRob Herring regulator-always-on; 124724ba675SRob Herring regulator-boot-on; 125724ba675SRob Herring regulator-min-microvolt = <3300000>; 126724ba675SRob Herring regulator-max-microvolt = <3300000>; 127724ba675SRob Herring regulator-state-mem { 128724ba675SRob Herring regulator-off-in-suspend; 129724ba675SRob Herring }; 130724ba675SRob Herring }; 131724ba675SRob Herring 132724ba675SRob Herring vcca_codec: LDO_REG2 { 133724ba675SRob Herring regulator-name = "vcca_codec"; 134724ba675SRob Herring regulator-always-on; 135724ba675SRob Herring regulator-boot-on; 136724ba675SRob Herring regulator-min-microvolt = <3300000>; 137724ba675SRob Herring regulator-max-microvolt = <3300000>; 138724ba675SRob Herring regulator-state-mem { 139724ba675SRob Herring regulator-on-in-suspend; 140724ba675SRob Herring regulator-suspend-microvolt = <3300000>; 141724ba675SRob Herring }; 142724ba675SRob Herring }; 143724ba675SRob Herring 144724ba675SRob Herring vdd_10: LDO_REG3 { 145724ba675SRob Herring regulator-name = "vdd_10"; 146724ba675SRob Herring regulator-always-on; 147724ba675SRob Herring regulator-boot-on; 148724ba675SRob Herring regulator-min-microvolt = <1000000>; 149724ba675SRob Herring regulator-max-microvolt = <1000000>; 150724ba675SRob Herring regulator-state-mem { 151724ba675SRob Herring regulator-on-in-suspend; 152724ba675SRob Herring regulator-suspend-microvolt = <1000000>; 153724ba675SRob Herring }; 154724ba675SRob Herring }; 155724ba675SRob Herring 156724ba675SRob Herring vcc_wl: LDO_REG4 { 157724ba675SRob Herring regulator-name = "vcc_wl"; 158724ba675SRob Herring regulator-always-on; 159724ba675SRob Herring regulator-boot-on; 160724ba675SRob Herring regulator-min-microvolt = <1800000>; 161724ba675SRob Herring regulator-max-microvolt = <1800000>; 162724ba675SRob Herring regulator-state-mem { 163724ba675SRob Herring regulator-on-in-suspend; 164724ba675SRob Herring }; 165724ba675SRob Herring }; 166724ba675SRob Herring 167724ba675SRob Herring vccio_sd: LDO_REG5 { 168724ba675SRob Herring regulator-name = "vccio_sd"; 169724ba675SRob Herring regulator-always-on; 170724ba675SRob Herring regulator-boot-on; 171724ba675SRob Herring regulator-min-microvolt = <1800000>; 172724ba675SRob Herring regulator-max-microvolt = <3300000>; 173724ba675SRob Herring regulator-state-mem { 174724ba675SRob Herring regulator-on-in-suspend; 175724ba675SRob Herring regulator-suspend-microvolt = <3300000>; 176724ba675SRob Herring }; 177724ba675SRob Herring }; 178724ba675SRob Herring 179724ba675SRob Herring vdd10_lcd: LDO_REG6 { 180724ba675SRob Herring regulator-name = "vdd10_lcd"; 181724ba675SRob Herring regulator-always-on; 182724ba675SRob Herring regulator-boot-on; 183724ba675SRob Herring regulator-min-microvolt = <1000000>; 184724ba675SRob Herring regulator-max-microvolt = <1000000>; 185724ba675SRob Herring regulator-state-mem { 186724ba675SRob Herring regulator-off-in-suspend; 187724ba675SRob Herring }; 188724ba675SRob Herring }; 189724ba675SRob Herring 190724ba675SRob Herring vcc_18: LDO_REG7 { 191724ba675SRob Herring regulator-name = "vcc_18"; 192724ba675SRob Herring regulator-always-on; 193724ba675SRob Herring regulator-boot-on; 194724ba675SRob Herring regulator-min-microvolt = <1800000>; 195724ba675SRob Herring regulator-max-microvolt = <1800000>; 196724ba675SRob Herring regulator-state-mem { 197724ba675SRob Herring regulator-on-in-suspend; 198724ba675SRob Herring regulator-suspend-microvolt = <1800000>; 199724ba675SRob Herring }; 200724ba675SRob Herring }; 201724ba675SRob Herring 202724ba675SRob Herring vcc18_lcd: LDO_REG8 { 203724ba675SRob Herring regulator-name = "vcc18_lcd"; 204724ba675SRob Herring regulator-always-on; 205724ba675SRob Herring regulator-boot-on; 206724ba675SRob Herring regulator-min-microvolt = <1800000>; 207724ba675SRob Herring regulator-max-microvolt = <1800000>; 208724ba675SRob Herring regulator-state-mem { 209724ba675SRob Herring regulator-off-in-suspend; 210724ba675SRob Herring }; 211724ba675SRob Herring }; 212724ba675SRob Herring 213724ba675SRob Herring vcc_sd: SWITCH_REG1 { 214724ba675SRob Herring regulator-name = "vcc_sd"; 215724ba675SRob Herring regulator-always-on; 216724ba675SRob Herring regulator-boot-on; 217724ba675SRob Herring regulator-state-mem { 218724ba675SRob Herring regulator-off-in-suspend; 219724ba675SRob Herring }; 220724ba675SRob Herring }; 221724ba675SRob Herring 222724ba675SRob Herring vcc_lcd: SWITCH_REG2 { 223724ba675SRob Herring regulator-name = "vcc_lcd"; 224724ba675SRob Herring regulator-always-on; 225724ba675SRob Herring regulator-boot-on; 226724ba675SRob Herring regulator-state-mem { 227724ba675SRob Herring regulator-off-in-suspend; 228724ba675SRob Herring }; 229724ba675SRob Herring }; 230724ba675SRob Herring }; 231724ba675SRob Herring }; 232724ba675SRob Herring}; 233724ba675SRob Herring 234724ba675SRob Herring&i2c1 { 235724ba675SRob Herring clock-frequency = <400000>; 236724ba675SRob Herring status = "okay"; 237724ba675SRob Herring 238724ba675SRob Herring hym8563: rtc@51 { 239724ba675SRob Herring compatible = "haoyu,hym8563"; 240724ba675SRob Herring reg = <0x51>; 241724ba675SRob Herring interrupt-parent = <&gpio5>; 242724ba675SRob Herring interrupts = <RK_PC3 IRQ_TYPE_LEVEL_LOW>; 243724ba675SRob Herring #clock-cells = <0>; 244724ba675SRob Herring clock-output-names = "hym8563"; 245724ba675SRob Herring pinctrl-names = "default"; 246724ba675SRob Herring pinctrl-0 = <&hym8563_int>; 247724ba675SRob Herring }; 248724ba675SRob Herring}; 249724ba675SRob Herring 250724ba675SRob Herring&i2c5 { 251724ba675SRob Herring status = "okay"; 252724ba675SRob Herring}; 253724ba675SRob Herring 254724ba675SRob Herring&io_domains { 255724ba675SRob Herring bb-supply = <&vcc_io>; 256724ba675SRob Herring flash0-supply = <&vccio_flash>; 257724ba675SRob Herring gpio1830-supply = <&vcc_18>; 258724ba675SRob Herring gpio30-supply = <&vcc_io>; 259724ba675SRob Herring sdcard-supply = <&vccio_sd>; 260724ba675SRob Herring wifi-supply = <&vcc_wl>; 261724ba675SRob Herring status = "okay"; 262724ba675SRob Herring}; 263724ba675SRob Herring 264724ba675SRob Herring&pinctrl { 265724ba675SRob Herring hym8563 { 266724ba675SRob Herring hym8563_int: hym8563-int { 267724ba675SRob Herring rockchip,pins = <5 RK_PC3 RK_FUNC_GPIO &pcfg_pull_up>; 268724ba675SRob Herring }; 269724ba675SRob Herring }; 270724ba675SRob Herring 271724ba675SRob Herring pcfg_pull_none_drv_8ma: pcfg-pull-none-drv-8ma { 272724ba675SRob Herring drive-strength = <8>; 273724ba675SRob Herring }; 274724ba675SRob Herring 275724ba675SRob Herring pcfg_pull_up_drv_8ma: pcfg-pull-up-drv-8ma { 276724ba675SRob Herring bias-pull-up; 277724ba675SRob Herring drive-strength = <8>; 278724ba675SRob Herring }; 279724ba675SRob Herring 280724ba675SRob Herring pmic { 281724ba675SRob Herring pmic_int: pmic-int { 282724ba675SRob Herring rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up>; 283724ba675SRob Herring }; 284724ba675SRob Herring }; 285724ba675SRob Herring 286724ba675SRob Herring sdio-pwrseq { 287724ba675SRob Herring wifi_enable_h: wifi-enable-h { 288724ba675SRob Herring rockchip,pins = <4 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>; 289724ba675SRob Herring }; 290724ba675SRob Herring }; 291724ba675SRob Herring 292724ba675SRob Herring sdmmc { 293724ba675SRob Herring sdmmc_bus4: sdmmc-bus4 { 294724ba675SRob Herring rockchip,pins = 295724ba675SRob Herring <6 RK_PC0 1 &pcfg_pull_up_drv_8ma>, 296724ba675SRob Herring <6 RK_PC1 1 &pcfg_pull_up_drv_8ma>, 297724ba675SRob Herring <6 RK_PC2 1 &pcfg_pull_up_drv_8ma>, 298724ba675SRob Herring <6 RK_PC3 1 &pcfg_pull_up_drv_8ma>; 299724ba675SRob Herring }; 300724ba675SRob Herring 301724ba675SRob Herring sdmmc_clk: sdmmc-clk { 302724ba675SRob Herring rockchip,pins = <6 RK_PC4 1 &pcfg_pull_none_drv_8ma>; 303724ba675SRob Herring }; 304724ba675SRob Herring 305724ba675SRob Herring sdmmc_cmd: sdmmc-cmd { 306724ba675SRob Herring rockchip,pins = <6 RK_PC5 1 &pcfg_pull_up_drv_8ma>; 307724ba675SRob Herring }; 308724ba675SRob Herring }; 309724ba675SRob Herring 310724ba675SRob Herring vbus_host { 311724ba675SRob Herring usb1_en_oc: usb1-en-oc { 312724ba675SRob Herring rockchip,pins = <0 RK_PC1 RK_FUNC_GPIO &pcfg_pull_up>; 313724ba675SRob Herring }; 314724ba675SRob Herring }; 315724ba675SRob Herring 316724ba675SRob Herring vbus_typec { 317724ba675SRob Herring usb0_en_oc: usb0-en-oc { 318724ba675SRob Herring rockchip,pins = <0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_up>; 319724ba675SRob Herring }; 320724ba675SRob Herring }; 321724ba675SRob Herring}; 322724ba675SRob Herring 323724ba675SRob Herring&sdio_pwrseq { 324724ba675SRob Herring /* 325724ba675SRob Herring * On the module itself this is one of these (depending 326724ba675SRob Herring * on the actual card populated): 327724ba675SRob Herring * - SDIO_RESET_L_WL_REG_ON 328724ba675SRob Herring * - PDN (power down when low) 329724ba675SRob Herring */ 330724ba675SRob Herring reset-gpios = <&gpio4 RK_PD4 GPIO_ACTIVE_LOW>; /* WIFI_REG_ON */ 331724ba675SRob Herring}; 332724ba675SRob Herring 333724ba675SRob Herring&usbphy { 334724ba675SRob Herring status = "okay"; 335724ba675SRob Herring}; 336724ba675SRob Herring 337724ba675SRob Herring&usb_host0_ehci { 338724ba675SRob Herring status = "okay"; 339724ba675SRob Herring}; 340724ba675SRob Herring 341724ba675SRob Herring&usb_host0_ohci { 342724ba675SRob Herring status = "okay"; 343724ba675SRob Herring}; 344724ba675SRob Herring 345724ba675SRob Herring&usb_host1 { 346724ba675SRob Herring status = "okay"; 347724ba675SRob Herring}; 348724ba675SRob Herring 349724ba675SRob Herring&usb_otg { 350724ba675SRob Herring status = "okay"; 351724ba675SRob Herring}; 352724ba675SRob Herring 353724ba675SRob Herring&vbus_host { 354724ba675SRob Herring enable-active-high; 355724ba675SRob Herring gpio = <&gpio0 RK_PC1 GPIO_ACTIVE_HIGH>; /* USB1_EN_OC# */ 356724ba675SRob Herring}; 357724ba675SRob Herring 358724ba675SRob Herring&vbus_typec { 359724ba675SRob Herring enable-active-high; 360724ba675SRob Herring gpio = <&gpio0 RK_PB5 GPIO_ACTIVE_HIGH>; /* USB0_EN_OC# */ 361724ba675SRob Herring}; 362