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