ste-snowball.dts revision 284090
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 gpios = <&gpio7 4 0x4>; 150 enable-gpio = <&gpio6 25 0x4>; 151 }; 152 153 // External Micro SD slot 154 sdi0_per1@80126000 { 155 arm,primecell-periphid = <0x10480180>; 156 max-frequency = <100000000>; 157 bus-width = <4>; 158 cap-mmc-highspeed; 159 vmmc-supply = <&ab8500_ldo_aux3_reg>; 160 vqmmc-supply = <&vmmci>; 161 pinctrl-names = "default", "sleep"; 162 pinctrl-0 = <&sdi0_default_mode>; 163 pinctrl-1 = <&sdi0_sleep_mode>; 164 165 cd-gpios = <&gpio6 26 0x4>; // 218 166 cd-inverted; 167 168 status = "okay"; 169 }; 170 171 // WLAN SDIO channel 172 sdi1_per2@80118000 { 173 arm,primecell-periphid = <0x10480180>; 174 max-frequency = <100000000>; 175 bus-width = <4>; 176 pinctrl-names = "default", "sleep"; 177 pinctrl-0 = <&sdi1_default_mode>; 178 pinctrl-1 = <&sdi1_sleep_mode>; 179 180 status = "okay"; 181 }; 182 183 // Unused PoP eMMC - register and put it to sleep by default */ 184 sdi2_per3@80005000 { 185 arm,primecell-periphid = <0x10480180>; 186 pinctrl-names = "default"; 187 pinctrl-0 = <&sdi2_sleep_mode>; 188 189 status = "okay"; 190 }; 191 192 // On-board eMMC 193 sdi4_per2@80114000 { 194 arm,primecell-periphid = <0x10480180>; 195 max-frequency = <100000000>; 196 bus-width = <8>; 197 cap-mmc-highspeed; 198 vmmc-supply = <&ab8500_ldo_aux2_reg>; 199 pinctrl-names = "default", "sleep"; 200 pinctrl-0 = <&sdi4_default_mode>; 201 pinctrl-1 = <&sdi4_sleep_mode>; 202 203 status = "okay"; 204 }; 205 206 uart@80120000 { 207 pinctrl-names = "default", "sleep"; 208 pinctrl-0 = <&uart0_default_mode>; 209 pinctrl-1 = <&uart0_sleep_mode>; 210 status = "okay"; 211 }; 212 213 uart@80121000 { 214 pinctrl-names = "default", "sleep"; 215 pinctrl-0 = <&uart1_default_mode>; 216 pinctrl-1 = <&uart1_sleep_mode>; 217 status = "okay"; 218 }; 219 220 uart@80007000 { 221 pinctrl-names = "default", "sleep"; 222 pinctrl-0 = <&uart2_default_mode>; 223 pinctrl-1 = <&uart2_sleep_mode>; 224 status = "okay"; 225 }; 226 227 i2c@80004000 { 228 pinctrl-names = "default","sleep"; 229 pinctrl-0 = <&i2c0_default_mode>; 230 pinctrl-1 = <&i2c0_sleep_mode>; 231 }; 232 233 i2c@80122000 { 234 pinctrl-names = "default","sleep"; 235 pinctrl-0 = <&i2c1_default_mode>; 236 pinctrl-1 = <&i2c1_sleep_mode>; 237 }; 238 239 i2c@80128000 { 240 pinctrl-names = "default","sleep"; 241 pinctrl-0 = <&i2c2_default_mode>; 242 pinctrl-1 = <&i2c2_sleep_mode>; 243 lsm303dlh@18 { 244 /* Accelerometer */ 245 compatible = "st,lsm303dlh-accel"; 246 st,drdy-int-pin = <1>; 247 reg = <0x18>; 248 vdd-supply = <&ab8500_ldo_aux1_reg>; 249 vddio-supply = <&db8500_vsmps2_reg>; 250 pinctrl-names = "default"; 251 pinctrl-0 = <&accel_snowball_mode>; 252 }; 253 lsm303dlm@1e { 254 /* Magnetometer */ 255 compatible = "st,lsm303dlm-magn"; 256 reg = <0x1e>; 257 vdd-supply = <&ab8500_ldo_aux1_reg>; 258 vddio-supply = <&db8500_vsmps2_reg>; 259 pinctrl-names = "default"; 260 pinctrl-0 = <&magneto_snowball_mode>; 261 }; 262 l3g4200d@68 { 263 /* Gyroscope */ 264 compatible = "st,l3g4200d-gyro"; 265 st,drdy-int-pin = <2>; 266 reg = <0x68>; 267 vdd-supply = <&ab8500_ldo_aux1_reg>; 268 vddio-supply = <&db8500_vsmps2_reg>; 269 }; 270 lsp001wm@5c { 271 /* Barometer/pressure sensor */ 272 compatible = "st,lps001wp-press"; 273 reg = <0x5c>; 274 vdd-supply = <&ab8500_ldo_aux1_reg>; 275 vddio-supply = <&db8500_vsmps2_reg>; 276 }; 277 }; 278 279 i2c@80110000 { 280 pinctrl-names = "default","sleep"; 281 pinctrl-0 = <&i2c3_default_mode>; 282 pinctrl-1 = <&i2c3_sleep_mode>; 283 }; 284 285 ssp@80002000 { 286 pinctrl-names = "default"; 287 pinctrl-0 = <&ssp0_snowball_mode>; 288 }; 289 290 cpufreq-cooling { 291 status = "okay"; 292 }; 293 294 prcmu@80157000 { 295 cpufreq { 296 status = "okay"; 297 }; 298 299 thermal@801573c0 { 300 num-trips = <4>; 301 302 trip0-temp = <70000>; 303 trip0-type = "active"; 304 trip0-cdev-num = <1>; 305 trip0-cdev-name0 = "thermal-cpufreq-0"; 306 307 trip1-temp = <75000>; 308 trip1-type = "active"; 309 trip1-cdev-num = <1>; 310 trip1-cdev-name0 = "thermal-cpufreq-0"; 311 312 trip2-temp = <80000>; 313 trip2-type = "active"; 314 trip2-cdev-num = <1>; 315 trip2-cdev-name0 = "thermal-cpufreq-0"; 316 317 trip3-temp = <85000>; 318 trip3-type = "critical"; 319 trip3-cdev-num = <0>; 320 321 status = "okay"; 322 }; 323 324 ab8500 { 325 ab8500-gpio { 326 compatible = "stericsson,ab8500-gpio"; 327 }; 328 329 ext_regulators: ab8500-ext-regulators { 330 ab8500_ext1_reg: ab8500_ext1 { 331 regulator-name = "ab8500-ext-supply1"; 332 }; 333 334 ab8500_ext2_reg_reg: ab8500_ext2 { 335 regulator-name = "ab8500-ext-supply2"; 336 }; 337 338 ab8500_ext3_reg_reg: ab8500_ext3 { 339 regulator-name = "ab8500-ext-supply3"; 340 }; 341 }; 342 343 ab8500-regulators { 344 ab8500_ldo_aux1_reg: ab8500_ldo_aux1 { 345 regulator-name = "V-DISPLAY"; 346 }; 347 348 ab8500_ldo_aux2_reg: ab8500_ldo_aux2 { 349 regulator-name = "V-eMMC1"; 350 }; 351 352 ab8500_ldo_aux3_reg: ab8500_ldo_aux3 { 353 regulator-name = "V-MMC-SD"; 354 }; 355 356 ab8500_ldo_intcore_reg: ab8500_ldo_intcore { 357 regulator-name = "V-INTCORE"; 358 }; 359 360 ab8500_ldo_tvout_reg: ab8500_ldo_tvout { 361 regulator-name = "V-TVOUT"; 362 }; 363 364 ab8500_ldo_usb_reg: ab8500_ldo_usb { 365 regulator-name = "dummy"; 366 }; 367 368 ab8500_ldo_audio_reg: ab8500_ldo_audio { 369 regulator-name = "V-AUD"; 370 }; 371 372 ab8500_ldo_anamic1_reg: ab8500_ldo_anamic1 { 373 regulator-name = "V-AMIC1"; 374 }; 375 376 ab8500_ldo_anamic2_reg: ab8500_ldo_anamic2 { 377 regulator-name = "V-AMIC2"; 378 }; 379 380 ab8500_ldo_dmic_reg: ab8500_ldo_dmic { 381 regulator-name = "V-DMIC"; 382 }; 383 384 ab8500_ldo_ana_reg: ab8500_ldo_ana { 385 regulator-name = "V-CSI/DSI"; 386 }; 387 }; 388 }; 389 }; 390 391 pinctrl { 392 /* 393 * Set this up using hogs, as time goes by and as seems fit, these 394 * can be moved over to being controlled by respective device. 395 */ 396 pinctrl-names = "default"; 397 pinctrl-0 = <&gbf_snowball_mode>, 398 <&wlan_snowball_mode>; 399 400 ethernet { 401 /* 402 * Mux in "SM" which is used for the 403 * SMSC911x Ethernet adapter 404 */ 405 eth_snowball_mode: eth_snowball { 406 snowball_mux { 407 function = "sm"; 408 groups = "sm_b_1"; 409 }; 410 /* LAN IRQ pin */ 411 snowball_cfg1 { 412 pins = "GPIO140_B11"; 413 ste,config = <&in_nopull>; 414 }; 415 /* LAN reset pin */ 416 snowball_cfg2 { 417 pins = "GPIO141_C12"; 418 ste,config = <&gpio_out_hi>; 419 }; 420 421 }; 422 }; 423 sdi0 { 424 sdi0_default_mode: sdi0_default { 425 snowball_mux { 426 function = "mc0"; 427 groups = "mc0dat31dir_a_1"; 428 }; 429 snowball_cfg1 { 430 pins = "GPIO21_AB3"; /* DAT31DIR */ 431 ste,config = <&out_hi>; 432 }; 433 434 }; 435 }; 436 ssp0 { 437 ssp0_snowball_mode: ssp0_snowball_default { 438 snowball_mux { 439 function = "ssp0"; 440 groups = "ssp0_a_1"; 441 }; 442 snowball_cfg1 { 443 pins = "GPIO144_B13"; /* FRM */ 444 ste,config = <&gpio_out_hi>; 445 }; 446 snowball_cfg2 { 447 pins = "GPIO145_C13"; /* RXD */ 448 ste,config = <&in_pd>; 449 }; 450 snowball_cfg3 { 451 pins = 452 "GPIO146_D13", /* TXD */ 453 "GPIO143_D12"; /* CLK */ 454 ste,config = <&out_lo>; 455 }; 456 457 }; 458 }; 459 gpio_led { 460 gpioled_snowball_mode: gpioled_default { 461 snowball_cfg1 { 462 pins = "GPIO142_C11"; 463 ste,config = <&gpio_out_hi>; 464 }; 465 466 }; 467 }; 468 accelerometer { 469 accel_snowball_mode: accel_snowball { 470 /* Accelerometer lines */ 471 snowball_cfg1 { 472 pins = 473 "GPIO163_C20", /* ACCEL_IRQ1 */ 474 "GPIO164_B21"; /* ACCEL_IRQ2 */ 475 ste,config = <&gpio_in_pu>; 476 }; 477 }; 478 }; 479 magnetometer { 480 magneto_snowball_mode: magneto_snowball { 481 snowball_cfg1 { 482 pins = "GPIO165_C21"; /* MAG_DRDY */ 483 ste,config = <&gpio_in_pu>; 484 }; 485 }; 486 }; 487 gbf { 488 gbf_snowball_mode: gbf_snowball { 489 /* 490 * GBF (GPS, Bluetooth, FM-radio) interface, 491 * pull low to reset state 492 */ 493 snowball_cfg1 { 494 pins = "GPIO171_D23"; /* GBF_ENA_RESET */ 495 ste,config = <&gpio_out_lo>; 496 }; 497 }; 498 }; 499 wlan { 500 wlan_snowball_mode: wlan_snowball { 501 /* 502 * Activate this mode with the WLAN chip. 503 * These are plain GPIO pins used by WLAN 504 */ 505 snowball_cfg1 { 506 pins = 507 "GPIO161_D21", /* WLAN_PMU_EN */ 508 "GPIO215_AH13"; /* WLAN_ENA */ 509 ste,config = <&gpio_out_lo>; 510 }; 511 snowball_cfg2 { 512 pins = "GPIO216_AG12"; /* WLAN_IRQ */ 513 ste,config = <&gpio_in_pu>; 514 }; 515 }; 516 }; 517 }; 518 519 mcde@a0350000 { 520 pinctrl-names = "default", "sleep"; 521 pinctrl-0 = <&lcd_default_mode>; 522 pinctrl-1 = <&lcd_sleep_mode>; 523 }; 524 }; 525}; 526