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