1*251e5adeSJunhao Xie// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2*251e5adeSJunhao Xie 3*251e5adeSJunhao Xie/dts-v1/; 4*251e5adeSJunhao Xie 5*251e5adeSJunhao Xie#include <dt-bindings/gpio/gpio.h> 6*251e5adeSJunhao Xie#include <dt-bindings/input/input.h> 7*251e5adeSJunhao Xie#include <dt-bindings/leds/common.h> 8*251e5adeSJunhao Xie#include <dt-bindings/pinctrl/rockchip.h> 9*251e5adeSJunhao Xie#include <dt-bindings/soc/rockchip,vop2.h> 10*251e5adeSJunhao Xie#include <dt-bindings/soc/rockchip,boot-mode.h> 11*251e5adeSJunhao Xie#include "rk3566.dtsi" 12*251e5adeSJunhao Xie 13*251e5adeSJunhao Xie/ { 14*251e5adeSJunhao Xie model = "LCKFB Taishan Pi RK3566"; 15*251e5adeSJunhao Xie compatible = "lckfb,tspi-rk3566", "rockchip,rk3566"; 16*251e5adeSJunhao Xie 17*251e5adeSJunhao Xie aliases { 18*251e5adeSJunhao Xie mmc0 = &sdmmc0; 19*251e5adeSJunhao Xie mmc1 = &sdhci; 20*251e5adeSJunhao Xie mmc2 = &sdmmc1; 21*251e5adeSJunhao Xie }; 22*251e5adeSJunhao Xie 23*251e5adeSJunhao Xie chosen: chosen { 24*251e5adeSJunhao Xie stdout-path = "serial2:1500000n8"; 25*251e5adeSJunhao Xie }; 26*251e5adeSJunhao Xie 27*251e5adeSJunhao Xie reserved-memory { 28*251e5adeSJunhao Xie #address-cells = <2>; 29*251e5adeSJunhao Xie #size-cells = <2>; 30*251e5adeSJunhao Xie ranges; 31*251e5adeSJunhao Xie 32*251e5adeSJunhao Xie ramoops: ramoops@110000 { 33*251e5adeSJunhao Xie compatible = "ramoops"; 34*251e5adeSJunhao Xie reg = <0 0x110000 0 0xf0000>; 35*251e5adeSJunhao Xie console-size = <0x80000>; 36*251e5adeSJunhao Xie ftrace-size = <0x00000>; 37*251e5adeSJunhao Xie pmsg-size = <0x50000>; 38*251e5adeSJunhao Xie record-size = <0x20000>; 39*251e5adeSJunhao Xie }; 40*251e5adeSJunhao Xie }; 41*251e5adeSJunhao Xie 42*251e5adeSJunhao Xie adc_keys: adc-keys { 43*251e5adeSJunhao Xie compatible = "adc-keys"; 44*251e5adeSJunhao Xie io-channels = <&saradc 0>; 45*251e5adeSJunhao Xie io-channel-names = "buttons"; 46*251e5adeSJunhao Xie keyup-threshold-microvolt = <1800000>; 47*251e5adeSJunhao Xie poll-interval = <100>; 48*251e5adeSJunhao Xie 49*251e5adeSJunhao Xie button-recovery { 50*251e5adeSJunhao Xie label = "recovery"; 51*251e5adeSJunhao Xie linux,code = <KEY_RESTART>; 52*251e5adeSJunhao Xie press-threshold-microvolt = <108>; 53*251e5adeSJunhao Xie }; 54*251e5adeSJunhao Xie }; 55*251e5adeSJunhao Xie 56*251e5adeSJunhao Xie hdmi_con: hdmi-con { 57*251e5adeSJunhao Xie compatible = "hdmi-connector"; 58*251e5adeSJunhao Xie type = "d"; 59*251e5adeSJunhao Xie 60*251e5adeSJunhao Xie port { 61*251e5adeSJunhao Xie hdmi_con_in: endpoint { 62*251e5adeSJunhao Xie remote-endpoint = <&hdmi_out_con>; 63*251e5adeSJunhao Xie }; 64*251e5adeSJunhao Xie }; 65*251e5adeSJunhao Xie }; 66*251e5adeSJunhao Xie 67*251e5adeSJunhao Xie leds: leds { 68*251e5adeSJunhao Xie compatible = "gpio-leds"; 69*251e5adeSJunhao Xie 70*251e5adeSJunhao Xie rgb_led_r: rgb-led-r { 71*251e5adeSJunhao Xie color = <LED_COLOR_ID_RED>; 72*251e5adeSJunhao Xie gpios = <&gpio1 RK_PB2 GPIO_ACTIVE_LOW>; 73*251e5adeSJunhao Xie label = "status-red"; 74*251e5adeSJunhao Xie }; 75*251e5adeSJunhao Xie 76*251e5adeSJunhao Xie rgb_led_g: rgb-led-g { 77*251e5adeSJunhao Xie gpios = <&gpio1 RK_PB1 GPIO_ACTIVE_LOW>; 78*251e5adeSJunhao Xie color = <LED_COLOR_ID_GREEN>; 79*251e5adeSJunhao Xie label = "status-green"; 80*251e5adeSJunhao Xie }; 81*251e5adeSJunhao Xie 82*251e5adeSJunhao Xie rgb_led_b: rgb-led-b { 83*251e5adeSJunhao Xie gpios = <&gpio1 RK_PB0 GPIO_ACTIVE_LOW>; 84*251e5adeSJunhao Xie color = <LED_COLOR_ID_BLUE>; 85*251e5adeSJunhao Xie label = "status-blue"; 86*251e5adeSJunhao Xie }; 87*251e5adeSJunhao Xie }; 88*251e5adeSJunhao Xie 89*251e5adeSJunhao Xie multi_leds: multi-led { 90*251e5adeSJunhao Xie compatible = "leds-group-multicolor"; 91*251e5adeSJunhao Xie color = <LED_COLOR_ID_RGB>; 92*251e5adeSJunhao Xie label = "status-rgb"; 93*251e5adeSJunhao Xie function = LED_FUNCTION_INDICATOR; 94*251e5adeSJunhao Xie leds = <&rgb_led_r>, <&rgb_led_g>, <&rgb_led_b>; 95*251e5adeSJunhao Xie }; 96*251e5adeSJunhao Xie 97*251e5adeSJunhao Xie vcc12v0_dcin: regulator-12v0-dcin { 98*251e5adeSJunhao Xie compatible = "regulator-fixed"; 99*251e5adeSJunhao Xie regulator-name = "vcc12v0_dcin"; 100*251e5adeSJunhao Xie regulator-always-on; 101*251e5adeSJunhao Xie regulator-boot-on; 102*251e5adeSJunhao Xie regulator-min-microvolt = <12000000>; 103*251e5adeSJunhao Xie regulator-max-microvolt = <12000000>; 104*251e5adeSJunhao Xie }; 105*251e5adeSJunhao Xie 106*251e5adeSJunhao Xie vcc3v3_sys: regulator-3v3-vcc-sys { 107*251e5adeSJunhao Xie compatible = "regulator-fixed"; 108*251e5adeSJunhao Xie regulator-name = "vcc3v3_sys"; 109*251e5adeSJunhao Xie regulator-always-on; 110*251e5adeSJunhao Xie regulator-boot-on; 111*251e5adeSJunhao Xie regulator-min-microvolt = <3300000>; 112*251e5adeSJunhao Xie regulator-max-microvolt = <3300000>; 113*251e5adeSJunhao Xie vin-supply = <&vcc5v0_sys>; 114*251e5adeSJunhao Xie }; 115*251e5adeSJunhao Xie 116*251e5adeSJunhao Xie vcc5v0_sys: regulator-5v0-vcc-sys { 117*251e5adeSJunhao Xie compatible = "regulator-fixed"; 118*251e5adeSJunhao Xie regulator-name = "vcc5v0_sys"; 119*251e5adeSJunhao Xie regulator-always-on; 120*251e5adeSJunhao Xie regulator-boot-on; 121*251e5adeSJunhao Xie regulator-min-microvolt = <5000000>; 122*251e5adeSJunhao Xie regulator-max-microvolt = <5000000>; 123*251e5adeSJunhao Xie vin-supply = <&vcc12v0_dcin>; 124*251e5adeSJunhao Xie }; 125*251e5adeSJunhao Xie 126*251e5adeSJunhao Xie vcc5v0_host: regulator-5v0-vcc-host { 127*251e5adeSJunhao Xie compatible = "regulator-fixed"; 128*251e5adeSJunhao Xie enable-active-high; 129*251e5adeSJunhao Xie gpio = <&gpio4 RK_PC4 GPIO_ACTIVE_HIGH>; 130*251e5adeSJunhao Xie pinctrl-names = "default"; 131*251e5adeSJunhao Xie pinctrl-0 = <&vcc5v0_host_en>; 132*251e5adeSJunhao Xie regulator-name = "vcc5v0_host"; 133*251e5adeSJunhao Xie regulator-min-microvolt = <5000000>; 134*251e5adeSJunhao Xie regulator-max-microvolt = <5000000>; 135*251e5adeSJunhao Xie vin-supply = <&vcc5v0_sys>; 136*251e5adeSJunhao Xie }; 137*251e5adeSJunhao Xie 138*251e5adeSJunhao Xie sdio_pwrseq: sdio-pwrseq { 139*251e5adeSJunhao Xie compatible = "mmc-pwrseq-simple"; 140*251e5adeSJunhao Xie clocks = <&rk809 1>; 141*251e5adeSJunhao Xie clock-names = "ext_clock"; 142*251e5adeSJunhao Xie pinctrl-names = "default"; 143*251e5adeSJunhao Xie pinctrl-0 = <&wifi_enable_h>; 144*251e5adeSJunhao Xie post-power-on-delay-ms = <200>; 145*251e5adeSJunhao Xie reset-gpios = <&gpio2 RK_PB1 GPIO_ACTIVE_LOW>; 146*251e5adeSJunhao Xie }; 147*251e5adeSJunhao Xie 148*251e5adeSJunhao Xie sound { 149*251e5adeSJunhao Xie compatible = "simple-audio-card"; 150*251e5adeSJunhao Xie simple-audio-card,format = "i2s"; 151*251e5adeSJunhao Xie simple-audio-card,name = "Analog RK809"; 152*251e5adeSJunhao Xie simple-audio-card,mclk-fs = <256>; 153*251e5adeSJunhao Xie 154*251e5adeSJunhao Xie simple-audio-card,cpu { 155*251e5adeSJunhao Xie sound-dai = <&i2s1_8ch>; 156*251e5adeSJunhao Xie }; 157*251e5adeSJunhao Xie 158*251e5adeSJunhao Xie simple-audio-card,codec { 159*251e5adeSJunhao Xie sound-dai = <&rk809>; 160*251e5adeSJunhao Xie }; 161*251e5adeSJunhao Xie }; 162*251e5adeSJunhao Xie}; 163*251e5adeSJunhao Xie 164*251e5adeSJunhao Xie&combphy1 { 165*251e5adeSJunhao Xie status = "okay"; 166*251e5adeSJunhao Xie}; 167*251e5adeSJunhao Xie 168*251e5adeSJunhao Xie&combphy2 { 169*251e5adeSJunhao Xie status = "okay"; 170*251e5adeSJunhao Xie}; 171*251e5adeSJunhao Xie 172*251e5adeSJunhao Xie&cpu0 { 173*251e5adeSJunhao Xie cpu-supply = <&vdd_cpu>; 174*251e5adeSJunhao Xie}; 175*251e5adeSJunhao Xie 176*251e5adeSJunhao Xie&cpu1 { 177*251e5adeSJunhao Xie cpu-supply = <&vdd_cpu>; 178*251e5adeSJunhao Xie}; 179*251e5adeSJunhao Xie 180*251e5adeSJunhao Xie&cpu2 { 181*251e5adeSJunhao Xie cpu-supply = <&vdd_cpu>; 182*251e5adeSJunhao Xie}; 183*251e5adeSJunhao Xie 184*251e5adeSJunhao Xie&cpu3 { 185*251e5adeSJunhao Xie cpu-supply = <&vdd_cpu>; 186*251e5adeSJunhao Xie}; 187*251e5adeSJunhao Xie 188*251e5adeSJunhao Xie&gpu { 189*251e5adeSJunhao Xie mali-supply = <&vdd_gpu>; 190*251e5adeSJunhao Xie status = "okay"; 191*251e5adeSJunhao Xie}; 192*251e5adeSJunhao Xie 193*251e5adeSJunhao Xie&hdmi { 194*251e5adeSJunhao Xie avdd-0v9-supply = <&vdda0v9_image>; 195*251e5adeSJunhao Xie avdd-1v8-supply = <&vcca1v8_image>; 196*251e5adeSJunhao Xie status = "okay"; 197*251e5adeSJunhao Xie}; 198*251e5adeSJunhao Xie 199*251e5adeSJunhao Xie&hdmi_in { 200*251e5adeSJunhao Xie hdmi_in_vp0: endpoint { 201*251e5adeSJunhao Xie remote-endpoint = <&vp0_out_hdmi>; 202*251e5adeSJunhao Xie }; 203*251e5adeSJunhao Xie}; 204*251e5adeSJunhao Xie 205*251e5adeSJunhao Xie&hdmi_out { 206*251e5adeSJunhao Xie hdmi_out_con: endpoint { 207*251e5adeSJunhao Xie remote-endpoint = <&hdmi_con_in>; 208*251e5adeSJunhao Xie }; 209*251e5adeSJunhao Xie}; 210*251e5adeSJunhao Xie 211*251e5adeSJunhao Xie&hdmi_sound { 212*251e5adeSJunhao Xie status = "okay"; 213*251e5adeSJunhao Xie}; 214*251e5adeSJunhao Xie 215*251e5adeSJunhao Xie&i2c0 { 216*251e5adeSJunhao Xie status = "okay"; 217*251e5adeSJunhao Xie 218*251e5adeSJunhao Xie vdd_cpu: regulator@1c { 219*251e5adeSJunhao Xie compatible = "tcs,tcs4525"; 220*251e5adeSJunhao Xie reg = <0x1c>; 221*251e5adeSJunhao Xie fcs,suspend-voltage-selector = <1>; 222*251e5adeSJunhao Xie regulator-name = "vdd_cpu"; 223*251e5adeSJunhao Xie regulator-always-on; 224*251e5adeSJunhao Xie regulator-boot-on; 225*251e5adeSJunhao Xie regulator-min-microvolt = <800000>; 226*251e5adeSJunhao Xie regulator-max-microvolt = <1150000>; 227*251e5adeSJunhao Xie regulator-ramp-delay = <2300>; 228*251e5adeSJunhao Xie vin-supply = <&vcc5v0_sys>; 229*251e5adeSJunhao Xie 230*251e5adeSJunhao Xie regulator-state-mem { 231*251e5adeSJunhao Xie regulator-off-in-suspend; 232*251e5adeSJunhao Xie }; 233*251e5adeSJunhao Xie }; 234*251e5adeSJunhao Xie 235*251e5adeSJunhao Xie rk809: pmic@20 { 236*251e5adeSJunhao Xie compatible = "rockchip,rk809"; 237*251e5adeSJunhao Xie reg = <0x20>; 238*251e5adeSJunhao Xie assigned-clocks = <&cru I2S1_MCLKOUT_TX>; 239*251e5adeSJunhao Xie assigned-clock-parents = <&cru CLK_I2S1_8CH_TX>; 240*251e5adeSJunhao Xie #clock-cells = <1>; 241*251e5adeSJunhao Xie clock-output-names = "rk808-clkout1", "rk808-clkout2"; 242*251e5adeSJunhao Xie clock-names = "mclk"; 243*251e5adeSJunhao Xie clocks = <&cru I2S1_MCLKOUT_TX>; 244*251e5adeSJunhao Xie interrupt-parent = <&gpio0>; 245*251e5adeSJunhao Xie interrupts = <RK_PA3 IRQ_TYPE_LEVEL_LOW>; 246*251e5adeSJunhao Xie pinctrl-names = "default"; 247*251e5adeSJunhao Xie pinctrl-0 = <&pmic_int>, <&i2s1m0_mclk>; 248*251e5adeSJunhao Xie system-power-controller; 249*251e5adeSJunhao Xie #sound-dai-cells = <0>; 250*251e5adeSJunhao Xie wakeup-source; 251*251e5adeSJunhao Xie 252*251e5adeSJunhao Xie vcc1-supply = <&vcc3v3_sys>; 253*251e5adeSJunhao Xie vcc2-supply = <&vcc3v3_sys>; 254*251e5adeSJunhao Xie vcc3-supply = <&vcc3v3_sys>; 255*251e5adeSJunhao Xie vcc4-supply = <&vcc3v3_sys>; 256*251e5adeSJunhao Xie vcc5-supply = <&vcc3v3_sys>; 257*251e5adeSJunhao Xie vcc6-supply = <&vcc3v3_sys>; 258*251e5adeSJunhao Xie vcc7-supply = <&vcc3v3_sys>; 259*251e5adeSJunhao Xie vcc8-supply = <&vcc3v3_sys>; 260*251e5adeSJunhao Xie vcc9-supply = <&vcc3v3_sys>; 261*251e5adeSJunhao Xie 262*251e5adeSJunhao Xie regulators { 263*251e5adeSJunhao Xie vdd_logic: DCDC_REG1 { 264*251e5adeSJunhao Xie regulator-name = "vdd_logic"; 265*251e5adeSJunhao Xie regulator-always-on; 266*251e5adeSJunhao Xie regulator-boot-on; 267*251e5adeSJunhao Xie regulator-min-microvolt = <500000>; 268*251e5adeSJunhao Xie regulator-max-microvolt = <1350000>; 269*251e5adeSJunhao Xie regulator-ramp-delay = <6001>; 270*251e5adeSJunhao Xie regulator-initial-mode = <0x2>; 271*251e5adeSJunhao Xie 272*251e5adeSJunhao Xie regulator-state-mem { 273*251e5adeSJunhao Xie regulator-off-in-suspend; 274*251e5adeSJunhao Xie }; 275*251e5adeSJunhao Xie }; 276*251e5adeSJunhao Xie 277*251e5adeSJunhao Xie vdd_gpu: DCDC_REG2 { 278*251e5adeSJunhao Xie regulator-name = "vdd_gpu"; 279*251e5adeSJunhao Xie regulator-always-on; 280*251e5adeSJunhao Xie regulator-boot-on; 281*251e5adeSJunhao Xie regulator-min-microvolt = <500000>; 282*251e5adeSJunhao Xie regulator-max-microvolt = <1350000>; 283*251e5adeSJunhao Xie regulator-ramp-delay = <6001>; 284*251e5adeSJunhao Xie regulator-initial-mode = <0x2>; 285*251e5adeSJunhao Xie 286*251e5adeSJunhao Xie regulator-state-mem { 287*251e5adeSJunhao Xie regulator-off-in-suspend; 288*251e5adeSJunhao Xie }; 289*251e5adeSJunhao Xie }; 290*251e5adeSJunhao Xie 291*251e5adeSJunhao Xie vcc_ddr: DCDC_REG3 { 292*251e5adeSJunhao Xie regulator-name = "vcc_ddr"; 293*251e5adeSJunhao Xie regulator-always-on; 294*251e5adeSJunhao Xie regulator-boot-on; 295*251e5adeSJunhao Xie regulator-initial-mode = <0x2>; 296*251e5adeSJunhao Xie 297*251e5adeSJunhao Xie regulator-state-mem { 298*251e5adeSJunhao Xie regulator-on-in-suspend; 299*251e5adeSJunhao Xie }; 300*251e5adeSJunhao Xie }; 301*251e5adeSJunhao Xie 302*251e5adeSJunhao Xie vdd_npu: DCDC_REG4 { 303*251e5adeSJunhao Xie regulator-name = "vdd_npu"; 304*251e5adeSJunhao Xie regulator-always-on; 305*251e5adeSJunhao Xie regulator-boot-on; 306*251e5adeSJunhao Xie regulator-min-microvolt = <500000>; 307*251e5adeSJunhao Xie regulator-max-microvolt = <1350000>; 308*251e5adeSJunhao Xie regulator-ramp-delay = <6001>; 309*251e5adeSJunhao Xie regulator-initial-mode = <0x2>; 310*251e5adeSJunhao Xie 311*251e5adeSJunhao Xie regulator-state-mem { 312*251e5adeSJunhao Xie regulator-off-in-suspend; 313*251e5adeSJunhao Xie }; 314*251e5adeSJunhao Xie }; 315*251e5adeSJunhao Xie 316*251e5adeSJunhao Xie vdda0v9_image: LDO_REG1 { 317*251e5adeSJunhao Xie regulator-name = "vdda0v9_image"; 318*251e5adeSJunhao Xie regulator-boot-on; 319*251e5adeSJunhao Xie regulator-always-on; 320*251e5adeSJunhao Xie regulator-min-microvolt = <900000>; 321*251e5adeSJunhao Xie regulator-max-microvolt = <900000>; 322*251e5adeSJunhao Xie 323*251e5adeSJunhao Xie regulator-state-mem { 324*251e5adeSJunhao Xie regulator-off-in-suspend; 325*251e5adeSJunhao Xie }; 326*251e5adeSJunhao Xie }; 327*251e5adeSJunhao Xie 328*251e5adeSJunhao Xie vdda_0v9: LDO_REG2 { 329*251e5adeSJunhao Xie regulator-name = "vdda_0v9"; 330*251e5adeSJunhao Xie regulator-always-on; 331*251e5adeSJunhao Xie regulator-boot-on; 332*251e5adeSJunhao Xie regulator-min-microvolt = <900000>; 333*251e5adeSJunhao Xie regulator-max-microvolt = <900000>; 334*251e5adeSJunhao Xie regulator-state-mem { 335*251e5adeSJunhao Xie regulator-off-in-suspend; 336*251e5adeSJunhao Xie }; 337*251e5adeSJunhao Xie }; 338*251e5adeSJunhao Xie 339*251e5adeSJunhao Xie vdda0v9_pmu: LDO_REG3 { 340*251e5adeSJunhao Xie regulator-name = "vdda0v9_pmu"; 341*251e5adeSJunhao Xie regulator-always-on; 342*251e5adeSJunhao Xie regulator-boot-on; 343*251e5adeSJunhao Xie regulator-min-microvolt = <900000>; 344*251e5adeSJunhao Xie regulator-max-microvolt = <900000>; 345*251e5adeSJunhao Xie 346*251e5adeSJunhao Xie regulator-state-mem { 347*251e5adeSJunhao Xie regulator-on-in-suspend; 348*251e5adeSJunhao Xie regulator-suspend-microvolt = <900000>; 349*251e5adeSJunhao Xie }; 350*251e5adeSJunhao Xie }; 351*251e5adeSJunhao Xie 352*251e5adeSJunhao Xie vccio_acodec: LDO_REG4 { 353*251e5adeSJunhao Xie regulator-name = "vccio_acodec"; 354*251e5adeSJunhao Xie regulator-always-on; 355*251e5adeSJunhao Xie regulator-boot-on; 356*251e5adeSJunhao Xie regulator-min-microvolt = <3300000>; 357*251e5adeSJunhao Xie regulator-max-microvolt = <3300000>; 358*251e5adeSJunhao Xie 359*251e5adeSJunhao Xie regulator-state-mem { 360*251e5adeSJunhao Xie regulator-off-in-suspend; 361*251e5adeSJunhao Xie }; 362*251e5adeSJunhao Xie }; 363*251e5adeSJunhao Xie 364*251e5adeSJunhao Xie vccio_sd: LDO_REG5 { 365*251e5adeSJunhao Xie regulator-name = "vccio_sd"; 366*251e5adeSJunhao Xie regulator-always-on; 367*251e5adeSJunhao Xie regulator-boot-on; 368*251e5adeSJunhao Xie regulator-min-microvolt = <1800000>; 369*251e5adeSJunhao Xie regulator-max-microvolt = <3300000>; 370*251e5adeSJunhao Xie 371*251e5adeSJunhao Xie regulator-state-mem { 372*251e5adeSJunhao Xie regulator-off-in-suspend; 373*251e5adeSJunhao Xie }; 374*251e5adeSJunhao Xie }; 375*251e5adeSJunhao Xie 376*251e5adeSJunhao Xie vcc3v3_pmu: LDO_REG6 { 377*251e5adeSJunhao Xie regulator-name = "vcc3v3_pmu"; 378*251e5adeSJunhao Xie regulator-always-on; 379*251e5adeSJunhao Xie regulator-boot-on; 380*251e5adeSJunhao Xie regulator-min-microvolt = <3300000>; 381*251e5adeSJunhao Xie regulator-max-microvolt = <3300000>; 382*251e5adeSJunhao Xie 383*251e5adeSJunhao Xie regulator-state-mem { 384*251e5adeSJunhao Xie regulator-on-in-suspend; 385*251e5adeSJunhao Xie regulator-suspend-microvolt = <3300000>; 386*251e5adeSJunhao Xie }; 387*251e5adeSJunhao Xie }; 388*251e5adeSJunhao Xie 389*251e5adeSJunhao Xie vcca_1v8: LDO_REG7 { 390*251e5adeSJunhao Xie regulator-name = "vcca_1v8"; 391*251e5adeSJunhao Xie regulator-always-on; 392*251e5adeSJunhao Xie regulator-boot-on; 393*251e5adeSJunhao Xie regulator-min-microvolt = <1800000>; 394*251e5adeSJunhao Xie regulator-max-microvolt = <1800000>; 395*251e5adeSJunhao Xie 396*251e5adeSJunhao Xie regulator-state-mem { 397*251e5adeSJunhao Xie regulator-off-in-suspend; 398*251e5adeSJunhao Xie }; 399*251e5adeSJunhao Xie }; 400*251e5adeSJunhao Xie 401*251e5adeSJunhao Xie vcca1v8_pmu: LDO_REG8 { 402*251e5adeSJunhao Xie regulator-name = "vcca1v8_pmu"; 403*251e5adeSJunhao Xie regulator-always-on; 404*251e5adeSJunhao Xie regulator-boot-on; 405*251e5adeSJunhao Xie regulator-min-microvolt = <1800000>; 406*251e5adeSJunhao Xie regulator-max-microvolt = <1800000>; 407*251e5adeSJunhao Xie 408*251e5adeSJunhao Xie regulator-state-mem { 409*251e5adeSJunhao Xie regulator-on-in-suspend; 410*251e5adeSJunhao Xie regulator-suspend-microvolt = <1800000>; 411*251e5adeSJunhao Xie }; 412*251e5adeSJunhao Xie }; 413*251e5adeSJunhao Xie 414*251e5adeSJunhao Xie vcca1v8_image: LDO_REG9 { 415*251e5adeSJunhao Xie regulator-name = "vcca1v8_image"; 416*251e5adeSJunhao Xie regulator-always-on; 417*251e5adeSJunhao Xie regulator-boot-on; 418*251e5adeSJunhao Xie regulator-min-microvolt = <1800000>; 419*251e5adeSJunhao Xie regulator-max-microvolt = <1800000>; 420*251e5adeSJunhao Xie 421*251e5adeSJunhao Xie regulator-state-mem { 422*251e5adeSJunhao Xie regulator-off-in-suspend; 423*251e5adeSJunhao Xie }; 424*251e5adeSJunhao Xie }; 425*251e5adeSJunhao Xie 426*251e5adeSJunhao Xie vcc_1v8: DCDC_REG5 { 427*251e5adeSJunhao Xie regulator-name = "vcc_1v8"; 428*251e5adeSJunhao Xie regulator-always-on; 429*251e5adeSJunhao Xie regulator-boot-on; 430*251e5adeSJunhao Xie regulator-min-microvolt = <1800000>; 431*251e5adeSJunhao Xie regulator-max-microvolt = <1800000>; 432*251e5adeSJunhao Xie 433*251e5adeSJunhao Xie regulator-state-mem { 434*251e5adeSJunhao Xie regulator-off-in-suspend; 435*251e5adeSJunhao Xie }; 436*251e5adeSJunhao Xie }; 437*251e5adeSJunhao Xie 438*251e5adeSJunhao Xie vcc_3v3: SWITCH_REG1 { 439*251e5adeSJunhao Xie regulator-name = "vcc_3v3"; 440*251e5adeSJunhao Xie regulator-always-on; 441*251e5adeSJunhao Xie regulator-boot-on; 442*251e5adeSJunhao Xie 443*251e5adeSJunhao Xie regulator-state-mem { 444*251e5adeSJunhao Xie regulator-off-in-suspend; 445*251e5adeSJunhao Xie }; 446*251e5adeSJunhao Xie }; 447*251e5adeSJunhao Xie 448*251e5adeSJunhao Xie vcc3v3_sd: SWITCH_REG2 { 449*251e5adeSJunhao Xie regulator-name = "vcc3v3_sd"; 450*251e5adeSJunhao Xie regulator-always-on; 451*251e5adeSJunhao Xie regulator-boot-on; 452*251e5adeSJunhao Xie 453*251e5adeSJunhao Xie regulator-state-mem { 454*251e5adeSJunhao Xie regulator-off-in-suspend; 455*251e5adeSJunhao Xie }; 456*251e5adeSJunhao Xie }; 457*251e5adeSJunhao Xie }; 458*251e5adeSJunhao Xie 459*251e5adeSJunhao Xie codec { 460*251e5adeSJunhao Xie rockchip,mic-in-differential; 461*251e5adeSJunhao Xie }; 462*251e5adeSJunhao Xie }; 463*251e5adeSJunhao Xie}; 464*251e5adeSJunhao Xie 465*251e5adeSJunhao Xie&i2c1 { 466*251e5adeSJunhao Xie status = "okay"; 467*251e5adeSJunhao Xie /* Touch Screen */ 468*251e5adeSJunhao Xie}; 469*251e5adeSJunhao Xie 470*251e5adeSJunhao Xie&i2c4 { 471*251e5adeSJunhao Xie pinctrl-names = "default"; 472*251e5adeSJunhao Xie pinctrl-0 = <&i2c4m0_xfer>; 473*251e5adeSJunhao Xie status = "okay"; 474*251e5adeSJunhao Xie /* Camera */ 475*251e5adeSJunhao Xie}; 476*251e5adeSJunhao Xie 477*251e5adeSJunhao Xie&i2s0_8ch { 478*251e5adeSJunhao Xie status = "okay"; 479*251e5adeSJunhao Xie /* HDMI */ 480*251e5adeSJunhao Xie}; 481*251e5adeSJunhao Xie 482*251e5adeSJunhao Xie&i2s1_8ch { 483*251e5adeSJunhao Xie pinctrl-names = "default"; 484*251e5adeSJunhao Xie pinctrl-0 = <&i2s1m0_sclktx &i2s1m0_lrcktx &i2s1m0_sdi0 &i2s1m0_sdo0>; 485*251e5adeSJunhao Xie rockchip,trcm-sync-tx-only; 486*251e5adeSJunhao Xie status = "okay"; 487*251e5adeSJunhao Xie /* PMIC */ 488*251e5adeSJunhao Xie}; 489*251e5adeSJunhao Xie 490*251e5adeSJunhao Xie&i2s2_2ch { 491*251e5adeSJunhao Xie rockchip,trcm-sync-tx-only; 492*251e5adeSJunhao Xie status = "okay"; 493*251e5adeSJunhao Xie /* AP6212 Bluetooth */ 494*251e5adeSJunhao Xie}; 495*251e5adeSJunhao Xie 496*251e5adeSJunhao Xie&pinctrl { 497*251e5adeSJunhao Xie bt { 498*251e5adeSJunhao Xie bt_enable_h: bt-enable-h { 499*251e5adeSJunhao Xie rockchip,pins = <2 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>; 500*251e5adeSJunhao Xie }; 501*251e5adeSJunhao Xie 502*251e5adeSJunhao Xie bt_host_wake_l: bt-host-wake-l { 503*251e5adeSJunhao Xie rockchip,pins = <2 RK_PC0 RK_FUNC_GPIO &pcfg_pull_down>; 504*251e5adeSJunhao Xie }; 505*251e5adeSJunhao Xie 506*251e5adeSJunhao Xie bt_wake_l: bt-wake-l { 507*251e5adeSJunhao Xie rockchip,pins = <2 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>; 508*251e5adeSJunhao Xie }; 509*251e5adeSJunhao Xie }; 510*251e5adeSJunhao Xie 511*251e5adeSJunhao Xie hp-detect { 512*251e5adeSJunhao Xie hp_det: hp-det { 513*251e5adeSJunhao Xie rockchip,pins = <4 RK_PC6 RK_FUNC_GPIO &pcfg_pull_up>; 514*251e5adeSJunhao Xie }; 515*251e5adeSJunhao Xie }; 516*251e5adeSJunhao Xie 517*251e5adeSJunhao Xie pmic { 518*251e5adeSJunhao Xie pmic_int: pmic-int { 519*251e5adeSJunhao Xie rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>; 520*251e5adeSJunhao Xie }; 521*251e5adeSJunhao Xie }; 522*251e5adeSJunhao Xie 523*251e5adeSJunhao Xie sdio-pwrseq { 524*251e5adeSJunhao Xie wifi_enable_h: wifi-enable-h { 525*251e5adeSJunhao Xie rockchip,pins = <2 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>; 526*251e5adeSJunhao Xie }; 527*251e5adeSJunhao Xie 528*251e5adeSJunhao Xie wifi_host_wake_h: wifi-host-wake-l { 529*251e5adeSJunhao Xie rockchip,pins = <2 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>; 530*251e5adeSJunhao Xie }; 531*251e5adeSJunhao Xie }; 532*251e5adeSJunhao Xie 533*251e5adeSJunhao Xie usb2 { 534*251e5adeSJunhao Xie vcc5v0_host_en: vcc5v0-host-en { 535*251e5adeSJunhao Xie rockchip,pins = <4 RK_PC4 RK_FUNC_GPIO &pcfg_pull_none>; 536*251e5adeSJunhao Xie }; 537*251e5adeSJunhao Xie }; 538*251e5adeSJunhao Xie}; 539*251e5adeSJunhao Xie 540*251e5adeSJunhao Xie&pmu_io_domains { 541*251e5adeSJunhao Xie pmuio1-supply = <&vcc3v3_pmu>; 542*251e5adeSJunhao Xie pmuio2-supply = <&vcc3v3_pmu>; 543*251e5adeSJunhao Xie vccio1-supply = <&vccio_acodec>; 544*251e5adeSJunhao Xie vccio2-supply = <&vcc_1v8>; 545*251e5adeSJunhao Xie vccio3-supply = <&vccio_sd>; 546*251e5adeSJunhao Xie vccio4-supply = <&vcc_1v8>; 547*251e5adeSJunhao Xie vccio5-supply = <&vcc_3v3>; 548*251e5adeSJunhao Xie vccio6-supply = <&vcc_1v8>; 549*251e5adeSJunhao Xie vccio7-supply = <&vcc_3v3>; 550*251e5adeSJunhao Xie status = "okay"; 551*251e5adeSJunhao Xie}; 552*251e5adeSJunhao Xie 553*251e5adeSJunhao Xie&pmugrf { 554*251e5adeSJunhao Xie reboot-mode { 555*251e5adeSJunhao Xie compatible = "syscon-reboot-mode"; 556*251e5adeSJunhao Xie offset = <0x200>; 557*251e5adeSJunhao Xie mode-normal = <BOOT_NORMAL>; 558*251e5adeSJunhao Xie mode-loader = <BOOT_BL_DOWNLOAD>; 559*251e5adeSJunhao Xie mode-recovery = <BOOT_RECOVERY>; 560*251e5adeSJunhao Xie mode-bootloader = <BOOT_FASTBOOT>; 561*251e5adeSJunhao Xie }; 562*251e5adeSJunhao Xie}; 563*251e5adeSJunhao Xie 564*251e5adeSJunhao Xie&saradc { 565*251e5adeSJunhao Xie vref-supply = <&vcca_1v8>; 566*251e5adeSJunhao Xie status = "okay"; 567*251e5adeSJunhao Xie /* Channel 0: Recovery Button */ 568*251e5adeSJunhao Xie /* Channel 1: Hardware ID */ 569*251e5adeSJunhao Xie}; 570*251e5adeSJunhao Xie 571*251e5adeSJunhao Xie&sdhci { 572*251e5adeSJunhao Xie bus-width = <8>; 573*251e5adeSJunhao Xie max-frequency = <200000000>; 574*251e5adeSJunhao Xie non-removable; 575*251e5adeSJunhao Xie pinctrl-names = "default"; 576*251e5adeSJunhao Xie pinctrl-0 = <&emmc_bus8 &emmc_clk &emmc_cmd &emmc_datastrobe &emmc_rstnout>; 577*251e5adeSJunhao Xie vmmc-supply = <&vcc_3v3>; 578*251e5adeSJunhao Xie vqmmc-supply = <&vcc_1v8>; 579*251e5adeSJunhao Xie status = "okay"; 580*251e5adeSJunhao Xie}; 581*251e5adeSJunhao Xie 582*251e5adeSJunhao Xie&sdmmc0 { 583*251e5adeSJunhao Xie bus-width = <4>; 584*251e5adeSJunhao Xie cap-mmc-highspeed; 585*251e5adeSJunhao Xie cap-sd-highspeed; 586*251e5adeSJunhao Xie disable-wp; 587*251e5adeSJunhao Xie max-frequency = <150000000>; 588*251e5adeSJunhao Xie pinctrl-names = "default"; 589*251e5adeSJunhao Xie pinctrl-0 = <&sdmmc0_bus4 &sdmmc0_clk &sdmmc0_cmd &sdmmc0_det>; 590*251e5adeSJunhao Xie sd-uhs-sdr104; 591*251e5adeSJunhao Xie vmmc-supply = <&vcc3v3_sd>; 592*251e5adeSJunhao Xie vqmmc-supply = <&vcc_1v8>; 593*251e5adeSJunhao Xie status = "okay"; 594*251e5adeSJunhao Xie}; 595*251e5adeSJunhao Xie 596*251e5adeSJunhao Xie&sdmmc1 { 597*251e5adeSJunhao Xie bus-width = <4>; 598*251e5adeSJunhao Xie cap-sd-highspeed; 599*251e5adeSJunhao Xie cap-sdio-irq; 600*251e5adeSJunhao Xie disable-wp; 601*251e5adeSJunhao Xie keep-power-in-suspend; 602*251e5adeSJunhao Xie max-frequency = <150000000>; 603*251e5adeSJunhao Xie mmc-pwrseq = <&sdio_pwrseq>; 604*251e5adeSJunhao Xie non-removable; 605*251e5adeSJunhao Xie pinctrl-names = "default"; 606*251e5adeSJunhao Xie pinctrl-0 = <&sdmmc1_bus4 &sdmmc1_cmd &sdmmc1_clk>; 607*251e5adeSJunhao Xie sd-uhs-sdr104; 608*251e5adeSJunhao Xie vmmc-supply = <&vcc3v3_sys>; 609*251e5adeSJunhao Xie vqmmc-supply = <&vcc_1v8>; 610*251e5adeSJunhao Xie #address-cells = <1>; 611*251e5adeSJunhao Xie #size-cells = <0>; 612*251e5adeSJunhao Xie status = "okay"; 613*251e5adeSJunhao Xie 614*251e5adeSJunhao Xie brcmf: wifi@1 { 615*251e5adeSJunhao Xie compatible = "brcm,bcm4329-fmac"; 616*251e5adeSJunhao Xie reg = <1>; 617*251e5adeSJunhao Xie interrupt-parent = <&gpio2>; 618*251e5adeSJunhao Xie interrupts = <RK_PB2 IRQ_TYPE_LEVEL_HIGH>; 619*251e5adeSJunhao Xie interrupt-names = "host-wake"; 620*251e5adeSJunhao Xie pinctrl-names = "default"; 621*251e5adeSJunhao Xie pinctrl-0 = <&wifi_host_wake_h>; 622*251e5adeSJunhao Xie }; 623*251e5adeSJunhao Xie}; 624*251e5adeSJunhao Xie 625*251e5adeSJunhao Xie&tsadc { 626*251e5adeSJunhao Xie rockchip,hw-tshut-mode = <1>; 627*251e5adeSJunhao Xie rockchip,hw-tshut-polarity = <0>; 628*251e5adeSJunhao Xie status = "okay"; 629*251e5adeSJunhao Xie}; 630*251e5adeSJunhao Xie 631*251e5adeSJunhao Xie&uart1 { 632*251e5adeSJunhao Xie pinctrl-names = "default"; 633*251e5adeSJunhao Xie pinctrl-0 = <&uart1m0_xfer &uart1m0_ctsn &uart1m0_rtsn>; 634*251e5adeSJunhao Xie uart-has-rtscts; 635*251e5adeSJunhao Xie status = "okay"; 636*251e5adeSJunhao Xie 637*251e5adeSJunhao Xie bluetooth: bluetooth { 638*251e5adeSJunhao Xie compatible = "brcm,bcm43438-bt"; 639*251e5adeSJunhao Xie clocks = <&rk809 1>; 640*251e5adeSJunhao Xie clock-names = "lpo"; 641*251e5adeSJunhao Xie max-speed = <3000000>; 642*251e5adeSJunhao Xie pinctrl-names = "default"; 643*251e5adeSJunhao Xie pinctrl-0 = <&bt_host_wake_l &bt_wake_l &bt_enable_h>; 644*251e5adeSJunhao Xie shutdown-gpios = <&gpio2 RK_PB7 GPIO_ACTIVE_HIGH>; 645*251e5adeSJunhao Xie vbat-supply = <&vcc3v3_sys>; 646*251e5adeSJunhao Xie vddio-supply = <&vcc_1v8>; 647*251e5adeSJunhao Xie }; 648*251e5adeSJunhao Xie}; 649*251e5adeSJunhao Xie 650*251e5adeSJunhao Xie&uart2 { 651*251e5adeSJunhao Xie pinctrl-names = "default"; 652*251e5adeSJunhao Xie pinctrl-0 = <&uart2m0_xfer>; 653*251e5adeSJunhao Xie status = "okay"; 654*251e5adeSJunhao Xie}; 655*251e5adeSJunhao Xie 656*251e5adeSJunhao Xie&usb_host0_ohci { 657*251e5adeSJunhao Xie status = "okay"; 658*251e5adeSJunhao Xie}; 659*251e5adeSJunhao Xie 660*251e5adeSJunhao Xie&usb_host0_ehci { 661*251e5adeSJunhao Xie status = "okay"; 662*251e5adeSJunhao Xie}; 663*251e5adeSJunhao Xie 664*251e5adeSJunhao Xie&usb_host0_xhci { 665*251e5adeSJunhao Xie dr_mode = "otg"; 666*251e5adeSJunhao Xie status = "okay"; 667*251e5adeSJunhao Xie}; 668*251e5adeSJunhao Xie 669*251e5adeSJunhao Xie&usb_host1_ohci { 670*251e5adeSJunhao Xie status = "okay"; 671*251e5adeSJunhao Xie}; 672*251e5adeSJunhao Xie 673*251e5adeSJunhao Xie&usb_host1_ehci { 674*251e5adeSJunhao Xie status = "okay"; 675*251e5adeSJunhao Xie}; 676*251e5adeSJunhao Xie 677*251e5adeSJunhao Xie&usb_host1_xhci { 678*251e5adeSJunhao Xie dr_mode = "host"; 679*251e5adeSJunhao Xie status = "okay"; 680*251e5adeSJunhao Xie}; 681*251e5adeSJunhao Xie 682*251e5adeSJunhao Xie&usb2phy0 { 683*251e5adeSJunhao Xie status = "okay"; 684*251e5adeSJunhao Xie}; 685*251e5adeSJunhao Xie 686*251e5adeSJunhao Xie&usb2phy0_host { 687*251e5adeSJunhao Xie phy-supply = <&vcc5v0_sys>; 688*251e5adeSJunhao Xie status = "okay"; 689*251e5adeSJunhao Xie}; 690*251e5adeSJunhao Xie 691*251e5adeSJunhao Xie&usb2phy0_otg { 692*251e5adeSJunhao Xie phy-supply = <&vcc5v0_sys>; 693*251e5adeSJunhao Xie status = "okay"; 694*251e5adeSJunhao Xie}; 695*251e5adeSJunhao Xie 696*251e5adeSJunhao Xie&usb2phy1 { 697*251e5adeSJunhao Xie status = "okay"; 698*251e5adeSJunhao Xie}; 699*251e5adeSJunhao Xie 700*251e5adeSJunhao Xie&usb2phy1_host { 701*251e5adeSJunhao Xie phy-supply = <&vcc5v0_host>; 702*251e5adeSJunhao Xie status = "okay"; 703*251e5adeSJunhao Xie}; 704*251e5adeSJunhao Xie 705*251e5adeSJunhao Xie&usb2phy1_otg { 706*251e5adeSJunhao Xie phy-supply = <&vcc5v0_host>; 707*251e5adeSJunhao Xie status = "okay"; 708*251e5adeSJunhao Xie}; 709*251e5adeSJunhao Xie 710*251e5adeSJunhao Xie&vop { 711*251e5adeSJunhao Xie assigned-clocks = <&cru DCLK_VOP0>, <&cru DCLK_VOP1>; 712*251e5adeSJunhao Xie assigned-clock-parents = <&pmucru PLL_HPLL>, <&cru PLL_VPLL>; 713*251e5adeSJunhao Xie status = "okay"; 714*251e5adeSJunhao Xie}; 715*251e5adeSJunhao Xie 716*251e5adeSJunhao Xie&vop_mmu { 717*251e5adeSJunhao Xie status = "okay"; 718*251e5adeSJunhao Xie}; 719*251e5adeSJunhao Xie 720*251e5adeSJunhao Xie&vp0 { 721*251e5adeSJunhao Xie vp0_out_hdmi: endpoint@ROCKCHIP_VOP2_EP_HDMI0 { 722*251e5adeSJunhao Xie reg = <ROCKCHIP_VOP2_EP_HDMI0>; 723*251e5adeSJunhao Xie remote-endpoint = <&hdmi_in_vp0>; 724*251e5adeSJunhao Xie }; 725*251e5adeSJunhao Xie}; 726