2 * Copyright 2011 ST-Ericsson AB
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:
8 * http://www.opensource.org/licenses/gpl-license.html
9 * http://www.gnu.org/copyleft/gpl.html
13 #include "ste-dbx5x0.dtsi"
14 #include "ste-href-ab8500.dtsi"
15 #include "ste-href-family-pinctrl.dtsi"
18 model = "Calao Systems Snowball platform with device tree";
19 compatible = "calaosystems,snowball-a9500", "st-ericsson,u9500";
21 /* This stablilizes the serial port enumeration */
23 serial0 = &ux500_serial0;
24 serial1 = &ux500_serial1;
25 serial2 = &ux500_serial2;
29 reg = <0x00000000 0x20000000>;
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>;
44 compatible = "gpio-keys";
49 debounce_interval = <50>;
53 gpios = <&gpio1 0 GPIO_ACTIVE_HIGH>;
56 debounce_interval = <50>;
60 gpios = <&gpio4 23 GPIO_ACTIVE_HIGH>;
63 debounce_interval = <50>;
67 gpios = <&gpio4 24 GPIO_ACTIVE_HIGH>;
70 debounce_interval = <50>;
74 gpios = <&gpio5 1 GPIO_ACTIVE_HIGH>;
77 debounce_interval = <50>;
81 gpios = <&gpio5 2 GPIO_ACTIVE_HIGH>;
86 compatible = "gpio-leds";
87 pinctrl-names = "default";
88 pinctrl-0 = <&gpioled_snowball_mode>;
91 gpios = <&gpio4 14 GPIO_ACTIVE_HIGH>;
93 linux,default-trigger = "heartbeat";
98 /* Name the GPIO muxed rails on the Snowball board */
101 gpio-line-names = "", "", "", "", "", "", "", "",
102 "", "", "", "", "", "", "", "",
103 "", "", "", "", "", "", "", "",
104 "", "", "", "", "", "", "",
110 gpio-line-names = "USR PB", "", "", "", "", "", "", "",
111 "", "", "", "", "", "", "", "",
112 "", "", "", "", "", "", "", "",
113 "", "", "", "", "", "", "", "";
118 gpio-line-names = "", "", "", "", "AP_GPIO68", "", "", "",
119 "", "", "", "", "", "", "", "",
120 "", "", "", "", "", "", "", "",
121 "", "", "", "", "", "", "", "";
125 /* GPIOs 128 - 159 */
126 gpio-line-names = "", "", "", "", "", "", "", "",
127 "", "", "", "", "IRQ_LAN", "RSTn_LAN",
128 "USR_LED", "", "", "", "", "", "",
129 "", "", "AP_GPIO151", "AP_GPIO152",
130 "", "", "", "", "", "", "";
134 /* GPIOs 160 - 191 */
135 gpio-line-names = "", "AP_GPIO161", "AP_GPIO162",
136 "ACCELEROMETER_INT1_RDY",
137 "ACCELEROMETER_INT2", "MAG_DRDY",
138 "GYRO_DRDY", "RSTn_MLC", "RSTn_SLC",
139 "GYRO_INT", "UART_WAKE", "GBF_RESET",
141 "", "", "", "", "", "", "", "",
142 "", "", "", "", "", "", "", "";
146 /* GPIOs 192 - 223 */
147 gpio-line-names = "HDTV_INTn", "", "", "", "HDTV_RST",
148 "", "", "", "", "", "", "", "", "",
149 "", "", "", "", "", "", "", "", "",
150 "WLAN_RESETN", "WLAN_IRQ", "MMC_EN",
151 "MMC_CD", "", "", "", "", "";
155 /* GPIOs 224 - 255 */
156 gpio-line-names = "", "", "", "", "SD_SEL", "", "", "",
157 "", "", "", "", "", "", "", "",
158 "", "", "", "", "", "", "", "",
159 "", "", "", "", "", "", "", "";
163 compatible = "stericsson,snd-soc-mop500";
165 stericsson,cpu-dai = <&msp1 &msp3>;
166 stericsson,audio-codec = <&codec>;
167 clocks = <&prcmu_clk PRCMU_SYSCLK>;
168 clock-names = "sysclk";
172 pinctrl-names = "default";
173 pinctrl-0 = <&msp0_default_mode>;
178 pinctrl-names = "default";
179 pinctrl-0 = <&msp1_default_mode>;
184 pinctrl-names = "default";
185 pinctrl-0 = <&msp2_default_mode>;
192 external-bus@50000000 {
196 compatible = "smsc,lan9115";
198 interrupts = <12 IRQ_TYPE_EDGE_RISING>;
199 interrupt-parent = <&gpio4>;
200 vdd33a-supply = <&en_3v3_reg>;
201 vddvario-supply = <&db8500_vape_reg>;
202 pinctrl-names = "default";
203 pinctrl-0 = <ð_snowball_mode>;
207 smsc,force-internal-phy;
208 smsc,irq-active-high;
211 clocks = <&prcc_pclk 3 0>;
215 /* ST6G3244ME level translator for 1.8/2.9 V */
216 vmmci: regulator-gpio {
217 compatible = "regulator-gpio";
220 gpios = <&gpio7 4 GPIO_ACTIVE_HIGH>;
222 enable-gpio = <&gpio6 25 GPIO_ACTIVE_HIGH>;
225 regulator-min-microvolt = <1800000>;
226 regulator-max-microvolt = <2900000>;
227 regulator-name = "mmci-reg";
228 regulator-type = "voltage";
230 startup-delay-us = <100>;
232 states = <1800000 0x1
236 // External Micro SD slot
238 arm,primecell-periphid = <0x10480180>;
239 max-frequency = <100000000>;
245 /* All direction control is used */
252 vmmc-supply = <&ab8500_ldo_aux3_reg>;
253 vqmmc-supply = <&vmmci>;
254 pinctrl-names = "default", "sleep";
255 pinctrl-0 = <&sdi0_default_mode>;
256 pinctrl-1 = <&sdi0_sleep_mode>;
259 cd-gpios = <&gpio6 26 GPIO_ACTIVE_LOW>;
266 arm,primecell-periphid = <0x10480180>;
267 max-frequency = <100000000>;
269 pinctrl-names = "default", "sleep";
270 pinctrl-0 = <&sdi1_default_mode>;
271 pinctrl-1 = <&sdi1_sleep_mode>;
276 // Unused PoP eMMC - register and put it to sleep by default */
278 arm,primecell-periphid = <0x10480180>;
279 pinctrl-names = "default";
280 pinctrl-0 = <&sdi2_sleep_mode>;
287 arm,primecell-periphid = <0x10480180>;
288 max-frequency = <100000000>;
291 vmmc-supply = <&ab8500_ldo_aux2_reg>;
292 pinctrl-names = "default", "sleep";
293 pinctrl-0 = <&sdi4_default_mode>;
294 pinctrl-1 = <&sdi4_sleep_mode>;
300 pinctrl-names = "default", "sleep";
301 pinctrl-0 = <&uart0_default_mode>;
302 pinctrl-1 = <&uart0_sleep_mode>;
306 /* This UART is unused and thus left disabled */
308 pinctrl-names = "default", "sleep";
309 pinctrl-0 = <&uart1_default_mode>;
310 pinctrl-1 = <&uart1_sleep_mode>;
314 pinctrl-names = "default", "sleep";
315 pinctrl-0 = <&uart2_default_mode>;
316 pinctrl-1 = <&uart2_sleep_mode>;
321 pinctrl-names = "default","sleep";
322 pinctrl-0 = <&i2c0_default_mode>;
323 pinctrl-1 = <&i2c0_sleep_mode>;
327 pinctrl-names = "default","sleep";
328 pinctrl-0 = <&i2c1_default_mode>;
329 pinctrl-1 = <&i2c1_sleep_mode>;
333 pinctrl-names = "default","sleep";
334 pinctrl-0 = <&i2c2_default_mode>;
335 pinctrl-1 = <&i2c2_sleep_mode>;
338 compatible = "st,lsm303dlh-accel";
339 st,drdy-int-pin = <1>;
341 vdd-supply = <&ab8500_ldo_aux1_reg>;
342 vddio-supply = <&db8500_vsmps2_reg>;
343 pinctrl-names = "default";
344 pinctrl-0 = <&accel_snowball_mode>;
345 interrupt-parent = <&gpio5>;
346 interrupts = <3 IRQ_TYPE_EDGE_RISING>, /* INT1 */
347 <4 IRQ_TYPE_EDGE_RISING>; /* INT2 */
351 compatible = "st,lsm303dlh-magn";
353 vdd-supply = <&ab8500_ldo_aux1_reg>;
354 vddio-supply = <&db8500_vsmps2_reg>;
355 pinctrl-names = "default";
356 pinctrl-0 = <&magneto_snowball_mode>;
357 interrupt-parent = <&gpio5>;
358 interrupts = <5 IRQ_TYPE_EDGE_RISING>; /* DRDY line */
362 compatible = "st,l3g4200d-gyro";
363 st,drdy-int-pin = <2>;
365 vdd-supply = <&ab8500_ldo_aux1_reg>;
366 vddio-supply = <&db8500_vsmps2_reg>;
367 pinctrl-names = "default";
368 pinctrl-0 = <&gyro_snowball_mode>;
369 interrupt-parent = <&gpio5>;
370 interrupts = <6 IRQ_TYPE_EDGE_RISING>, /* DRDY line */
371 <9 IRQ_TYPE_EDGE_RISING>; /* INT1 */
374 /* Barometer/pressure sensor */
375 compatible = "st,lps001wp-press";
377 vdd-supply = <&ab8500_ldo_aux1_reg>;
378 vddio-supply = <&db8500_vsmps2_reg>;
383 pinctrl-names = "default","sleep";
384 pinctrl-0 = <&i2c3_default_mode>;
385 pinctrl-1 = <&i2c3_sleep_mode>;
389 pinctrl-names = "default";
390 pinctrl-0 = <&ssp0_snowball_mode>;
405 trip0-temp = <70000>;
406 trip0-type = "active";
407 trip0-cdev-num = <1>;
408 trip0-cdev-name0 = "thermal-cpufreq-0";
410 trip1-temp = <75000>;
411 trip1-type = "active";
412 trip1-cdev-num = <1>;
413 trip1-cdev-name0 = "thermal-cpufreq-0";
415 trip2-temp = <80000>;
416 trip2-type = "active";
417 trip2-cdev-num = <1>;
418 trip2-cdev-name0 = "thermal-cpufreq-0";
420 trip3-temp = <85000>;
421 trip3-type = "critical";
422 trip3-cdev-num = <0>;
430 * AB8500 GPIOs are numbered starting from 1, so the first
431 * index 0 is what in the datasheet is called "GPIO1", and
432 * the second is "GPIO2" and so forth. Confusingly, the
433 * Snowball schematic then names the "GPIO2" line "PM_GPIO1".
434 * while later naming "GPIO4" as "PM_GPIO4".
436 gpio-line-names = "", /* AB8500 GPIO1 */
437 "PM_GPIO1", /* AB8500 GPIO2 */
438 "WLAN_CLK_REQ", /* AB8500 GPIO3 */
439 "PM_GPIO4", /* AB8500 GPIO4 */
440 "", "", "", "", "", "", "", "", "", "", "",
441 "EN_3V6", /* AB8500 GPIO16 */
442 "", "", "", "" ,"", "", "", "", "",
443 "EN_3V3", /* AB8500 GPIO26 */
444 "", "", "", "", "", "", "", "", "", "", "", "", "",
445 "PM_GPIO40", /* AB8500 GPIO40 */
446 "PM_GPIO41", /* AB8500 GPIO41 */
447 "PM_GPIO42"; /* AB8500 GPIO42 */
451 pinctrl-names = "default", "sleep";
452 pinctrl-0 = <&musb_default_mode>;
453 pinctrl-1 = <&musb_sleep_mode>;
456 ext_regulators: ab8500-ext-regulators {
457 ab8500_ext1_reg: ab8500_ext1 {
458 regulator-name = "ab8500-ext-supply1";
461 ab8500_ext2_reg_reg: ab8500_ext2 {
462 regulator-name = "ab8500-ext-supply2";
465 ab8500_ext3_reg_reg: ab8500_ext3 {
466 regulator-name = "ab8500-ext-supply3";
471 ab8500_ldo_aux1_reg: ab8500_ldo_aux1 {
472 regulator-name = "V-DISPLAY";
475 ab8500_ldo_aux2_reg: ab8500_ldo_aux2 {
476 regulator-name = "V-eMMC1";
479 ab8500_ldo_aux3_reg: ab8500_ldo_aux3 {
480 regulator-name = "V-MMC-SD";
483 ab8500_ldo_intcore_reg: ab8500_ldo_intcore {
484 regulator-name = "V-INTCORE";
487 ab8500_ldo_tvout_reg: ab8500_ldo_tvout {
488 regulator-name = "V-TVOUT";
491 ab8500_ldo_usb_reg: ab8500_ldo_usb {
492 regulator-name = "dummy";
495 ab8500_ldo_audio_reg: ab8500_ldo_audio {
496 regulator-name = "V-AUD";
499 ab8500_ldo_anamic1_reg: ab8500_ldo_anamic1 {
500 regulator-name = "V-AMIC1";
503 ab8500_ldo_anamic2_reg: ab8500_ldo_anamic2 {
504 regulator-name = "V-AMIC2";
507 ab8500_ldo_dmic_reg: ab8500_ldo_dmic {
508 regulator-name = "V-DMIC";
511 ab8500_ldo_ana_reg: ab8500_ldo_ana {
512 regulator-name = "V-CSI/DSI";
520 * Set this up using hogs, as time goes by and as seems fit, these
521 * can be moved over to being controlled by respective device.
523 pinctrl-names = "default";
524 pinctrl-0 = <&gbf_snowball_mode>,
525 <&wlan_snowball_mode>;
529 * Mux in "SM" which is used for the
530 * SMSC911x Ethernet adapter
532 eth_snowball_mode: eth_snowball {
539 pins = "GPIO140_B11";
540 ste,config = <&in_nopull>;
544 pins = "GPIO141_C12";
545 ste,config = <&gpio_out_hi>;
551 sdi0_default_mode: sdi0_default {
554 /* Add the DAT31 pin even if it is not really used */
555 groups = "mc0dat31dir_a_1";
558 pins = "GPIO21_AB3"; /* DAT31DIR */
559 ste,config = <&out_hi>;
561 /* SD card detect GPIO pin, extend default state */
563 pins = "GPIO218_AH11";
564 ste,config = <&gpio_in_pu>;
566 /* VMMCI level-shifter enable */
568 pins = "GPIO217_AH12";
569 ste,config = <&gpio_out_hi>;
571 /* VMMCI level-shifter voltage select */
573 pins = "GPIO228_AJ6";
574 ste,config = <&gpio_out_hi>;
579 ssp0_snowball_mode: ssp0_snowball_default {
585 pins = "GPIO144_B13"; /* FRM */
586 ste,config = <&gpio_out_hi>;
589 pins = "GPIO145_C13"; /* RXD */
590 ste,config = <&in_pd>;
594 "GPIO146_D13", /* TXD */
595 "GPIO143_D12"; /* CLK */
596 ste,config = <&out_lo>;
602 gpioled_snowball_mode: gpioled_default {
604 pins = "GPIO142_C11";
605 ste,config = <&gpio_out_hi>;
611 accel_snowball_mode: accel_snowball {
612 /* Accelerometer lines */
615 "GPIO163_C20", /* ACCEL_IRQ1 */
616 "GPIO164_B21"; /* ACCEL_IRQ2 */
617 ste,config = <&gpio_in_pu>;
622 gyro_snowball_mode: gyro_snowball {
625 "GPIO166_A22", /* DRDY */
626 "GPIO169_D22"; /* INT */
627 ste,config = <&gpio_in_pu>;
632 magneto_snowball_mode: magneto_snowball {
634 pins = "GPIO165_C21"; /* MAG_DRDY */
635 ste,config = <&gpio_in_pu>;
640 gbf_snowball_mode: gbf_snowball {
642 * GBF (GPS, Bluetooth, FM-radio) interface,
643 * pull low to reset state
646 pins = "GPIO171_D23"; /* GBF_ENA_RESET */
647 ste,config = <&gpio_out_lo>;
652 wlan_snowball_mode: wlan_snowball {
654 * Activate this mode with the WLAN chip.
655 * These are plain GPIO pins used by WLAN
659 "GPIO161_D21", /* WLAN_PMU_EN */
660 "GPIO215_AH13"; /* WLAN_ENA */
661 ste,config = <&gpio_out_lo>;
664 pins = "GPIO216_AG12"; /* WLAN_IRQ */
665 ste,config = <&gpio_in_pu>;
672 pinctrl-names = "default", "sleep";
673 pinctrl-0 = <&lcd_default_mode>;
674 pinctrl-1 = <&lcd_sleep_mode>;