Linux Audio

Check our new training course

Open-source upstreaming

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