1*724ba675SRob Herring// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2*724ba675SRob Herring 3*724ba675SRob Herring#include <dt-bindings/input/input.h> 4*724ba675SRob Herring#include <dt-bindings/pwm/pwm.h> 5*724ba675SRob Herring#include "rk3288.dtsi" 6*724ba675SRob Herring 7*724ba675SRob Herring/ { 8*724ba675SRob Herring memory@0 { 9*724ba675SRob Herring device_type = "memory"; 10*724ba675SRob Herring reg = <0x0 0x0 0x0 0x80000000>; 11*724ba675SRob Herring }; 12*724ba675SRob Herring 13*724ba675SRob Herring adc-keys { 14*724ba675SRob Herring compatible = "adc-keys"; 15*724ba675SRob Herring io-channels = <&saradc 1>; 16*724ba675SRob Herring io-channel-names = "buttons"; 17*724ba675SRob Herring keyup-threshold-microvolt = <1800000>; 18*724ba675SRob Herring 19*724ba675SRob Herring button-up { 20*724ba675SRob Herring label = "Volume Up"; 21*724ba675SRob Herring linux,code = <KEY_VOLUMEUP>; 22*724ba675SRob Herring press-threshold-microvolt = <100000>; 23*724ba675SRob Herring }; 24*724ba675SRob Herring 25*724ba675SRob Herring button-down { 26*724ba675SRob Herring label = "Volume Down"; 27*724ba675SRob Herring linux,code = <KEY_VOLUMEDOWN>; 28*724ba675SRob Herring press-threshold-microvolt = <300000>; 29*724ba675SRob Herring }; 30*724ba675SRob Herring 31*724ba675SRob Herring button-menu { 32*724ba675SRob Herring label = "Menu"; 33*724ba675SRob Herring linux,code = <KEY_MENU>; 34*724ba675SRob Herring press-threshold-microvolt = <640000>; 35*724ba675SRob Herring }; 36*724ba675SRob Herring 37*724ba675SRob Herring button-esc { 38*724ba675SRob Herring label = "Esc"; 39*724ba675SRob Herring linux,code = <KEY_ESC>; 40*724ba675SRob Herring press-threshold-microvolt = <1000000>; 41*724ba675SRob Herring }; 42*724ba675SRob Herring 43*724ba675SRob Herring button-home { 44*724ba675SRob Herring label = "Home"; 45*724ba675SRob Herring linux,code = <KEY_HOME>; 46*724ba675SRob Herring press-threshold-microvolt = <1300000>; 47*724ba675SRob Herring }; 48*724ba675SRob Herring }; 49*724ba675SRob Herring 50*724ba675SRob Herring backlight: backlight { 51*724ba675SRob Herring compatible = "pwm-backlight"; 52*724ba675SRob Herring brightness-levels = < 53*724ba675SRob Herring 0 1 2 3 4 5 6 7 54*724ba675SRob Herring 8 9 10 11 12 13 14 15 55*724ba675SRob Herring 16 17 18 19 20 21 22 23 56*724ba675SRob Herring 24 25 26 27 28 29 30 31 57*724ba675SRob Herring 32 33 34 35 36 37 38 39 58*724ba675SRob Herring 40 41 42 43 44 45 46 47 59*724ba675SRob Herring 48 49 50 51 52 53 54 55 60*724ba675SRob Herring 56 57 58 59 60 61 62 63 61*724ba675SRob Herring 64 65 66 67 68 69 70 71 62*724ba675SRob Herring 72 73 74 75 76 77 78 79 63*724ba675SRob Herring 80 81 82 83 84 85 86 87 64*724ba675SRob Herring 88 89 90 91 92 93 94 95 65*724ba675SRob Herring 96 97 98 99 100 101 102 103 66*724ba675SRob Herring 104 105 106 107 108 109 110 111 67*724ba675SRob Herring 112 113 114 115 116 117 118 119 68*724ba675SRob Herring 120 121 122 123 124 125 126 127 69*724ba675SRob Herring 128 129 130 131 132 133 134 135 70*724ba675SRob Herring 136 137 138 139 140 141 142 143 71*724ba675SRob Herring 144 145 146 147 148 149 150 151 72*724ba675SRob Herring 152 153 154 155 156 157 158 159 73*724ba675SRob Herring 160 161 162 163 164 165 166 167 74*724ba675SRob Herring 168 169 170 171 172 173 174 175 75*724ba675SRob Herring 176 177 178 179 180 181 182 183 76*724ba675SRob Herring 184 185 186 187 188 189 190 191 77*724ba675SRob Herring 192 193 194 195 196 197 198 199 78*724ba675SRob Herring 200 201 202 203 204 205 206 207 79*724ba675SRob Herring 208 209 210 211 212 213 214 215 80*724ba675SRob Herring 216 217 218 219 220 221 222 223 81*724ba675SRob Herring 224 225 226 227 228 229 230 231 82*724ba675SRob Herring 232 233 234 235 236 237 238 239 83*724ba675SRob Herring 240 241 242 243 244 245 246 247 84*724ba675SRob Herring 248 249 250 251 252 253 254 255>; 85*724ba675SRob Herring default-brightness-level = <128>; 86*724ba675SRob Herring enable-gpios = <&gpio7 RK_PA2 GPIO_ACTIVE_HIGH>; 87*724ba675SRob Herring pinctrl-names = "default"; 88*724ba675SRob Herring pinctrl-0 = <&bl_en>; 89*724ba675SRob Herring pwms = <&pwm0 0 1000000 PWM_POLARITY_INVERTED>; 90*724ba675SRob Herring }; 91*724ba675SRob Herring 92*724ba675SRob Herring ext_gmac: external-gmac-clock { 93*724ba675SRob Herring compatible = "fixed-clock"; 94*724ba675SRob Herring clock-frequency = <125000000>; 95*724ba675SRob Herring clock-output-names = "ext_gmac"; 96*724ba675SRob Herring #clock-cells = <0>; 97*724ba675SRob Herring }; 98*724ba675SRob Herring 99*724ba675SRob Herring panel: panel { 100*724ba675SRob Herring compatible = "lg,lp079qx1-sp0v"; 101*724ba675SRob Herring backlight = <&backlight>; 102*724ba675SRob Herring enable-gpios = <&gpio7 RK_PA4 GPIO_ACTIVE_HIGH>; 103*724ba675SRob Herring pinctrl-0 = <&lcd_cs>; 104*724ba675SRob Herring 105*724ba675SRob Herring ports { 106*724ba675SRob Herring panel_in: port { 107*724ba675SRob Herring panel_in_edp: endpoint { 108*724ba675SRob Herring remote-endpoint = <&edp_out_panel>; 109*724ba675SRob Herring }; 110*724ba675SRob Herring }; 111*724ba675SRob Herring }; 112*724ba675SRob Herring }; 113*724ba675SRob Herring 114*724ba675SRob Herring gpio-keys { 115*724ba675SRob Herring compatible = "gpio-keys"; 116*724ba675SRob Herring autorepeat; 117*724ba675SRob Herring 118*724ba675SRob Herring pinctrl-names = "default"; 119*724ba675SRob Herring pinctrl-0 = <&pwrbtn>; 120*724ba675SRob Herring 121*724ba675SRob Herring key-power { 122*724ba675SRob Herring gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>; 123*724ba675SRob Herring linux,code = <KEY_POWER>; 124*724ba675SRob Herring label = "GPIO Key Power"; 125*724ba675SRob Herring linux,input-type = <1>; 126*724ba675SRob Herring wakeup-source; 127*724ba675SRob Herring debounce-interval = <100>; 128*724ba675SRob Herring }; 129*724ba675SRob Herring }; 130*724ba675SRob Herring 131*724ba675SRob Herring /* This turns on USB vbus for both host0 (ehci) and host1 (dwc2) */ 132*724ba675SRob Herring vcc_host: vcc-host-regulator { 133*724ba675SRob Herring compatible = "regulator-fixed"; 134*724ba675SRob Herring enable-active-high; 135*724ba675SRob Herring gpio = <&gpio0 RK_PB6 GPIO_ACTIVE_HIGH>; 136*724ba675SRob Herring pinctrl-names = "default"; 137*724ba675SRob Herring pinctrl-0 = <&host_vbus_drv>; 138*724ba675SRob Herring regulator-name = "vcc_host"; 139*724ba675SRob Herring regulator-always-on; 140*724ba675SRob Herring regulator-boot-on; 141*724ba675SRob Herring }; 142*724ba675SRob Herring 143*724ba675SRob Herring vcc_phy: vcc-phy-regulator { 144*724ba675SRob Herring compatible = "regulator-fixed"; 145*724ba675SRob Herring enable-active-high; 146*724ba675SRob Herring gpio = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>; 147*724ba675SRob Herring pinctrl-names = "default"; 148*724ba675SRob Herring pinctrl-0 = <ð_phy_pwr>; 149*724ba675SRob Herring regulator-name = "vcc_phy"; 150*724ba675SRob Herring regulator-min-microvolt = <3300000>; 151*724ba675SRob Herring regulator-max-microvolt = <3300000>; 152*724ba675SRob Herring regulator-always-on; 153*724ba675SRob Herring regulator-boot-on; 154*724ba675SRob Herring }; 155*724ba675SRob Herring 156*724ba675SRob Herring vcc_sys: vsys-regulator { 157*724ba675SRob Herring compatible = "regulator-fixed"; 158*724ba675SRob Herring regulator-name = "vcc_sys"; 159*724ba675SRob Herring regulator-min-microvolt = <5000000>; 160*724ba675SRob Herring regulator-max-microvolt = <5000000>; 161*724ba675SRob Herring regulator-always-on; 162*724ba675SRob Herring regulator-boot-on; 163*724ba675SRob Herring }; 164*724ba675SRob Herring 165*724ba675SRob Herring /* 166*724ba675SRob Herring * NOTE: vcc_sd isn't hooked up on v1.0 boards where power comes from 167*724ba675SRob Herring * vcc_io directly. Those boards won't be able to power cycle SD cards 168*724ba675SRob Herring * but it shouldn't hurt to toggle this pin there anyway. 169*724ba675SRob Herring */ 170*724ba675SRob Herring vcc_sd: sdmmc-regulator { 171*724ba675SRob Herring compatible = "regulator-fixed"; 172*724ba675SRob Herring gpio = <&gpio7 RK_PB3 GPIO_ACTIVE_LOW>; 173*724ba675SRob Herring pinctrl-names = "default"; 174*724ba675SRob Herring pinctrl-0 = <&sdmmc_pwr>; 175*724ba675SRob Herring regulator-name = "vcc_sd"; 176*724ba675SRob Herring regulator-min-microvolt = <3300000>; 177*724ba675SRob Herring regulator-max-microvolt = <3300000>; 178*724ba675SRob Herring startup-delay-us = <100000>; 179*724ba675SRob Herring vin-supply = <&vcc_io>; 180*724ba675SRob Herring }; 181*724ba675SRob Herring}; 182*724ba675SRob Herring 183*724ba675SRob Herring&cpu0 { 184*724ba675SRob Herring cpu0-supply = <&vdd_cpu>; 185*724ba675SRob Herring}; 186*724ba675SRob Herring 187*724ba675SRob Herring&edp { 188*724ba675SRob Herring force-hpd; 189*724ba675SRob Herring status = "okay"; 190*724ba675SRob Herring 191*724ba675SRob Herring ports { 192*724ba675SRob Herring edp_out: port@1 { 193*724ba675SRob Herring reg = <1>; 194*724ba675SRob Herring #address-cells = <1>; 195*724ba675SRob Herring #size-cells = <0>; 196*724ba675SRob Herring 197*724ba675SRob Herring edp_out_panel: endpoint@0 { 198*724ba675SRob Herring reg = <0>; 199*724ba675SRob Herring remote-endpoint = <&panel_in_edp>; 200*724ba675SRob Herring }; 201*724ba675SRob Herring }; 202*724ba675SRob Herring }; 203*724ba675SRob Herring}; 204*724ba675SRob Herring 205*724ba675SRob Herring&edp_phy { 206*724ba675SRob Herring status = "okay"; 207*724ba675SRob Herring}; 208*724ba675SRob Herring 209*724ba675SRob Herring&emmc { 210*724ba675SRob Herring bus-width = <8>; 211*724ba675SRob Herring cap-mmc-highspeed; 212*724ba675SRob Herring disable-wp; 213*724ba675SRob Herring non-removable; 214*724ba675SRob Herring pinctrl-names = "default"; 215*724ba675SRob Herring pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_pwr &emmc_bus8>; 216*724ba675SRob Herring status = "okay"; 217*724ba675SRob Herring}; 218*724ba675SRob Herring 219*724ba675SRob Herring&saradc { 220*724ba675SRob Herring vref-supply = <&vcc_18>; 221*724ba675SRob Herring status = "okay"; 222*724ba675SRob Herring}; 223*724ba675SRob Herring 224*724ba675SRob Herring&sdmmc { 225*724ba675SRob Herring bus-width = <4>; 226*724ba675SRob Herring cap-mmc-highspeed; 227*724ba675SRob Herring cap-sd-highspeed; 228*724ba675SRob Herring card-detect-delay = <200>; 229*724ba675SRob Herring disable-wp; /* wp not hooked up */ 230*724ba675SRob Herring pinctrl-names = "default"; 231*724ba675SRob Herring pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>; 232*724ba675SRob Herring status = "okay"; 233*724ba675SRob Herring vmmc-supply = <&vcc_sd>; 234*724ba675SRob Herring vqmmc-supply = <&vccio_sd>; 235*724ba675SRob Herring}; 236*724ba675SRob Herring 237*724ba675SRob Herring&gmac { 238*724ba675SRob Herring phy-supply = <&vcc_phy>; 239*724ba675SRob Herring phy-mode = "rgmii"; 240*724ba675SRob Herring clock_in_out = "input"; 241*724ba675SRob Herring snps,reset-gpio = <&gpio4 RK_PA7 GPIO_ACTIVE_HIGH>; 242*724ba675SRob Herring snps,reset-active-low; 243*724ba675SRob Herring snps,reset-delays-us = <0 10000 1000000>; 244*724ba675SRob Herring assigned-clocks = <&cru SCLK_MAC>; 245*724ba675SRob Herring assigned-clock-parents = <&ext_gmac>; 246*724ba675SRob Herring pinctrl-names = "default"; 247*724ba675SRob Herring pinctrl-0 = <&rgmii_pins>; 248*724ba675SRob Herring tx_delay = <0x30>; 249*724ba675SRob Herring rx_delay = <0x10>; 250*724ba675SRob Herring status = "okay"; 251*724ba675SRob Herring}; 252*724ba675SRob Herring 253*724ba675SRob Herring&gpu { 254*724ba675SRob Herring mali-supply = <&vdd_gpu>; 255*724ba675SRob Herring status = "okay"; 256*724ba675SRob Herring}; 257*724ba675SRob Herring 258*724ba675SRob Herring&hdmi { 259*724ba675SRob Herring ddc-i2c-bus = <&i2c5>; 260*724ba675SRob Herring status = "okay"; 261*724ba675SRob Herring}; 262*724ba675SRob Herring 263*724ba675SRob Herring&i2c0 { 264*724ba675SRob Herring status = "okay"; 265*724ba675SRob Herring}; 266*724ba675SRob Herring 267*724ba675SRob Herring&i2c5 { 268*724ba675SRob Herring status = "okay"; 269*724ba675SRob Herring}; 270*724ba675SRob Herring 271*724ba675SRob Herring&wdt { 272*724ba675SRob Herring status = "okay"; 273*724ba675SRob Herring}; 274*724ba675SRob Herring 275*724ba675SRob Herring&pwm0 { 276*724ba675SRob Herring status = "okay"; 277*724ba675SRob Herring}; 278*724ba675SRob Herring 279*724ba675SRob Herring&uart0 { 280*724ba675SRob Herring status = "okay"; 281*724ba675SRob Herring}; 282*724ba675SRob Herring 283*724ba675SRob Herring&uart1 { 284*724ba675SRob Herring status = "okay"; 285*724ba675SRob Herring}; 286*724ba675SRob Herring 287*724ba675SRob Herring&uart2 { 288*724ba675SRob Herring status = "okay"; 289*724ba675SRob Herring}; 290*724ba675SRob Herring 291*724ba675SRob Herring&uart3 { 292*724ba675SRob Herring status = "okay"; 293*724ba675SRob Herring}; 294*724ba675SRob Herring 295*724ba675SRob Herring&uart4 { 296*724ba675SRob Herring status = "okay"; 297*724ba675SRob Herring}; 298*724ba675SRob Herring 299*724ba675SRob Herring&tsadc { 300*724ba675SRob Herring rockchip,hw-tshut-mode = <0>; /* tshut mode 0:CRU 1:GPIO */ 301*724ba675SRob Herring rockchip,hw-tshut-polarity = <0>; /* tshut polarity 0:LOW 1:HIGH */ 302*724ba675SRob Herring status = "okay"; 303*724ba675SRob Herring}; 304*724ba675SRob Herring 305*724ba675SRob Herring&pinctrl { 306*724ba675SRob Herring pcfg_pull_none_drv_8ma: pcfg-pull-none-drv-8ma { 307*724ba675SRob Herring drive-strength = <8>; 308*724ba675SRob Herring }; 309*724ba675SRob Herring 310*724ba675SRob Herring pcfg_pull_up_drv_8ma: pcfg-pull-up-drv-8ma { 311*724ba675SRob Herring bias-pull-up; 312*724ba675SRob Herring drive-strength = <8>; 313*724ba675SRob Herring }; 314*724ba675SRob Herring 315*724ba675SRob Herring backlight { 316*724ba675SRob Herring bl_en: bl-en { 317*724ba675SRob Herring rockchip,pins = <7 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>; 318*724ba675SRob Herring }; 319*724ba675SRob Herring }; 320*724ba675SRob Herring 321*724ba675SRob Herring buttons { 322*724ba675SRob Herring pwrbtn: pwrbtn { 323*724ba675SRob Herring rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>; 324*724ba675SRob Herring }; 325*724ba675SRob Herring }; 326*724ba675SRob Herring 327*724ba675SRob Herring lcd { 328*724ba675SRob Herring lcd_cs: lcd-cs { 329*724ba675SRob Herring rockchip,pins = <7 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>; 330*724ba675SRob Herring }; 331*724ba675SRob Herring }; 332*724ba675SRob Herring 333*724ba675SRob Herring pmic { 334*724ba675SRob Herring pmic_int: pmic-int { 335*724ba675SRob Herring rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up>; 336*724ba675SRob Herring }; 337*724ba675SRob Herring }; 338*724ba675SRob Herring 339*724ba675SRob Herring sdmmc { 340*724ba675SRob Herring /* 341*724ba675SRob Herring * Default drive strength isn't enough to achieve even 342*724ba675SRob Herring * high-speed mode on EVB board so bump up to 8ma. 343*724ba675SRob Herring */ 344*724ba675SRob Herring sdmmc_bus4: sdmmc-bus4 { 345*724ba675SRob Herring rockchip,pins = <6 RK_PC0 1 &pcfg_pull_up_drv_8ma>, 346*724ba675SRob Herring <6 RK_PC1 1 &pcfg_pull_up_drv_8ma>, 347*724ba675SRob Herring <6 RK_PC2 1 &pcfg_pull_up_drv_8ma>, 348*724ba675SRob Herring <6 RK_PC3 1 &pcfg_pull_up_drv_8ma>; 349*724ba675SRob Herring }; 350*724ba675SRob Herring 351*724ba675SRob Herring sdmmc_clk: sdmmc-clk { 352*724ba675SRob Herring rockchip,pins = <6 RK_PC4 1 &pcfg_pull_none_drv_8ma>; 353*724ba675SRob Herring }; 354*724ba675SRob Herring 355*724ba675SRob Herring sdmmc_cmd: sdmmc-cmd { 356*724ba675SRob Herring rockchip,pins = <6 RK_PC5 1 &pcfg_pull_up_drv_8ma>; 357*724ba675SRob Herring }; 358*724ba675SRob Herring 359*724ba675SRob Herring sdmmc_pwr: sdmmc-pwr { 360*724ba675SRob Herring rockchip,pins = <7 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>; 361*724ba675SRob Herring }; 362*724ba675SRob Herring }; 363*724ba675SRob Herring 364*724ba675SRob Herring usb { 365*724ba675SRob Herring host_vbus_drv: host-vbus-drv { 366*724ba675SRob Herring rockchip,pins = <0 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>; 367*724ba675SRob Herring }; 368*724ba675SRob Herring }; 369*724ba675SRob Herring 370*724ba675SRob Herring eth_phy { 371*724ba675SRob Herring eth_phy_pwr: eth-phy-pwr { 372*724ba675SRob Herring rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>; 373*724ba675SRob Herring }; 374*724ba675SRob Herring }; 375*724ba675SRob Herring}; 376*724ba675SRob Herring 377*724ba675SRob Herring&usbphy { 378*724ba675SRob Herring status = "okay"; 379*724ba675SRob Herring}; 380*724ba675SRob Herring 381*724ba675SRob Herring&usb_host0_ehci { 382*724ba675SRob Herring status = "okay"; 383*724ba675SRob Herring}; 384*724ba675SRob Herring 385*724ba675SRob Herring&usb_host1 { 386*724ba675SRob Herring status = "okay"; 387*724ba675SRob Herring}; 388*724ba675SRob Herring 389*724ba675SRob Herring&vopb { 390*724ba675SRob Herring status = "okay"; 391*724ba675SRob Herring}; 392*724ba675SRob Herring 393*724ba675SRob Herring&vopb_mmu { 394*724ba675SRob Herring status = "okay"; 395*724ba675SRob Herring}; 396*724ba675SRob Herring 397*724ba675SRob Herring&vopl { 398*724ba675SRob Herring status = "okay"; 399*724ba675SRob Herring}; 400*724ba675SRob Herring 401*724ba675SRob Herring&vopl_mmu { 402*724ba675SRob Herring status = "okay"; 403*724ba675SRob Herring}; 404