Linux Audio

Check our new training course

In-person Linux kernel drivers training

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