1*4882a593Smuzhiyun// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2*4882a593Smuzhiyun/dts-v1/; 3*4882a593Smuzhiyun#include <dt-bindings/pwm/pwm.h> 4*4882a593Smuzhiyun#include <dt-bindings/input/input.h> 5*4882a593Smuzhiyun#include "rk3399.dtsi" 6*4882a593Smuzhiyun#include "rk3399-opp.dtsi" 7*4882a593Smuzhiyun 8*4882a593Smuzhiyun/ { 9*4882a593Smuzhiyun model = "Hugsun X99 TV BOX"; 10*4882a593Smuzhiyun compatible = "hugsun,x99", "rockchip,rk3399"; 11*4882a593Smuzhiyun 12*4882a593Smuzhiyun chosen { 13*4882a593Smuzhiyun stdout-path = "serial2:1500000n8"; 14*4882a593Smuzhiyun }; 15*4882a593Smuzhiyun 16*4882a593Smuzhiyun clkin_gmac: external-gmac-clock { 17*4882a593Smuzhiyun compatible = "fixed-clock"; 18*4882a593Smuzhiyun clock-frequency = <125000000>; 19*4882a593Smuzhiyun clock-output-names = "clkin_gmac"; 20*4882a593Smuzhiyun #clock-cells = <0>; 21*4882a593Smuzhiyun }; 22*4882a593Smuzhiyun 23*4882a593Smuzhiyun dc_5v: dc-5v { 24*4882a593Smuzhiyun compatible = "regulator-fixed"; 25*4882a593Smuzhiyun regulator-name = "dc_5v"; 26*4882a593Smuzhiyun regulator-always-on; 27*4882a593Smuzhiyun regulator-boot-on; 28*4882a593Smuzhiyun regulator-min-microvolt = <5000000>; 29*4882a593Smuzhiyun regulator-max-microvolt = <5000000>; 30*4882a593Smuzhiyun }; 31*4882a593Smuzhiyun 32*4882a593Smuzhiyun ir-receiver { 33*4882a593Smuzhiyun compatible = "gpio-ir-receiver"; 34*4882a593Smuzhiyun gpios = <&gpio0 RK_PA6 GPIO_ACTIVE_LOW>; 35*4882a593Smuzhiyun pinctrl-names = "default"; 36*4882a593Smuzhiyun pinctrl-0 = <&ir_rx>; 37*4882a593Smuzhiyun }; 38*4882a593Smuzhiyun 39*4882a593Smuzhiyun leds { 40*4882a593Smuzhiyun compatible = "gpio-leds"; 41*4882a593Smuzhiyun pinctrl-names = "default"; 42*4882a593Smuzhiyun pinctrl-0 = <&power_led_pin>; 43*4882a593Smuzhiyun 44*4882a593Smuzhiyun power_led: led-0 { 45*4882a593Smuzhiyun label = "blue:power"; 46*4882a593Smuzhiyun gpios = <&gpio4 RK_PC2 GPIO_ACTIVE_HIGH>; 47*4882a593Smuzhiyun default-state = "on"; 48*4882a593Smuzhiyun linux,default-trigger = "default-on"; 49*4882a593Smuzhiyun }; 50*4882a593Smuzhiyun }; 51*4882a593Smuzhiyun 52*4882a593Smuzhiyun vcc_sys: vcc-sys { 53*4882a593Smuzhiyun compatible = "regulator-fixed"; 54*4882a593Smuzhiyun regulator-name = "vcc_sys"; 55*4882a593Smuzhiyun regulator-min-microvolt = <5000000>; 56*4882a593Smuzhiyun regulator-max-microvolt = <5000000>; 57*4882a593Smuzhiyun regulator-always-on; 58*4882a593Smuzhiyun vin-supply = <&dc_5v>; 59*4882a593Smuzhiyun }; 60*4882a593Smuzhiyun 61*4882a593Smuzhiyun vcc_phy: vcc-phy-regulator { 62*4882a593Smuzhiyun compatible = "regulator-fixed"; 63*4882a593Smuzhiyun regulator-name = "vcc_phy"; 64*4882a593Smuzhiyun regulator-always-on; 65*4882a593Smuzhiyun regulator-boot-on; 66*4882a593Smuzhiyun }; 67*4882a593Smuzhiyun 68*4882a593Smuzhiyun vcc1v8_s0: vcc1v8-s0 { 69*4882a593Smuzhiyun compatible = "regulator-fixed"; 70*4882a593Smuzhiyun regulator-name = "vcc1v8_s0"; 71*4882a593Smuzhiyun regulator-min-microvolt = <1800000>; 72*4882a593Smuzhiyun regulator-max-microvolt = <1800000>; 73*4882a593Smuzhiyun regulator-always-on; 74*4882a593Smuzhiyun }; 75*4882a593Smuzhiyun 76*4882a593Smuzhiyun vcc3v3_sys: vcc3v3-sys { 77*4882a593Smuzhiyun compatible = "regulator-fixed"; 78*4882a593Smuzhiyun regulator-name = "vcc3v3_sys"; 79*4882a593Smuzhiyun regulator-min-microvolt = <3300000>; 80*4882a593Smuzhiyun regulator-max-microvolt = <3300000>; 81*4882a593Smuzhiyun regulator-always-on; 82*4882a593Smuzhiyun vin-supply = <&vcc_sys>; 83*4882a593Smuzhiyun }; 84*4882a593Smuzhiyun 85*4882a593Smuzhiyun vcc5v0_host: vcc5v0-host-regulator { 86*4882a593Smuzhiyun compatible = "regulator-fixed"; 87*4882a593Smuzhiyun enable-active-high; 88*4882a593Smuzhiyun gpio = <&gpio4 RK_PD2 GPIO_ACTIVE_HIGH>; 89*4882a593Smuzhiyun pinctrl-names = "default"; 90*4882a593Smuzhiyun pinctrl-0 = <&host_vbus_drv>; 91*4882a593Smuzhiyun regulator-name = "vcc5v0_host"; 92*4882a593Smuzhiyun regulator-always-on; 93*4882a593Smuzhiyun }; 94*4882a593Smuzhiyun 95*4882a593Smuzhiyun vcc5v0_typec: vcc5v0-typec-regulator { 96*4882a593Smuzhiyun compatible = "regulator-fixed"; 97*4882a593Smuzhiyun enable-active-high; 98*4882a593Smuzhiyun gpio = <&gpio1 RK_PA3 GPIO_ACTIVE_HIGH>; 99*4882a593Smuzhiyun pinctrl-names = "default"; 100*4882a593Smuzhiyun pinctrl-0 = <&vcc5v0_typec_en>; 101*4882a593Smuzhiyun regulator-name = "vcc5v0_typec"; 102*4882a593Smuzhiyun regulator-always-on; 103*4882a593Smuzhiyun vin-supply = <&vcc5v0_usb>; 104*4882a593Smuzhiyun }; 105*4882a593Smuzhiyun 106*4882a593Smuzhiyun vcc5v0_usb: vcc5v0-usb { 107*4882a593Smuzhiyun compatible = "regulator-fixed"; 108*4882a593Smuzhiyun regulator-name = "vcc5v0_usb"; 109*4882a593Smuzhiyun regulator-always-on; 110*4882a593Smuzhiyun regulator-boot-on; 111*4882a593Smuzhiyun regulator-min-microvolt = <5000000>; 112*4882a593Smuzhiyun regulator-max-microvolt = <5000000>; 113*4882a593Smuzhiyun vin-supply = <&dc_5v>; 114*4882a593Smuzhiyun }; 115*4882a593Smuzhiyun 116*4882a593Smuzhiyun vdd_log: vdd-log { 117*4882a593Smuzhiyun compatible = "pwm-regulator"; 118*4882a593Smuzhiyun pwms = <&pwm2 0 25000 1>; 119*4882a593Smuzhiyun pwm-supply = <&vcc_sys>; 120*4882a593Smuzhiyun regulator-name = "vdd_log"; 121*4882a593Smuzhiyun regulator-min-microvolt = <800000>; 122*4882a593Smuzhiyun regulator-max-microvolt = <1400000>; 123*4882a593Smuzhiyun regulator-always-on; 124*4882a593Smuzhiyun regulator-boot-on; 125*4882a593Smuzhiyun }; 126*4882a593Smuzhiyun 127*4882a593Smuzhiyun sdio_pwrseq: sdio-pwrseq { 128*4882a593Smuzhiyun compatible = "mmc-pwrseq-simple"; 129*4882a593Smuzhiyun clocks = <&rk808 1>; 130*4882a593Smuzhiyun clock-names = "ext_clock"; 131*4882a593Smuzhiyun pinctrl-names = "default"; 132*4882a593Smuzhiyun pinctrl-0 = <&wifi_reg_on_h>; 133*4882a593Smuzhiyun reset-gpios = <&gpio0 RK_PB2 GPIO_ACTIVE_LOW>; 134*4882a593Smuzhiyun }; 135*4882a593Smuzhiyun 136*4882a593Smuzhiyun}; 137*4882a593Smuzhiyun 138*4882a593Smuzhiyun&cpu_l0 { 139*4882a593Smuzhiyun cpu-supply = <&vdd_cpu_l>; 140*4882a593Smuzhiyun}; 141*4882a593Smuzhiyun 142*4882a593Smuzhiyun&cpu_l1 { 143*4882a593Smuzhiyun cpu-supply = <&vdd_cpu_l>; 144*4882a593Smuzhiyun}; 145*4882a593Smuzhiyun 146*4882a593Smuzhiyun&cpu_l2 { 147*4882a593Smuzhiyun cpu-supply = <&vdd_cpu_l>; 148*4882a593Smuzhiyun}; 149*4882a593Smuzhiyun 150*4882a593Smuzhiyun&cpu_l3 { 151*4882a593Smuzhiyun cpu-supply = <&vdd_cpu_l>; 152*4882a593Smuzhiyun}; 153*4882a593Smuzhiyun 154*4882a593Smuzhiyun&cpu_b0 { 155*4882a593Smuzhiyun cpu-supply = <&vdd_cpu_b>; 156*4882a593Smuzhiyun}; 157*4882a593Smuzhiyun 158*4882a593Smuzhiyun&cpu_b1 { 159*4882a593Smuzhiyun cpu-supply = <&vdd_cpu_b>; 160*4882a593Smuzhiyun}; 161*4882a593Smuzhiyun 162*4882a593Smuzhiyun&emmc_phy { 163*4882a593Smuzhiyun status = "okay"; 164*4882a593Smuzhiyun}; 165*4882a593Smuzhiyun 166*4882a593Smuzhiyun&gmac { 167*4882a593Smuzhiyun assigned-clocks = <&cru SCLK_RMII_SRC>; 168*4882a593Smuzhiyun assigned-clock-parents = <&clkin_gmac>; 169*4882a593Smuzhiyun clock_in_out = "input"; 170*4882a593Smuzhiyun phy-supply = <&vcc_phy>; 171*4882a593Smuzhiyun phy-mode = "rgmii"; 172*4882a593Smuzhiyun pinctrl-names = "default"; 173*4882a593Smuzhiyun pinctrl-0 = <&rgmii_pins>; 174*4882a593Smuzhiyun snps,reset-gpio = <&gpio3 RK_PB7 GPIO_ACTIVE_LOW>; 175*4882a593Smuzhiyun snps,reset-active-low; 176*4882a593Smuzhiyun snps,reset-delays-us = <0 10000 50000>; 177*4882a593Smuzhiyun tx_delay = <0x28>; 178*4882a593Smuzhiyun rx_delay = <0x11>; 179*4882a593Smuzhiyun status = "okay"; 180*4882a593Smuzhiyun}; 181*4882a593Smuzhiyun 182*4882a593Smuzhiyun&gpu { 183*4882a593Smuzhiyun status = "okay"; 184*4882a593Smuzhiyun mali-supply = <&vdd_gpu>; 185*4882a593Smuzhiyun}; 186*4882a593Smuzhiyun 187*4882a593Smuzhiyun&hdmi { 188*4882a593Smuzhiyun ddc-i2c-bus = <&i2c3>; 189*4882a593Smuzhiyun pinctrl-names = "default"; 190*4882a593Smuzhiyun pinctrl-0 = <&hdmi_cec>; 191*4882a593Smuzhiyun status = "okay"; 192*4882a593Smuzhiyun}; 193*4882a593Smuzhiyun 194*4882a593Smuzhiyun&hdmi_sound { 195*4882a593Smuzhiyun status = "okay"; 196*4882a593Smuzhiyun}; 197*4882a593Smuzhiyun 198*4882a593Smuzhiyun&i2c0 { 199*4882a593Smuzhiyun status = "okay"; 200*4882a593Smuzhiyun i2c-scl-rising-time-ns = <180>; 201*4882a593Smuzhiyun i2c-scl-falling-time-ns = <30>; 202*4882a593Smuzhiyun clock-frequency = <400000>; 203*4882a593Smuzhiyun 204*4882a593Smuzhiyun vdd_cpu_b: syr827@40 { 205*4882a593Smuzhiyun compatible = "silergy,syr827"; 206*4882a593Smuzhiyun reg = <0x40>; 207*4882a593Smuzhiyun regulator-compatible = "fan53555-reg"; 208*4882a593Smuzhiyun pinctrl-0 = <&vsel1_pin>; 209*4882a593Smuzhiyun regulator-name = "vdd_cpu_b"; 210*4882a593Smuzhiyun regulator-min-microvolt = <712500>; 211*4882a593Smuzhiyun regulator-max-microvolt = <1500000>; 212*4882a593Smuzhiyun regulator-ramp-delay = <1000>; 213*4882a593Smuzhiyun fcs,suspend-voltage-selector = <1>; 214*4882a593Smuzhiyun regulator-always-on; 215*4882a593Smuzhiyun regulator-boot-on; 216*4882a593Smuzhiyun vin-supply = <&vcc_sys>; 217*4882a593Smuzhiyun regulator-state-mem { 218*4882a593Smuzhiyun regulator-off-in-suspend; 219*4882a593Smuzhiyun }; 220*4882a593Smuzhiyun }; 221*4882a593Smuzhiyun 222*4882a593Smuzhiyun vdd_gpu: syr828@41 { 223*4882a593Smuzhiyun compatible = "silergy,syr828"; 224*4882a593Smuzhiyun reg = <0x41>; 225*4882a593Smuzhiyun regulator-compatible = "fan53555-reg"; 226*4882a593Smuzhiyun pinctrl-0 = <&vsel2_pin>; 227*4882a593Smuzhiyun regulator-name = "vdd_gpu"; 228*4882a593Smuzhiyun regulator-min-microvolt = <712500>; 229*4882a593Smuzhiyun regulator-max-microvolt = <1500000>; 230*4882a593Smuzhiyun regulator-ramp-delay = <1000>; 231*4882a593Smuzhiyun fcs,suspend-voltage-selector = <1>; 232*4882a593Smuzhiyun regulator-always-on; 233*4882a593Smuzhiyun regulator-boot-on; 234*4882a593Smuzhiyun vin-supply = <&vcc_sys>; 235*4882a593Smuzhiyun regulator-initial-mode = <1>; 236*4882a593Smuzhiyun regulator-state-mem { 237*4882a593Smuzhiyun regulator-off-in-suspend; 238*4882a593Smuzhiyun }; 239*4882a593Smuzhiyun }; 240*4882a593Smuzhiyun 241*4882a593Smuzhiyun rk808: pmic@1b { 242*4882a593Smuzhiyun compatible = "rockchip,rk808"; 243*4882a593Smuzhiyun reg = <0x1b>; 244*4882a593Smuzhiyun interrupt-parent = <&gpio1>; 245*4882a593Smuzhiyun interrupts = <21 IRQ_TYPE_LEVEL_LOW>; 246*4882a593Smuzhiyun pinctrl-names = "default"; 247*4882a593Smuzhiyun pinctrl-0 = <&pmic_int_l>; 248*4882a593Smuzhiyun rockchip,system-power-controller; 249*4882a593Smuzhiyun wakeup-source; 250*4882a593Smuzhiyun #clock-cells = <1>; 251*4882a593Smuzhiyun clock-output-names = "xin32k", "rtc_clko_wifi"; 252*4882a593Smuzhiyun 253*4882a593Smuzhiyun vcc1-supply = <&vcc_sys>; 254*4882a593Smuzhiyun vcc2-supply = <&vcc_sys>; 255*4882a593Smuzhiyun vcc3-supply = <&vcc_sys>; 256*4882a593Smuzhiyun vcc4-supply = <&vcc_sys>; 257*4882a593Smuzhiyun vcc6-supply = <&vcc_sys>; 258*4882a593Smuzhiyun vcc7-supply = <&vcc_sys>; 259*4882a593Smuzhiyun vcc8-supply = <&vcc3v3_sys>; 260*4882a593Smuzhiyun vcc9-supply = <&vcc_sys>; 261*4882a593Smuzhiyun vcc10-supply = <&vcc_sys>; 262*4882a593Smuzhiyun vcc11-supply = <&vcc_sys>; 263*4882a593Smuzhiyun vcc12-supply = <&vcc3v3_sys>; 264*4882a593Smuzhiyun vddio-supply = <&vcc_1v8>; 265*4882a593Smuzhiyun 266*4882a593Smuzhiyun regulators { 267*4882a593Smuzhiyun vdd_center: DCDC_REG1 { 268*4882a593Smuzhiyun regulator-name = "vdd_center"; 269*4882a593Smuzhiyun regulator-min-microvolt = <900000>; 270*4882a593Smuzhiyun regulator-max-microvolt = <900000>; 271*4882a593Smuzhiyun regulator-ramp-delay = <6001>; 272*4882a593Smuzhiyun regulator-always-on; 273*4882a593Smuzhiyun regulator-boot-on; 274*4882a593Smuzhiyun regulator-state-mem { 275*4882a593Smuzhiyun regulator-off-in-suspend; 276*4882a593Smuzhiyun }; 277*4882a593Smuzhiyun }; 278*4882a593Smuzhiyun 279*4882a593Smuzhiyun vdd_cpu_l: DCDC_REG2 { 280*4882a593Smuzhiyun regulator-name = "vdd_cpu_l"; 281*4882a593Smuzhiyun regulator-min-microvolt = <750000>; 282*4882a593Smuzhiyun regulator-max-microvolt = <1350000>; 283*4882a593Smuzhiyun regulator-ramp-delay = <6001>; 284*4882a593Smuzhiyun regulator-always-on; 285*4882a593Smuzhiyun regulator-boot-on; 286*4882a593Smuzhiyun regulator-state-mem { 287*4882a593Smuzhiyun regulator-off-in-suspend; 288*4882a593Smuzhiyun }; 289*4882a593Smuzhiyun }; 290*4882a593Smuzhiyun 291*4882a593Smuzhiyun vcc_ddr: DCDC_REG3 { 292*4882a593Smuzhiyun regulator-name = "vcc_ddr"; 293*4882a593Smuzhiyun regulator-always-on; 294*4882a593Smuzhiyun regulator-boot-on; 295*4882a593Smuzhiyun regulator-state-mem { 296*4882a593Smuzhiyun regulator-on-in-suspend; 297*4882a593Smuzhiyun }; 298*4882a593Smuzhiyun }; 299*4882a593Smuzhiyun 300*4882a593Smuzhiyun vcc_1v8: DCDC_REG4 { 301*4882a593Smuzhiyun regulator-name = "vcc_1v8"; 302*4882a593Smuzhiyun regulator-min-microvolt = <1800000>; 303*4882a593Smuzhiyun regulator-max-microvolt = <1800000>; 304*4882a593Smuzhiyun regulator-always-on; 305*4882a593Smuzhiyun regulator-boot-on; 306*4882a593Smuzhiyun regulator-state-mem { 307*4882a593Smuzhiyun regulator-on-in-suspend; 308*4882a593Smuzhiyun regulator-suspend-microvolt = <1800000>; 309*4882a593Smuzhiyun }; 310*4882a593Smuzhiyun }; 311*4882a593Smuzhiyun 312*4882a593Smuzhiyun vcc1v8_dvp: LDO_REG1 { 313*4882a593Smuzhiyun regulator-name = "vcc1v8_dvp"; 314*4882a593Smuzhiyun regulator-min-microvolt = <1800000>; 315*4882a593Smuzhiyun regulator-max-microvolt = <1800000>; 316*4882a593Smuzhiyun regulator-always-on; 317*4882a593Smuzhiyun regulator-boot-on; 318*4882a593Smuzhiyun regulator-state-mem { 319*4882a593Smuzhiyun regulator-on-in-suspend; 320*4882a593Smuzhiyun regulator-suspend-microvolt = <1800000>; 321*4882a593Smuzhiyun }; 322*4882a593Smuzhiyun }; 323*4882a593Smuzhiyun 324*4882a593Smuzhiyun vcca1v8_hdmi: LDO_REG2 { 325*4882a593Smuzhiyun regulator-name = "vcca1v8_hdmi"; 326*4882a593Smuzhiyun regulator-min-microvolt = <1800000>; 327*4882a593Smuzhiyun regulator-max-microvolt = <1800000>; 328*4882a593Smuzhiyun regulator-always-on; 329*4882a593Smuzhiyun regulator-boot-on; 330*4882a593Smuzhiyun regulator-state-mem { 331*4882a593Smuzhiyun regulator-on-in-suspend; 332*4882a593Smuzhiyun regulator-suspend-microvolt = <1800000>; 333*4882a593Smuzhiyun }; 334*4882a593Smuzhiyun }; 335*4882a593Smuzhiyun 336*4882a593Smuzhiyun vcca_1v8: LDO_REG3 { 337*4882a593Smuzhiyun regulator-name = "vcca_1v8"; 338*4882a593Smuzhiyun regulator-min-microvolt = <1800000>; 339*4882a593Smuzhiyun regulator-max-microvolt = <1800000>; 340*4882a593Smuzhiyun regulator-always-on; 341*4882a593Smuzhiyun regulator-boot-on; 342*4882a593Smuzhiyun regulator-state-mem { 343*4882a593Smuzhiyun regulator-on-in-suspend; 344*4882a593Smuzhiyun regulator-suspend-microvolt = <1800000>; 345*4882a593Smuzhiyun }; 346*4882a593Smuzhiyun }; 347*4882a593Smuzhiyun 348*4882a593Smuzhiyun vcc_sd: LDO_REG4 { 349*4882a593Smuzhiyun regulator-name = "vcc_sd"; 350*4882a593Smuzhiyun regulator-min-microvolt = <1800000>; 351*4882a593Smuzhiyun regulator-max-microvolt = <3300000>; 352*4882a593Smuzhiyun regulator-always-on; 353*4882a593Smuzhiyun regulator-boot-on; 354*4882a593Smuzhiyun regulator-state-mem { 355*4882a593Smuzhiyun regulator-on-in-suspend; 356*4882a593Smuzhiyun regulator-suspend-microvolt = <3300000>; 357*4882a593Smuzhiyun }; 358*4882a593Smuzhiyun }; 359*4882a593Smuzhiyun 360*4882a593Smuzhiyun vcc3v0_sd: LDO_REG5 { 361*4882a593Smuzhiyun regulator-name = "vcc3v0_sd"; 362*4882a593Smuzhiyun regulator-min-microvolt = <3000000>; 363*4882a593Smuzhiyun regulator-max-microvolt = <3000000>; 364*4882a593Smuzhiyun regulator-always-on; 365*4882a593Smuzhiyun regulator-boot-on; 366*4882a593Smuzhiyun regulator-state-mem { 367*4882a593Smuzhiyun regulator-on-in-suspend; 368*4882a593Smuzhiyun regulator-suspend-microvolt = <3000000>; 369*4882a593Smuzhiyun }; 370*4882a593Smuzhiyun }; 371*4882a593Smuzhiyun 372*4882a593Smuzhiyun vcc_1v5: LDO_REG6 { 373*4882a593Smuzhiyun regulator-name = "vcc_1v5"; 374*4882a593Smuzhiyun regulator-min-microvolt = <1500000>; 375*4882a593Smuzhiyun regulator-max-microvolt = <1500000>; 376*4882a593Smuzhiyun regulator-always-on; 377*4882a593Smuzhiyun regulator-boot-on; 378*4882a593Smuzhiyun regulator-state-mem { 379*4882a593Smuzhiyun regulator-on-in-suspend; 380*4882a593Smuzhiyun regulator-suspend-microvolt = <1500000>; 381*4882a593Smuzhiyun }; 382*4882a593Smuzhiyun }; 383*4882a593Smuzhiyun 384*4882a593Smuzhiyun vcca0v9_hdmi: LDO_REG7 { 385*4882a593Smuzhiyun regulator-name = "vcca0v9_hdmi"; 386*4882a593Smuzhiyun regulator-min-microvolt = <900000>; 387*4882a593Smuzhiyun regulator-max-microvolt = <900000>; 388*4882a593Smuzhiyun regulator-always-on; 389*4882a593Smuzhiyun regulator-boot-on; 390*4882a593Smuzhiyun regulator-state-mem { 391*4882a593Smuzhiyun regulator-on-in-suspend; 392*4882a593Smuzhiyun regulator-suspend-microvolt = <900000>; 393*4882a593Smuzhiyun }; 394*4882a593Smuzhiyun }; 395*4882a593Smuzhiyun 396*4882a593Smuzhiyun vcc_3v0: LDO_REG8 { 397*4882a593Smuzhiyun regulator-name = "vcc_3v0"; 398*4882a593Smuzhiyun regulator-min-microvolt = <3000000>; 399*4882a593Smuzhiyun regulator-max-microvolt = <3000000>; 400*4882a593Smuzhiyun regulator-always-on; 401*4882a593Smuzhiyun regulator-boot-on; 402*4882a593Smuzhiyun regulator-state-mem { 403*4882a593Smuzhiyun regulator-on-in-suspend; 404*4882a593Smuzhiyun regulator-suspend-microvolt = <3000000>; 405*4882a593Smuzhiyun }; 406*4882a593Smuzhiyun }; 407*4882a593Smuzhiyun 408*4882a593Smuzhiyun vcc3v3_s3: SWITCH_REG1 { 409*4882a593Smuzhiyun regulator-name = "vcc3v3_s3"; 410*4882a593Smuzhiyun regulator-always-on; 411*4882a593Smuzhiyun regulator-boot-on; 412*4882a593Smuzhiyun regulator-state-mem { 413*4882a593Smuzhiyun regulator-on-in-suspend; 414*4882a593Smuzhiyun }; 415*4882a593Smuzhiyun }; 416*4882a593Smuzhiyun 417*4882a593Smuzhiyun vcc3v3_s0: SWITCH_REG2 { 418*4882a593Smuzhiyun regulator-name = "vcc3v3_s0"; 419*4882a593Smuzhiyun regulator-always-on; 420*4882a593Smuzhiyun regulator-boot-on; 421*4882a593Smuzhiyun regulator-state-mem { 422*4882a593Smuzhiyun regulator-on-in-suspend; 423*4882a593Smuzhiyun }; 424*4882a593Smuzhiyun }; 425*4882a593Smuzhiyun }; 426*4882a593Smuzhiyun }; 427*4882a593Smuzhiyun}; 428*4882a593Smuzhiyun 429*4882a593Smuzhiyun&i2c1 { 430*4882a593Smuzhiyun i2c-scl-rising-time-ns = <300>; 431*4882a593Smuzhiyun i2c-scl-falling-time-ns = <15>; 432*4882a593Smuzhiyun status = "okay"; 433*4882a593Smuzhiyun}; 434*4882a593Smuzhiyun 435*4882a593Smuzhiyun&i2c3 { 436*4882a593Smuzhiyun i2c-scl-rising-time-ns = <450>; 437*4882a593Smuzhiyun i2c-scl-falling-time-ns = <15>; 438*4882a593Smuzhiyun status = "okay"; 439*4882a593Smuzhiyun}; 440*4882a593Smuzhiyun 441*4882a593Smuzhiyun&i2c4 { 442*4882a593Smuzhiyun i2c-scl-rising-time-ns = <600>; 443*4882a593Smuzhiyun i2c-scl-falling-time-ns = <40>; 444*4882a593Smuzhiyun status = "okay"; 445*4882a593Smuzhiyun 446*4882a593Smuzhiyun fusb0: typec-portc@22 { 447*4882a593Smuzhiyun compatible = "fcs,fusb302"; 448*4882a593Smuzhiyun reg = <0x22>; 449*4882a593Smuzhiyun interrupt-parent = <&gpio1>; 450*4882a593Smuzhiyun interrupts = <RK_PA2 IRQ_TYPE_LEVEL_LOW>; 451*4882a593Smuzhiyun pinctrl-names = "default"; 452*4882a593Smuzhiyun pinctrl-0 = <&fusb0_int>; 453*4882a593Smuzhiyun vbus-supply = <&vcc5v0_typec>; 454*4882a593Smuzhiyun status = "okay"; 455*4882a593Smuzhiyun }; 456*4882a593Smuzhiyun}; 457*4882a593Smuzhiyun 458*4882a593Smuzhiyun&i2c7 { 459*4882a593Smuzhiyun status = "okay"; 460*4882a593Smuzhiyun}; 461*4882a593Smuzhiyun 462*4882a593Smuzhiyun&i2s0 { 463*4882a593Smuzhiyun rockchip,playback-channels = <8>; 464*4882a593Smuzhiyun rockchip,capture-channels = <8>; 465*4882a593Smuzhiyun status = "okay"; 466*4882a593Smuzhiyun}; 467*4882a593Smuzhiyun 468*4882a593Smuzhiyun&i2s1 { 469*4882a593Smuzhiyun rockchip,playback-channels = <2>; 470*4882a593Smuzhiyun rockchip,capture-channels = <2>; 471*4882a593Smuzhiyun status = "okay"; 472*4882a593Smuzhiyun}; 473*4882a593Smuzhiyun 474*4882a593Smuzhiyun&i2s2 { 475*4882a593Smuzhiyun status = "okay"; 476*4882a593Smuzhiyun}; 477*4882a593Smuzhiyun 478*4882a593Smuzhiyun&io_domains { 479*4882a593Smuzhiyun status = "okay"; 480*4882a593Smuzhiyun audio-supply = <&vcc1v8_s0>; 481*4882a593Smuzhiyun bt656-supply = <&vcc1v8_s0>; 482*4882a593Smuzhiyun gpio1830-supply = <&vcc_3v0>; 483*4882a593Smuzhiyun sdmmc-supply = <&vcc_sd>; 484*4882a593Smuzhiyun}; 485*4882a593Smuzhiyun 486*4882a593Smuzhiyun&pmu_io_domains { 487*4882a593Smuzhiyun status = "okay"; 488*4882a593Smuzhiyun pmu1830-supply = <&vcc_1v8>; 489*4882a593Smuzhiyun}; 490*4882a593Smuzhiyun 491*4882a593Smuzhiyun&pinctrl { 492*4882a593Smuzhiyun fusb30x { 493*4882a593Smuzhiyun fusb0_int: fusb0-int { 494*4882a593Smuzhiyun rockchip,pins = 495*4882a593Smuzhiyun <1 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>; 496*4882a593Smuzhiyun }; 497*4882a593Smuzhiyun }; 498*4882a593Smuzhiyun 499*4882a593Smuzhiyun gmac { 500*4882a593Smuzhiyun rgmii_sleep_pins: rgmii-sleep-pins { 501*4882a593Smuzhiyun rockchip,pins = 502*4882a593Smuzhiyun <3 RK_PB7 RK_FUNC_GPIO &pcfg_output_low>; 503*4882a593Smuzhiyun }; 504*4882a593Smuzhiyun }; 505*4882a593Smuzhiyun 506*4882a593Smuzhiyun ir { 507*4882a593Smuzhiyun ir_rx: ir-rx { 508*4882a593Smuzhiyun rockchip,pins = <0 RK_PA6 1 &pcfg_pull_none>; 509*4882a593Smuzhiyun }; 510*4882a593Smuzhiyun }; 511*4882a593Smuzhiyun 512*4882a593Smuzhiyun leds { 513*4882a593Smuzhiyun power_led_pin: power-led-pin { 514*4882a593Smuzhiyun rockchip,pins = <4 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>; 515*4882a593Smuzhiyun }; 516*4882a593Smuzhiyun }; 517*4882a593Smuzhiyun 518*4882a593Smuzhiyun pmic { 519*4882a593Smuzhiyun pmic_int_l: pmic-int-l { 520*4882a593Smuzhiyun rockchip,pins = 521*4882a593Smuzhiyun <1 RK_PC5 RK_FUNC_GPIO &pcfg_pull_up>; 522*4882a593Smuzhiyun }; 523*4882a593Smuzhiyun 524*4882a593Smuzhiyun vsel1_pin: vsel1-pin { 525*4882a593Smuzhiyun rockchip,pins = 526*4882a593Smuzhiyun <1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_down>; 527*4882a593Smuzhiyun }; 528*4882a593Smuzhiyun 529*4882a593Smuzhiyun vsel2_pin: vsel2-pin { 530*4882a593Smuzhiyun rockchip,pins = 531*4882a593Smuzhiyun <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_down>; 532*4882a593Smuzhiyun }; 533*4882a593Smuzhiyun }; 534*4882a593Smuzhiyun 535*4882a593Smuzhiyun sdio { 536*4882a593Smuzhiyun bt_host_wake_l: bt-host-wake-l { 537*4882a593Smuzhiyun rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>; 538*4882a593Smuzhiyun }; 539*4882a593Smuzhiyun 540*4882a593Smuzhiyun bt_reg_on_h: bt-reg-on-h { 541*4882a593Smuzhiyun /* external pullup to VCC1V8_PMUPLL */ 542*4882a593Smuzhiyun rockchip,pins = <0 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>; 543*4882a593Smuzhiyun }; 544*4882a593Smuzhiyun 545*4882a593Smuzhiyun bt_wake_l: bt-wake-l { 546*4882a593Smuzhiyun rockchip,pins = <2 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>; 547*4882a593Smuzhiyun }; 548*4882a593Smuzhiyun 549*4882a593Smuzhiyun wifi_reg_on_h: wifi-reg_on-h { 550*4882a593Smuzhiyun rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>; 551*4882a593Smuzhiyun }; 552*4882a593Smuzhiyun }; 553*4882a593Smuzhiyun 554*4882a593Smuzhiyun wifi { 555*4882a593Smuzhiyun wifi_host_wake_l: wifi-host-wake-l { 556*4882a593Smuzhiyun rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>; 557*4882a593Smuzhiyun }; 558*4882a593Smuzhiyun }; 559*4882a593Smuzhiyun 560*4882a593Smuzhiyun usb-typec { 561*4882a593Smuzhiyun vcc5v0_typec_en: vcc5v0_typec_en { 562*4882a593Smuzhiyun rockchip,pins = <1 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>; 563*4882a593Smuzhiyun }; 564*4882a593Smuzhiyun }; 565*4882a593Smuzhiyun 566*4882a593Smuzhiyun usb2 { 567*4882a593Smuzhiyun host_vbus_drv: host-vbus-drv { 568*4882a593Smuzhiyun rockchip,pins = 569*4882a593Smuzhiyun <4 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>; 570*4882a593Smuzhiyun }; 571*4882a593Smuzhiyun }; 572*4882a593Smuzhiyun}; 573*4882a593Smuzhiyun 574*4882a593Smuzhiyun&pwm2 { 575*4882a593Smuzhiyun status = "okay"; 576*4882a593Smuzhiyun pinctrl-0 = <&pwm2_pin_pull_down>; 577*4882a593Smuzhiyun}; 578*4882a593Smuzhiyun 579*4882a593Smuzhiyun&saradc { 580*4882a593Smuzhiyun vref-supply = <&vcc1v8_s0>; 581*4882a593Smuzhiyun status = "okay"; 582*4882a593Smuzhiyun}; 583*4882a593Smuzhiyun 584*4882a593Smuzhiyun&sdmmc { 585*4882a593Smuzhiyun clock-frequency = <150000000>; 586*4882a593Smuzhiyun max-frequency = <150000000>; 587*4882a593Smuzhiyun bus-width = <4>; 588*4882a593Smuzhiyun cap-mmc-highspeed; 589*4882a593Smuzhiyun cap-sd-highspeed; 590*4882a593Smuzhiyun disable-wp; 591*4882a593Smuzhiyun vqmmc-supply = <&vcc_sd>; 592*4882a593Smuzhiyun pinctrl-names = "default"; 593*4882a593Smuzhiyun pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>; 594*4882a593Smuzhiyun card-detect-delay = <800>; 595*4882a593Smuzhiyun status = "okay"; 596*4882a593Smuzhiyun}; 597*4882a593Smuzhiyun 598*4882a593Smuzhiyun&sdhci { 599*4882a593Smuzhiyun bus-width = <8>; 600*4882a593Smuzhiyun mmc-hs400-1_8v; 601*4882a593Smuzhiyun mmc-hs400-enhanced-strobe; 602*4882a593Smuzhiyun non-removable; 603*4882a593Smuzhiyun keep-power-in-suspend; 604*4882a593Smuzhiyun status = "okay"; 605*4882a593Smuzhiyun}; 606*4882a593Smuzhiyun 607*4882a593Smuzhiyun&sdio0 { 608*4882a593Smuzhiyun bus-width = <4>; 609*4882a593Smuzhiyun clock-frequency = <50000000>; 610*4882a593Smuzhiyun cap-sdio-irq; 611*4882a593Smuzhiyun cap-sd-highspeed; 612*4882a593Smuzhiyun keep-power-in-suspend; 613*4882a593Smuzhiyun mmc-pwrseq = <&sdio_pwrseq>; 614*4882a593Smuzhiyun non-removable; 615*4882a593Smuzhiyun pinctrl-names = "default"; 616*4882a593Smuzhiyun pinctrl-0 = <&sdio0_bus4 &sdio0_cmd &sdio0_clk>; 617*4882a593Smuzhiyun sd-uhs-sdr104; 618*4882a593Smuzhiyun #address-cells = <1>; 619*4882a593Smuzhiyun #size-cells = <0>; 620*4882a593Smuzhiyun status = "okay"; 621*4882a593Smuzhiyun 622*4882a593Smuzhiyun brcmf: wifi@1 { 623*4882a593Smuzhiyun compatible = "brcm,bcm4329-fmac"; 624*4882a593Smuzhiyun reg = <1>; 625*4882a593Smuzhiyun interrupt-parent = <&gpio0>; 626*4882a593Smuzhiyun interrupts = <RK_PA3 GPIO_ACTIVE_HIGH>; 627*4882a593Smuzhiyun interrupt-names = "host-wake"; 628*4882a593Smuzhiyun pinctrl-names = "default"; 629*4882a593Smuzhiyun pinctrl-0 = <&wifi_host_wake_l>; 630*4882a593Smuzhiyun }; 631*4882a593Smuzhiyun}; 632*4882a593Smuzhiyun 633*4882a593Smuzhiyun&spdif { 634*4882a593Smuzhiyun status = "okay"; 635*4882a593Smuzhiyun pinctrl-0 = <&spdif_bus_1>; 636*4882a593Smuzhiyun}; 637*4882a593Smuzhiyun 638*4882a593Smuzhiyun&spi1 { 639*4882a593Smuzhiyun status = "okay"; 640*4882a593Smuzhiyun 641*4882a593Smuzhiyun flash@0 { 642*4882a593Smuzhiyun compatible = "jedec,spi-nor"; 643*4882a593Smuzhiyun #address-cells = <1>; 644*4882a593Smuzhiyun #size-cells = <1>; 645*4882a593Smuzhiyun reg = <0>; 646*4882a593Smuzhiyun spi-max-frequency = <10000000>; 647*4882a593Smuzhiyun }; 648*4882a593Smuzhiyun}; 649*4882a593Smuzhiyun 650*4882a593Smuzhiyun&tcphy0 { 651*4882a593Smuzhiyun status = "okay"; 652*4882a593Smuzhiyun}; 653*4882a593Smuzhiyun 654*4882a593Smuzhiyun&tcphy1 { 655*4882a593Smuzhiyun status = "okay"; 656*4882a593Smuzhiyun}; 657*4882a593Smuzhiyun 658*4882a593Smuzhiyun&tsadc { 659*4882a593Smuzhiyun /* tshut mode 0:CRU 1:GPIO */ 660*4882a593Smuzhiyun rockchip,hw-tshut-mode = <1>; 661*4882a593Smuzhiyun /* tshut polarity 0:LOW 1:HIGH */ 662*4882a593Smuzhiyun rockchip,hw-tshut-polarity = <1>; 663*4882a593Smuzhiyun rockchip,hw-tshut-temp = <110000>; 664*4882a593Smuzhiyun status = "okay"; 665*4882a593Smuzhiyun}; 666*4882a593Smuzhiyun 667*4882a593Smuzhiyun&u2phy0 { 668*4882a593Smuzhiyun status = "okay"; 669*4882a593Smuzhiyun 670*4882a593Smuzhiyun u2phy0_host: host-port { 671*4882a593Smuzhiyun phy-supply = <&vcc5v0_typec>; 672*4882a593Smuzhiyun status = "okay"; 673*4882a593Smuzhiyun }; 674*4882a593Smuzhiyun 675*4882a593Smuzhiyun u2phy0_otg: otg-port { 676*4882a593Smuzhiyun status = "okay"; 677*4882a593Smuzhiyun }; 678*4882a593Smuzhiyun}; 679*4882a593Smuzhiyun 680*4882a593Smuzhiyun&u2phy1 { 681*4882a593Smuzhiyun status = "okay"; 682*4882a593Smuzhiyun 683*4882a593Smuzhiyun u2phy1_host: host-port { 684*4882a593Smuzhiyun phy-supply = <&vcc5v0_host>; 685*4882a593Smuzhiyun status = "okay"; 686*4882a593Smuzhiyun }; 687*4882a593Smuzhiyun 688*4882a593Smuzhiyun u2phy1_otg: otg-port { 689*4882a593Smuzhiyun status = "okay"; 690*4882a593Smuzhiyun }; 691*4882a593Smuzhiyun}; 692*4882a593Smuzhiyun 693*4882a593Smuzhiyun&uart0 { 694*4882a593Smuzhiyun pinctrl-names = "default"; 695*4882a593Smuzhiyun pinctrl-0 = <&uart0_xfer &uart0_rts &uart0_cts>; 696*4882a593Smuzhiyun status = "okay"; 697*4882a593Smuzhiyun 698*4882a593Smuzhiyun bluetooth { 699*4882a593Smuzhiyun compatible = "brcm,bcm43438-bt"; 700*4882a593Smuzhiyun clocks = <&rk808 1>; 701*4882a593Smuzhiyun clock-names = "ext_clock"; 702*4882a593Smuzhiyun device-wakeup-gpios = <&gpio2 RK_PD2 GPIO_ACTIVE_HIGH>; 703*4882a593Smuzhiyun host-wakeup-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_HIGH>; 704*4882a593Smuzhiyun shutdown-gpios = <&gpio0 RK_PB1 GPIO_ACTIVE_HIGH>; 705*4882a593Smuzhiyun max-speed = <4000000>; 706*4882a593Smuzhiyun pinctrl-names = "default"; 707*4882a593Smuzhiyun pinctrl-0 = <&bt_reg_on_h &bt_host_wake_l &bt_wake_l>; 708*4882a593Smuzhiyun vbat-supply = <&vcc3v3_sys>; 709*4882a593Smuzhiyun vddio-supply = <&vcc_1v8>; 710*4882a593Smuzhiyun }; 711*4882a593Smuzhiyun}; 712*4882a593Smuzhiyun 713*4882a593Smuzhiyun&uart2 { 714*4882a593Smuzhiyun status = "okay"; 715*4882a593Smuzhiyun}; 716*4882a593Smuzhiyun 717*4882a593Smuzhiyun&usb_host0_ehci { 718*4882a593Smuzhiyun status = "okay"; 719*4882a593Smuzhiyun}; 720*4882a593Smuzhiyun 721*4882a593Smuzhiyun&usb_host0_ohci { 722*4882a593Smuzhiyun status = "okay"; 723*4882a593Smuzhiyun}; 724*4882a593Smuzhiyun 725*4882a593Smuzhiyun&usb_host1_ehci { 726*4882a593Smuzhiyun status = "okay"; 727*4882a593Smuzhiyun}; 728*4882a593Smuzhiyun 729*4882a593Smuzhiyun&usb_host1_ohci { 730*4882a593Smuzhiyun status = "okay"; 731*4882a593Smuzhiyun}; 732*4882a593Smuzhiyun 733*4882a593Smuzhiyun&usbdrd3_0 { 734*4882a593Smuzhiyun status = "okay"; 735*4882a593Smuzhiyun}; 736*4882a593Smuzhiyun 737*4882a593Smuzhiyun&usbdrd_dwc3_0 { 738*4882a593Smuzhiyun status = "okay"; 739*4882a593Smuzhiyun dr_mode = "host"; 740*4882a593Smuzhiyun}; 741*4882a593Smuzhiyun 742*4882a593Smuzhiyun&usbdrd3_1 { 743*4882a593Smuzhiyun status = "okay"; 744*4882a593Smuzhiyun}; 745*4882a593Smuzhiyun 746*4882a593Smuzhiyun&usbdrd_dwc3_1 { 747*4882a593Smuzhiyun status = "okay"; 748*4882a593Smuzhiyun dr_mode = "host"; 749*4882a593Smuzhiyun}; 750*4882a593Smuzhiyun 751*4882a593Smuzhiyun&vopb { 752*4882a593Smuzhiyun status = "okay"; 753*4882a593Smuzhiyun}; 754*4882a593Smuzhiyun 755*4882a593Smuzhiyun&vopb_mmu { 756*4882a593Smuzhiyun status = "okay"; 757*4882a593Smuzhiyun}; 758