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 28 aliases { 29 /* Assign 20 so we don't get confused w/ builtin ones */ 30 i2c20 = &i2c_tunnel; 31 }; 32 33 backlight: backlight { 34 compatible = "pwm-backlight"; 35 pwms = <&pwm 0 1000000 0>; 36 brightness-levels = <0 100 500 1000 1500 2000 2500 2800>; 37 default-brightness-level = <7>; 38 enable-gpios = <&gpx2 2 GPIO_ACTIVE_HIGH>; 39 power-supply = <&tps65090_fet1>; 40 pinctrl-0 = <&pwm0_out>; 41 pinctrl-names = "default"; 42 }; 43 44 chosen { 45 stdout-path = "serial3:115200n8"; 46 }; 47 48 fixed-rate-clocks { 49 oscclk { 50 compatible = "samsung,exynos5420-oscclk"; 51 clock-frequency = <24000000>; 52 }; 53 }; 54 55 gpio-keys { 56 compatible = "gpio-keys"; 57 58 pinctrl-names = "default"; 59 pinctrl-0 = <&power_key_irq &lid_irq>; 60 61 power { 62 label = "Power"; 63 gpios = <&gpx1 2 GPIO_ACTIVE_LOW>; 64 linux,code = <KEY_POWER>; 65 wakeup-source; 66 }; 67 68 lid-switch { 69 label = "Lid"; 70 gpios = <&gpx3 4 GPIO_ACTIVE_LOW>; 71 linux,input-type = <5>; /* EV_SW */ 72 linux,code = <0>; /* SW_LID */ 73 debounce-interval = <1>; 74 wakeup-source; 75 }; 76 77 }; 78 79 memory@20000000 { 80 device_type = "memory"; 81 reg = <0x20000000 0x80000000>; 82 }; 83 84 sound { 85 compatible = "google,snow-audio-max98091"; 86 87 samsung,model = "Peach-Pi-I2S-MAX98091"; 88 samsung,i2s-controller = <&i2s0>; 89 samsung,audio-codec = <&max98091>; 90 91 cpu { 92 sound-dai = <&i2s0 0>; 93 }; 94 95 codec { 96 sound-dai = <&max98091>, <&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,b133htn01"; 131 power-supply = <&tps65090_fet6>; 132 backlight = <&backlight>; 133 134 port { 135 panel_in: endpoint { 136 remote-endpoint = <&dp_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 = <0x0a>; 174 samsung,lane-count = <2>; 175 samsung,hpd-gpio = <&gpx2 6 GPIO_ACTIVE_HIGH>; 176 177 ports { 178 port { 179 dp_out: endpoint { 180 remote-endpoint = <&panel_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 max98091: codec@10 { 619 compatible = "maxim,max98091"; 620 reg = <0x10>; 621 interrupts = <2 IRQ_TYPE_NONE>; 622 interrupt-parent = <&gpx0>; 623 pinctrl-names = "default"; 624 pinctrl-0 = <&max98091_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 637&hsi2c_8 { 638 status = "okay"; 639 clock-frequency = <333000>; 640 /* Atmel mXT540S */ 641 trackpad@4b { 642 compatible = "atmel,maxtouch"; 643 reg = <0x4b>; 644 interrupt-parent = <&gpx1>; 645 interrupts = <1 IRQ_TYPE_EDGE_FALLING>; 646 wakeup-source; 647 pinctrl-names = "default"; 648 pinctrl-0 = <&trackpad_irq>; 649 linux,gpio-keymap = <KEY_RESERVED 650 KEY_RESERVED 651 KEY_RESERVED /* GPIO 0 */ 652 KEY_RESERVED /* GPIO 1 */ 653 BTN_LEFT /* GPIO 2 */ 654 KEY_RESERVED>; /* GPIO 3 */ 655 }; 656}; 657 658&hsi2c_9 { 659 status = "okay"; 660 clock-frequency = <400000>; 661 662 tpm@20 { 663 compatible = "infineon,slb9645tt"; 664 reg = <0x20>; 665 666 /* Unused irq; but still need to configure the pins */ 667 pinctrl-names = "default"; 668 pinctrl-0 = <&tpm_irq>; 669 }; 670}; 671 672&i2c_2 { 673 status = "okay"; 674 samsung,i2c-sda-delay = <100>; 675 samsung,i2c-max-bus-freq = <66000>; 676 samsung,i2c-slave-addr = <0x50>; 677}; 678 679&i2s0 { 680 assigned-clocks = <&i2s0 CLK_I2S_RCLK_SRC>; 681 assigned-clock-parents = <&clock_audss EXYNOS_I2S_BUS>; 682 status = "okay"; 683}; 684 685&mixer { 686 status = "okay"; 687}; 688 689/* eMMC flash */ 690&mmc_0 { 691 status = "okay"; 692 mmc-hs200-1_8v; 693 mmc-hs400-1_8v; 694 cap-mmc-highspeed; 695 non-removable; 696 clock-frequency = <800000000>; 697 samsung,dw-mshc-ciu-div = <3>; 698 samsung,dw-mshc-sdr-timing = <0 4>; 699 samsung,dw-mshc-ddr-timing = <0 2>; 700 samsung,dw-mshc-hs400-timing = <0 2>; 701 samsung,read-strobe-delay = <90>; 702 pinctrl-names = "default"; 703 pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus1 &sd0_bus4 &sd0_bus8 &sd0_rclk>; 704 bus-width = <8>; 705}; 706 707/* WiFi SDIO module */ 708&mmc_1 { 709 status = "okay"; 710 non-removable; 711 cap-sdio-irq; 712 keep-power-in-suspend; 713 clock-frequency = <400000000>; 714 samsung,dw-mshc-ciu-div = <1>; 715 samsung,dw-mshc-sdr-timing = <0 1>; 716 samsung,dw-mshc-ddr-timing = <0 2>; 717 pinctrl-names = "default"; 718 pinctrl-0 = <&sd1_clk>, <&sd1_cmd>, <&sd1_int>, <&sd1_bus1>, 719 <&sd1_bus4>, <&sd1_bus8>, <&wifi_en>; 720 bus-width = <4>; 721 cap-sd-highspeed; 722 mmc-pwrseq = <&mmc1_pwrseq>; 723 vqmmc-supply = <&buck10_reg>; 724}; 725 726/* uSD card */ 727&mmc_2 { 728 status = "okay"; 729 cap-sd-highspeed; 730 card-detect-delay = <200>; 731 clock-frequency = <400000000>; 732 samsung,dw-mshc-ciu-div = <3>; 733 samsung,dw-mshc-sdr-timing = <2 3>; 734 samsung,dw-mshc-ddr-timing = <1 2>; 735 pinctrl-names = "default"; 736 pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus1 &sd2_bus4>; 737 bus-width = <4>; 738}; 739 740 741&pinctrl_0 { 742 pinctrl-names = "default"; 743 pinctrl-0 = <&mask_tpm_reset>; 744 745 wifi_en: wifi-en { 746 samsung,pins = "gpx0-0"; 747 samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>; 748 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; 749 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>; 750 }; 751 752 max98091_irq: max98091-irq { 753 samsung,pins = "gpx0-2"; 754 samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>; 755 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; 756 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>; 757 }; 758 759 /* We need GPX0_6 to be low at sleep time; just keep it low always */ 760 mask_tpm_reset: mask-tpm-reset { 761 samsung,pins = "gpx0-6"; 762 samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>; 763 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; 764 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>; 765 samsung,pin-val = <0>; 766 }; 767 768 tpm_irq: tpm-irq { 769 samsung,pins = "gpx1-0"; 770 samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>; 771 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; 772 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>; 773 }; 774 775 trackpad_irq: trackpad-irq { 776 samsung,pins = "gpx1-1"; 777 samsung,pin-function = <EXYNOS_PIN_FUNC_F>; 778 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; 779 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>; 780 }; 781 782 power_key_irq: power-key-irq { 783 samsung,pins = "gpx1-2"; 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 ec_irq: ec-irq { 790 samsung,pins = "gpx1-5"; 791 samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>; 792 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; 793 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>; 794 }; 795 796 tps65090_irq: tps65090-irq { 797 samsung,pins = "gpx2-5"; 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 dp_hpd_gpio: dp_hpd_gpio { 804 samsung,pins = "gpx2-6"; 805 samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>; 806 samsung,pin-pud = <EXYNOS_PIN_PULL_UP>; 807 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>; 808 }; 809 810 max77802_irq: max77802-irq { 811 samsung,pins = "gpx3-1"; 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 lid_irq: lid-irq { 818 samsung,pins = "gpx3-4"; 819 samsung,pin-function = <EXYNOS_PIN_FUNC_F>; 820 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; 821 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>; 822 }; 823 824 hdmi_hpd_irq: hdmi-hpd-irq { 825 samsung,pins = "gpx3-7"; 826 samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>; 827 samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>; 828 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>; 829 }; 830 831 pmic_dvs_1: pmic-dvs-1 { 832 samsung,pins = "gpy7-6"; 833 samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>; 834 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; 835 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>; 836 }; 837}; 838 839&pinctrl_1 { 840 /* Adjust WiFi drive strengths lower for EMI */ 841 sd1_clk: sd1-clk { 842 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV3>; 843 }; 844 845 sd1_cmd: sd1-cmd { 846 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV3>; 847 }; 848 849 sd1_bus1: sd1-bus-width1 { 850 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV3>; 851 }; 852 853 sd1_bus4: sd1-bus-width4 { 854 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV3>; 855 }; 856 857 sd1_bus8: sd1-bus-width8 { 858 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV3>; 859 }; 860}; 861 862&pinctrl_2 { 863 pmic_dvs_2: pmic-dvs-2 { 864 samsung,pins = "gpj4-2"; 865 samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>; 866 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; 867 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>; 868 }; 869 870 pmic_dvs_3: pmic-dvs-3 { 871 samsung,pins = "gpj4-3"; 872 samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>; 873 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; 874 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>; 875 }; 876}; 877 878&pinctrl_3 { 879 /* Drive SPI lines at x2 for better integrity */ 880 spi2-bus { 881 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV3>; 882 }; 883 884 /* Drive SPI chip select at x2 for better integrity */ 885 ec_spi_cs: ec-spi-cs { 886 samsung,pins = "gpb1-2"; 887 samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>; 888 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; 889 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV3>; 890 }; 891 892 usb300_vbus_en: usb300-vbus-en { 893 samsung,pins = "gph0-0"; 894 samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>; 895 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; 896 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>; 897 }; 898 899 usb301_vbus_en: usb301-vbus-en { 900 samsung,pins = "gph0-1"; 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 pmic_selb: pmic-selb { 907 samsung,pins = "gph0-2", "gph0-3", "gph0-4", "gph0-5", 908 "gph0-6"; 909 samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>; 910 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; 911 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>; 912 }; 913}; 914 915&pmu_system_controller { 916 assigned-clocks = <&pmu_system_controller 0>; 917 assigned-clock-parents = <&clock CLK_FIN_PLL>; 918}; 919 920&rtc { 921 status = "okay"; 922 clocks = <&clock CLK_RTC>, <&max77802 MAX77802_CLK_32K_AP>; 923 clock-names = "rtc", "rtc_src"; 924}; 925 926&spi_2 { 927 status = "okay"; 928 num-cs = <1>; 929 samsung,spi-src-clk = <0>; 930 cs-gpios = <&gpb1 2 GPIO_ACTIVE_HIGH>; 931 932 cros_ec: cros-ec@0 { 933 compatible = "google,cros-ec-spi"; 934 interrupt-parent = <&gpx1>; 935 interrupts = <5 IRQ_TYPE_NONE>; 936 pinctrl-names = "default"; 937 pinctrl-0 = <&ec_spi_cs &ec_irq>; 938 reg = <0>; 939 spi-max-frequency = <3125000>; 940 google,has-vbc-nvram; 941 942 controller-data { 943 samsung,spi-feedback-delay = <1>; 944 }; 945 946 i2c_tunnel: i2c-tunnel { 947 compatible = "google,cros-ec-i2c-tunnel"; 948 #address-cells = <1>; 949 #size-cells = <0>; 950 google,remote-bus = <0>; 951 952 battery: sbs-battery@b { 953 compatible = "sbs,sbs-battery"; 954 reg = <0xb>; 955 sbs,poll-retry-count = <1>; 956 sbs,i2c-retry-count = <2>; 957 }; 958 959 power-regulator@48 { 960 compatible = "ti,tps65090"; 961 reg = <0x48>; 962 963 /* 964 * Config irq to disable internal pulls 965 * even though we run in polling mode. 966 */ 967 pinctrl-names = "default"; 968 pinctrl-0 = <&tps65090_irq>; 969 970 vsys1-supply = <&vbat>; 971 vsys2-supply = <&vbat>; 972 vsys3-supply = <&vbat>; 973 infet1-supply = <&vbat>; 974 infet2-supply = <&tps65090_dcdc1>; 975 infet3-supply = <&tps65090_dcdc2>; 976 infet4-supply = <&tps65090_dcdc2>; 977 infet5-supply = <&tps65090_dcdc2>; 978 infet6-supply = <&tps65090_dcdc2>; 979 infet7-supply = <&tps65090_dcdc1>; 980 vsys-l1-supply = <&vbat>; 981 vsys-l2-supply = <&vbat>; 982 983 regulators { 984 tps65090_dcdc1: dcdc1 { 985 ti,enable-ext-control; 986 }; 987 tps65090_dcdc2: dcdc2 { 988 ti,enable-ext-control; 989 }; 990 tps65090_dcdc3: dcdc3 { 991 ti,enable-ext-control; 992 }; 993 tps65090_fet1: fet1 { 994 regulator-name = "vcd_led"; 995 }; 996 tps65090_fet2: fet2 { 997 regulator-name = "video_mid"; 998 regulator-always-on; 999 }; 1000 tps65090_fet3: fet3 { 1001 regulator-name = "wwan_r"; 1002 regulator-always-on; 1003 }; 1004 tps65090_fet4: fet4 { 1005 regulator-name = "sdcard"; 1006 regulator-always-on; 1007 }; 1008 tps65090_fet5: fet5 { 1009 regulator-name = "camout"; 1010 regulator-always-on; 1011 }; 1012 tps65090_fet6: fet6 { 1013 regulator-name = "lcd_vdd"; 1014 }; 1015 tps65090_fet7: fet7 { 1016 regulator-name = "video_mid_1a"; 1017 regulator-always-on; 1018 }; 1019 tps65090_ldo1: ldo1 { 1020 }; 1021 tps65090_ldo2: ldo2 { 1022 }; 1023 }; 1024 1025 charger { 1026 compatible = "ti,tps65090-charger"; 1027 }; 1028 }; 1029 }; 1030 }; 1031}; 1032 1033&serial_3 { 1034 status = "okay"; 1035}; 1036 1037&tmu_cpu0 { 1038 vtmu-supply = <&ldo10_reg>; 1039}; 1040 1041&tmu_cpu1 { 1042 vtmu-supply = <&ldo10_reg>; 1043}; 1044 1045&tmu_cpu2 { 1046 vtmu-supply = <&ldo10_reg>; 1047}; 1048 1049&tmu_cpu3 { 1050 vtmu-supply = <&ldo10_reg>; 1051}; 1052 1053&tmu_gpu { 1054 vtmu-supply = <&ldo10_reg>; 1055}; 1056 1057&usbdrd_dwc3_0 { 1058 dr_mode = "host"; 1059}; 1060 1061&usbdrd_dwc3_1 { 1062 dr_mode = "host"; 1063}; 1064 1065&usbdrd_phy0 { 1066 vbus-supply = <&usb300_vbus_reg>; 1067}; 1068 1069&usbdrd_phy1 { 1070 vbus-supply = <&usb301_vbus_reg>; 1071}; 1072 1073/* 1074 * Use longest HW watchdog in SoC (32 seconds) since the hardware 1075 * watchdog provides no debugging information (compared to soft/hard 1076 * lockup detectors) and so should be last resort. 1077 */ 1078&watchdog { 1079 timeout-sec = <32>; 1080}; 1081 1082#include "cros-ec-keyboard.dtsi" 1083#include "cros-adc-thermistors.dtsi" 1084