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