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