1*724ba675SRob Herring// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2*724ba675SRob Herring/* 3*724ba675SRob Herring * Device tree file for Firefly Rockchip RK3288 Core board 4*724ba675SRob Herring * Copyright (c) 2016 Randy Li <ayaka@soulik.info> 5*724ba675SRob Herring */ 6*724ba675SRob Herring 7*724ba675SRob Herring/dts-v1/; 8*724ba675SRob Herring#include "rk3288-firefly-reload-core.dtsi" 9*724ba675SRob Herring 10*724ba675SRob Herring/ { 11*724ba675SRob Herring model = "Firefly-RK3288-reload"; 12*724ba675SRob Herring compatible = "firefly,firefly-rk3288-reload", "rockchip,rk3288"; 13*724ba675SRob Herring 14*724ba675SRob Herring adc-keys { 15*724ba675SRob Herring compatible = "adc-keys"; 16*724ba675SRob Herring io-channels = <&saradc 1>; 17*724ba675SRob Herring io-channel-names = "buttons"; 18*724ba675SRob Herring keyup-threshold-microvolt = <1800000>; 19*724ba675SRob Herring 20*724ba675SRob Herring button-recovery { 21*724ba675SRob Herring label = "Recovery"; 22*724ba675SRob Herring linux,code = <KEY_VENDOR>; 23*724ba675SRob Herring press-threshold-microvolt = <0>; 24*724ba675SRob Herring }; 25*724ba675SRob Herring }; 26*724ba675SRob Herring 27*724ba675SRob Herring gpio-keys { 28*724ba675SRob Herring compatible = "gpio-keys"; 29*724ba675SRob Herring 30*724ba675SRob Herring key-power { 31*724ba675SRob Herring wakeup-source; 32*724ba675SRob Herring gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>; 33*724ba675SRob Herring label = "GPIO Power"; 34*724ba675SRob Herring linux,code = <KEY_POWER>; 35*724ba675SRob Herring pinctrl-names = "default"; 36*724ba675SRob Herring pinctrl-0 = <&pwr_key>; 37*724ba675SRob Herring }; 38*724ba675SRob Herring }; 39*724ba675SRob Herring 40*724ba675SRob Herring ir-receiver { 41*724ba675SRob Herring compatible = "gpio-ir-receiver"; 42*724ba675SRob Herring gpios = <&gpio7 RK_PA0 GPIO_ACTIVE_LOW>; 43*724ba675SRob Herring }; 44*724ba675SRob Herring 45*724ba675SRob Herring leds { 46*724ba675SRob Herring compatible = "gpio-leds"; 47*724ba675SRob Herring 48*724ba675SRob Herring power_led: led-0 { 49*724ba675SRob Herring gpios = <&gpio8 RK_PA2 GPIO_ACTIVE_LOW>; 50*724ba675SRob Herring label = "firefly:blue:power"; 51*724ba675SRob Herring pinctrl-names = "default"; 52*724ba675SRob Herring pinctrl-0 = <&power_led_pin>; 53*724ba675SRob Herring panic-indicator; 54*724ba675SRob Herring }; 55*724ba675SRob Herring 56*724ba675SRob Herring work_led: led-1 { 57*724ba675SRob Herring gpios = <&gpio8 RK_PA1 GPIO_ACTIVE_LOW>; 58*724ba675SRob Herring label = "firefly:blue:user"; 59*724ba675SRob Herring linux,default-trigger = "rc-feedback"; 60*724ba675SRob Herring pinctrl-names = "default"; 61*724ba675SRob Herring pinctrl-0 = <&work_led_pin>; 62*724ba675SRob Herring }; 63*724ba675SRob Herring }; 64*724ba675SRob Herring 65*724ba675SRob Herring sdio_pwrseq: sdio-pwrseq { 66*724ba675SRob Herring compatible = "mmc-pwrseq-simple"; 67*724ba675SRob Herring clocks = <&hym8563>; 68*724ba675SRob Herring clock-names = "ext_clock"; 69*724ba675SRob Herring pinctrl-names = "default"; 70*724ba675SRob Herring pinctrl-0 = <&wifi_enable>; 71*724ba675SRob Herring reset-gpios = <&gpio4 RK_PD4 GPIO_ACTIVE_LOW>; 72*724ba675SRob Herring }; 73*724ba675SRob Herring 74*724ba675SRob Herring sound { 75*724ba675SRob Herring compatible = "simple-audio-card"; 76*724ba675SRob Herring simple-audio-card,name = "SPDIF"; 77*724ba675SRob Herring simple-audio-card,dai-link@1 { /* S/PDIF - S/PDIF */ 78*724ba675SRob Herring cpu { sound-dai = <&spdif>; }; 79*724ba675SRob Herring codec { sound-dai = <&spdif_out>; }; 80*724ba675SRob Herring }; 81*724ba675SRob Herring }; 82*724ba675SRob Herring 83*724ba675SRob Herring spdif_out: spdif-out { 84*724ba675SRob Herring compatible = "linux,spdif-dit"; 85*724ba675SRob Herring #sound-dai-cells = <0>; 86*724ba675SRob Herring }; 87*724ba675SRob Herring 88*724ba675SRob Herring vcc_host_5v: usb-host-regulator { 89*724ba675SRob Herring compatible = "regulator-fixed"; 90*724ba675SRob Herring enable-active-high; 91*724ba675SRob Herring gpio = <&gpio0 RK_PB6 GPIO_ACTIVE_HIGH>; 92*724ba675SRob Herring pinctrl-names = "default"; 93*724ba675SRob Herring pinctrl-0 = <&host_vbus_drv>; 94*724ba675SRob Herring regulator-name = "vcc_host_5v"; 95*724ba675SRob Herring regulator-min-microvolt = <5000000>; 96*724ba675SRob Herring regulator-max-microvolt = <5000000>; 97*724ba675SRob Herring regulator-always-on; 98*724ba675SRob Herring vin-supply = <&vcc_5v>; 99*724ba675SRob Herring }; 100*724ba675SRob Herring 101*724ba675SRob Herring vcc_5v: vcc_sys: vsys-regulator { 102*724ba675SRob Herring compatible = "regulator-fixed"; 103*724ba675SRob Herring regulator-name = "vcc_5v"; 104*724ba675SRob Herring regulator-min-microvolt = <5000000>; 105*724ba675SRob Herring regulator-max-microvolt = <5000000>; 106*724ba675SRob Herring regulator-always-on; 107*724ba675SRob Herring regulator-boot-on; 108*724ba675SRob Herring }; 109*724ba675SRob Herring 110*724ba675SRob Herring vcc_sd: sdmmc-regulator { 111*724ba675SRob Herring compatible = "regulator-fixed"; 112*724ba675SRob Herring gpio = <&gpio7 RK_PB3 GPIO_ACTIVE_LOW>; 113*724ba675SRob Herring pinctrl-names = "default"; 114*724ba675SRob Herring pinctrl-0 = <&sdmmc_pwr>; 115*724ba675SRob Herring regulator-name = "vcc_sd"; 116*724ba675SRob Herring regulator-min-microvolt = <3300000>; 117*724ba675SRob Herring regulator-max-microvolt = <3300000>; 118*724ba675SRob Herring startup-delay-us = <100000>; 119*724ba675SRob Herring vin-supply = <&vcc_io>; 120*724ba675SRob Herring }; 121*724ba675SRob Herring 122*724ba675SRob Herring vcc_otg_5v: usb-otg-regulator { 123*724ba675SRob Herring compatible = "regulator-fixed"; 124*724ba675SRob Herring enable-active-high; 125*724ba675SRob Herring gpio = <&gpio0 RK_PB4 GPIO_ACTIVE_HIGH>; 126*724ba675SRob Herring pinctrl-names = "default"; 127*724ba675SRob Herring pinctrl-0 = <&otg_vbus_drv>; 128*724ba675SRob Herring regulator-name = "vcc_otg_5v"; 129*724ba675SRob Herring regulator-min-microvolt = <5000000>; 130*724ba675SRob Herring regulator-max-microvolt = <5000000>; 131*724ba675SRob Herring regulator-always-on; 132*724ba675SRob Herring vin-supply = <&vcc_5v>; 133*724ba675SRob Herring }; 134*724ba675SRob Herring 135*724ba675SRob Herring dovdd_1v8: dovdd-1v8-regulator { 136*724ba675SRob Herring compatible = "regulator-fixed"; 137*724ba675SRob Herring enable-active-high; 138*724ba675SRob Herring gpio = <&gpio0 RK_PB3 GPIO_ACTIVE_HIGH>; 139*724ba675SRob Herring pinctrl-names = "default"; 140*724ba675SRob Herring pinctrl-0 = <&dvp_pwr>; 141*724ba675SRob Herring regulator-name = "dovdd_1v8"; 142*724ba675SRob Herring regulator-min-microvolt = <1800000>; 143*724ba675SRob Herring regulator-max-microvolt = <1800000>; 144*724ba675SRob Herring vin-supply = <&vcc_io>; 145*724ba675SRob Herring }; 146*724ba675SRob Herring 147*724ba675SRob Herring vcc28_dvp: vcc28-dvp-regulator { 148*724ba675SRob Herring compatible = "regulator-fixed"; 149*724ba675SRob Herring enable-active-high; 150*724ba675SRob Herring gpio = <&gpio0 RK_PB3 GPIO_ACTIVE_HIGH>; 151*724ba675SRob Herring pinctrl-names = "default"; 152*724ba675SRob Herring pinctrl-0 = <&dvp_pwr>; 153*724ba675SRob Herring regulator-name = "vcc28_dvp"; 154*724ba675SRob Herring regulator-min-microvolt = <2800000>; 155*724ba675SRob Herring regulator-max-microvolt = <2800000>; 156*724ba675SRob Herring vin-supply = <&vcc_io>; 157*724ba675SRob Herring }; 158*724ba675SRob Herring 159*724ba675SRob Herring af_28: af_28-regulator { 160*724ba675SRob Herring compatible = "regulator-fixed"; 161*724ba675SRob Herring enable-active-high; 162*724ba675SRob Herring gpio = <&gpio0 RK_PB3 GPIO_ACTIVE_HIGH>; 163*724ba675SRob Herring pinctrl-names = "default"; 164*724ba675SRob Herring pinctrl-0 = <&dvp_pwr>; 165*724ba675SRob Herring regulator-name = "af_28"; 166*724ba675SRob Herring regulator-min-microvolt = <2800000>; 167*724ba675SRob Herring regulator-max-microvolt = <2800000>; 168*724ba675SRob Herring vin-supply = <&vcc_io>; 169*724ba675SRob Herring }; 170*724ba675SRob Herring 171*724ba675SRob Herring dvdd_1v2: af_28-regulator { 172*724ba675SRob Herring compatible = "regulator-fixed"; 173*724ba675SRob Herring enable-active-high; 174*724ba675SRob Herring gpio = <&gpio7 RK_PB4 GPIO_ACTIVE_HIGH>; 175*724ba675SRob Herring pinctrl-names = "default"; 176*724ba675SRob Herring pinctrl-0 = <&cif_pwr>; 177*724ba675SRob Herring regulator-name = "dvdd_1v2"; 178*724ba675SRob Herring regulator-min-microvolt = <1200000>; 179*724ba675SRob Herring regulator-max-microvolt = <1200000>; 180*724ba675SRob Herring vin-supply = <&vcc_io>; 181*724ba675SRob Herring }; 182*724ba675SRob Herring 183*724ba675SRob Herring vbat_wl: wifi-regulator { 184*724ba675SRob Herring compatible = "regulator-fixed"; 185*724ba675SRob Herring regulator-name = "vbat_wl"; 186*724ba675SRob Herring regulator-min-microvolt = <3300000>; 187*724ba675SRob Herring regulator-max-microvolt = <3300000>; 188*724ba675SRob Herring vin-supply = <&vcc_io>; 189*724ba675SRob Herring }; 190*724ba675SRob Herring}; 191*724ba675SRob Herring 192*724ba675SRob Herring&hdmi { 193*724ba675SRob Herring ddc-i2c-bus = <&i2c5>; 194*724ba675SRob Herring pinctrl-names = "default"; 195*724ba675SRob Herring pinctrl-0 = <&hdmi_cec_c0>; 196*724ba675SRob Herring status = "okay"; 197*724ba675SRob Herring}; 198*724ba675SRob Herring 199*724ba675SRob Herring&i2c0 { 200*724ba675SRob Herring hym8563: hym8563@51 { 201*724ba675SRob Herring compatible = "haoyu,hym8563"; 202*724ba675SRob Herring reg = <0x51>; 203*724ba675SRob Herring #clock-cells = <0>; 204*724ba675SRob Herring clock-frequency = <32768>; 205*724ba675SRob Herring clock-output-names = "xin32k"; 206*724ba675SRob Herring interrupt-parent = <&gpio7>; 207*724ba675SRob Herring interrupts = <RK_PA4 IRQ_TYPE_EDGE_FALLING>; 208*724ba675SRob Herring pinctrl-names = "default"; 209*724ba675SRob Herring pinctrl-0 = <&rtc_int>; 210*724ba675SRob Herring }; 211*724ba675SRob Herring}; 212*724ba675SRob Herring 213*724ba675SRob Herring&i2c2 { 214*724ba675SRob Herring status = "okay"; 215*724ba675SRob Herring 216*724ba675SRob Herring codec: es8328@10 { 217*724ba675SRob Herring compatible = "everest,es8328"; 218*724ba675SRob Herring DVDD-supply = <&vcca_33>; 219*724ba675SRob Herring AVDD-supply = <&vcca_33>; 220*724ba675SRob Herring PVDD-supply = <&vcca_33>; 221*724ba675SRob Herring HPVDD-supply = <&vcca_33>; 222*724ba675SRob Herring clocks = <&cru HCLK_I2S0>, <&cru SCLK_I2S0>; 223*724ba675SRob Herring clock-names = "i2s_hclk", "i2s_clk"; 224*724ba675SRob Herring reg = <0x10>; 225*724ba675SRob Herring }; 226*724ba675SRob Herring}; 227*724ba675SRob Herring 228*724ba675SRob Herring&i2c5 { 229*724ba675SRob Herring status = "okay"; 230*724ba675SRob Herring}; 231*724ba675SRob Herring 232*724ba675SRob Herring&i2s { 233*724ba675SRob Herring status = "okay"; 234*724ba675SRob Herring}; 235*724ba675SRob Herring 236*724ba675SRob Herring&saradc { 237*724ba675SRob Herring vref-supply = <&vcc_18>; 238*724ba675SRob Herring status = "okay"; 239*724ba675SRob Herring}; 240*724ba675SRob Herring 241*724ba675SRob Herring&sdmmc { 242*724ba675SRob Herring bus-width = <4>; 243*724ba675SRob Herring cap-mmc-highspeed; 244*724ba675SRob Herring cap-sd-highspeed; 245*724ba675SRob Herring card-detect-delay = <200>; 246*724ba675SRob Herring disable-wp; 247*724ba675SRob Herring pinctrl-names = "default"; 248*724ba675SRob Herring pinctrl-0 = <&sdmmc_clk>, <&sdmmc_cmd>, <&sdmmc_cd>, <&sdmmc_bus4>; 249*724ba675SRob Herring vmmc-supply = <&vcc_sd>; 250*724ba675SRob Herring vqmmc-supply = <&vccio_sd>; 251*724ba675SRob Herring status = "okay"; 252*724ba675SRob Herring}; 253*724ba675SRob Herring 254*724ba675SRob Herring&sdio0 { 255*724ba675SRob Herring bus-width = <4>; 256*724ba675SRob Herring cap-sd-highspeed; 257*724ba675SRob Herring cap-sdio-irq; 258*724ba675SRob Herring mmc-pwrseq = <&sdio_pwrseq>; 259*724ba675SRob Herring non-removable; 260*724ba675SRob Herring pinctrl-names = "default"; 261*724ba675SRob Herring pinctrl-0 = <&sdio0_bus4>, <&sdio0_cmd>, <&sdio0_clk>, <&sdio0_int>; 262*724ba675SRob Herring sd-uhs-sdr12; 263*724ba675SRob Herring sd-uhs-sdr25; 264*724ba675SRob Herring sd-uhs-sdr50; 265*724ba675SRob Herring sd-uhs-ddr50; 266*724ba675SRob Herring vmmc-supply = <&vbat_wl>; 267*724ba675SRob Herring vqmmc-supply = <&vccio_wl>; 268*724ba675SRob Herring status = "okay"; 269*724ba675SRob Herring}; 270*724ba675SRob Herring 271*724ba675SRob Herring&spdif { 272*724ba675SRob Herring status = "okay"; 273*724ba675SRob Herring}; 274*724ba675SRob Herring 275*724ba675SRob Herring&uart0 { 276*724ba675SRob Herring pinctrl-names = "default"; 277*724ba675SRob Herring pinctrl-0 = <&uart0_xfer>, <&uart0_cts>, <&uart0_rts>; 278*724ba675SRob Herring status = "okay"; 279*724ba675SRob Herring}; 280*724ba675SRob Herring 281*724ba675SRob Herring&uart1 { 282*724ba675SRob Herring status = "okay"; 283*724ba675SRob Herring}; 284*724ba675SRob Herring 285*724ba675SRob Herring&uart2 { 286*724ba675SRob Herring status = "okay"; 287*724ba675SRob Herring}; 288*724ba675SRob Herring 289*724ba675SRob Herring&uart3 { 290*724ba675SRob Herring status = "okay"; 291*724ba675SRob Herring}; 292*724ba675SRob Herring 293*724ba675SRob Herring&usbphy { 294*724ba675SRob Herring status = "okay"; 295*724ba675SRob Herring}; 296*724ba675SRob Herring 297*724ba675SRob Herring&usb_host1 { 298*724ba675SRob Herring pinctrl-names = "default"; 299*724ba675SRob Herring pinctrl-0 = <&usbhub_rst>; 300*724ba675SRob Herring status = "okay"; 301*724ba675SRob Herring}; 302*724ba675SRob Herring 303*724ba675SRob Herring&usb_otg { 304*724ba675SRob Herring status = "okay"; 305*724ba675SRob Herring}; 306*724ba675SRob Herring 307*724ba675SRob Herring&pinctrl { 308*724ba675SRob Herring ir { 309*724ba675SRob Herring ir_int: ir-int { 310*724ba675SRob Herring rockchip,pins = <7 RK_PA0 RK_FUNC_GPIO &pcfg_pull_up>; 311*724ba675SRob Herring }; 312*724ba675SRob Herring }; 313*724ba675SRob Herring 314*724ba675SRob Herring dvp { 315*724ba675SRob Herring dvp_pwr: dvp-pwr { 316*724ba675SRob Herring rockchip,pins = <0 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>; 317*724ba675SRob Herring }; 318*724ba675SRob Herring 319*724ba675SRob Herring cif_pwr: cif-pwr { 320*724ba675SRob Herring rockchip,pins = <7 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>; 321*724ba675SRob Herring }; 322*724ba675SRob Herring }; 323*724ba675SRob Herring 324*724ba675SRob Herring hym8563 { 325*724ba675SRob Herring rtc_int: rtc-int { 326*724ba675SRob Herring rockchip,pins = <7 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up>; 327*724ba675SRob Herring }; 328*724ba675SRob Herring }; 329*724ba675SRob Herring 330*724ba675SRob Herring keys { 331*724ba675SRob Herring pwr_key: pwr-key { 332*724ba675SRob Herring rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>; 333*724ba675SRob Herring }; 334*724ba675SRob Herring }; 335*724ba675SRob Herring 336*724ba675SRob Herring leds { 337*724ba675SRob Herring power_led_pin: power-led-pin { 338*724ba675SRob Herring rockchip,pins = <8 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>; 339*724ba675SRob Herring }; 340*724ba675SRob Herring 341*724ba675SRob Herring work_led_pin: work-led-pin { 342*724ba675SRob Herring rockchip,pins = <8 RK_PA1 RK_FUNC_GPIO &pcfg_pull_none>; 343*724ba675SRob Herring }; 344*724ba675SRob Herring }; 345*724ba675SRob Herring 346*724ba675SRob Herring sdmmc { 347*724ba675SRob Herring /* 348*724ba675SRob Herring * Default drive strength isn't enough to achieve even 349*724ba675SRob Herring * high-speed mode on firefly board so bump up to 12ma. 350*724ba675SRob Herring */ 351*724ba675SRob Herring sdmmc_bus4: sdmmc-bus4 { 352*724ba675SRob Herring rockchip,pins = <6 RK_PC0 1 &pcfg_pull_up_drv_12ma>, 353*724ba675SRob Herring <6 RK_PC1 1 &pcfg_pull_up_drv_12ma>, 354*724ba675SRob Herring <6 RK_PC2 1 &pcfg_pull_up_drv_12ma>, 355*724ba675SRob Herring <6 RK_PC3 1 &pcfg_pull_up_drv_12ma>; 356*724ba675SRob Herring }; 357*724ba675SRob Herring 358*724ba675SRob Herring sdmmc_clk: sdmmc-clk { 359*724ba675SRob Herring rockchip,pins = <6 RK_PC4 1 &pcfg_pull_none_12ma>; 360*724ba675SRob Herring }; 361*724ba675SRob Herring 362*724ba675SRob Herring sdmmc_cmd: sdmmc-cmd { 363*724ba675SRob Herring rockchip,pins = <6 RK_PC5 1 &pcfg_pull_up_drv_12ma>; 364*724ba675SRob Herring }; 365*724ba675SRob Herring 366*724ba675SRob Herring sdmmc_pwr: sdmmc-pwr { 367*724ba675SRob Herring rockchip,pins = <7 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>; 368*724ba675SRob Herring }; 369*724ba675SRob Herring }; 370*724ba675SRob Herring 371*724ba675SRob Herring sdio { 372*724ba675SRob Herring wifi_enable: wifi-enable { 373*724ba675SRob Herring rockchip,pins = <4 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>; 374*724ba675SRob Herring }; 375*724ba675SRob Herring }; 376*724ba675SRob Herring 377*724ba675SRob Herring usb_host { 378*724ba675SRob Herring host_vbus_drv: host-vbus-drv { 379*724ba675SRob Herring rockchip,pins = <0 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>; 380*724ba675SRob Herring }; 381*724ba675SRob Herring 382*724ba675SRob Herring usbhub_rst: usbhub-rst { 383*724ba675SRob Herring rockchip,pins = <8 RK_PA3 RK_FUNC_GPIO &pcfg_output_high>; 384*724ba675SRob Herring }; 385*724ba675SRob Herring }; 386*724ba675SRob Herring 387*724ba675SRob Herring usb_otg { 388*724ba675SRob Herring otg_vbus_drv: otg-vbus-drv { 389*724ba675SRob Herring rockchip,pins = <0 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>; 390*724ba675SRob Herring }; 391*724ba675SRob Herring }; 392*724ba675SRob Herring}; 393