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