1/* 2 * Copyright 2011 ST-Ericsson AB 3 * 4 * The code contained herein is licensed under the GNU General Public 5 * License. You may obtain a copy of the GNU General Public License 6 * Version 2 or later at the following locations: 7 * 8 * http://www.opensource.org/licenses/gpl-license.html 9 * http://www.gnu.org/copyleft/gpl.html 10 */ 11 12/dts-v1/; 13#include "ste-dbx5x0.dtsi" 14#include "ste-href-ab8500.dtsi" 15#include "ste-href-family-pinctrl.dtsi" 16 17/ { 18 model = "Calao Systems Snowball platform with device tree"; 19 compatible = "calaosystems,snowball-a9500", "st-ericsson,u9500"; 20 21 /* This stablilizes the serial port enumeration */ 22 aliases { 23 serial0 = &ux500_serial0; 24 serial1 = &ux500_serial1; 25 serial2 = &ux500_serial2; 26 }; 27 28 memory { 29 reg = <0x00000000 0x20000000>; 30 }; 31 32 en_3v3_reg: en_3v3 { 33 compatible = "regulator-fixed"; 34 regulator-name = "en-3v3-fixed-supply"; 35 regulator-min-microvolt = <3300000>; 36 regulator-max-microvolt = <3300000>; 37 /* AB8500 GPIOs start from 1 - offset 25 is GPIO26. */ 38 gpio = <&ab8500_gpio 25 0x4>; 39 startup-delay-us = <5000>; 40 enable-active-high; 41 }; 42 43 gpio_keys { 44 compatible = "gpio-keys"; 45 #address-cells = <1>; 46 #size-cells = <0>; 47 48 button@1 { 49 debounce_interval = <50>; 50 wakeup-source; 51 linux,code = <2>; 52 label = "userpb"; 53 gpios = <&gpio1 0 0x4>; 54 }; 55 button@2 { 56 debounce_interval = <50>; 57 wakeup-source; 58 linux,code = <3>; 59 label = "extkb1"; 60 gpios = <&gpio4 23 0x4>; 61 }; 62 button@3 { 63 debounce_interval = <50>; 64 wakeup-source; 65 linux,code = <4>; 66 label = "extkb2"; 67 gpios = <&gpio4 24 0x4>; 68 }; 69 button@4 { 70 debounce_interval = <50>; 71 wakeup-source; 72 linux,code = <5>; 73 label = "extkb3"; 74 gpios = <&gpio5 1 0x4>; 75 }; 76 button@5 { 77 debounce_interval = <50>; 78 wakeup-source; 79 linux,code = <6>; 80 label = "extkb4"; 81 gpios = <&gpio5 2 0x4>; 82 }; 83 }; 84 85 leds { 86 compatible = "gpio-leds"; 87 pinctrl-names = "default"; 88 pinctrl-0 = <&gpioled_snowball_mode>; 89 used-led { 90 label = "user_led"; 91 gpios = <&gpio4 14 0x4>; 92 default-state = "on"; 93 linux,default-trigger = "heartbeat"; 94 }; 95 }; 96 97 soc { 98 usb_per5@a03e0000 { 99 pinctrl-names = "default", "sleep"; 100 pinctrl-0 = <&musb_default_mode>; 101 pinctrl-1 = <&musb_sleep_mode>; 102 }; 103 104 sound { 105 compatible = "stericsson,snd-soc-mop500"; 106 107 stericsson,cpu-dai = <&msp1 &msp3>; 108 stericsson,audio-codec = <&codec>; 109 }; 110 111 msp0: msp@80123000 { 112 pinctrl-names = "default"; 113 pinctrl-0 = <&msp0_default_mode>; 114 status = "okay"; 115 }; 116 117 msp1: msp@80124000 { 118 pinctrl-names = "default"; 119 pinctrl-0 = <&msp1_default_mode>; 120 status = "okay"; 121 }; 122 123 msp2: msp@80117000 { 124 pinctrl-names = "default"; 125 pinctrl-0 = <&msp2_default_mode>; 126 }; 127 128 msp3: msp@80125000 { 129 status = "okay"; 130 }; 131 132 external-bus@50000000 { 133 status = "okay"; 134 135 ethernet@0 { 136 compatible = "smsc,lan9115"; 137 reg = <0 0x10000>; 138 interrupts = <12 IRQ_TYPE_EDGE_RISING>; 139 interrupt-parent = <&gpio4>; 140 vdd33a-supply = <&en_3v3_reg>; 141 vddvario-supply = <&db8500_vape_reg>; 142 pinctrl-names = "default"; 143 pinctrl-0 = <ð_snowball_mode>; 144 145 reg-shift = <1>; 146 reg-io-width = <2>; 147 smsc,force-internal-phy; 148 smsc,irq-active-high; 149 smsc,irq-push-pull; 150 151 clocks = <&prcc_pclk 3 0>; 152 }; 153 }; 154 155 vmmci: regulator-gpio { 156 compatible = "regulator-gpio"; 157 158 gpios = <&gpio7 4 0x4>; 159 enable-gpio = <&gpio6 25 0x4>; 160 161 regulator-min-microvolt = <1800000>; 162 regulator-max-microvolt = <2900000>; 163 regulator-name = "mmci-reg"; 164 regulator-type = "voltage"; 165 166 startup-delay-us = <100>; 167 enable-active-high; 168 169 states = <1800000 0x1 170 2900000 0x0>; 171 }; 172 173 // External Micro SD slot 174 sdi0_per1@80126000 { 175 arm,primecell-periphid = <0x10480180>; 176 max-frequency = <100000000>; 177 bus-width = <4>; 178 cap-mmc-highspeed; 179 vmmc-supply = <&ab8500_ldo_aux3_reg>; 180 vqmmc-supply = <&vmmci>; 181 pinctrl-names = "default", "sleep"; 182 pinctrl-0 = <&sdi0_default_mode>; 183 pinctrl-1 = <&sdi0_sleep_mode>; 184 185 cd-gpios = <&gpio6 26 0x4>; // 218 186 cd-inverted; 187 188 status = "okay"; 189 }; 190 191 // WLAN SDIO channel 192 sdi1_per2@80118000 { 193 arm,primecell-periphid = <0x10480180>; 194 max-frequency = <100000000>; 195 bus-width = <4>; 196 pinctrl-names = "default", "sleep"; 197 pinctrl-0 = <&sdi1_default_mode>; 198 pinctrl-1 = <&sdi1_sleep_mode>; 199 200 status = "okay"; 201 }; 202 203 // Unused PoP eMMC - register and put it to sleep by default */ 204 sdi2_per3@80005000 { 205 arm,primecell-periphid = <0x10480180>; 206 pinctrl-names = "default"; 207 pinctrl-0 = <&sdi2_sleep_mode>; 208 209 status = "okay"; 210 }; 211 212 // On-board eMMC 213 sdi4_per2@80114000 { 214 arm,primecell-periphid = <0x10480180>; 215 max-frequency = <100000000>; 216 bus-width = <8>; 217 cap-mmc-highspeed; 218 vmmc-supply = <&ab8500_ldo_aux2_reg>; 219 pinctrl-names = "default", "sleep"; 220 pinctrl-0 = <&sdi4_default_mode>; 221 pinctrl-1 = <&sdi4_sleep_mode>; 222 223 status = "okay"; 224 }; 225 226 uart@80120000 { 227 pinctrl-names = "default", "sleep"; 228 pinctrl-0 = <&uart0_default_mode>; 229 pinctrl-1 = <&uart0_sleep_mode>; 230 status = "okay"; 231 }; 232 233 /* This UART is unused and thus left disabled */ 234 uart@80121000 { 235 pinctrl-names = "default", "sleep"; 236 pinctrl-0 = <&uart1_default_mode>; 237 pinctrl-1 = <&uart1_sleep_mode>; 238 }; 239 240 uart@80007000 { 241 pinctrl-names = "default", "sleep"; 242 pinctrl-0 = <&uart2_default_mode>; 243 pinctrl-1 = <&uart2_sleep_mode>; 244 status = "okay"; 245 }; 246 247 i2c@80004000 { 248 pinctrl-names = "default","sleep"; 249 pinctrl-0 = <&i2c0_default_mode>; 250 pinctrl-1 = <&i2c0_sleep_mode>; 251 }; 252 253 i2c@80122000 { 254 pinctrl-names = "default","sleep"; 255 pinctrl-0 = <&i2c1_default_mode>; 256 pinctrl-1 = <&i2c1_sleep_mode>; 257 }; 258 259 i2c@80128000 { 260 pinctrl-names = "default","sleep"; 261 pinctrl-0 = <&i2c2_default_mode>; 262 pinctrl-1 = <&i2c2_sleep_mode>; 263 lsm303dlh@18 { 264 /* Accelerometer */ 265 compatible = "st,lsm303dlh-accel"; 266 st,drdy-int-pin = <1>; 267 reg = <0x18>; 268 vdd-supply = <&ab8500_ldo_aux1_reg>; 269 vddio-supply = <&db8500_vsmps2_reg>; 270 pinctrl-names = "default"; 271 pinctrl-0 = <&accel_snowball_mode>; 272 interrupt-parent = <&gpio5>; 273 interrupts = <3 IRQ_TYPE_EDGE_RISING>, /* INT1 */ 274 <4 IRQ_TYPE_EDGE_RISING>; /* INT2 */ 275 }; 276 lsm303dlh@1e { 277 /* Magnetometer */ 278 compatible = "st,lsm303dlh-magn"; 279 reg = <0x1e>; 280 vdd-supply = <&ab8500_ldo_aux1_reg>; 281 vddio-supply = <&db8500_vsmps2_reg>; 282 pinctrl-names = "default"; 283 pinctrl-0 = <&magneto_snowball_mode>; 284 gpios = <&gpio5 5 0x4>; /* DRDY line */ 285 }; 286 l3g4200d@68 { 287 /* Gyroscope */ 288 compatible = "st,l3g4200d-gyro"; 289 st,drdy-int-pin = <2>; 290 reg = <0x68>; 291 vdd-supply = <&ab8500_ldo_aux1_reg>; 292 vddio-supply = <&db8500_vsmps2_reg>; 293 pinctrl-names = "default"; 294 pinctrl-0 = <&gyro_snowball_mode>; 295 gpios = <&gpio5 6 0x4>; /* DRDY line */ 296 interrupt-parent = <&gpio5>; 297 interrupts = <9 IRQ_TYPE_EDGE_RISING>; /* INT1 */ 298 }; 299 lsp001wm@5c { 300 /* Barometer/pressure sensor */ 301 compatible = "st,lps001wp-press"; 302 reg = <0x5c>; 303 vdd-supply = <&ab8500_ldo_aux1_reg>; 304 vddio-supply = <&db8500_vsmps2_reg>; 305 }; 306 }; 307 308 i2c@80110000 { 309 pinctrl-names = "default","sleep"; 310 pinctrl-0 = <&i2c3_default_mode>; 311 pinctrl-1 = <&i2c3_sleep_mode>; 312 }; 313 314 ssp@80002000 { 315 pinctrl-names = "default"; 316 pinctrl-0 = <&ssp0_snowball_mode>; 317 }; 318 319 cpufreq-cooling { 320 status = "okay"; 321 }; 322 323 prcmu@80157000 { 324 cpufreq { 325 status = "okay"; 326 }; 327 328 thermal@801573c0 { 329 num-trips = <4>; 330 331 trip0-temp = <70000>; 332 trip0-type = "active"; 333 trip0-cdev-num = <1>; 334 trip0-cdev-name0 = "thermal-cpufreq-0"; 335 336 trip1-temp = <75000>; 337 trip1-type = "active"; 338 trip1-cdev-num = <1>; 339 trip1-cdev-name0 = "thermal-cpufreq-0"; 340 341 trip2-temp = <80000>; 342 trip2-type = "active"; 343 trip2-cdev-num = <1>; 344 trip2-cdev-name0 = "thermal-cpufreq-0"; 345 346 trip3-temp = <85000>; 347 trip3-type = "critical"; 348 trip3-cdev-num = <0>; 349 350 status = "okay"; 351 }; 352 353 ab8500 { 354 ab8500-gpio { 355 compatible = "stericsson,ab8500-gpio"; 356 }; 357 358 ext_regulators: ab8500-ext-regulators { 359 ab8500_ext1_reg: ab8500_ext1 { 360 regulator-name = "ab8500-ext-supply1"; 361 }; 362 363 ab8500_ext2_reg_reg: ab8500_ext2 { 364 regulator-name = "ab8500-ext-supply2"; 365 }; 366 367 ab8500_ext3_reg_reg: ab8500_ext3 { 368 regulator-name = "ab8500-ext-supply3"; 369 }; 370 }; 371 372 ab8500-regulators { 373 ab8500_ldo_aux1_reg: ab8500_ldo_aux1 { 374 regulator-name = "V-DISPLAY"; 375 }; 376 377 ab8500_ldo_aux2_reg: ab8500_ldo_aux2 { 378 regulator-name = "V-eMMC1"; 379 }; 380 381 ab8500_ldo_aux3_reg: ab8500_ldo_aux3 { 382 regulator-name = "V-MMC-SD"; 383 }; 384 385 ab8500_ldo_intcore_reg: ab8500_ldo_intcore { 386 regulator-name = "V-INTCORE"; 387 }; 388 389 ab8500_ldo_tvout_reg: ab8500_ldo_tvout { 390 regulator-name = "V-TVOUT"; 391 }; 392 393 ab8500_ldo_usb_reg: ab8500_ldo_usb { 394 regulator-name = "dummy"; 395 }; 396 397 ab8500_ldo_audio_reg: ab8500_ldo_audio { 398 regulator-name = "V-AUD"; 399 }; 400 401 ab8500_ldo_anamic1_reg: ab8500_ldo_anamic1 { 402 regulator-name = "V-AMIC1"; 403 }; 404 405 ab8500_ldo_anamic2_reg: ab8500_ldo_anamic2 { 406 regulator-name = "V-AMIC2"; 407 }; 408 409 ab8500_ldo_dmic_reg: ab8500_ldo_dmic { 410 regulator-name = "V-DMIC"; 411 }; 412 413 ab8500_ldo_ana_reg: ab8500_ldo_ana { 414 regulator-name = "V-CSI/DSI"; 415 }; 416 }; 417 }; 418 }; 419 420 pinctrl { 421 /* 422 * Set this up using hogs, as time goes by and as seems fit, these 423 * can be moved over to being controlled by respective device. 424 */ 425 pinctrl-names = "default"; 426 pinctrl-0 = <&gbf_snowball_mode>, 427 <&wlan_snowball_mode>; 428 429 ethernet { 430 /* 431 * Mux in "SM" which is used for the 432 * SMSC911x Ethernet adapter 433 */ 434 eth_snowball_mode: eth_snowball { 435 snowball_mux { 436 function = "sm"; 437 groups = "sm_b_1"; 438 }; 439 /* LAN IRQ pin */ 440 snowball_cfg1 { 441 pins = "GPIO140_B11"; 442 ste,config = <&in_nopull>; 443 }; 444 /* LAN reset pin */ 445 snowball_cfg2 { 446 pins = "GPIO141_C12"; 447 ste,config = <&gpio_out_hi>; 448 }; 449 450 }; 451 }; 452 sdi0 { 453 sdi0_default_mode: sdi0_default { 454 snowball_mux { 455 function = "mc0"; 456 groups = "mc0dat31dir_a_1"; 457 }; 458 snowball_cfg1 { 459 pins = "GPIO21_AB3"; /* DAT31DIR */ 460 ste,config = <&out_hi>; 461 }; 462 /* SD card detect GPIO pin, extend default state */ 463 snowball_cfg2 { 464 pins = "GPIO218_AH11"; 465 ste,config = <&gpio_in_pu>; 466 }; 467 /* VMMCI level-shifter enable */ 468 snowball_cfg3 { 469 pins = "GPIO217_AH12"; 470 ste,config = <&gpio_out_lo>; 471 }; 472 /* VMMCI level-shifter voltage select */ 473 snowball_cfg4 { 474 pins = "GPIO228_AJ6"; 475 ste,config = <&gpio_out_hi>; 476 }; 477 }; 478 }; 479 ssp0 { 480 ssp0_snowball_mode: ssp0_snowball_default { 481 snowball_mux { 482 function = "ssp0"; 483 groups = "ssp0_a_1"; 484 }; 485 snowball_cfg1 { 486 pins = "GPIO144_B13"; /* FRM */ 487 ste,config = <&gpio_out_hi>; 488 }; 489 snowball_cfg2 { 490 pins = "GPIO145_C13"; /* RXD */ 491 ste,config = <&in_pd>; 492 }; 493 snowball_cfg3 { 494 pins = 495 "GPIO146_D13", /* TXD */ 496 "GPIO143_D12"; /* CLK */ 497 ste,config = <&out_lo>; 498 }; 499 500 }; 501 }; 502 gpio_led { 503 gpioled_snowball_mode: gpioled_default { 504 snowball_cfg1 { 505 pins = "GPIO142_C11"; 506 ste,config = <&gpio_out_hi>; 507 }; 508 509 }; 510 }; 511 accelerometer { 512 accel_snowball_mode: accel_snowball { 513 /* Accelerometer lines */ 514 snowball_cfg1 { 515 pins = 516 "GPIO163_C20", /* ACCEL_IRQ1 */ 517 "GPIO164_B21"; /* ACCEL_IRQ2 */ 518 ste,config = <&gpio_in_pu>; 519 }; 520 }; 521 }; 522 gyro { 523 gyro_snowball_mode: gyro_snowball { 524 snowball_cfg1 { 525 pins = 526 "GPIO166_A22", /* DRDY */ 527 "GPIO169_D22"; /* INT */ 528 ste,config = <&gpio_in_pu>; 529 }; 530 }; 531 }; 532 magnetometer { 533 magneto_snowball_mode: magneto_snowball { 534 snowball_cfg1 { 535 pins = "GPIO165_C21"; /* MAG_DRDY */ 536 ste,config = <&gpio_in_pu>; 537 }; 538 }; 539 }; 540 gbf { 541 gbf_snowball_mode: gbf_snowball { 542 /* 543 * GBF (GPS, Bluetooth, FM-radio) interface, 544 * pull low to reset state 545 */ 546 snowball_cfg1 { 547 pins = "GPIO171_D23"; /* GBF_ENA_RESET */ 548 ste,config = <&gpio_out_lo>; 549 }; 550 }; 551 }; 552 wlan { 553 wlan_snowball_mode: wlan_snowball { 554 /* 555 * Activate this mode with the WLAN chip. 556 * These are plain GPIO pins used by WLAN 557 */ 558 snowball_cfg1 { 559 pins = 560 "GPIO161_D21", /* WLAN_PMU_EN */ 561 "GPIO215_AH13"; /* WLAN_ENA */ 562 ste,config = <&gpio_out_lo>; 563 }; 564 snowball_cfg2 { 565 pins = "GPIO216_AG12"; /* WLAN_IRQ */ 566 ste,config = <&gpio_in_pu>; 567 }; 568 }; 569 }; 570 }; 571 572 mcde@a0350000 { 573 pinctrl-names = "default", "sleep"; 574 pinctrl-0 = <&lcd_default_mode>; 575 pinctrl-1 = <&lcd_sleep_mode>; 576 }; 577 }; 578}; 579