148853353SJagan Teki// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 248853353SJagan Teki/* 348853353SJagan Teki * Copyright (c) 2019 Fuzhou Rockchip Electronics Co., Ltd 448853353SJagan Teki * Copyright (c) 2019 Vamrs Limited 548853353SJagan Teki * Copyright (c) 2019 Amarula Solutions(India) 648853353SJagan Teki */ 748853353SJagan Teki 848853353SJagan Teki#include <dt-bindings/gpio/gpio.h> 948853353SJagan Teki#include <dt-bindings/pinctrl/rockchip.h> 1048853353SJagan Teki#include <dt-bindings/pwm/pwm.h> 1148853353SJagan Teki 1248853353SJagan Teki/ { 1348853353SJagan Teki compatible = "vamrs,rk3399pro-vmarc-som", "rockchip,rk3399pro"; 1448853353SJagan Teki}; 1548853353SJagan Teki 1648853353SJagan Teki&cpu_l0 { 1748853353SJagan Teki cpu-supply = <&vdd_cpu_l>; 1848853353SJagan Teki}; 1948853353SJagan Teki 2048853353SJagan Teki&cpu_l1 { 2148853353SJagan Teki cpu-supply = <&vdd_cpu_l>; 2248853353SJagan Teki}; 2348853353SJagan Teki 2448853353SJagan Teki&cpu_l2 { 2548853353SJagan Teki cpu-supply = <&vdd_cpu_l>; 2648853353SJagan Teki}; 2748853353SJagan Teki 2848853353SJagan Teki&cpu_l3 { 2948853353SJagan Teki cpu-supply = <&vdd_cpu_l>; 3048853353SJagan Teki}; 3148853353SJagan Teki 3248853353SJagan Teki&emmc_phy { 3348853353SJagan Teki status = "okay"; 3448853353SJagan Teki}; 3548853353SJagan Teki 3648853353SJagan Teki&gmac { 3748853353SJagan Teki assigned-clocks = <&cru SCLK_RMII_SRC>; 3848853353SJagan Teki phy-supply = <&vcc_lan>; 3948853353SJagan Teki snps,reset-gpio = <&gpio3 RK_PB7 GPIO_ACTIVE_LOW>; 4048853353SJagan Teki}; 4148853353SJagan Teki 42d0cb2f30SJagan Teki&hdmi { 43d0cb2f30SJagan Teki ddc-i2c-bus = <&i2c3>; 44d0cb2f30SJagan Teki pinctrl-names = "default"; 45d0cb2f30SJagan Teki pinctrl-0 = <&hdmi_cec>; 46d0cb2f30SJagan Teki}; 47d0cb2f30SJagan Teki 4848853353SJagan Teki&i2c0 { 4948853353SJagan Teki clock-frequency = <400000>; 5048853353SJagan Teki i2c-scl-falling-time-ns = <30>; 513047b384SJagan Teki i2c-scl-rising-time-ns = <180>; 5248853353SJagan Teki status = "okay"; 5348853353SJagan Teki 5448853353SJagan Teki rk809: pmic@20 { 5548853353SJagan Teki compatible = "rockchip,rk809"; 5648853353SJagan Teki reg = <0x20>; 5748853353SJagan Teki interrupt-parent = <&gpio1>; 5848853353SJagan Teki interrupts = <RK_PC2 IRQ_TYPE_LEVEL_LOW>; 5948853353SJagan Teki #clock-cells = <1>; 6048853353SJagan Teki clock-output-names = "rk808-clkout1", "rk808-clkout2"; 6148853353SJagan Teki pinctrl-names = "default"; 6248853353SJagan Teki pinctrl-0 = <&pmic_int_l>; 6348853353SJagan Teki rockchip,system-power-controller; 6448853353SJagan Teki wakeup-source; 6548853353SJagan Teki 6648853353SJagan Teki vcc1-supply = <&vcc5v0_sys>; 6748853353SJagan Teki vcc2-supply = <&vcc5v0_sys>; 6848853353SJagan Teki vcc3-supply = <&vcc5v0_sys>; 6948853353SJagan Teki vcc4-supply = <&vcc5v0_sys>; 7048853353SJagan Teki vcc5-supply = <&vcc_buck5>; 7148853353SJagan Teki vcc6-supply = <&vcc_buck5>; 7248853353SJagan Teki vcc7-supply = <&vcc5v0_sys>; 7348853353SJagan Teki vcc8-supply = <&vcc3v3_sys>; 7448853353SJagan Teki vcc9-supply = <&vcc5v0_sys>; 7548853353SJagan Teki 7648853353SJagan Teki regulators { 7748853353SJagan Teki vdd_log: DCDC_REG1 { 7848853353SJagan Teki regulator-name = "vdd_log"; 7948853353SJagan Teki regulator-always-on; 8048853353SJagan Teki regulator-boot-on; 8148853353SJagan Teki regulator-min-microvolt = <750000>; 8248853353SJagan Teki regulator-max-microvolt = <1350000>; 8348853353SJagan Teki regulator-initial-mode = <0x2>; 8448853353SJagan Teki regulator-state-mem { 8548853353SJagan Teki regulator-off-in-suspend; 8648853353SJagan Teki regulator-suspend-microvolt = <900000>; 8748853353SJagan Teki }; 8848853353SJagan Teki }; 8948853353SJagan Teki 9048853353SJagan Teki vdd_cpu_l: DCDC_REG2 { 9148853353SJagan Teki regulator-name = "vdd_cpu_l"; 9248853353SJagan Teki regulator-always-on; 9348853353SJagan Teki regulator-boot-on; 9448853353SJagan Teki regulator-min-microvolt = <750000>; 9548853353SJagan Teki regulator-max-microvolt = <1350000>; 9648853353SJagan Teki regulator-ramp-delay = <6001>; 9748853353SJagan Teki regulator-initial-mode = <0x2>; 9848853353SJagan Teki regulator-state-mem { 9948853353SJagan Teki regulator-off-in-suspend; 10048853353SJagan Teki }; 10148853353SJagan Teki }; 10248853353SJagan Teki 10348853353SJagan Teki vcc_ddr: DCDC_REG3 { 10448853353SJagan Teki regulator-name = "vcc_ddr"; 10548853353SJagan Teki regulator-always-on; 10648853353SJagan Teki regulator-boot-on; 10748853353SJagan Teki regulator-initial-mode = <0x2>; 10848853353SJagan Teki regulator-state-mem { 10948853353SJagan Teki regulator-on-in-suspend; 11048853353SJagan Teki }; 11148853353SJagan Teki }; 11248853353SJagan Teki 11348853353SJagan Teki vcc3v3_sys: DCDC_REG4 { 11448853353SJagan Teki regulator-name = "vcc3v3_sys"; 11548853353SJagan Teki regulator-always-on; 11648853353SJagan Teki regulator-boot-on; 11748853353SJagan Teki regulator-min-microvolt = <3300000>; 11848853353SJagan Teki regulator-max-microvolt = <3300000>; 11948853353SJagan Teki regulator-initial-mode = <0x2>; 12048853353SJagan Teki regulator-state-mem { 12148853353SJagan Teki regulator-on-in-suspend; 12248853353SJagan Teki regulator-suspend-microvolt = <3300000>; 12348853353SJagan Teki }; 12448853353SJagan Teki }; 12548853353SJagan Teki 12648853353SJagan Teki vcc_buck5: DCDC_REG5 { 12748853353SJagan Teki regulator-name = "vcc_buck5"; 12848853353SJagan Teki regulator-always-on; 12948853353SJagan Teki regulator-boot-on; 13048853353SJagan Teki regulator-min-microvolt = <2200000>; 13148853353SJagan Teki regulator-max-microvolt = <2200000>; 13248853353SJagan Teki regulator-state-mem { 13348853353SJagan Teki regulator-on-in-suspend; 13448853353SJagan Teki regulator-suspend-microvolt = <2200000>; 13548853353SJagan Teki }; 13648853353SJagan Teki }; 13748853353SJagan Teki 13848853353SJagan Teki vcca_0v9: LDO_REG1 { 13948853353SJagan Teki regulator-name = "vcca_0v9"; 14048853353SJagan Teki regulator-always-on; 14148853353SJagan Teki regulator-boot-on; 14248853353SJagan Teki regulator-min-microvolt = <900000>; 14348853353SJagan Teki regulator-max-microvolt = <900000>; 14448853353SJagan Teki regulator-state-mem { 14548853353SJagan Teki regulator-off-in-suspend; 14648853353SJagan Teki }; 14748853353SJagan Teki }; 14848853353SJagan Teki 14948853353SJagan Teki vcc_1v8: LDO_REG2 { 15048853353SJagan Teki regulator-name = "vcc_1v8"; 15148853353SJagan Teki regulator-always-on; 15248853353SJagan Teki regulator-boot-on; 15348853353SJagan Teki regulator-min-microvolt = <1800000>; 15448853353SJagan Teki regulator-max-microvolt = <1800000>; 15548853353SJagan Teki regulator-state-mem { 15648853353SJagan Teki regulator-on-in-suspend; 15748853353SJagan Teki regulator-suspend-microvolt = <1800000>; 15848853353SJagan Teki }; 15948853353SJagan Teki }; 16048853353SJagan Teki 16148853353SJagan Teki vcc_0v9: LDO_REG3 { 16248853353SJagan Teki regulator-name = "vcc_0v9"; 16348853353SJagan Teki regulator-always-on; 16448853353SJagan Teki regulator-boot-on; 16548853353SJagan Teki regulator-min-microvolt = <900000>; 16648853353SJagan Teki regulator-max-microvolt = <900000>; 16748853353SJagan Teki regulator-state-mem { 16848853353SJagan Teki regulator-on-in-suspend; 16948853353SJagan Teki regulator-suspend-microvolt = <900000>; 17048853353SJagan Teki }; 17148853353SJagan Teki }; 17248853353SJagan Teki 17348853353SJagan Teki vcca_1v8: LDO_REG4 { 17448853353SJagan Teki regulator-name = "vcca_1v8"; 17548853353SJagan Teki regulator-always-on; 17648853353SJagan Teki regulator-boot-on; 17748853353SJagan Teki regulator-min-microvolt = <1850000>; 17848853353SJagan Teki regulator-max-microvolt = <1850000>; 17948853353SJagan Teki regulator-state-mem { 18048853353SJagan Teki regulator-off-in-suspend; 18148853353SJagan Teki }; 18248853353SJagan Teki }; 18348853353SJagan Teki 18448853353SJagan Teki /* 18548853353SJagan Teki * As per BSP, but schematic not showing any regulator 18648853353SJagan Teki * pin for LD05. 18748853353SJagan Teki */ 18848853353SJagan Teki vdd1v5_dvp: LDO_REG5 { 18948853353SJagan Teki regulator-name = "vdd1v5_dvp"; 19048853353SJagan Teki regulator-always-on; 19148853353SJagan Teki regulator-boot-on; 19248853353SJagan Teki regulator-min-microvolt = <1500000>; 19348853353SJagan Teki regulator-max-microvolt = <1500000>; 19448853353SJagan Teki regulator-state-mem { 19548853353SJagan Teki regulator-off-in-suspend; 19648853353SJagan Teki }; 19748853353SJagan Teki }; 19848853353SJagan Teki 19948853353SJagan Teki vcc_1v5: LDO_REG6 { 20048853353SJagan Teki regulator-name = "vcc_1v5"; 20148853353SJagan Teki regulator-always-on; 20248853353SJagan Teki regulator-boot-on; 20348853353SJagan Teki regulator-min-microvolt = <1500000>; 20448853353SJagan Teki regulator-max-microvolt = <1500000>; 20548853353SJagan Teki regulator-state-mem { 20648853353SJagan Teki regulator-off-in-suspend; 20748853353SJagan Teki }; 20848853353SJagan Teki }; 20948853353SJagan Teki 21048853353SJagan Teki vccio_3v0: LDO_REG7 { 21148853353SJagan Teki regulator-name = "vccio_3v0"; 21248853353SJagan Teki regulator-always-on; 21348853353SJagan Teki regulator-boot-on; 21448853353SJagan Teki regulator-min-microvolt = <3000000>; 21548853353SJagan Teki regulator-max-microvolt = <3000000>; 21648853353SJagan Teki regulator-state-mem { 21748853353SJagan Teki regulator-off-in-suspend; 21848853353SJagan Teki }; 21948853353SJagan Teki }; 22048853353SJagan Teki 22148853353SJagan Teki vccio_sd: LDO_REG8 { 22248853353SJagan Teki regulator-name = "vccio_sd"; 22348853353SJagan Teki regulator-always-on; 22448853353SJagan Teki regulator-boot-on; 22548853353SJagan Teki regulator-min-microvolt = <1800000>; 22648853353SJagan Teki regulator-max-microvolt = <3300000>; 22748853353SJagan Teki regulator-state-mem { 22848853353SJagan Teki regulator-off-in-suspend; 22948853353SJagan Teki }; 23048853353SJagan Teki }; 23148853353SJagan Teki 23248853353SJagan Teki /* 23348853353SJagan Teki * As per BSP, but schematic not showing any regulator 23448853353SJagan Teki * pin for LD09. 23548853353SJagan Teki */ 23648853353SJagan Teki vcc_sd: LDO_REG9 { 23748853353SJagan Teki regulator-name = "vcc_sd"; 23848853353SJagan Teki regulator-always-on; 23948853353SJagan Teki regulator-boot-on; 24048853353SJagan Teki regulator-min-microvolt = <3300000>; 24148853353SJagan Teki regulator-max-microvolt = <3300000>; 24248853353SJagan Teki regulator-state-mem { 24348853353SJagan Teki regulator-off-in-suspend; 24448853353SJagan Teki }; 24548853353SJagan Teki }; 24648853353SJagan Teki 24748853353SJagan Teki vcc5v0_usb2: SWITCH_REG1 { 24848853353SJagan Teki regulator-name = "vcc5v0_usb2"; 24948853353SJagan Teki regulator-min-microvolt = <5000000>; 25048853353SJagan Teki regulator-max-microvolt = <5000000>; 25148853353SJagan Teki regulator-state-mem { 25248853353SJagan Teki regulator-on-in-suspend; 25348853353SJagan Teki regulator-suspend-microvolt = <5000000>; 25448853353SJagan Teki }; 25548853353SJagan Teki }; 25648853353SJagan Teki 25748853353SJagan Teki vccio_3v3: vcc_lan: SWITCH_REG2 { 25848853353SJagan Teki regulator-name = "vccio_3v3"; 25948853353SJagan Teki regulator-always-on; 26048853353SJagan Teki regulator-boot-on; 26148853353SJagan Teki regulator-min-microvolt = <3300000>; 26248853353SJagan Teki regulator-max-microvolt = <3300000>; 26348853353SJagan Teki regulator-state-mem { 26448853353SJagan Teki regulator-off-in-suspend; 26548853353SJagan Teki }; 26648853353SJagan Teki }; 26748853353SJagan Teki }; 26848853353SJagan Teki }; 26948853353SJagan Teki}; 27048853353SJagan Teki 271c2f34351SJagan Teki&i2c1 { 272c2f34351SJagan Teki i2c-scl-falling-time-ns = <30>; 273c2f34351SJagan Teki i2c-scl-rising-time-ns = <140>; 274c2f34351SJagan Teki status = "okay"; 275c2f34351SJagan Teki}; 276c2f34351SJagan Teki 277c2f34351SJagan Teki&i2c2 { 278c2f34351SJagan Teki clock-frequency = <400000>; 279c2f34351SJagan Teki status = "okay"; 280c2f34351SJagan Teki 281c2f34351SJagan Teki hym8563: hym8563@51 { 282c2f34351SJagan Teki compatible = "haoyu,hym8563"; 283c2f34351SJagan Teki reg = <0x51>; 284c2f34351SJagan Teki #clock-cells = <0>; 285c2f34351SJagan Teki clock-frequency = <32768>; 286c2f34351SJagan Teki clock-output-names = "hym8563"; 287c2f34351SJagan Teki pinctrl-names = "default"; 288c2f34351SJagan Teki pinctrl-0 = <&hym8563_int>; 289c2f34351SJagan Teki interrupt-parent = <&gpio4>; 290c2f34351SJagan Teki interrupts = <RK_PD6 IRQ_TYPE_LEVEL_LOW>; 291c2f34351SJagan Teki }; 292c2f34351SJagan Teki}; 293c2f34351SJagan Teki 294d0cb2f30SJagan Teki&i2c3 { 295d0cb2f30SJagan Teki i2c-scl-rising-time-ns = <450>; 296d0cb2f30SJagan Teki i2c-scl-falling-time-ns = <15>; 297d0cb2f30SJagan Teki status = "okay"; 298d0cb2f30SJagan Teki}; 299d0cb2f30SJagan Teki 30048853353SJagan Teki&io_domains { 30148853353SJagan Teki status = "okay"; 30248853353SJagan Teki bt656-supply = <&vcca_1v8>; 30348853353SJagan Teki gpio1830-supply = <&vccio_3v0>; 3043047b384SJagan Teki sdmmc-supply = <&vccio_sd>; 3053047b384SJagan Teki}; 3063047b384SJagan Teki 3073047b384SJagan Teki&pinctrl { 3083047b384SJagan Teki hym8563 { 3093047b384SJagan Teki hym8563_int: hym8563-int { 3103047b384SJagan Teki rockchip,pins = <4 RK_PD6 0 &pcfg_pull_up>; 3113047b384SJagan Teki }; 3123047b384SJagan Teki }; 3133047b384SJagan Teki 3143047b384SJagan Teki pmic { 3153047b384SJagan Teki pmic_int_l: pmic-int-l { 3163047b384SJagan Teki rockchip,pins = <1 RK_PC2 0 &pcfg_pull_up>; 3173047b384SJagan Teki }; 3183047b384SJagan Teki }; 319417b188aSJagan Teki 320417b188aSJagan Teki vbus_host { 321417b188aSJagan Teki usb1_en_oc: usb1-en-oc { 322417b188aSJagan Teki rockchip,pins = <4 RK_PD1 RK_FUNC_GPIO &pcfg_pull_up>; 323417b188aSJagan Teki }; 324417b188aSJagan Teki }; 325417b188aSJagan Teki 326417b188aSJagan Teki vbus_typec { 327417b188aSJagan Teki usb0_en_oc: usb0-en-oc { 328417b188aSJagan Teki rockchip,pins = <4 RK_PD2 RK_FUNC_GPIO &pcfg_pull_up>; 329417b188aSJagan Teki }; 330417b188aSJagan Teki }; 33148853353SJagan Teki}; 33248853353SJagan Teki 33348853353SJagan Teki&pmu_io_domains { 33448853353SJagan Teki status = "okay"; 33548853353SJagan Teki pmu1830-supply = <&vcc_1v8>; 33648853353SJagan Teki}; 33748853353SJagan Teki 33848853353SJagan Teki&sdhci { 33948853353SJagan Teki bus-width = <8>; 34048853353SJagan Teki mmc-hs400-1_8v; 34148853353SJagan Teki mmc-hs400-enhanced-strobe; 34248853353SJagan Teki non-removable; 34348853353SJagan Teki status = "okay"; 34448853353SJagan Teki}; 34548853353SJagan Teki 346a66bd94dSJagan Teki&sdmmc { 347a66bd94dSJagan Teki cd-gpios = <&gpio0 RK_PA7 GPIO_ACTIVE_LOW>; 348a66bd94dSJagan Teki max-frequency = <150000000>; 349a66bd94dSJagan Teki}; 350a66bd94dSJagan Teki 351417b188aSJagan Teki&tcphy0 { 352417b188aSJagan Teki status = "okay"; 353417b188aSJagan Teki}; 354417b188aSJagan Teki 35548853353SJagan Teki&tsadc { 35648853353SJagan Teki rockchip,hw-tshut-mode = <1>; 35748853353SJagan Teki rockchip,hw-tshut-polarity = <1>; 3583047b384SJagan Teki status = "okay"; 35948853353SJagan Teki}; 360417b188aSJagan Teki 361417b188aSJagan Teki&u2phy0 { 362417b188aSJagan Teki status = "okay"; 363417b188aSJagan Teki 364417b188aSJagan Teki u2phy0_otg: otg-port { 365417b188aSJagan Teki phy-supply = <&vbus_typec>; 366417b188aSJagan Teki status = "okay"; 367417b188aSJagan Teki }; 368417b188aSJagan Teki 369417b188aSJagan Teki u2phy0_host: host-port { 370417b188aSJagan Teki phy-supply = <&vbus_host>; 371417b188aSJagan Teki status = "okay"; 372417b188aSJagan Teki }; 373417b188aSJagan Teki}; 374417b188aSJagan Teki 375417b188aSJagan Teki 376417b188aSJagan Teki&u2phy1 { 377417b188aSJagan Teki status = "okay"; 378417b188aSJagan Teki 379417b188aSJagan Teki u2phy1_host: host-port { 380417b188aSJagan Teki phy-supply = <&vbus_host>; 381417b188aSJagan Teki status = "okay"; 382417b188aSJagan Teki }; 383417b188aSJagan Teki}; 384417b188aSJagan Teki 385417b188aSJagan Teki&usb_host0_ehci { 386417b188aSJagan Teki status = "okay"; 387417b188aSJagan Teki}; 388417b188aSJagan Teki 389417b188aSJagan Teki&usb_host0_ohci { 390417b188aSJagan Teki status = "okay"; 391417b188aSJagan Teki}; 392417b188aSJagan Teki 393417b188aSJagan Teki&usb_host1_ehci { 394417b188aSJagan Teki status = "okay"; 395417b188aSJagan Teki}; 396417b188aSJagan Teki 397417b188aSJagan Teki&usb_host1_ohci { 398417b188aSJagan Teki status = "okay"; 399417b188aSJagan Teki}; 400417b188aSJagan Teki 401417b188aSJagan Teki&usbdrd3_0 { 402417b188aSJagan Teki status = "okay"; 403417b188aSJagan Teki}; 404417b188aSJagan Teki 405417b188aSJagan Teki&usbdrd_dwc3_0 { 406417b188aSJagan Teki status = "okay"; 407417b188aSJagan Teki}; 408417b188aSJagan Teki 409417b188aSJagan Teki&vbus_host { 410417b188aSJagan Teki enable-active-high; 411417b188aSJagan Teki gpio = <&gpio4 RK_PD1 GPIO_ACTIVE_HIGH>; /* USB1_EN_OC# */ 412417b188aSJagan Teki pinctrl-names = "default"; 413417b188aSJagan Teki pinctrl-0 = <&usb1_en_oc>; 414417b188aSJagan Teki}; 415417b188aSJagan Teki 416417b188aSJagan Teki&vbus_typec { 417417b188aSJagan Teki enable-active-high; 418417b188aSJagan Teki gpio = <&gpio4 RK_PD2 GPIO_ACTIVE_HIGH>; /* USB0_EN_OC# */ 419417b188aSJagan Teki pinctrl-names = "default"; 420417b188aSJagan Teki pinctrl-0 = <&usb0_en_oc>; 421417b188aSJagan Teki}; 422