1// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2/* 3 * Copyright (c) 2018 MundoReader S.L. 4 * Author: Heiko Stuebner <heiko.stuebner@bq.com> 5 */ 6 7/dts-v1/; 8#include <dt-bindings/i2c/i2c.h> 9#include <dt-bindings/input/input.h> 10#include "rk3188.dtsi" 11 12/ { 13 model = "BQ Edison2 Quad-Core"; 14 compatible = "mundoreader,bq-edison2qc", "rockchip,rk3188"; 15 16 aliases { 17 mmc0 = &mmc0; 18 mmc1 = &mmc1; 19 mmc2 = &emmc; 20 }; 21 22 memory@60000000 { 23 device_type = "memory"; 24 reg = <0x60000000 0x80000000>; 25 }; 26 27 backlight: backlight { 28 compatible = "pwm-backlight"; 29 power-supply = <&vsys>; 30 pwms = <&pwm1 0 25000>; 31 }; 32 33 gpio-keys { 34 compatible = "gpio-keys"; 35 autorepeat; 36 pinctrl-names = "default"; 37 pinctrl-0 = <&pwr_key &usb_int>; 38 39 power { 40 gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_LOW>; 41 linux,code = <KEY_POWER>; 42 label = "GPIO Key Power"; 43 linux,input-type = <1>; 44 debounce-interval = <100>; 45 wakeup-source; 46 }; 47 48 wake_on_usb: wake-on-usb { 49 label = "Wake-on-USB"; 50 gpios = <&gpio0 RK_PA7 GPIO_ACTIVE_LOW>; 51 linux,code = <KEY_WAKEUP>; 52 wakeup-source; 53 }; 54 }; 55 56 gpio-poweroff { 57 compatible = "gpio-poweroff"; 58 gpios = <&gpio0 RK_PA0 GPIO_ACTIVE_LOW>; 59 pinctrl-names = "default"; 60 pinctrl-0 = <&pwr_hold>; 61 /* only drive the pin low until device is off */ 62 active-delay-ms = <3000>; 63 }; 64 65 lvds-encoder { 66 compatible = "ti,sn75lvds83", "lvds-encoder"; 67 68 ports { 69 #address-cells = <1>; 70 #size-cells = <0>; 71 72 port@0 { 73 reg = <0>; 74 75 lvds_in_vop0: endpoint { 76 remote-endpoint = <&vop0_out_lvds>; 77 }; 78 }; 79 80 port@1 { 81 reg = <1>; 82 83 lvds_out_panel: endpoint { 84 remote-endpoint = <&panel_in_lvds>; 85 }; 86 }; 87 }; 88 }; 89 90 panel { 91 compatible = "innolux,ee101ia-01d", "panel-lvds"; 92 backlight = <&backlight>; 93 94 /* pin LCD_CS, Nshtdn input of lvds-encoder */ 95 enable-gpios = <&gpio3 RK_PD6 GPIO_ACTIVE_HIGH>; 96 pinctrl-names = "default"; 97 pinctrl-0 = <&lcd_cs>; 98 power-supply = <&vcc_lcd>; 99 100 data-mapping = "vesa-24"; 101 height-mm = <163>; 102 width-mm = <261>; 103 104 panel-timing { 105 clock-frequency = <72000000>; 106 hactive = <1280>; 107 vactive = <800>; 108 hback-porch = <160>; 109 hfront-porch = <16>; 110 hsync-len = <10>; 111 vback-porch = <23>; 112 vfront-porch = <12>; 113 vsync-len = <3>; 114 }; 115 116 port { 117 panel_in_lvds: endpoint { 118 remote-endpoint = <&lvds_out_panel>; 119 }; 120 }; 121 }; 122 123 sdio_pwrseq: sdio-pwrseq { 124 compatible = "mmc-pwrseq-simple"; 125 clocks = <&hym8563>; 126 clock-names = "ext_clock"; 127 pinctrl-names = "default"; 128 pinctrl-0 = <&wifi_reg_on>; 129 reset-gpios = <&gpio3 RK_PD0 GPIO_ACTIVE_LOW>; 130 }; 131 132 avdd_cif: cif-avdd-regulator { 133 compatible = "regulator-fixed"; 134 regulator-name = "avdd-cif"; 135 regulator-min-microvolt = <2800000>; 136 regulator-max-microvolt = <2800000>; 137 gpio = <&gpio1 RK_PA6 GPIO_ACTIVE_LOW>; 138 pinctrl-names = "default"; 139 pinctrl-0 = <&cif_avdd_en>; 140 startup-delay-us = <100000>; 141 vin-supply = <&vcc28_cif>; 142 }; 143 144 vcc_5v: vcc-5v-regulator { 145 compatible = "regulator-fixed"; 146 regulator-name = "vcc-5v"; 147 regulator-min-microvolt = <5000000>; 148 regulator-max-microvolt = <5000000>; 149 enable-active-high; 150 gpio = <&gpio0 RK_PA3 GPIO_ACTIVE_HIGH>; 151 pinctrl-names = "default"; 152 pinctrl-0 = <&v5_drv>; 153 vin-supply = <&vsys>; 154 }; 155 156 vcc_lcd: lcd-regulator { 157 compatible = "regulator-fixed"; 158 regulator-name = "vcc-lcd"; 159 gpio = <&gpio0 RK_PB0 GPIO_ACTIVE_LOW>; 160 pinctrl-names = "default"; 161 pinctrl-0 = <&lcd_en>; 162 startup-delay-us = <50000>; 163 vin-supply = <&vcc_io>; 164 }; 165 166 vcc_otg: usb-otg-regulator { 167 compatible = "regulator-fixed"; 168 regulator-name = "vcc-otg"; 169 regulator-min-microvolt = <5000000>; 170 regulator-max-microvolt = <5000000>; 171 enable-active-high; 172 gpio = <&gpio3 RK_PB1 GPIO_ACTIVE_HIGH>; 173 pinctrl-names = "default"; 174 pinctrl-0 = <&otg_drv>; 175 startup-delay-us = <100000>; 176 vin-supply = <&vcc_5v>; 177 }; 178 179 vcc_sd: sdmmc-regulator { 180 compatible = "regulator-fixed"; 181 regulator-name = "vcc-sd"; 182 regulator-min-microvolt = <3300000>; 183 regulator-max-microvolt = <3300000>; 184 gpio = <&gpio3 RK_PA1 GPIO_ACTIVE_LOW>; 185 pinctrl-names = "default"; 186 pinctrl-0 = <&sdmmc_pwr>; 187 startup-delay-us = <100000>; 188 vin-supply = <&vcc_io>; 189 }; 190 191 vccq_emmc: emmc-vccq-regulator { 192 compatible = "regulator-fixed"; 193 regulator-name = "vccq-emmc"; 194 regulator-min-microvolt = <2800000>; 195 regulator-max-microvolt = <2800000>; 196 vin-supply = <&vcc_io>; 197 }; 198 199 /* supplied from the bq24196 */ 200 vsys: vsys-regulator { 201 compatible = "regulator-fixed"; 202 regulator-name = "vsys"; 203 regulator-min-microvolt = <5000000>; 204 regulator-max-microvolt = <5000000>; 205 regulator-boot-on; 206 }; 207}; 208 209&cpu0 { 210 cpu-supply = <&vdd_arm>; 211}; 212 213&cpu1 { 214 cpu-supply = <&vdd_arm>; 215}; 216 217&cpu2 { 218 cpu-supply = <&vdd_arm>; 219}; 220 221&cpu3 { 222 cpu-supply = <&vdd_arm>; 223}; 224 225&cru { 226 assigned-clocks = <&cru PLL_GPLL>, <&cru PLL_CPLL>, 227 <&cru ACLK_CPU>, 228 <&cru HCLK_CPU>, <&cru PCLK_CPU>, 229 <&cru ACLK_PERI>, <&cru HCLK_PERI>, 230 <&cru PCLK_PERI>; 231 assigned-clock-rates = <594000000>, <504000000>, 232 <300000000>, 233 <150000000>, <75000000>, 234 <300000000>, <150000000>, 235 <75000000>; 236}; 237 238&emmc { 239 bus-width = <8>; 240 cap-mmc-highspeed; 241 non-removable; 242 pinctrl-names = "default"; 243 pinctrl-0 = <&emmc_clk &emmc_cmd>; 244 vmmc-supply = <&vcc_io>; 245 vqmmc-supply = <&vccq_emmc>; 246 status = "okay"; 247}; 248 249&gpu { 250 status = "okay"; 251}; 252 253&i2c0 { 254 clock-frequency = <400000>; 255 status = "okay"; 256 257 lis3de: accelerometer@29 { 258 compatible = "st,lis3de"; 259 reg = <0x29>; 260 interrupt-parent = <&gpio0>; 261 interrupts = <RK_PB7 IRQ_TYPE_EDGE_RISING>; 262 pinctrl-names = "default"; 263 pinctrl-0 = <&gsensor_int>; 264 rotation-matrix = "1", "0", "0", 265 "0", "-1", "0", 266 "0", "0", "1"; 267 vdd-supply = <&vcc_io>; 268 }; 269}; 270 271&i2c1 { 272 clock-frequency = <400000>; 273 status = "okay"; 274 275 tmp108@48 { 276 compatible = "ti,tmp108"; 277 reg = <0x48>; 278 interrupt-parent = <&gpio1>; 279 interrupts = <RK_PA7 IRQ_TYPE_LEVEL_LOW>; 280 pinctrl-names = "default"; 281 pinctrl-0 = <&tmp_alrt>; 282 #thermal-sensor-cells = <0>; 283 }; 284 285 hym8563: rtc@51 { 286 compatible = "haoyu,hym8563"; 287 reg = <0x51>; 288 interrupt-parent = <&gpio0>; 289 interrupts = <RK_PB5 IRQ_TYPE_EDGE_FALLING>; 290 pinctrl-names = "default"; 291 pinctrl-0 = <&rtc_int>; 292 #clock-cells = <0>; 293 clock-output-names = "xin32k"; 294 }; 295 296 bat: battery@55 { 297 compatible = "ti,bq27541"; 298 reg = <0x55>; 299 power-supplies = <&bq24196>; 300 }; 301 302 act8846: pmic@5a { 303 compatible = "active-semi,act8846"; 304 reg = <0x5a>; 305 pinctrl-names = "default"; 306 pinctrl-0 = <&dvs0_ctl &pmic_int>; 307 308 vp1-supply = <&vsys>; 309 vp2-supply = <&vsys>; 310 vp3-supply = <&vsys>; 311 vp4-supply = <&vsys>; 312 inl1-supply = <&vcc_io>; 313 inl2-supply = <&vsys>; 314 inl3-supply = <&vsys>; 315 316 regulators { 317 vcc_ddr: REG1 { 318 regulator-name = "VCC_DDR"; 319 regulator-min-microvolt = <1200000>; 320 regulator-max-microvolt = <1200000>; 321 regulator-always-on; 322 }; 323 324 vdd_log: REG2 { 325 regulator-name = "VDD_LOG"; 326 regulator-min-microvolt = <1000000>; 327 regulator-max-microvolt = <1200000>; 328 regulator-always-on; 329 }; 330 331 vdd_arm: REG3 { 332 regulator-name = "VDD_ARM"; 333 regulator-min-microvolt = <875000>; 334 regulator-max-microvolt = <1350000>; 335 regulator-always-on; 336 }; 337 338 vcc_io: vcc_hdmi: REG4 { 339 regulator-name = "VCC_IO"; 340 regulator-min-microvolt = <3000000>; 341 regulator-max-microvolt = <3000000>; 342 regulator-always-on; 343 }; 344 345 vdd_10: REG5 { 346 regulator-name = "VDD_10"; 347 regulator-min-microvolt = <1000000>; 348 regulator-max-microvolt = <1000000>; 349 regulator-always-on; 350 }; 351 352 vdd_12: REG6 { 353 regulator-name = "VDD_12"; 354 regulator-min-microvolt = <1200000>; 355 regulator-max-microvolt = <1200000>; 356 regulator-always-on; 357 }; 358 359 vcc18_cif: REG7 { 360 regulator-name = "VCC18_CIF"; 361 regulator-min-microvolt = <1800000>; 362 regulator-max-microvolt = <1800000>; 363 regulator-always-on; 364 }; 365 366 vcca_33: REG8 { 367 regulator-name = "VCCA_33"; 368 regulator-min-microvolt = <3300000>; 369 regulator-max-microvolt = <3300000>; 370 regulator-always-on; 371 }; 372 373 vcc_tp: REG9 { 374 regulator-name = "VCC_TP"; 375 regulator-min-microvolt = <3300000>; 376 regulator-max-microvolt = <3300000>; 377 regulator-always-on; 378 }; 379 380 vccio_wl: REG10 { 381 regulator-name = "VCCIO_WL"; 382 regulator-min-microvolt = <2800000>; 383 regulator-max-microvolt = <2800000>; 384 regulator-always-on; 385 }; 386 387 vcc_18: REG11 { 388 regulator-name = "VCC_18"; 389 regulator-min-microvolt = <1800000>; 390 regulator-max-microvolt = <1800000>; 391 regulator-always-on; 392 }; 393 394 vcc28_cif: REG12 { 395 regulator-name = "VCC28_CIF"; 396 regulator-min-microvolt = <2800000>; 397 regulator-max-microvolt = <2800000>; 398 regulator-always-on; 399 }; 400 }; 401 }; 402 403 bq24196: charger@6b { 404 compatible = "ti,bq24196"; 405 reg = <0x6b>; 406 interrupt-parent = <&gpio0>; 407 interrupts = <RK_PD7 IRQ_TYPE_EDGE_FALLING>; 408 pinctrl-names = "default"; 409 pinctrl-0 = <&charger_int &chg_ctl &otg_en>; 410 ti,system-minimum-microvolt = <3200000>; 411 monitored-battery = <&bat>; 412 omit-battery-class; 413 414 usb_otg_vbus: usb-otg-vbus { }; 415 }; 416}; 417 418&i2c2 { 419 clock-frequency = <400000>; 420 status = "okay"; 421 422 ft5606: touchscreen@3e { 423 compatible = "edt,edt-ft5506"; 424 reg = <0x3e>; 425 interrupt-parent = <&gpio1>; 426 interrupts = <RK_PB7 IRQ_TYPE_EDGE_FALLING>; 427 pinctrl-names = "default"; 428 pinctrl-0 = <&tp_int &tp_rst>; 429 reset-gpios = <&gpio0 RK_PB6 GPIO_ACTIVE_LOW>; 430 touchscreen-inverted-y; 431 /* hw ts resolution does not match display */ 432 touchscreen-size-y = <1024>; 433 touchscreen-size-x = <768>; 434 touchscreen-swapped-x-y; 435 }; 436}; 437 438&i2c3 { 439 clock-frequency = <400000>; 440 status = "okay"; 441}; 442 443&i2c4 { 444 clock-frequency = <400000>; 445 status = "okay"; 446 447 rt5616: codec@1b { 448 compatible = "realtek,rt5616"; 449 reg = <0x1b>; 450 clocks = <&cru SCLK_I2S0>; 451 clock-names = "mclk"; 452 #sound-dai-cells = <0>; 453 }; 454}; 455 456&i2s0 { 457 status = "okay"; 458}; 459 460&mmc0 { 461 bus-width = <4>; 462 cap-mmc-highspeed; 463 cap-sd-highspeed; 464 disable-wp; 465 pinctrl-names = "default"; 466 pinctrl-0 = <&sd0_clk>, <&sd0_cmd>, <&sd0_cd>, <&sd0_bus4>; 467 vmmc-supply = <&vcc_sd>; 468 status = "okay"; 469}; 470 471&mmc1 { 472 bus-width = <4>; 473 cap-sd-highspeed; 474 keep-power-in-suspend; 475 mmc-pwrseq = <&sdio_pwrseq>; 476 non-removable; 477 pinctrl-names = "default"; 478 pinctrl-0 = <&sd1_clk>, <&sd1_cmd>, <&sd1_bus4>; 479 vqmmc-supply = <&vccio_wl>; 480 #address-cells = <1>; 481 #size-cells = <0>; 482 status = "okay"; 483 484 brcmf: wifi@1 { 485 reg = <1>; 486 compatible = "brcm,bcm4329-fmac"; 487 interrupt-parent = <&gpio3>; 488 interrupts = <RK_PD2 GPIO_ACTIVE_HIGH>; 489 interrupt-names = "host-wake"; 490 brcm,drive-strength = <5>; 491 pinctrl-names = "default"; 492 pinctrl-0 = <&wifi_host_wake>; 493 }; 494}; 495 496&pwm1 { 497 status = "okay"; 498}; 499 500&pinctrl { 501 pcfg_output_high: pcfg-output-high { 502 output-high; 503 }; 504 505 pcfg_output_low: pcfg-output-low { 506 output-low; 507 }; 508 509 act8846 { 510 dvs0_ctl: dvs0-ctl { 511 rockchip,pins = <3 RK_PD3 RK_FUNC_GPIO &pcfg_output_low>; 512 }; 513 514 pmic_int: pmic-int { 515 rockchip,pins = <0 RK_PB3 RK_FUNC_GPIO &pcfg_pull_up>; 516 }; 517 }; 518 519 bq24196 { 520 charger_int: charger-int { 521 rockchip,pins = <0 RK_PD7 RK_FUNC_GPIO &pcfg_pull_up>; 522 }; 523 524 /* pin hog to make it select usb profile */ 525 chg_ctl: chg-ctl { 526 rockchip,pins = <0 RK_PA1 RK_FUNC_GPIO &pcfg_output_high>; 527 }; 528 529 /* low: charging, high: complete, fault: blinking */ 530 chg_det: chg-det { 531 rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>; 532 }; 533 534 /* charging enabled when pin low and register set */ 535 chg_en: chg-en { 536 rockchip,pins = <0 RK_PC1 RK_FUNC_GPIO &pcfg_output_low>; 537 }; 538 539 /* bq29196 powergood (when low) signal */ 540 dc_det: dc-det { 541 rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>; 542 }; 543 544 /* wire bq24196 otg pin to high, to enable 500mA charging */ 545 otg_en: otg-en { 546 rockchip,pins = <0 RK_PB1 RK_FUNC_GPIO &pcfg_output_high>; 547 }; 548 }; 549 550 camera { 551 cif0_pdn: cif0-pdn { 552 rockchip,pins = <3 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>; 553 }; 554 555 cif1_pdn: cif1-pdn { 556 rockchip,pins = <3 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>; 557 }; 558 559 cif_avdd_en: cif-avdd-en { 560 rockchip,pins = <1 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>; 561 }; 562 }; 563 564 display { 565 lcd_cs: lcd-cs { 566 rockchip,pins = <3 RK_PD6 RK_FUNC_GPIO &pcfg_pull_none>; 567 }; 568 569 lcd_en: lcd-en { 570 rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>; 571 }; 572 }; 573 574 ft5606 { 575 tp_int: tp-int { 576 rockchip,pins = <1 RK_PB7 RK_FUNC_GPIO &pcfg_pull_up>; 577 }; 578 579 tp_rst: tp-rst { 580 rockchip,pins = <0 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>; 581 }; 582 }; 583 584 hdmi { 585 hdmi_int: hdmi-int { 586 rockchip,pins = <2 RK_PD6 RK_FUNC_GPIO &pcfg_pull_up>; 587 }; 588 589 hdmi_rst: hdmi-rst { 590 rockchip,pins = <3 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>; 591 }; 592 }; 593 594 hym8563 { 595 rtc_int: rtc-int { 596 rockchip,pins = <0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_up>; 597 }; 598 }; 599 600 keys { 601 pwr_hold: pwr-hold { 602 rockchip,pins = <0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_up>; 603 }; 604 605 pwr_key: pwr-key { 606 rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up>; 607 }; 608 }; 609 610 lis3de { 611 gsensor_int: gsensor-int { 612 rockchip,pins = <0 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>; 613 }; 614 }; 615 616 mmc { 617 sdmmc_pwr: sdmmc-pwr { 618 rockchip,pins = <3 RK_PA1 RK_FUNC_GPIO &pcfg_pull_none>; 619 }; 620 }; 621 622 tmp108 { 623 tmp_alrt: tmp-alrt { 624 rockchip,pins = <1 RK_PA7 RK_FUNC_GPIO &pcfg_pull_none>; 625 }; 626 }; 627 628 usb { 629 v5_drv: v5-drv { 630 rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>; 631 }; 632 633 otg_drv: otg-drv { 634 rockchip,pins = <3 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>; 635 }; 636 637 usb_int: usb-int { 638 rockchip,pins = <0 RK_PA7 RK_FUNC_GPIO &pcfg_pull_up>; 639 }; 640 }; 641 642 rk903 { 643 bt_host_wake: bt-host-wake { 644 rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>; 645 }; 646 647 bt_reg_on: bt-reg-on { 648 rockchip,pins = <3 RK_PC7 RK_FUNC_GPIO &pcfg_pull_none>; 649 }; 650 651 /* pin hog to pull the reset high */ 652 bt_rst: bt-rst { 653 rockchip,pins = <3 RK_PD1 RK_FUNC_GPIO &pcfg_output_high>; 654 }; 655 656 bt_wake: bt-wake { 657 rockchip,pins = <3 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>; 658 }; 659 660 wifi_host_wake: wifi-host-wake { 661 rockchip,pins = <3 RK_PD2 RK_FUNC_GPIO &pcfg_pull_up>; 662 }; 663 664 wifi_reg_on: wifi-reg-on { 665 rockchip,pins = <3 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>; 666 }; 667 }; 668}; 669 670&saradc { 671 vref-supply = <&vcc_18>; 672 status = "okay"; 673}; 674 675&spdif { 676 status = "okay"; 677}; 678 679&uart0 { 680 pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>; 681 status = "okay"; 682 683 bluetooth { 684 compatible = "brcm,bcm43438-bt"; 685 max-speed = <2000000>; 686 device-wakeup-gpios = <&gpio3 RK_PC6 GPIO_ACTIVE_HIGH>; 687 host-wakeup-gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_HIGH>; 688 shutdown-gpios = <&gpio3 RK_PC7 GPIO_ACTIVE_HIGH>; 689 pinctrl-names = "default"; 690 pinctrl-0 = <&bt_host_wake &bt_reg_on &bt_rst &bt_wake>; 691 }; 692}; 693 694&uart1 { 695 status = "okay"; 696}; 697 698&uart2 { 699 status = "okay"; 700}; 701 702&uart3 { 703 pinctrl-0 = <&uart3_xfer &uart3_cts &uart3_rts>; 704 status = "okay"; 705}; 706 707&usbphy { 708 status = "okay"; 709}; 710 711&usb_host { 712 status = "okay"; 713}; 714 715&usb_otg { 716 status = "okay"; 717}; 718 719&vop0 { 720 status = "okay"; 721}; 722 723&vop0_out { 724 vop0_out_lvds: endpoint { 725 remote-endpoint = <&lvds_in_vop0>; 726 }; 727}; 728 729&vop1 { 730 pinctrl-names = "default"; 731 pinctrl-0 = <&lcdc1_dclk &lcdc1_den &lcdc1_hsync 732 &lcdc1_vsync &lcdc1_rgb24>; 733 status = "okay"; 734}; 735 736&wdt { 737 status = "okay"; 738}; 739