1 // SPDX-License-Identifier: GPL-2.0 2 /* 3 * Google Snow board device tree source 4 * 5 * Copyright (c) 2012 Google, Inc 6 */ 7 8 #include <dt-bindings/gpio/gpio.h> 9 #include <dt-bindings/clock/maxim,max77686.h> 10 #include <dt-bindings/interrupt-controller/irq 11 #include <dt-bindings/input/input.h> 12 #include <dt-bindings/sound/samsung-i2s.h> 13 #include "exynos5250.dtsi" 14 15 / { 16 aliases { 17 i2c104 = &i2c_104; 18 mmc0 = &mmc_0; /* eMMC */ 19 mmc1 = &mmc_2; /* SD */ 20 mmc2 = &mmc_3; /* WiFi */ 21 }; 22 23 memory@40000000 { 24 device_type = "memory"; 25 reg = <0x40000000 0x80000000>; 26 }; 27 28 chosen { 29 bootargs = "console=tty1"; 30 stdout-path = "serial3:115200n 31 }; 32 33 gpio-keys { 34 compatible = "gpio-keys"; 35 pinctrl-names = "default"; 36 pinctrl-0 = <&power_key_irq &l 37 38 power-key { 39 label = "Power"; 40 gpios = <&gpx1 3 GPIO_ 41 linux,code = <KEY_POWE 42 wakeup-source; 43 }; 44 45 lid-switch { 46 label = "Lid"; 47 gpios = <&gpx3 5 GPIO_ 48 linux,input-type = <5> 49 linux,code = <0>; /* S 50 debounce-interval = <1 51 wakeup-source; 52 }; 53 }; 54 55 vbat: vbat-fixed-regulator { 56 compatible = "regulator-fixed" 57 regulator-name = "vbat-supply" 58 regulator-boot-on; 59 }; 60 61 i2c-arbitrator { 62 compatible = "i2c-arb-gpio-cha 63 i2c-parent = <&i2c_4>; 64 65 our-claim-gpios = <&gpf0 3 GPI 66 their-claim-gpios = <&gpe0 4 G 67 slew-delay-us = <10>; 68 wait-retry-us = <3000>; 69 wait-free-us = <50000>; 70 71 pinctrl-names = "default"; 72 pinctrl-0 = <&arb_our_claim &a 73 74 /* Use ID 104 as a hint that w 75 i2c_104: i2c-arb { 76 #address-cells = <1>; 77 #size-cells = <0>; 78 79 battery: sbs-battery@b 80 compatible = " 81 reg = <0xb>; 82 sbs,poll-retry 83 }; 84 85 cros_ec: embedded-cont 86 compatible = " 87 reg = <0x1e>; 88 interrupts = < 89 interrupt-pare 90 pinctrl-names 91 pinctrl-0 = <& 92 wakeup-source; 93 }; 94 95 power-regulator@48 { 96 compatible = " 97 reg = <0x48>; 98 99 /* 100 * Config irq 101 * even though 102 */ 103 pinctrl-names 104 pinctrl-0 = <& 105 106 vsys1-supply = 107 vsys2-supply = 108 vsys3-supply = 109 infet1-supply 110 infet2-supply 111 infet3-supply 112 infet4-supply 113 infet5-supply 114 infet6-supply 115 infet7-supply 116 vsys-l1-supply 117 vsys-l2-supply 118 119 regulators { 120 dcdc1 121 122 }; 123 dcdc2 124 125 }; 126 dcdc3 127 128 }; 129 fet1: 130 131 132 }; 133 tps650 134 135 136 137 }; 138 fet3 { 139 140 141 142 }; 143 fet4 { 144 145 146 }; 147 fet5 { 148 149 150 151 }; 152 fet6: 153 154 155 }; 156 tps650 157 158 159 160 }; 161 ldo1 { 162 }; 163 ldo2 { 164 }; 165 }; 166 167 charger { 168 compat 169 }; 170 }; 171 }; 172 }; 173 174 sound { 175 samsung,i2s-controller = <&i2s 176 }; 177 178 usb3_vbus_reg: regulator-usb3 { 179 compatible = "regulator-fixed" 180 regulator-name = "P5.0V_USB3CO 181 regulator-min-microvolt = <500 182 regulator-max-microvolt = <500 183 gpio = <&gpx2 7 GPIO_ACTIVE_HI 184 pinctrl-names = "default"; 185 pinctrl-0 = <&usb3_vbus_en>; 186 enable-active-high; 187 }; 188 189 fixed-rate-clocks { 190 xxti { 191 compatible = "samsung, 192 clock-frequency = <240 193 }; 194 }; 195 196 backlight: backlight { 197 compatible = "pwm-backlight"; 198 pwms = <&pwm 0 1000000 0>; 199 brightness-levels = <0 100 500 200 default-brightness-level = <7> 201 enable-gpios = <&gpx3 0 GPIO_A 202 power-supply = <&fet1>; 203 pinctrl-0 = <&pwm0_out>; 204 pinctrl-names = "default"; 205 }; 206 207 panel: panel { 208 compatible = "auo,b116xw03"; 209 power-supply = <&fet6>; 210 backlight = <&backlight>; 211 212 port { 213 panel_in: endpoint { 214 remote-endpoin 215 }; 216 }; 217 }; 218 219 mmc3_pwrseq: mmc3-pwrseq { 220 compatible = "mmc-pwrseq-simpl 221 reset-gpios = <&gpx0 2 GPIO_AC 222 <&gpx0 1 GPIO_AC 223 clocks = <&max77686 MAX77686_C 224 clock-names = "ext_clock"; 225 }; 226 }; 227 228 &clock { 229 assigned-clocks = <&clock CLK_FOUT_EPL 230 assigned-clock-rates = <49152000>; 231 }; 232 233 &clock_audss { 234 assigned-clocks = <&clock_audss EXYNOS 235 assigned-clock-parents = <&clock CLK_F 236 }; 237 238 &cpu0 { 239 cpu0-supply = <&buck2_reg>; 240 }; 241 242 &dp { 243 status = "okay"; 244 pinctrl-names = "default"; 245 pinctrl-0 = <&dp_hpd>; 246 samsung,color-space = <0>; 247 samsung,color-depth = <1>; 248 samsung,link-rate = <0x0a>; 249 samsung,lane-count = <2>; 250 hpd-gpios = <&gpx0 7 GPIO_ACTIVE_HIGH> 251 252 ports { 253 port { 254 dp_out: endpoint { 255 remote-endpoin 256 }; 257 }; 258 }; 259 }; 260 261 &ehci { 262 samsung,vbus-gpio = <&gpx1 1 GPIO_ACTI 263 }; 264 265 &fimd { 266 status = "okay"; 267 samsung,invert-vclk; 268 }; 269 270 &hdmi { 271 status = "okay"; 272 hpd-gpios = <&gpx3 7 GPIO_ACTIVE_HIGH> 273 pinctrl-names = "default"; 274 pinctrl-0 = <&hdmi_hpd_irq>; 275 ddc = <&i2c_2>; 276 hdmi-en-supply = <&tps65090_fet7>; 277 vdd-supply = <&ldo8_reg>; 278 vdd_osc-supply = <&ldo10_reg>; 279 vdd_pll-supply = <&ldo8_reg>; 280 }; 281 282 &hdmicec { 283 status = "okay"; 284 }; 285 286 &i2c_0 { 287 status = "okay"; 288 samsung,i2c-sda-delay = <100>; 289 samsung,i2c-max-bus-freq = <378000>; 290 291 max77686: pmic@9 { 292 compatible = "maxim,max77686"; 293 interrupt-parent = <&gpx3>; 294 interrupts = <2 IRQ_TYPE_LEVEL 295 pinctrl-names = "default"; 296 pinctrl-0 = <&max77686_irq>; 297 wakeup-source; 298 reg = <0x09>; 299 #clock-cells = <1>; 300 301 voltage-regulators { 302 ldo1_reg: LDO1 { 303 regulator-name 304 regulator-min- 305 regulator-max- 306 regulator-alwa 307 }; 308 309 ldo2_reg: LDO2 { 310 regulator-name 311 regulator-min- 312 regulator-max- 313 regulator-alwa 314 }; 315 316 ldo3_reg: LDO3 { 317 regulator-name 318 regulator-min- 319 regulator-max- 320 regulator-alwa 321 }; 322 323 ldo7_reg: LDO7 { 324 regulator-name 325 regulator-min- 326 regulator-max- 327 regulator-alwa 328 }; 329 330 ldo8_reg: LDO8 { 331 regulator-name 332 regulator-min- 333 regulator-max- 334 regulator-alwa 335 }; 336 337 ldo10_reg: LDO10 { 338 regulator-name 339 regulator-min- 340 regulator-max- 341 regulator-alwa 342 }; 343 344 ldo12_reg: LDO12 { 345 regulator-name 346 regulator-min- 347 regulator-max- 348 regulator-alwa 349 }; 350 351 ldo14_reg: LDO14 { 352 regulator-name 353 regulator-min- 354 regulator-max- 355 regulator-alwa 356 }; 357 358 ldo15_reg: LDO15 { 359 regulator-name 360 regulator-min- 361 regulator-max- 362 regulator-alwa 363 }; 364 365 ldo16_reg: LDO16 { 366 regulator-name 367 regulator-min- 368 regulator-max- 369 regulator-alwa 370 }; 371 372 buck1_reg: BUCK1 { 373 regulator-name 374 regulator-min- 375 regulator-max- 376 regulator-alwa 377 regulator-boot 378 }; 379 380 buck2_reg: BUCK2 { 381 regulator-name 382 regulator-min- 383 regulator-max- 384 regulator-alwa 385 regulator-boot 386 }; 387 388 buck3_reg: BUCK3 { 389 regulator-name 390 regulator-min- 391 regulator-max- 392 regulator-alwa 393 regulator-boot 394 }; 395 396 buck4_reg: BUCK4 { 397 regulator-name 398 regulator-min- 399 regulator-max- 400 regulator-alwa 401 regulator-boot 402 }; 403 404 buck5_reg: BUCK5 { 405 regulator-name 406 regulator-min- 407 regulator-max- 408 regulator-alwa 409 regulator-boot 410 }; 411 412 buck6_reg: BUCK6 { 413 regulator-name 414 regulator-min- 415 regulator-max- 416 regulator-alwa 417 }; 418 419 buck7_reg: BUCK7 { 420 regulator-name 421 regulator-min- 422 regulator-max- 423 regulator-alwa 424 }; 425 426 buck8_reg: BUCK8 { 427 regulator-name 428 regulator-min- 429 regulator-max- 430 regulator-alwa 431 }; 432 }; 433 }; 434 }; 435 436 &i2c_1 { 437 status = "okay"; 438 samsung,i2c-sda-delay = <100>; 439 samsung,i2c-max-bus-freq = <378000>; 440 441 trackpad@67 { 442 reg = <0x67>; 443 compatible = "cypress,cyapa"; 444 interrupts = <2 IRQ_TYPE_NONE> 445 interrupt-parent = <&gpx1>; 446 wakeup-source; 447 }; 448 }; 449 450 /* 451 * Disabled pullups since external part has it 452 * double-pulling gets us out of spec in some 453 */ 454 &i2c2_bus { 455 samsung,pin-pud = <EXYNOS_PIN_PULL_NON 456 }; 457 458 &i2c_2 { 459 status = "okay"; 460 /* used by HDMI DDC */ 461 samsung,i2c-sda-delay = <100>; 462 samsung,i2c-max-bus-freq = <66000>; 463 }; 464 465 &i2c_3 { 466 status = "okay"; 467 samsung,i2c-sda-delay = <100>; 468 samsung,i2c-max-bus-freq = <66000>; 469 }; 470 471 &i2c_4 { 472 status = "okay"; 473 samsung,i2c-sda-delay = <100>; 474 samsung,i2c-max-bus-freq = <66000>; 475 }; 476 477 &i2c_5 { 478 status = "okay"; 479 samsung,i2c-sda-delay = <100>; 480 samsung,i2c-max-bus-freq = <66000>; 481 }; 482 483 &i2c_7 { 484 status = "okay"; 485 samsung,i2c-sda-delay = <100>; 486 samsung,i2c-max-bus-freq = <66000>; 487 488 ptn3460: lvds-bridge@20 { 489 compatible = "nxp,ptn3460"; 490 reg = <0x20>; 491 powerdown-gpios = <&gpy2 5 GPI 492 reset-gpios = <&gpx1 5 GPIO_AC 493 edid-emulation = <5>; 494 495 ports { 496 #address-cells = <1>; 497 #size-cells = <0>; 498 499 port@0 { 500 reg = <0>; 501 502 bridge_out: en 503 remote 504 }; 505 }; 506 507 port@1 { 508 reg = <1>; 509 510 bridge_in: end 511 remote 512 }; 513 }; 514 }; 515 }; 516 }; 517 518 &i2c_8 { 519 status = "okay"; 520 /* used by HDMI PHY */ 521 samsung,i2c-sda-delay = <100>; 522 samsung,i2c-max-bus-freq = <378000>; 523 }; 524 525 &i2s0 { 526 assigned-clocks = <&i2s0 CLK_I2S_RCLK_ 527 assigned-clock-parents = <&clock_audss 528 status = "okay"; 529 }; 530 531 &mali { 532 mali-supply = <&buck4_reg>; 533 status = "okay"; 534 }; 535 536 &mixer { 537 status = "okay"; 538 }; 539 540 /* eMMC flash */ 541 &mmc_0 { 542 status = "okay"; 543 non-removable; 544 samsung,dw-mshc-ciu-div = <3>; 545 samsung,dw-mshc-sdr-timing = <2 3>; 546 samsung,dw-mshc-ddr-timing = <1 2>; 547 pinctrl-names = "default"; 548 pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_cd 549 bus-width = <8>; 550 cap-mmc-highspeed; 551 mmc-ddr-1_8v; 552 }; 553 554 /* uSD card */ 555 &mmc_2 { 556 status = "okay"; 557 card-detect-delay = <200>; 558 samsung,dw-mshc-ciu-div = <3>; 559 samsung,dw-mshc-sdr-timing = <2 3>; 560 samsung,dw-mshc-ddr-timing = <1 2>; 561 pinctrl-names = "default"; 562 pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd 563 bus-width = <4>; 564 wp-gpios = <&gpc2 1 GPIO_ACTIVE_HIGH>; 565 cap-sd-highspeed; 566 }; 567 568 /* 569 * On Snow we've got SIP WiFi and so can keep 570 * reduce EMI. 571 * 572 * WiFi SDIO module 573 */ 574 &mmc_3 { 575 status = "okay"; 576 non-removable; 577 cap-sdio-irq; 578 keep-power-in-suspend; 579 samsung,dw-mshc-ciu-div = <3>; 580 samsung,dw-mshc-sdr-timing = <2 3>; 581 samsung,dw-mshc-ddr-timing = <1 2>; 582 pinctrl-names = "default"; 583 pinctrl-0 = <&sd3_clk &sd3_cmd &sd3_bu 584 bus-width = <4>; 585 cap-sd-highspeed; 586 mmc-pwrseq = <&mmc3_pwrseq>; 587 }; 588 589 &pinctrl_0 { 590 wifi_en: wifi-en-pins { 591 samsung,pins = "gpx0-1"; 592 samsung,pin-function = <EXYNOS 593 samsung,pin-pud = <EXYNOS_PIN_ 594 samsung,pin-drv = <EXYNOS4_PIN 595 }; 596 597 wifi_rst: wifi-rst-pins { 598 samsung,pins = "gpx0-2"; 599 samsung,pin-function = <EXYNOS 600 samsung,pin-pud = <EXYNOS_PIN_ 601 samsung,pin-drv = <EXYNOS4_PIN 602 }; 603 604 power_key_irq: power-key-irq-pins { 605 samsung,pins = "gpx1-3"; 606 samsung,pin-function = <EXYNOS 607 samsung,pin-pud = <EXYNOS_PIN_ 608 samsung,pin-drv = <EXYNOS4_PIN 609 }; 610 611 ec_irq: ec-irq-pins { 612 samsung,pins = "gpx1-6"; 613 samsung,pin-function = <EXYNOS 614 samsung,pin-pud = <EXYNOS_PIN_ 615 samsung,pin-drv = <EXYNOS4_PIN 616 }; 617 618 tps65090_irq: tps65090-irq-pins { 619 samsung,pins = "gpx2-6"; 620 samsung,pin-function = <EXYNOS 621 samsung,pin-pud = <EXYNOS_PIN_ 622 samsung,pin-drv = <EXYNOS4_PIN 623 }; 624 625 usb3_vbus_en: usb3-vbus-en-pins { 626 samsung,pins = "gpx2-7"; 627 samsung,pin-function = <EXYNOS 628 samsung,pin-pud = <EXYNOS_PIN_ 629 samsung,pin-drv = <EXYNOS4_PIN 630 }; 631 632 max77686_irq: max77686-irq-pins { 633 samsung,pins = "gpx3-2"; 634 samsung,pin-function = <EXYNOS 635 samsung,pin-pud = <EXYNOS_PIN_ 636 samsung,pin-drv = <EXYNOS4_PIN 637 }; 638 639 lid_irq: lid-irq-pins { 640 samsung,pins = "gpx3-5"; 641 samsung,pin-function = <EXYNOS 642 samsung,pin-pud = <EXYNOS_PIN_ 643 samsung,pin-drv = <EXYNOS4_PIN 644 }; 645 646 hdmi_hpd_irq: hdmi-hpd-irq-pins { 647 samsung,pins = "gpx3-7"; 648 samsung,pin-function = <EXYNOS 649 samsung,pin-pud = <EXYNOS_PIN_ 650 samsung,pin-drv = <EXYNOS4_PIN 651 }; 652 }; 653 654 &pinctrl_1 { 655 arb_their_claim: arb-their-claim-pins 656 samsung,pins = "gpe0-4"; 657 samsung,pin-function = <EXYNOS 658 samsung,pin-pud = <EXYNOS_PIN_ 659 samsung,pin-drv = <EXYNOS4_PIN 660 }; 661 662 arb_our_claim: arb-our-claim-pins { 663 samsung,pins = "gpf0-3"; 664 samsung,pin-function = <EXYNOS 665 samsung,pin-pud = <EXYNOS_PIN_ 666 samsung,pin-drv = <EXYNOS4_PIN 667 }; 668 }; 669 670 &pmu_system_controller { 671 assigned-clocks = <&pmu_system_control 672 assigned-clock-parents = <&clock CLK_F 673 }; 674 675 &rtc { 676 status = "okay"; 677 clocks = <&clock CLK_RTC>, <&max77686 678 clock-names = "rtc", "rtc_src"; 679 }; 680 681 &sd3_bus4 { 682 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1 683 }; 684 685 &sd3_clk { 686 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1 687 }; 688 689 &sd3_cmd { 690 samsung,pin-pud = <EXYNOS_PIN_PULL_UP> 691 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1 692 }; 693 694 &spi_1 { 695 status = "okay"; 696 samsung,spi-src-clk = <0>; 697 num-cs = <1>; 698 cs-gpios = <&gpa2 5 GPIO_ACTIVE_HIGH>; 699 }; 700 701 &usbdrd { 702 vdd10-supply = <&ldo15_reg>; 703 vdd33-supply = <&ldo12_reg>; 704 }; 705 706 &usbdrd_dwc3 { 707 dr_mode = "host"; 708 }; 709 710 &usbdrd_phy { 711 vbus-supply = <&usb3_vbus_reg>; 712 }; 713 714 #include "../cros-ec-keyboard.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.