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