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