1// SPDX-License-Identifier: GPL-2.0 2/* 3 * Google Peach Pi Rev 10+ board device tree source 4 * 5 * Copyright (c) 2014 Google, Inc 6 */ 7 8/dts-v1/; 9#include <dt-bindings/input/input.h> 10#include <dt-bindings/gpio/gpio.h> 11#include <dt-bindings/interrupt-controller/irq.h> 12#include <dt-bindings/clock/maxim,max77802.h> 13#include <dt-bindings/regulator/maxim,max77802.h> 14#include <dt-bindings/sound/samsung-i2s.h> 15#include "exynos5800.dtsi" 16#include "exynos5420-cpus.dtsi" 17 18/ { 19 model = "Google Peach Pi Rev 10+"; 20 21 compatible = "google,pi-rev16", 22 "google,pi-rev15", "google,pi-rev14", 23 "google,pi-rev13", "google,pi-rev12", 24 "google,pi-rev11", "google,pi-rev10", 25 "google,pi", "google,peach", "samsung,exynos5800", 26 "samsung,exynos5"; 27 chassis-type = "laptop"; 28 29 aliases { 30 /* Assign 20 so we don't get confused w/ builtin ones */ 31 i2c20 = &i2c_tunnel; 32 }; 33 34 backlight: backlight { 35 compatible = "pwm-backlight"; 36 pwms = <&pwm 0 1000000 0>; 37 brightness-levels = <0 100 500 1000 1500 2000 2500 2800>; 38 default-brightness-level = <7>; 39 enable-gpios = <&gpx2 2 GPIO_ACTIVE_HIGH>; 40 power-supply = <&tps65090_fet1>; 41 pinctrl-0 = <&pwm0_out>; 42 pinctrl-names = "default"; 43 }; 44 45 chosen { 46 stdout-path = "serial3:115200n8"; 47 }; 48 49 fixed-rate-clocks { 50 oscclk { 51 compatible = "samsung,exynos5420-oscclk"; 52 clock-frequency = <24000000>; 53 }; 54 }; 55 56 gpio-keys { 57 compatible = "gpio-keys"; 58 59 pinctrl-names = "default"; 60 pinctrl-0 = <&power_key_irq &lid_irq>; 61 62 power-key { 63 label = "Power"; 64 gpios = <&gpx1 2 GPIO_ACTIVE_LOW>; 65 linux,code = <KEY_POWER>; 66 wakeup-source; 67 }; 68 69 lid-switch { 70 label = "Lid"; 71 gpios = <&gpx3 4 GPIO_ACTIVE_LOW>; 72 linux,input-type = <5>; /* EV_SW */ 73 linux,code = <0>; /* SW_LID */ 74 debounce-interval = <1>; 75 wakeup-source; 76 }; 77 78 }; 79 80 memory@20000000 { 81 device_type = "memory"; 82 reg = <0x20000000 0x80000000>; 83 }; 84 85 sound { 86 compatible = "google,snow-audio-max98091"; 87 88 samsung,model = "Peach-Pi-I2S-MAX98091"; 89 samsung,i2s-controller = <&i2s0>; 90 samsung,audio-codec = <&max98091>; 91 92 cpu { 93 sound-dai = <&i2s0 0>; 94 }; 95 96 codec { 97 sound-dai = <&max98091>, <&hdmi>; 98 }; 99 }; 100 101 usb300_vbus_reg: regulator-usb300 { 102 compatible = "regulator-fixed"; 103 regulator-name = "P5.0V_USB3CON0"; 104 regulator-min-microvolt = <5000000>; 105 regulator-max-microvolt = <5000000>; 106 gpio = <&gph0 0 GPIO_ACTIVE_HIGH>; 107 pinctrl-names = "default"; 108 pinctrl-0 = <&usb300_vbus_en>; 109 enable-active-high; 110 }; 111 112 usb301_vbus_reg: regulator-usb301 { 113 compatible = "regulator-fixed"; 114 regulator-name = "P5.0V_USB3CON1"; 115 regulator-min-microvolt = <5000000>; 116 regulator-max-microvolt = <5000000>; 117 gpio = <&gph0 1 GPIO_ACTIVE_HIGH>; 118 pinctrl-names = "default"; 119 pinctrl-0 = <&usb301_vbus_en>; 120 enable-active-high; 121 }; 122 123 vbat: fixed-regulator { 124 compatible = "regulator-fixed"; 125 regulator-name = "vbat-supply"; 126 regulator-boot-on; 127 regulator-always-on; 128 }; 129 130 panel: panel { 131 compatible = "auo,b133htn01"; 132 power-supply = <&tps65090_fet6>; 133 backlight = <&backlight>; 134 135 port { 136 panel_in: endpoint { 137 remote-endpoint = <&dp_out>; 138 }; 139 }; 140 }; 141 142 mmc1_pwrseq: mmc1-pwrseq { 143 compatible = "mmc-pwrseq-simple"; 144 reset-gpios = <&gpx0 0 GPIO_ACTIVE_LOW>; /* WIFI_EN */ 145 clocks = <&max77802 MAX77802_CLK_32K_CP>; 146 clock-names = "ext_clock"; 147 }; 148}; 149 150&adc { 151 status = "okay"; 152 vdd-supply = <&ldo9_reg>; 153}; 154 155&clock_audss { 156 assigned-clocks = <&clock_audss EXYNOS_MOUT_AUDSS>; 157 assigned-clock-parents = <&clock CLK_MAU_EPLL>; 158}; 159 160/* 161 * Peach Pi board uses SoC revision with lower maximum frequency for A7 cores 162 * (1.3 GHz instead of 1.4 GHz) than Odroid XU3/XU4 boards. Thus we need to 163 * update A7 OPPs table accordingly. 164 */ 165&cluster_a7_opp_table { 166 /delete-node/opp-1400000000; 167}; 168 169&cpu0 { 170 cpu-supply = <&buck2_reg>; 171}; 172 173&cpu4 { 174 cpu-supply = <&buck6_reg>; 175}; 176 177&dp { 178 status = "okay"; 179 pinctrl-names = "default"; 180 pinctrl-0 = <&dp_hpd_gpio>; 181 samsung,color-space = <0>; 182 samsung,color-depth = <1>; 183 samsung,link-rate = <0x0a>; 184 samsung,lane-count = <2>; 185 samsung,hpd-gpio = <&gpx2 6 GPIO_ACTIVE_HIGH>; 186 187 ports { 188 port { 189 dp_out: endpoint { 190 remote-endpoint = <&panel_in>; 191 }; 192 }; 193 }; 194}; 195 196&fimd { 197 status = "okay"; 198 samsung,invert-vclk; 199}; 200 201&hdmi { 202 status = "okay"; 203 hpd-gpios = <&gpx3 7 GPIO_ACTIVE_HIGH>; 204 pinctrl-names = "default"; 205 pinctrl-0 = <&hdmi_hpd_irq>; 206 ddc = <&i2c_2>; 207 208 hdmi-en-supply = <&tps65090_fet7>; 209 vdd-supply = <&ldo8_reg>; 210 vdd_osc-supply = <&ldo10_reg>; 211 vdd_pll-supply = <&ldo8_reg>; 212}; 213 214&hsi2c_4 { 215 status = "okay"; 216 clock-frequency = <400000>; 217 218 max77802: pmic@9 { 219 compatible = "maxim,max77802"; 220 interrupt-parent = <&gpx3>; 221 interrupts = <1 IRQ_TYPE_NONE>; 222 pinctrl-names = "default"; 223 pinctrl-0 = <&max77802_irq>, <&pmic_selb>, 224 <&pmic_dvs_1>, <&pmic_dvs_2>; 225 wakeup-source; 226 reg = <0x9>; 227 #clock-cells = <1>; 228 229 inb1-supply = <&tps65090_dcdc2>; 230 inb2-supply = <&tps65090_dcdc1>; 231 inb3-supply = <&tps65090_dcdc2>; 232 inb4-supply = <&tps65090_dcdc2>; 233 inb5-supply = <&tps65090_dcdc1>; 234 inb6-supply = <&tps65090_dcdc2>; 235 inb7-supply = <&tps65090_dcdc1>; 236 inb8-supply = <&tps65090_dcdc1>; 237 inb9-supply = <&tps65090_dcdc1>; 238 inb10-supply = <&tps65090_dcdc1>; 239 240 inl1-supply = <&buck5_reg>; 241 inl2-supply = <&buck7_reg>; 242 inl3-supply = <&buck9_reg>; 243 inl4-supply = <&buck9_reg>; 244 inl5-supply = <&buck9_reg>; 245 inl6-supply = <&tps65090_dcdc2>; 246 inl7-supply = <&buck9_reg>; 247 inl9-supply = <&tps65090_dcdc2>; 248 inl10-supply = <&buck7_reg>; 249 250 regulators { 251 buck1_reg: BUCK1 { 252 regulator-name = "vdd_mif"; 253 regulator-min-microvolt = <800000>; 254 regulator-max-microvolt = <1300000>; 255 regulator-always-on; 256 regulator-boot-on; 257 regulator-ramp-delay = <12500>; 258 regulator-state-mem { 259 regulator-off-in-suspend; 260 }; 261 }; 262 263 buck2_reg: BUCK2 { 264 regulator-name = "vdd_arm"; 265 regulator-min-microvolt = <800000>; 266 regulator-max-microvolt = <1500000>; 267 regulator-always-on; 268 regulator-boot-on; 269 regulator-ramp-delay = <12500>; 270 regulator-coupled-with = <&buck3_reg>; 271 regulator-coupled-max-spread = <300000>; 272 regulator-state-mem { 273 regulator-off-in-suspend; 274 }; 275 }; 276 277 buck3_reg: BUCK3 { 278 regulator-name = "vdd_int"; 279 regulator-min-microvolt = <800000>; 280 regulator-max-microvolt = <1400000>; 281 regulator-always-on; 282 regulator-boot-on; 283 regulator-ramp-delay = <12500>; 284 regulator-coupled-with = <&buck2_reg>; 285 regulator-coupled-max-spread = <300000>; 286 regulator-state-mem { 287 regulator-off-in-suspend; 288 }; 289 }; 290 291 buck4_reg: BUCK4 { 292 regulator-name = "vdd_g3d"; 293 regulator-min-microvolt = <700000>; 294 regulator-max-microvolt = <1400000>; 295 regulator-always-on; 296 regulator-boot-on; 297 regulator-ramp-delay = <12500>; 298 regulator-state-mem { 299 regulator-off-in-suspend; 300 }; 301 }; 302 303 buck5_reg: BUCK5 { 304 regulator-name = "vdd_1v2"; 305 regulator-min-microvolt = <1200000>; 306 regulator-max-microvolt = <1200000>; 307 regulator-boot-on; 308 regulator-state-mem { 309 regulator-off-in-suspend; 310 }; 311 }; 312 313 buck6_reg: BUCK6 { 314 regulator-name = "vdd_kfc"; 315 regulator-min-microvolt = <800000>; 316 regulator-max-microvolt = <1500000>; 317 regulator-always-on; 318 regulator-boot-on; 319 regulator-ramp-delay = <12500>; 320 regulator-state-mem { 321 regulator-off-in-suspend; 322 }; 323 }; 324 325 buck7_reg: BUCK7 { 326 regulator-name = "vdd_1v35"; 327 regulator-min-microvolt = <1350000>; 328 regulator-max-microvolt = <1350000>; 329 regulator-always-on; 330 regulator-boot-on; 331 regulator-state-mem { 332 regulator-on-in-suspend; 333 }; 334 }; 335 336 buck8_reg: BUCK8 { 337 regulator-name = "vdd_emmc"; 338 regulator-min-microvolt = <2850000>; 339 regulator-max-microvolt = <2850000>; 340 regulator-always-on; 341 regulator-boot-on; 342 regulator-state-mem { 343 regulator-off-in-suspend; 344 }; 345 }; 346 347 buck9_reg: BUCK9 { 348 regulator-name = "vdd_2v"; 349 regulator-min-microvolt = <2000000>; 350 regulator-max-microvolt = <2000000>; 351 regulator-always-on; 352 regulator-boot-on; 353 regulator-state-mem { 354 regulator-on-in-suspend; 355 }; 356 }; 357 358 buck10_reg: BUCK10 { 359 regulator-name = "vdd_1v8"; 360 regulator-min-microvolt = <1800000>; 361 regulator-max-microvolt = <1800000>; 362 regulator-always-on; 363 regulator-boot-on; 364 regulator-state-mem { 365 regulator-on-in-suspend; 366 }; 367 }; 368 369 ldo1_reg: LDO1 { 370 regulator-name = "vdd_1v0"; 371 regulator-min-microvolt = <1000000>; 372 regulator-max-microvolt = <1000000>; 373 regulator-always-on; 374 regulator-state-mem { 375 regulator-on-in-suspend; 376 regulator-mode = <MAX77802_OPMODE_LP>; 377 }; 378 }; 379 380 ldo2_reg: LDO2 { 381 regulator-name = "vdd_1v2_2"; 382 regulator-min-microvolt = <1200000>; 383 regulator-max-microvolt = <1200000>; 384 }; 385 386 ldo3_reg: LDO3 { 387 regulator-name = "vdd_1v8_3"; 388 regulator-min-microvolt = <1800000>; 389 regulator-max-microvolt = <1800000>; 390 regulator-always-on; 391 regulator-state-mem { 392 regulator-on-in-suspend; 393 regulator-mode = <MAX77802_OPMODE_LP>; 394 }; 395 }; 396 397 vqmmc_sdcard: ldo4_reg: LDO4 { 398 regulator-name = "vdd_sd"; 399 regulator-min-microvolt = <1800000>; 400 regulator-max-microvolt = <2800000>; 401 regulator-always-on; 402 regulator-state-mem { 403 regulator-off-in-suspend; 404 }; 405 }; 406 407 ldo5_reg: LDO5 { 408 regulator-name = "vdd_1v8_5"; 409 regulator-min-microvolt = <1800000>; 410 regulator-max-microvolt = <1800000>; 411 regulator-always-on; 412 regulator-state-mem { 413 regulator-off-in-suspend; 414 }; 415 }; 416 417 ldo6_reg: LDO6 { 418 regulator-name = "vdd_1v8_6"; 419 regulator-min-microvolt = <1800000>; 420 regulator-max-microvolt = <1800000>; 421 regulator-always-on; 422 regulator-state-mem { 423 regulator-off-in-suspend; 424 }; 425 }; 426 427 ldo7_reg: LDO7 { 428 regulator-name = "vdd_1v8_7"; 429 regulator-min-microvolt = <1800000>; 430 regulator-max-microvolt = <1800000>; 431 }; 432 433 ldo8_reg: LDO8 { 434 regulator-name = "vdd_ldo8"; 435 regulator-min-microvolt = <1000000>; 436 regulator-max-microvolt = <1000000>; 437 regulator-always-on; 438 regulator-state-mem { 439 regulator-off-in-suspend; 440 }; 441 }; 442 443 ldo9_reg: LDO9 { 444 regulator-name = "vdd_ldo9"; 445 regulator-min-microvolt = <1800000>; 446 regulator-max-microvolt = <1800000>; 447 regulator-state-mem { 448 regulator-on-in-suspend; 449 regulator-mode = <MAX77802_OPMODE_LP>; 450 }; 451 }; 452 453 ldo10_reg: LDO10 { 454 regulator-name = "vdd_ldo10"; 455 regulator-min-microvolt = <1800000>; 456 regulator-max-microvolt = <1800000>; 457 regulator-always-on; 458 regulator-state-mem { 459 regulator-off-in-suspend; 460 }; 461 }; 462 463 ldo11_reg: LDO11 { 464 regulator-name = "vdd_ldo11"; 465 regulator-min-microvolt = <1800000>; 466 regulator-max-microvolt = <1800000>; 467 regulator-always-on; 468 regulator-state-mem { 469 regulator-on-in-suspend; 470 regulator-mode = <MAX77802_OPMODE_LP>; 471 }; 472 }; 473 474 ldo12_reg: LDO12 { 475 regulator-name = "vdd_ldo12"; 476 regulator-min-microvolt = <3000000>; 477 regulator-max-microvolt = <3000000>; 478 regulator-always-on; 479 regulator-state-mem { 480 regulator-off-in-suspend; 481 }; 482 }; 483 484 ldo13_reg: LDO13 { 485 regulator-name = "vdd_ldo13"; 486 regulator-min-microvolt = <1800000>; 487 regulator-max-microvolt = <1800000>; 488 regulator-always-on; 489 regulator-state-mem { 490 regulator-on-in-suspend; 491 regulator-mode = <MAX77802_OPMODE_LP>; 492 }; 493 }; 494 495 ldo14_reg: LDO14 { 496 regulator-name = "vdd_ldo14"; 497 regulator-min-microvolt = <1800000>; 498 regulator-max-microvolt = <1800000>; 499 regulator-always-on; 500 regulator-state-mem { 501 regulator-off-in-suspend; 502 }; 503 }; 504 505 ldo15_reg: LDO15 { 506 regulator-name = "vdd_ldo15"; 507 regulator-min-microvolt = <1000000>; 508 regulator-max-microvolt = <1000000>; 509 regulator-always-on; 510 regulator-state-mem { 511 regulator-off-in-suspend; 512 }; 513 }; 514 515 ldo17_reg: LDO17 { 516 regulator-name = "vdd_g3ds"; 517 regulator-min-microvolt = <900000>; 518 regulator-max-microvolt = <1400000>; 519 regulator-always-on; 520 regulator-state-mem { 521 regulator-off-in-suspend; 522 }; 523 }; 524 525 ldo18_reg: LDO18 { 526 regulator-name = "ldo_18"; 527 regulator-min-microvolt = <1800000>; 528 regulator-max-microvolt = <1800000>; 529 }; 530 531 ldo19_reg: LDO19 { 532 regulator-name = "ldo_19"; 533 regulator-min-microvolt = <1800000>; 534 regulator-max-microvolt = <1800000>; 535 }; 536 537 ldo20_reg: LDO20 { 538 regulator-name = "ldo_20"; 539 regulator-min-microvolt = <1800000>; 540 regulator-max-microvolt = <1800000>; 541 regulator-always-on; 542 }; 543 544 ldo21_reg: LDO21 { 545 regulator-name = "ldo_21"; 546 regulator-min-microvolt = <2800000>; 547 regulator-max-microvolt = <2800000>; 548 }; 549 550 ldo23_reg: LDO23 { 551 regulator-name = "ldo_23"; 552 regulator-min-microvolt = <3300000>; 553 regulator-max-microvolt = <3300000>; 554 }; 555 ldo24_reg: LDO24 { 556 regulator-name = "ldo_24"; 557 regulator-min-microvolt = <2800000>; 558 regulator-max-microvolt = <2800000>; 559 }; 560 561 ldo25_reg: LDO25 { 562 regulator-name = "ldo_25"; 563 regulator-min-microvolt = <3300000>; 564 regulator-max-microvolt = <3300000>; 565 }; 566 567 ldo26_reg: LDO26 { 568 regulator-name = "ldo_26"; 569 regulator-min-microvolt = <1200000>; 570 regulator-max-microvolt = <1200000>; 571 }; 572 573 ldo27_reg: LDO27 { 574 regulator-name = "ldo_27"; 575 regulator-min-microvolt = <1200000>; 576 regulator-max-microvolt = <1200000>; 577 }; 578 579 ldo28_reg: LDO28 { 580 regulator-name = "ldo_28"; 581 regulator-min-microvolt = <1800000>; 582 regulator-max-microvolt = <1800000>; 583 }; 584 585 ldo29_reg: LDO29 { 586 regulator-name = "ldo_29"; 587 regulator-min-microvolt = <1800000>; 588 regulator-max-microvolt = <1800000>; 589 }; 590 591 ldo30_reg: LDO30 { 592 regulator-name = "vdd_mifs"; 593 regulator-min-microvolt = <1000000>; 594 regulator-max-microvolt = <1000000>; 595 regulator-always-on; 596 regulator-state-mem { 597 regulator-off-in-suspend; 598 }; 599 }; 600 601 ldo32_reg: LDO32 { 602 regulator-name = "ldo_32"; 603 regulator-min-microvolt = <3000000>; 604 regulator-max-microvolt = <3000000>; 605 }; 606 607 ldo33_reg: LDO33 { 608 regulator-name = "ldo_33"; 609 regulator-min-microvolt = <2800000>; 610 regulator-max-microvolt = <2800000>; 611 }; 612 613 ldo34_reg: LDO34 { 614 regulator-name = "ldo_34"; 615 regulator-min-microvolt = <3000000>; 616 regulator-max-microvolt = <3000000>; 617 }; 618 619 ldo35_reg: LDO35 { 620 regulator-name = "ldo_35"; 621 regulator-min-microvolt = <1200000>; 622 regulator-max-microvolt = <1200000>; 623 }; 624 }; 625 }; 626}; 627 628&hsi2c_7 { 629 status = "okay"; 630 clock-frequency = <400000>; 631 632 max98091: codec@10 { 633 compatible = "maxim,max98091"; 634 reg = <0x10>; 635 interrupts = <2 IRQ_TYPE_NONE>; 636 interrupt-parent = <&gpx0>; 637 pinctrl-names = "default"; 638 pinctrl-0 = <&max98091_irq>; 639 clocks = <&pmu_system_controller 0>; 640 clock-names = "mclk"; 641 #sound-dai-cells = <0>; 642 }; 643 644 light-sensor@44 { 645 compatible = "isil,isl29018"; 646 reg = <0x44>; 647 vcc-supply = <&tps65090_fet5>; 648 }; 649}; 650 651&hsi2c_8 { 652 status = "okay"; 653 clock-frequency = <333000>; 654 /* Atmel mXT540S */ 655 trackpad@4b { 656 compatible = "atmel,maxtouch"; 657 reg = <0x4b>; 658 interrupt-parent = <&gpx1>; 659 interrupts = <1 IRQ_TYPE_EDGE_FALLING>; 660 wakeup-source; 661 pinctrl-names = "default"; 662 pinctrl-0 = <&trackpad_irq>; 663 linux,gpio-keymap = <KEY_RESERVED 664 KEY_RESERVED 665 KEY_RESERVED /* GPIO 0 */ 666 KEY_RESERVED /* GPIO 1 */ 667 BTN_LEFT /* GPIO 2 */ 668 KEY_RESERVED>; /* GPIO 3 */ 669 }; 670}; 671 672&hsi2c_9 { 673 status = "okay"; 674 clock-frequency = <400000>; 675 676 tpm@20 { 677 compatible = "infineon,slb9645tt"; 678 reg = <0x20>; 679 680 /* Unused irq; but still need to configure the pins */ 681 pinctrl-names = "default"; 682 pinctrl-0 = <&tpm_irq>; 683 }; 684}; 685 686&i2c_2 { 687 status = "okay"; 688 samsung,i2c-sda-delay = <100>; 689 samsung,i2c-max-bus-freq = <66000>; 690 samsung,i2c-slave-addr = <0x50>; 691}; 692 693&i2s0 { 694 assigned-clocks = <&i2s0 CLK_I2S_RCLK_SRC>; 695 assigned-clock-parents = <&clock_audss EXYNOS_I2S_BUS>; 696 status = "okay"; 697}; 698 699&mixer { 700 status = "okay"; 701}; 702 703/* eMMC flash */ 704&mmc_0 { 705 status = "okay"; 706 mmc-hs200-1_8v; 707 mmc-hs400-1_8v; 708 cap-mmc-highspeed; 709 non-removable; 710 clock-frequency = <800000000>; 711 samsung,dw-mshc-ciu-div = <3>; 712 samsung,dw-mshc-sdr-timing = <0 4>; 713 samsung,dw-mshc-ddr-timing = <0 2>; 714 samsung,dw-mshc-hs400-timing = <0 2>; 715 samsung,read-strobe-delay = <90>; 716 pinctrl-names = "default"; 717 pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus1 &sd0_bus4 &sd0_bus8 &sd0_rclk>; 718 bus-width = <8>; 719}; 720 721/* WiFi SDIO module */ 722&mmc_1 { 723 status = "okay"; 724 non-removable; 725 cap-sdio-irq; 726 keep-power-in-suspend; 727 clock-frequency = <400000000>; 728 samsung,dw-mshc-ciu-div = <1>; 729 samsung,dw-mshc-sdr-timing = <0 1>; 730 samsung,dw-mshc-ddr-timing = <0 2>; 731 pinctrl-names = "default"; 732 pinctrl-0 = <&sd1_clk>, <&sd1_cmd>, <&sd1_int>, <&sd1_bus1>, 733 <&sd1_bus4>, <&sd1_bus8>, <&wifi_en>; 734 bus-width = <4>; 735 cap-sd-highspeed; 736 mmc-pwrseq = <&mmc1_pwrseq>; 737 vqmmc-supply = <&buck10_reg>; 738}; 739 740/* uSD card */ 741&mmc_2 { 742 status = "okay"; 743 cap-sd-highspeed; 744 card-detect-delay = <200>; 745 clock-frequency = <400000000>; 746 samsung,dw-mshc-ciu-div = <3>; 747 samsung,dw-mshc-sdr-timing = <2 3>; 748 samsung,dw-mshc-ddr-timing = <1 2>; 749 pinctrl-names = "default"; 750 pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus1 &sd2_bus4>; 751 bus-width = <4>; 752}; 753 754 755&pinctrl_0 { 756 pinctrl-names = "default"; 757 pinctrl-0 = <&mask_tpm_reset>; 758 759 wifi_en: wifi-en-pins { 760 samsung,pins = "gpx0-0"; 761 samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>; 762 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; 763 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>; 764 }; 765 766 max98091_irq: max98091-irq-pins { 767 samsung,pins = "gpx0-2"; 768 samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>; 769 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; 770 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>; 771 }; 772 773 /* We need GPX0_6 to be low at sleep time; just keep it low always */ 774 mask_tpm_reset: mask-tpm-reset-pins { 775 samsung,pins = "gpx0-6"; 776 samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>; 777 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; 778 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>; 779 samsung,pin-val = <0>; 780 }; 781 782 tpm_irq: tpm-irq-pins { 783 samsung,pins = "gpx1-0"; 784 samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>; 785 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; 786 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>; 787 }; 788 789 trackpad_irq: trackpad-irq-pins { 790 samsung,pins = "gpx1-1"; 791 samsung,pin-function = <EXYNOS_PIN_FUNC_F>; 792 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; 793 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>; 794 }; 795 796 power_key_irq: power-key-irq-pins { 797 samsung,pins = "gpx1-2"; 798 samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>; 799 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; 800 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>; 801 }; 802 803 ec_irq: ec-irq-pins { 804 samsung,pins = "gpx1-5"; 805 samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>; 806 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; 807 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>; 808 }; 809 810 tps65090_irq: tps65090-irq-pins { 811 samsung,pins = "gpx2-5"; 812 samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>; 813 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; 814 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>; 815 }; 816 817 dp_hpd_gpio: dp-hpd-gpio-pins { 818 samsung,pins = "gpx2-6"; 819 samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>; 820 samsung,pin-pud = <EXYNOS_PIN_PULL_UP>; 821 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>; 822 }; 823 824 max77802_irq: max77802-irq-pins { 825 samsung,pins = "gpx3-1"; 826 samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>; 827 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; 828 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>; 829 }; 830 831 lid_irq: lid-irq-pins { 832 samsung,pins = "gpx3-4"; 833 samsung,pin-function = <EXYNOS_PIN_FUNC_F>; 834 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; 835 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>; 836 }; 837 838 hdmi_hpd_irq: hdmi-hpd-irq-pins { 839 samsung,pins = "gpx3-7"; 840 samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>; 841 samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>; 842 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>; 843 }; 844 845 pmic_dvs_1: pmic-dvs-1-pins { 846 samsung,pins = "gpy7-6"; 847 samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>; 848 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; 849 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>; 850 }; 851}; 852 853/* pinctrl_1 */ 854/* Adjust WiFi drive strengths lower for EMI */ 855&sd1_bus1 { 856 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV3>; 857}; 858 859&sd1_bus4 { 860 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV3>; 861}; 862 863&sd1_bus8 { 864 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV3>; 865}; 866 867&sd1_clk { 868 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV3>; 869}; 870 871&sd1_cmd { 872 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV3>; 873}; 874 875&pinctrl_2 { 876 pmic_dvs_2: pmic-dvs-2-pins { 877 samsung,pins = "gpj4-2", "gpj4-3"; 878 samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>; 879 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; 880 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>; 881 }; 882}; 883 884/* pinctrl_3*/ 885/* Drive SPI lines at x2 for better integrity */ 886&spi2_bus { 887 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV3>; 888}; 889 890&pinctrl_3 { 891 /* Drive SPI chip select at x2 for better integrity */ 892 ec_spi_cs: ec-spi-cs-pins { 893 samsung,pins = "gpb1-2"; 894 samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>; 895 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; 896 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV3>; 897 }; 898 899 usb300_vbus_en: usb300-vbus-en-pins { 900 samsung,pins = "gph0-0"; 901 samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>; 902 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; 903 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>; 904 }; 905 906 usb301_vbus_en: usb301-vbus-en-pins { 907 samsung,pins = "gph0-1"; 908 samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>; 909 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; 910 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>; 911 }; 912 913 pmic_selb: pmic-selb-pins { 914 samsung,pins = "gph0-2", "gph0-3", "gph0-4", "gph0-5", 915 "gph0-6"; 916 samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>; 917 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; 918 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>; 919 }; 920}; 921 922&pmu_system_controller { 923 assigned-clocks = <&pmu_system_controller 0>; 924 assigned-clock-parents = <&clock CLK_FIN_PLL>; 925}; 926 927&rtc { 928 status = "okay"; 929 clocks = <&clock CLK_RTC>, <&max77802 MAX77802_CLK_32K_AP>; 930 clock-names = "rtc", "rtc_src"; 931}; 932 933&spi_2 { 934 status = "okay"; 935 num-cs = <1>; 936 samsung,spi-src-clk = <0>; 937 cs-gpios = <&gpb1 2 GPIO_ACTIVE_HIGH>; 938 939 cros_ec: cros-ec@0 { 940 compatible = "google,cros-ec-spi"; 941 interrupt-parent = <&gpx1>; 942 interrupts = <5 IRQ_TYPE_NONE>; 943 pinctrl-names = "default"; 944 pinctrl-0 = <&ec_spi_cs &ec_irq>; 945 reg = <0>; 946 spi-max-frequency = <3125000>; 947 google,has-vbc-nvram; 948 949 controller-data { 950 samsung,spi-feedback-delay = <1>; 951 }; 952 953 i2c_tunnel: i2c-tunnel { 954 compatible = "google,cros-ec-i2c-tunnel"; 955 #address-cells = <1>; 956 #size-cells = <0>; 957 google,remote-bus = <0>; 958 959 battery: sbs-battery@b { 960 compatible = "sbs,sbs-battery"; 961 reg = <0xb>; 962 sbs,poll-retry-count = <1>; 963 sbs,i2c-retry-count = <2>; 964 }; 965 966 power-regulator@48 { 967 compatible = "ti,tps65090"; 968 reg = <0x48>; 969 970 /* 971 * Config irq to disable internal pulls 972 * even though we run in polling mode. 973 */ 974 pinctrl-names = "default"; 975 pinctrl-0 = <&tps65090_irq>; 976 977 vsys1-supply = <&vbat>; 978 vsys2-supply = <&vbat>; 979 vsys3-supply = <&vbat>; 980 infet1-supply = <&vbat>; 981 infet2-supply = <&tps65090_dcdc1>; 982 infet3-supply = <&tps65090_dcdc2>; 983 infet4-supply = <&tps65090_dcdc2>; 984 infet5-supply = <&tps65090_dcdc2>; 985 infet6-supply = <&tps65090_dcdc2>; 986 infet7-supply = <&tps65090_dcdc1>; 987 vsys-l1-supply = <&vbat>; 988 vsys-l2-supply = <&vbat>; 989 990 regulators { 991 tps65090_dcdc1: dcdc1 { 992 ti,enable-ext-control; 993 }; 994 tps65090_dcdc2: dcdc2 { 995 ti,enable-ext-control; 996 }; 997 tps65090_dcdc3: dcdc3 { 998 ti,enable-ext-control; 999 }; 1000 tps65090_fet1: fet1 { 1001 regulator-name = "vcd_led"; 1002 }; 1003 tps65090_fet2: fet2 { 1004 regulator-name = "video_mid"; 1005 regulator-always-on; 1006 }; 1007 tps65090_fet3: fet3 { 1008 regulator-name = "wwan_r"; 1009 regulator-always-on; 1010 }; 1011 tps65090_fet4: fet4 { 1012 regulator-name = "sdcard"; 1013 regulator-always-on; 1014 }; 1015 tps65090_fet5: fet5 { 1016 regulator-name = "camout"; 1017 regulator-always-on; 1018 }; 1019 tps65090_fet6: fet6 { 1020 regulator-name = "lcd_vdd"; 1021 }; 1022 tps65090_fet7: fet7 { 1023 regulator-name = "video_mid_1a"; 1024 regulator-always-on; 1025 }; 1026 tps65090_ldo1: ldo1 { 1027 }; 1028 tps65090_ldo2: ldo2 { 1029 }; 1030 }; 1031 1032 charger { 1033 compatible = "ti,tps65090-charger"; 1034 }; 1035 }; 1036 }; 1037 }; 1038}; 1039 1040&serial_3 { 1041 status = "okay"; 1042}; 1043 1044&timer { 1045 arm,cpu-registers-not-fw-configured; 1046}; 1047 1048&tmu_cpu0 { 1049 vtmu-supply = <&ldo10_reg>; 1050}; 1051 1052&tmu_cpu1 { 1053 vtmu-supply = <&ldo10_reg>; 1054}; 1055 1056&tmu_cpu2 { 1057 vtmu-supply = <&ldo10_reg>; 1058}; 1059 1060&tmu_cpu3 { 1061 vtmu-supply = <&ldo10_reg>; 1062}; 1063 1064&tmu_gpu { 1065 vtmu-supply = <&ldo10_reg>; 1066}; 1067 1068&usbdrd3_0 { 1069 vdd10-supply = <&ldo15_reg>; 1070 vdd33-supply = <&ldo12_reg>; 1071}; 1072 1073&usbdrd3_1 { 1074 vdd10-supply = <&ldo15_reg>; 1075 vdd33-supply = <&ldo12_reg>; 1076}; 1077 1078&usbdrd_dwc3_0 { 1079 dr_mode = "host"; 1080}; 1081 1082&usbdrd_dwc3_1 { 1083 dr_mode = "host"; 1084}; 1085 1086&usbdrd_phy0 { 1087 vbus-supply = <&usb300_vbus_reg>; 1088}; 1089 1090&usbdrd_phy1 { 1091 vbus-supply = <&usb301_vbus_reg>; 1092}; 1093 1094/* 1095 * Use longest HW watchdog in SoC (32 seconds) since the hardware 1096 * watchdog provides no debugging information (compared to soft/hard 1097 * lockup detectors) and so should be last resort. 1098 */ 1099&watchdog { 1100 timeout-sec = <32>; 1101}; 1102 1103#include "cros-ec-keyboard.dtsi" 1104#include "cros-adc-thermistors.dtsi" 1105