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 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 { 49 gpios = <&gpio8 RK_PA2 GPIO_ACTIVE_LOW>; 50 label = "firefly:blue:power"; 51 pinctrl-names = "default"; 52 pinctrl-0 = <&power_led>; 53 panic-indicator; 54 }; 55 56 work { 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>; 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 status = "okay"; 238}; 239 240&sdmmc { 241 bus-width = <4>; 242 cap-mmc-highspeed; 243 cap-sd-highspeed; 244 card-detect-delay = <200>; 245 disable-wp; 246 pinctrl-names = "default"; 247 pinctrl-0 = <&sdmmc_clk>, <&sdmmc_cmd>, <&sdmmc_cd>, <&sdmmc_bus4>; 248 vmmc-supply = <&vcc_sd>; 249 vqmmc-supply = <&vccio_sd>; 250 status = "okay"; 251}; 252 253&sdio0 { 254 bus-width = <4>; 255 cap-sd-highspeed; 256 cap-sdio-irq; 257 mmc-pwrseq = <&sdio_pwrseq>; 258 non-removable; 259 pinctrl-names = "default"; 260 pinctrl-0 = <&sdio0_bus4>, <&sdio0_cmd>, <&sdio0_clk>, <&sdio0_int>; 261 sd-uhs-sdr12; 262 sd-uhs-sdr25; 263 sd-uhs-sdr50; 264 sd-uhs-ddr50; 265 vmmc-supply = <&vbat_wl>; 266 vqmmc-supply = <&vccio_wl>; 267 status = "okay"; 268}; 269 270&spdif { 271 status = "okay"; 272}; 273 274&uart0 { 275 pinctrl-names = "default"; 276 pinctrl-0 = <&uart0_xfer>, <&uart0_cts>, <&uart0_rts>; 277 status = "okay"; 278}; 279 280&uart1 { 281 status = "okay"; 282}; 283 284&uart2 { 285 status = "okay"; 286}; 287 288&uart3 { 289 status = "okay"; 290}; 291 292&usbphy { 293 status = "okay"; 294}; 295 296&usb_host1 { 297 pinctrl-names = "default"; 298 pinctrl-0 = <&usbhub_rst>; 299 status = "okay"; 300}; 301 302&usb_otg { 303 status = "okay"; 304}; 305 306&pinctrl { 307 ir { 308 ir_int: ir-int { 309 rockchip,pins = <7 RK_PA0 RK_FUNC_GPIO &pcfg_pull_up>; 310 }; 311 }; 312 313 dvp { 314 dvp_pwr: dvp-pwr { 315 rockchip,pins = <0 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>; 316 }; 317 318 cif_pwr: cif-pwr { 319 rockchip,pins = <7 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>; 320 }; 321 }; 322 323 hym8563 { 324 rtc_int: rtc-int { 325 rockchip,pins = <7 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up>; 326 }; 327 }; 328 329 keys { 330 pwr_key: pwr-key { 331 rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>; 332 }; 333 }; 334 335 leds { 336 power_led: power-led { 337 rockchip,pins = <8 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>; 338 }; 339 340 work_led: work-led { 341 rockchip,pins = <8 RK_PA1 RK_FUNC_GPIO &pcfg_pull_none>; 342 }; 343 }; 344 345 sdmmc { 346 /* 347 * Default drive strength isn't enough to achieve even 348 * high-speed mode on firefly board so bump up to 12ma. 349 */ 350 sdmmc_bus4: sdmmc-bus4 { 351 rockchip,pins = <6 RK_PC0 1 &pcfg_pull_up_drv_12ma>, 352 <6 RK_PC1 1 &pcfg_pull_up_drv_12ma>, 353 <6 RK_PC2 1 &pcfg_pull_up_drv_12ma>, 354 <6 RK_PC3 1 &pcfg_pull_up_drv_12ma>; 355 }; 356 357 sdmmc_clk: sdmmc-clk { 358 rockchip,pins = <6 RK_PC4 1 &pcfg_pull_none_12ma>; 359 }; 360 361 sdmmc_cmd: sdmmc-cmd { 362 rockchip,pins = <6 RK_PC5 1 &pcfg_pull_up_drv_12ma>; 363 }; 364 365 sdmmc_pwr: sdmmc-pwr { 366 rockchip,pins = <7 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>; 367 }; 368 }; 369 370 sdio { 371 wifi_enable: wifi-enable { 372 rockchip,pins = <4 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>; 373 }; 374 }; 375 376 usb_host { 377 host_vbus_drv: host-vbus-drv { 378 rockchip,pins = <0 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>; 379 }; 380 381 usbhub_rst: usbhub-rst { 382 rockchip,pins = <8 RK_PA3 RK_FUNC_GPIO &pcfg_output_high>; 383 }; 384 }; 385 386 usb_otg { 387 otg_vbus_drv: otg-vbus-drv { 388 rockchip,pins = <0 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>; 389 }; 390 }; 391}; 392