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