1/* 2 * Google Spring board device tree source 3 * 4 * Copyright (c) 2013 Google, Inc 5 * Copyright (c) 2014 SUSE LINUX Products GmbH 6 * 7 * This program is free software; you can redistribute it and/or modify 8 * it under the terms of the GNU General Public License version 2 as 9 * published by the Free Software Foundation. 10 */ 11 12/dts-v1/; 13#include <dt-bindings/gpio/gpio.h> 14#include <dt-bindings/interrupt-controller/irq.h> 15#include <dt-bindings/input/input.h> 16#include "exynos5250.dtsi" 17 18/ { 19 model = "Google Spring"; 20 compatible = "google,spring", "samsung,exynos5250", "samsung,exynos5"; 21 22 memory { 23 reg = <0x40000000 0x80000000>; 24 }; 25 26 chosen { 27 bootargs = "console=tty1"; 28 stdout-path = "serial3:115200n8"; 29 }; 30 31 gpio-keys { 32 compatible = "gpio-keys"; 33 pinctrl-names = "default"; 34 pinctrl-0 = <&power_key_irq>, <&lid_irq>; 35 36 power { 37 label = "Power"; 38 gpios = <&gpx1 3 GPIO_ACTIVE_LOW>; 39 linux,code = <KEY_POWER>; 40 gpio-key,wakeup; 41 }; 42 43 lid-switch { 44 label = "Lid"; 45 gpios = <&gpx3 5 GPIO_ACTIVE_LOW>; 46 linux,input-type = <5>; /* EV_SW */ 47 linux,code = <0>; /* SW_LID */ 48 debounce-interval = <1>; 49 gpio-key,wakeup; 50 }; 51 }; 52 53 usb-hub { 54 compatible = "smsc,usb3503a"; 55 reset-gpios = <&gpe1 0 GPIO_ACTIVE_LOW>; 56 pinctrl-names = "default"; 57 pinctrl-0 = <&hsic_reset>; 58 }; 59 60 fixed-rate-clocks { 61 xxti { 62 compatible = "samsung,clock-xxti"; 63 clock-frequency = <24000000>; 64 }; 65 }; 66}; 67 68&dp { 69 status = "okay"; 70 pinctrl-names = "default"; 71 pinctrl-0 = <&dp_hpd_gpio>; 72 samsung,color-space = <0>; 73 samsung,dynamic-range = <0>; 74 samsung,ycbcr-coeff = <0>; 75 samsung,color-depth = <1>; 76 samsung,link-rate = <0x0a>; 77 samsung,lane-count = <1>; 78 samsung,hpd-gpio = <&gpc3 0 GPIO_ACTIVE_HIGH>; 79}; 80 81&ehci { 82 samsung,vbus-gpio = <&gpx1 1 GPIO_ACTIVE_HIGH>; 83}; 84 85&fimd { 86 status = "okay"; 87 samsung,invert-vclk; 88}; 89 90&hdmi { 91 hpd-gpio = <&gpx3 7 GPIO_ACTIVE_HIGH>; 92 pinctrl-names = "default"; 93 pinctrl-0 = <&hdmi_hpd_irq>; 94 phy = <&hdmiphy>; 95 ddc = <&i2c_2>; 96 hdmi-en-supply = <&ldo8_reg>; 97 vdd-supply = <&ldo8_reg>; 98 vdd_osc-supply = <&ldo10_reg>; 99 vdd_pll-supply = <&ldo8_reg>; 100}; 101 102&i2c_0 { 103 status = "okay"; 104 samsung,i2c-sda-delay = <100>; 105 samsung,i2c-max-bus-freq = <378000>; 106 107 s5m8767-pmic@66 { 108 compatible = "samsung,s5m8767-pmic"; 109 reg = <0x66>; 110 interrupt-parent = <&gpx3>; 111 interrupts = <2 IRQ_TYPE_NONE>; 112 pinctrl-names = "default"; 113 pinctrl-0 = <&s5m8767_irq &s5m8767_dvs &s5m8767_ds>; 114 wakeup-source; 115 116 s5m8767,pmic-buck-dvs-gpios = <&gpd1 0 GPIO_ACTIVE_LOW>, /* DVS1 */ 117 <&gpd1 1 GPIO_ACTIVE_LOW>, /* DVS2 */ 118 <&gpd1 2 GPIO_ACTIVE_LOW>; /* DVS3 */ 119 120 s5m8767,pmic-buck-ds-gpios = <&gpx2 3 GPIO_ACTIVE_LOW>, /* SET1 */ 121 <&gpx2 4 GPIO_ACTIVE_LOW>, /* SET2 */ 122 <&gpx2 5 GPIO_ACTIVE_LOW>; /* SET3 */ 123 124 /* 125 * The following arrays of DVS voltages are not used, since we are 126 * not using GPIOs to control PMIC bucks, but they must be defined 127 * to please the driver. 128 */ 129 s5m8767,pmic-buck2-dvs-voltage = <1350000>, <1300000>, 130 <1250000>, <1200000>, 131 <1150000>, <1100000>, 132 <1000000>, <950000>; 133 134 s5m8767,pmic-buck3-dvs-voltage = <1100000>, <1100000>, 135 <1100000>, <1100000>, 136 <1000000>, <1000000>, 137 <1000000>, <1000000>; 138 139 s5m8767,pmic-buck4-dvs-voltage = <1200000>, <1200000>, 140 <1200000>, <1200000>, 141 <1200000>, <1200000>, 142 <1200000>, <1200000>; 143 144 clocks { 145 compatible = "samsung,s5m8767-clk"; 146 #clock-cells = <1>; 147 clock-output-names = "en32khz_ap", 148 "en32khz_cp", 149 "en32khz_bt"; 150 }; 151 152 regulators { 153 ldo4_reg: LDO4 { 154 regulator-name = "P1.0V_LDO_OUT4"; 155 regulator-min-microvolt = <1000000>; 156 regulator-max-microvolt = <1000000>; 157 regulator-always-on; 158 op_mode = <0>; 159 }; 160 161 ldo5_reg: LDO5 { 162 regulator-name = "P1.0V_LDO_OUT5"; 163 regulator-min-microvolt = <1000000>; 164 regulator-max-microvolt = <1000000>; 165 regulator-always-on; 166 op_mode = <0>; 167 }; 168 169 ldo6_reg: LDO6 { 170 regulator-name = "vdd_mydp"; 171 regulator-min-microvolt = <1000000>; 172 regulator-max-microvolt = <1000000>; 173 regulator-always-on; 174 op_mode = <3>; 175 }; 176 177 ldo7_reg: LDO7 { 178 regulator-name = "P1.1V_LDO_OUT7"; 179 regulator-min-microvolt = <1100000>; 180 regulator-max-microvolt = <1100000>; 181 regulator-always-on; 182 op_mode = <3>; 183 }; 184 185 ldo8_reg: LDO8 { 186 regulator-name = "P1.0V_LDO_OUT8"; 187 regulator-min-microvolt = <1000000>; 188 regulator-max-microvolt = <1000000>; 189 regulator-always-on; 190 op_mode = <3>; 191 }; 192 193 ldo10_reg: LDO10 { 194 regulator-name = "P1.8V_LDO_OUT10"; 195 regulator-min-microvolt = <1800000>; 196 regulator-max-microvolt = <1800000>; 197 regulator-always-on; 198 op_mode = <3>; 199 }; 200 201 ldo11_reg: LDO11 { 202 regulator-name = "P1.8V_LDO_OUT11"; 203 regulator-min-microvolt = <1800000>; 204 regulator-max-microvolt = <1800000>; 205 regulator-always-on; 206 op_mode = <0>; 207 }; 208 209 ldo12_reg: LDO12 { 210 regulator-name = "P3.0V_LDO_OUT12"; 211 regulator-min-microvolt = <3000000>; 212 regulator-max-microvolt = <3000000>; 213 regulator-always-on; 214 op_mode = <3>; 215 }; 216 217 ldo13_reg: LDO13 { 218 regulator-name = "P1.8V_LDO_OUT13"; 219 regulator-min-microvolt = <1800000>; 220 regulator-max-microvolt = <1800000>; 221 regulator-always-on; 222 op_mode = <0>; 223 }; 224 225 ldo14_reg: LDO14 { 226 regulator-name = "P1.8V_LDO_OUT14"; 227 regulator-min-microvolt = <1800000>; 228 regulator-max-microvolt = <1800000>; 229 regulator-always-on; 230 op_mode = <3>; 231 }; 232 233 ldo15_reg: LDO15 { 234 regulator-name = "P1.0V_LDO_OUT15"; 235 regulator-min-microvolt = <1000000>; 236 regulator-max-microvolt = <1000000>; 237 regulator-always-on; 238 op_mode = <3>; 239 }; 240 241 ldo16_reg: LDO16 { 242 regulator-name = "P1.8V_LDO_OUT16"; 243 regulator-min-microvolt = <1800000>; 244 regulator-max-microvolt = <1800000>; 245 regulator-always-on; 246 op_mode = <3>; 247 }; 248 249 ldo17_reg: LDO17 { 250 regulator-name = "P2.8V_LDO_OUT17"; 251 regulator-min-microvolt = <2800000>; 252 regulator-max-microvolt = <2800000>; 253 regulator-always-on; 254 op_mode = <0>; 255 }; 256 257 ldo25_reg: LDO25 { 258 regulator-name = "vdd_bridge"; 259 regulator-min-microvolt = <1200000>; 260 regulator-max-microvolt = <1200000>; 261 regulator-always-on; 262 op_mode = <1>; 263 }; 264 265 buck1_reg: BUCK1 { 266 regulator-name = "vdd_mif"; 267 regulator-min-microvolt = <950000>; 268 regulator-max-microvolt = <1300000>; 269 regulator-always-on; 270 regulator-boot-on; 271 op_mode = <3>; 272 }; 273 274 buck2_reg: BUCK2 { 275 regulator-name = "vdd_arm"; 276 regulator-min-microvolt = <850000>; 277 regulator-max-microvolt = <1350000>; 278 regulator-always-on; 279 regulator-boot-on; 280 op_mode = <3>; 281 }; 282 283 buck3_reg: BUCK3 { 284 regulator-name = "vdd_int"; 285 regulator-min-microvolt = <900000>; 286 regulator-max-microvolt = <1200000>; 287 regulator-always-on; 288 regulator-boot-on; 289 op_mode = <3>; 290 }; 291 292 buck4_reg: BUCK4 { 293 regulator-name = "vdd_g3d"; 294 regulator-min-microvolt = <850000>; 295 regulator-max-microvolt = <1300000>; 296 regulator-boot-on; 297 op_mode = <3>; 298 }; 299 300 buck5_reg: BUCK5 { 301 regulator-name = "P1.8V_BUCK_OUT5"; 302 regulator-min-microvolt = <1800000>; 303 regulator-max-microvolt = <1800000>; 304 regulator-always-on; 305 regulator-boot-on; 306 op_mode = <1>; 307 }; 308 309 buck6_reg: BUCK6 { 310 regulator-name = "P1.2V_BUCK_OUT6"; 311 regulator-min-microvolt = <1200000>; 312 regulator-max-microvolt = <1200000>; 313 regulator-always-on; 314 regulator-boot-on; 315 op_mode = <0>; 316 }; 317 318 buck9_reg: BUCK9 { 319 regulator-name = "vdd_ummc"; 320 regulator-min-microvolt = <950000>; 321 regulator-max-microvolt = <3000000>; 322 regulator-always-on; 323 regulator-boot-on; 324 op_mode = <3>; 325 }; 326 }; 327 }; 328}; 329 330&i2c_1 { 331 status = "okay"; 332 samsung,i2c-sda-delay = <100>; 333 samsung,i2c-max-bus-freq = <378000>; 334 335 trackpad@4b { 336 compatible = "atmel,maxtouch"; 337 reg = <0x4b>; 338 interrupt-parent = <&gpx1>; 339 interrupts = <2 IRQ_TYPE_EDGE_FALLING>; 340 pinctrl-names = "default"; 341 pinctrl-0 = <&trackpad_irq>; 342 linux,gpio-keymap = <KEY_RESERVED 343 KEY_RESERVED 344 KEY_RESERVED 345 KEY_RESERVED 346 KEY_RESERVED 347 BTN_LEFT>; 348 wakeup-source; 349 }; 350}; 351 352/* 353 * Disabled pullups since external part has its own pullups and 354 * double-pulling gets us out of spec in some cases. 355 */ 356&i2c2_bus { 357 samsung,pin-pud = <0>; 358}; 359 360&i2c_2 { 361 status = "okay"; 362 samsung,i2c-sda-delay = <100>; 363 samsung,i2c-max-bus-freq = <66000>; 364 365 hdmiddc@50 { 366 compatible = "samsung,exynos4210-hdmiddc"; 367 reg = <0x50>; 368 }; 369}; 370 371&i2c_3 { 372 status = "okay"; 373 samsung,i2c-sda-delay = <100>; 374 samsung,i2c-max-bus-freq = <66000>; 375}; 376 377&i2c_4 { 378 status = "okay"; 379 samsung,i2c-sda-delay = <100>; 380 samsung,i2c-max-bus-freq = <66000>; 381 382 cros_ec: embedded-controller { 383 compatible = "google,cros-ec-i2c"; 384 reg = <0x1e>; 385 interrupts = <6 IRQ_TYPE_NONE>; 386 interrupt-parent = <&gpx1>; 387 wakeup-source; 388 pinctrl-names = "default"; 389 pinctrl-0 = <&ec_irq>; 390 }; 391}; 392 393&i2c_5 { 394 status = "okay"; 395 samsung,i2c-sda-delay = <100>; 396 samsung,i2c-max-bus-freq = <66000>; 397}; 398 399&i2c_7 { 400 status = "okay"; 401 samsung,i2c-sda-delay = <100>; 402 samsung,i2c-max-bus-freq = <66000>; 403 404 temperature-sensor@4c { 405 compatible = "gmt,g781"; 406 reg = <0x4c>; 407 }; 408}; 409 410&i2c_8 { 411 status = "okay"; 412 samsung,i2c-sda-delay = <100>; 413 samsung,i2c-max-bus-freq = <378000>; 414 415 hdmiphy: hdmiphy@38 { 416 compatible = "samsung,exynos4212-hdmiphy"; 417 reg = <0x38>; 418 }; 419}; 420 421&i2s0 { 422 status = "okay"; 423}; 424 425&mfc { 426 samsung,mfc-r = <0x43000000 0x800000>; 427 samsung,mfc-l = <0x51000000 0x800000>; 428}; 429 430&mmc_0 { 431 status = "okay"; 432 num-slots = <1>; 433 broken-cd; 434 card-detect-delay = <200>; 435 samsung,dw-mshc-ciu-div = <3>; 436 samsung,dw-mshc-sdr-timing = <2 3>; 437 samsung,dw-mshc-ddr-timing = <1 2>; 438 pinctrl-names = "default"; 439 pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_cd &sd0_bus4 &sd0_bus8>; 440 bus-width = <8>; 441 cap-mmc-highspeed; 442}; 443 444/* 445 * On Spring we've got SIP WiFi and so can keep drive strengths low to 446 * reduce EMI. 447 */ 448&mmc_1 { 449 status = "okay"; 450 num-slots = <1>; 451 broken-cd; 452 card-detect-delay = <200>; 453 samsung,dw-mshc-ciu-div = <3>; 454 samsung,dw-mshc-sdr-timing = <2 3>; 455 samsung,dw-mshc-ddr-timing = <1 2>; 456 pinctrl-names = "default"; 457 pinctrl-0 = <&sd1_clk &sd1_cmd &sd1_cd &sd1_bus4>; 458 bus-width = <4>; 459 cap-sd-highspeed; 460}; 461 462&pinctrl_0 { 463 s5m8767_dvs: s5m8767-dvs { 464 samsung,pins = "gpd1-0", "gpd1-1", "gpd1-2"; 465 samsung,pin-function = <0>; 466 samsung,pin-pud = <1>; 467 samsung,pin-drv = <0>; 468 }; 469 470 dp_hpd_gpio: dp-hpd-gpio { 471 samsung,pins = "gpc3-0"; 472 samsung,pin-function = <0>; 473 samsung,pin-pud = <3>; 474 samsung,pin-drv = <0>; 475 }; 476 477 trackpad_irq: trackpad-irq { 478 samsung,pins = "gpx1-2"; 479 samsung,pin-function = <0xf>; 480 samsung,pin-pud = <0>; 481 samsung,pin-drv = <0>; 482 }; 483 484 power_key_irq: power-key-irq { 485 samsung,pins = "gpx1-3"; 486 samsung,pin-function = <0xf>; 487 samsung,pin-pud = <0>; 488 samsung,pin-drv = <0>; 489 }; 490 491 ec_irq: ec-irq { 492 samsung,pins = "gpx1-6"; 493 samsung,pin-function = <0>; 494 samsung,pin-pud = <0>; 495 samsung,pin-drv = <0>; 496 }; 497 498 s5m8767_ds: s5m8767-ds { 499 samsung,pins = "gpx2-3", "gpx2-4", "gpx2-5"; 500 samsung,pin-function = <0>; 501 samsung,pin-pud = <1>; 502 samsung,pin-drv = <0>; 503 }; 504 505 s5m8767_irq: s5m8767-irq { 506 samsung,pins = "gpx3-2"; 507 samsung,pin-function = <0>; 508 samsung,pin-pud = <0>; 509 samsung,pin-drv = <0>; 510 }; 511 512 lid_irq: lid-irq { 513 samsung,pins = "gpx3-5"; 514 samsung,pin-function = <0xf>; 515 samsung,pin-pud = <0>; 516 samsung,pin-drv = <0>; 517 }; 518 519 hdmi_hpd_irq: hdmi-hpd-irq { 520 samsung,pins = "gpx3-7"; 521 samsung,pin-function = <0>; 522 samsung,pin-pud = <1>; 523 samsung,pin-drv = <0>; 524 }; 525}; 526 527&pinctrl_1 { 528 hsic_reset: hsic-reset { 529 samsung,pins = "gpe1-0"; 530 samsung,pin-function = <1>; 531 samsung,pin-pud = <0>; 532 samsung,pin-drv = <0>; 533 }; 534}; 535 536&sd1_bus4 { 537 samsung,pin-drv = <0>; 538}; 539 540&sd1_cd { 541 samsung,pin-drv = <0>; 542}; 543 544&sd1_clk { 545 samsung,pin-drv = <0>; 546}; 547 548&sd1_cmd { 549 samsung,pin-pud = <3>; 550 samsung,pin-drv = <0>; 551}; 552 553&spi_1 { 554 status = "okay"; 555 samsung,spi-src-clk = <0>; 556 num-cs = <1>; 557}; 558 559#include "cros-ec-keyboard.dtsi" 560