1/* 2 * (C) Copyright 2017 Rockchip Electronics Co., Ltd 3 * 4 * SPDX-License-Identifier: GPL-2.0+ X11 5 */ 6 7#include "rk3288.dtsi" 8#include <dt-bindings/input/input.h> 9 10/ { 11 memory { 12 reg = <0 0x80000000>; 13 }; 14 15 adc-keys { 16 compatible = "adc-keys"; 17 io-channels = <&saradc 1>; 18 19 volup-key { 20 linux,code = <KEY_VOLUMEUP>; 21 label = "volume up"; 22 press-threshold-microvolt = <18000>; 23 }; 24 }; 25 26 ext_gmac: external-gmac-clock { 27 compatible = "fixed-clock"; 28 #clock-cells = <0>; 29 clock-frequency = <125000000>; 30 clock-output-names = "ext_gmac"; 31 }; 32 33 vcc_sys: vsys-regulator { 34 compatible = "regulator-fixed"; 35 regulator-name = "vcc_sys"; 36 regulator-min-microvolt = <5000000>; 37 regulator-max-microvolt = <5000000>; 38 regulator-always-on; 39 regulator-boot-on; 40 }; 41 42 vcc_flash: flash-regulator { 43 compatible = "regulator-fixed"; 44 regulator-name = "vcc_flash"; 45 regulator-min-microvolt = <1800000>; 46 regulator-max-microvolt = <1800000>; 47 vin-supply = <&vcc_io>; 48 }; 49 50 vcc_5v: usb-regulator { 51 compatible = "regulator-fixed"; 52 regulator-name = "vcc_5v"; 53 regulator-min-microvolt = <5000000>; 54 regulator-max-microvolt = <5000000>; 55 regulator-always-on; 56 regulator-boot-on; 57 vin-supply = <&vcc_sys>; 58 }; 59 60 vcc_host_5v: usb-host-regulator { 61 compatible = "regulator-fixed"; 62 enable-active-high; 63 gpio = <&gpio0 14 GPIO_ACTIVE_HIGH>; 64 pinctrl-names = "default"; 65 pinctrl-0 = <&host_vbus_drv>; 66 regulator-name = "vcc_host_5v"; 67 regulator-min-microvolt = <5000000>; 68 regulator-max-microvolt = <5000000>; 69 regulator-always-on; 70 vin-supply = <&vcc_5v>; 71 }; 72 73 vcc_otg_5v: usb-otg-regulator { 74 compatible = "regulator-fixed"; 75 enable-active-high; 76 gpio = <&gpio0 12 GPIO_ACTIVE_HIGH>; 77 pinctrl-names = "default"; 78 pinctrl-0 = <&otg_vbus_drv>; 79 regulator-name = "vcc_otg_5v"; 80 regulator-min-microvolt = <5000000>; 81 regulator-max-microvolt = <5000000>; 82 regulator-always-on; 83 vin-supply = <&vcc_5v>; 84 }; 85 86 backlight: backlight { 87 compatible = "pwm-backlight"; 88 power-supply = <&vcc_sys>; 89 enable-gpios = <&gpio7 2 GPIO_ACTIVE_HIGH>; 90 brightness-levels = < 91 0 1 2 3 4 5 6 7 92 8 9 10 11 12 13 14 15 93 16 17 18 19 20 21 22 23 94 24 25 26 27 28 29 30 31 95 32 33 34 35 36 37 38 39 96 40 41 42 43 44 45 46 47 97 48 49 50 51 52 53 54 55 98 56 57 58 59 60 61 62 63 99 64 65 66 67 68 69 70 71 100 72 73 74 75 76 77 78 79 101 80 81 82 83 84 85 86 87 102 88 89 90 91 92 93 94 95 103 96 97 98 99 100 101 102 103 104 104 105 106 107 108 109 110 111 105 112 113 114 115 116 117 118 119 106 120 121 122 123 124 125 126 127 107 128 129 130 131 132 133 134 135 108 136 137 138 139 140 141 142 143 109 144 145 146 147 148 149 150 151 110 152 153 154 155 156 157 158 159 111 160 161 162 163 164 165 166 167 112 168 169 170 171 172 173 174 175 113 176 177 178 179 180 181 182 183 114 184 185 186 187 188 189 190 191 115 192 193 194 195 196 197 198 199 116 200 201 202 203 204 205 206 207 117 208 209 210 211 212 213 214 215 118 216 217 218 219 220 221 222 223 119 224 225 226 227 228 229 230 231 120 232 233 234 235 236 237 238 239 121 240 241 242 243 244 245 246 247 122 248 249 250 251 252 253 254 255>; 123 default-brightness-level = <50>; 124 pwms = <&pwm0 0 25000 0>; 125 pinctrl-names = "default"; 126 pinctrl-0 = <&pwm0_pin>; 127 pwm-delay-us = <10000>; 128 status = "disabled"; 129 }; 130 131 panel: panel { 132 compatible = "simple-panel"; 133 power-supply = <&vcc_io>; 134 backlight = <&backlight>; 135 enable-gpios = <&gpio7 3 GPIO_ACTIVE_HIGH>; 136 status = "disabled"; 137 }; 138}; 139 140&cpu0 { 141 cpu0-supply = <&vdd_cpu>; 142}; 143 144&emmc { 145 broken-cd; 146 bus-width = <8>; 147 cap-mmc-highspeed; 148 disable-wp; 149 non-removable; 150 num-slots = <1>; 151 pinctrl-names = "default"; 152 pinctrl-0 = <&emmc_clk>, <&emmc_cmd>, <&emmc_pwr>, <&emmc_bus8>; 153 vmmc-supply = <&vcc_io>; 154 vqmmc-supply = <&vcc_flash>; 155 status = "okay"; 156}; 157 158&gmac { 159 phy-mode = "rgmii"; 160 clock_in_out = "input"; 161 snps,reset-gpio = <&gpio4 7 0>; 162 snps,reset-active-low; 163 snps,reset-delays-us = <0 10000 1000000>; 164 assigned-clocks = <&cru SCLK_MAC>; 165 assigned-clock-parents = <&ext_gmac>; 166 pinctrl-names = "default"; 167 pinctrl-0 = <&rgmii_pins>; 168 tx_delay = <0x30>; 169 rx_delay = <0x10>; 170 status = "okay"; 171}; 172 173&i2c0 { 174 clock-frequency = <400000>; 175 status = "okay"; 176 177 vdd_cpu: syr827@40 { 178 compatible = "silergy,syr827"; 179 fcs,suspend-voltage-selector = <1>; 180 reg = <0x40>; 181 regulator-name = "vdd_cpu"; 182 regulator-min-microvolt = <850000>; 183 regulator-max-microvolt = <1350000>; 184 regulator-always-on; 185 regulator-boot-on; 186 vin-supply = <&vcc_sys>; 187 }; 188 189 vdd_gpu: syr828@41 { 190 compatible = "silergy,syr828"; 191 fcs,suspend-voltage-selector = <1>; 192 reg = <0x41>; 193 regulator-name = "vdd_gpu"; 194 regulator-min-microvolt = <850000>; 195 regulator-max-microvolt = <1350000>; 196 regulator-always-on; 197 vin-supply = <&vcc_sys>; 198 }; 199 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 = <4 IRQ_TYPE_EDGE_FALLING>; 208 pinctrl-names = "default"; 209 pinctrl-0 = <&rtc_int>; 210 }; 211 212 act8846: act8846@5a { 213 compatible = "active-semi,act8846"; 214 reg = <0x5a>; 215 pinctrl-names = "default"; 216 pinctrl-0 = <&pwr_hold>; 217 system-power-controller; 218 219 regulators { 220 vcc_ddr: REG1 { 221 regulator-name = "vcc_ddr"; 222 regulator-min-microvolt = <1200000>; 223 regulator-max-microvolt = <1200000>; 224 regulator-always-on; 225 }; 226 227 vcc_io: REG2 { 228 regulator-name = "vcc_io"; 229 regulator-min-microvolt = <3300000>; 230 regulator-max-microvolt = <3300000>; 231 regulator-always-on; 232 }; 233 234 vdd_log: REG3 { 235 regulator-name = "vdd_log"; 236 regulator-min-microvolt = <1100000>; 237 regulator-max-microvolt = <1100000>; 238 regulator-always-on; 239 }; 240 241 vcc_20: REG4 { 242 regulator-name = "vcc_20"; 243 regulator-min-microvolt = <2000000>; 244 regulator-max-microvolt = <2000000>; 245 regulator-always-on; 246 }; 247 248 vccio_sd: REG5 { 249 regulator-name = "vccio_sd"; 250 regulator-min-microvolt = <3300000>; 251 regulator-max-microvolt = <3300000>; 252 regulator-always-on; 253 }; 254 255 vdd10_lcd: REG6 { 256 regulator-name = "vdd10_lcd"; 257 regulator-min-microvolt = <1000000>; 258 regulator-max-microvolt = <1000000>; 259 regulator-always-on; 260 }; 261 262 vcca_codec: REG7 { 263 regulator-name = "vcca_codec"; 264 regulator-min-microvolt = <3300000>; 265 regulator-max-microvolt = <3300000>; 266 }; 267 268 vcc_tp: REG8 { 269 regulator-name = "vcca_33"; 270 regulator-min-microvolt = <3300000>; 271 regulator-max-microvolt = <3300000>; 272 }; 273 274 vccio_pmu: REG9 { 275 regulator-name = "vccio_pmu"; 276 regulator-min-microvolt = <3300000>; 277 regulator-max-microvolt = <3300000>; 278 }; 279 280 vdd_10: REG10 { 281 regulator-name = "vdd_10"; 282 regulator-min-microvolt = <1000000>; 283 regulator-max-microvolt = <1000000>; 284 regulator-always-on; 285 }; 286 287 vcc_18: REG11 { 288 regulator-name = "vcc_18"; 289 regulator-min-microvolt = <1800000>; 290 regulator-max-microvolt = <1800000>; 291 regulator-always-on; 292 }; 293 294 vcc18_lcd: REG12 { 295 regulator-name = "vcc18_lcd"; 296 regulator-min-microvolt = <1800000>; 297 regulator-max-microvolt = <1800000>; 298 regulator-always-on; 299 }; 300 }; 301 }; 302}; 303 304&i2c1 { 305 status = "okay"; 306}; 307 308&i2c2 { 309 status = "okay"; 310}; 311 312&i2c4 { 313 status = "okay"; 314}; 315 316&i2c5 { 317 status = "okay"; 318}; 319 320&pinctrl { 321 pcfg_output_high: pcfg-output-high { 322 output-high; 323 }; 324 325 pcfg_output_low: pcfg-output-low { 326 output-low; 327 }; 328 329 act8846 { 330 pwr_hold: pwr-hold { 331 rockchip,pins = <0 9 RK_FUNC_GPIO &pcfg_output_high>; 332 }; 333 }; 334 335 hym8563 { 336 rtc_int: rtc-int { 337 rockchip,pins = <0 4 RK_FUNC_GPIO &pcfg_pull_up>; 338 }; 339 }; 340 341 sdmmc { 342 sdmmc_pwr: sdmmc-pwr { 343 rockchip,pins = <7 11 RK_FUNC_GPIO &pcfg_pull_none>; 344 }; 345 }; 346 347 usb_host { 348 host_vbus_drv: host-vbus-drv { 349 rockchip,pins = <0 14 RK_FUNC_GPIO &pcfg_pull_none>; 350 }; 351 }; 352 353 usb_otg { 354 otg_vbus_drv: otg-vbus-drv { 355 rockchip,pins = <0 12 RK_FUNC_GPIO &pcfg_pull_none>; 356 }; 357 }; 358}; 359 360&pwm0 { 361 status = "okay"; 362}; 363 364&saradc { 365 vref-supply = <&vcc_18>; 366 status = "okay"; 367}; 368 369&sdio0 { 370 broken-cd; 371 bus-width = <4>; 372 disable-wp; 373 non-removable; 374 num-slots = <1>; 375 pinctrl-names = "default"; 376 pinctrl-0 = <&sdio0_bus4>, <&sdio0_cmd>, <&sdio0_clk>; 377 vmmc-supply = <&vcc_18>; 378 status = "disabled"; 379}; 380 381&sdmmc { 382 bus-width = <4>; 383 cap-mmc-highspeed; 384 cap-sd-highspeed; 385 card-detect-delay = <200>; 386 disable-wp; 387 num-slots = <1>; 388 pinctrl-names = "default"; 389 pinctrl-0 = <&sdmmc_clk>, <&sdmmc_cmd>, <&sdmmc_cd>, <&sdmmc_bus4>; 390 vmmc-supply = <&vccio_sd>; 391 status = "okay"; 392}; 393 394&spi0 { 395 pinctrl-names = "default"; 396 pinctrl-0 = <&spi0_clk>, <&spi0_cs0>, <&spi0_tx>, <&spi0_rx>, <&spi0_cs1>; 397 status = "okay"; 398}; 399 400&uart0 { 401 pinctrl-names = "default"; 402 pinctrl-0 = <&uart0_xfer>, <&uart0_cts>, <&uart0_rts>; 403 status = "okay"; 404}; 405 406&uart1 { 407 status = "okay"; 408}; 409 410&uart2 { 411 status = "okay"; 412}; 413 414&uart3 { 415 status = "okay"; 416}; 417 418&usb_host1 { 419 status = "okay"; 420}; 421 422&usb_otg { 423 status = "okay"; 424}; 425 426&vopb { 427 status = "okay"; 428}; 429 430&vopb_mmu { 431 status = "okay"; 432}; 433 434&vopl { 435 status = "okay"; 436}; 437 438&vopl_mmu { 439 status = "okay"; 440}; 441 442&mipi_dsi0 { 443 status = "disabled"; 444 rockchip,panel = <&panel>; 445 display-timings { 446 timing0 { 447 bits-per-pixel = <24>; 448 clock-frequency = <160000000>; 449 hfront-porch = <120>; 450 hsync-len = <20>; 451 hback-porch = <21>; 452 hactive = <1200>; 453 vfront-porch = <21>; 454 vsync-len = <3>; 455 vback-porch = <18>; 456 vactive = <1920>; 457 hsync-active = <0>; 458 vsync-active = <0>; 459 de-active = <1>; 460 pixelclk-active = <0>; 461 }; 462 }; 463}; 464 465&wdt { 466 status = "okay"; 467}; 468