1 // SPDX-License-Identifier: GPL-2.0-or-later
3 * Copyright 2011 ST-Ericsson AB
7 #include "ste-dbx5x0.dtsi"
8 #include "ste-href-ab8500.dtsi"
9 #include "ste-href-family-pinctrl.dtsi"
12 model = "Calao Systems Snowball platform with device tree";
13 compatible = "calaosystems,snowball-a9500", "st-ericsson,u9500";
15 /* This stablilizes the serial port enumeration */
17 serial0 = &ux500_serial0;
18 serial1 = &ux500_serial1;
19 serial2 = &ux500_serial2;
23 device_type = "memory";
24 reg = <0x00000000 0x20000000>;
28 compatible = "regulator-fixed";
29 regulator-name = "en-3v3-fixed-supply";
30 regulator-min-microvolt = <3300000>;
31 regulator-max-microvolt = <3300000>;
32 /* AB8500 GPIOs start from 1 - offset 25 is GPIO26. */
33 gpio = <&ab8500_gpio 25 0x4>;
34 startup-delay-us = <5000>;
39 compatible = "gpio-keys";
44 debounce-interval = <50>;
48 gpios = <&gpio1 0 GPIO_ACTIVE_HIGH>;
51 debounce-interval = <50>;
55 gpios = <&gpio4 23 GPIO_ACTIVE_HIGH>;
58 debounce-interval = <50>;
62 gpios = <&gpio4 24 GPIO_ACTIVE_HIGH>;
65 debounce-interval = <50>;
69 gpios = <&gpio5 1 GPIO_ACTIVE_HIGH>;
72 debounce-interval = <50>;
76 gpios = <&gpio5 2 GPIO_ACTIVE_HIGH>;
81 compatible = "gpio-leds";
82 pinctrl-names = "default";
83 pinctrl-0 = <&gpioled_snowball_mode>;
86 gpios = <&gpio4 14 GPIO_ACTIVE_HIGH>;
88 linux,default-trigger = "heartbeat";
93 /* Name the GPIO muxed rails on the Snowball board */
96 gpio-line-names = "", "", "", "", "", "", "", "",
97 "", "", "", "", "", "", "", "",
98 "", "", "", "", "", "", "", "",
99 "", "", "", "", "", "", "",
105 gpio-line-names = "USR PB", "", "", "", "", "", "", "",
106 "", "", "", "", "", "", "", "",
107 "", "", "", "", "", "", "", "",
108 "", "", "", "", "", "", "", "";
113 gpio-line-names = "", "", "", "", "AP_GPIO68", "", "", "",
114 "", "", "", "", "", "", "", "",
115 "", "", "", "", "", "", "", "",
116 "", "", "", "", "", "", "", "";
120 /* GPIOs 128 - 159 */
121 gpio-line-names = "", "", "", "", "", "", "", "",
122 "", "", "", "", "IRQ_LAN", "RSTn_LAN",
123 "USR_LED", "", "", "", "", "", "",
124 "", "", "AP_GPIO151", "AP_GPIO152",
125 "", "", "", "", "", "", "";
129 /* GPIOs 160 - 191 */
130 gpio-line-names = "", "AP_GPIO161", "AP_GPIO162",
131 "ACCELEROMETER_INT1_RDY",
132 "ACCELEROMETER_INT2", "MAG_DRDY",
133 "GYRO_DRDY", "RSTn_MLC", "RSTn_SLC",
134 "GYRO_INT", "UART_WAKE", "GBF_RESET",
136 "", "", "", "", "", "", "", "",
137 "", "", "", "", "", "", "", "";
141 /* GPIOs 192 - 223 */
142 gpio-line-names = "HDTV_INTn", "", "", "", "HDTV_RST",
143 "", "", "", "", "", "", "", "", "",
144 "", "", "", "", "", "", "", "", "",
145 "WLAN_RESETN", "WLAN_IRQ", "MMC_EN",
146 "MMC_CD", "", "", "", "", "";
150 /* GPIOs 224 - 255 */
151 gpio-line-names = "", "", "", "", "SD_SEL", "", "", "",
152 "", "", "", "", "", "", "", "",
153 "", "", "", "", "", "", "", "",
154 "", "", "", "", "", "", "", "";
158 pinctrl-names = "default";
159 pinctrl-0 = <&msp0_default_mode>;
164 pinctrl-names = "default";
165 pinctrl-0 = <&msp1_default_mode>;
170 pinctrl-names = "default";
171 pinctrl-0 = <&msp2_default_mode>;
178 external-bus@50000000 {
182 compatible = "smsc,lan9115";
184 interrupts = <12 IRQ_TYPE_EDGE_RISING>;
185 interrupt-parent = <&gpio4>;
186 vdd33a-supply = <&en_3v3_reg>;
187 vddvario-supply = <&db8500_vape_reg>;
188 pinctrl-names = "default";
189 pinctrl-0 = <ð_snowball_mode>;
193 smsc,force-internal-phy;
194 smsc,irq-active-high;
197 clocks = <&prcc_pclk 3 0>;
201 /* ST6G3244ME level translator for 1.8/2.9 V */
202 vmmci: regulator-gpio {
203 compatible = "regulator-gpio";
206 gpios = <&gpio7 4 GPIO_ACTIVE_HIGH>;
208 enable-gpio = <&gpio6 25 GPIO_ACTIVE_HIGH>;
211 regulator-min-microvolt = <1800000>;
212 regulator-max-microvolt = <2900000>;
213 regulator-name = "mmci-reg";
214 regulator-type = "voltage";
216 startup-delay-us = <100>;
218 states = <1800000 0x1
222 // External Micro SD slot
224 arm,primecell-periphid = <0x10480180>;
225 max-frequency = <100000000>;
231 /* All direction control is used */
238 vmmc-supply = <&ab8500_ldo_aux3_reg>;
239 vqmmc-supply = <&vmmci>;
240 pinctrl-names = "default", "sleep";
241 pinctrl-0 = <&sdi0_default_mode>;
242 pinctrl-1 = <&sdi0_sleep_mode>;
245 cd-gpios = <&gpio6 26 GPIO_ACTIVE_LOW>;
252 arm,primecell-periphid = <0x10480180>;
253 max-frequency = <100000000>;
255 pinctrl-names = "default", "sleep";
256 pinctrl-0 = <&sdi1_default_mode>;
257 pinctrl-1 = <&sdi1_sleep_mode>;
262 // Unused PoP eMMC - register and put it to sleep by default */
264 arm,primecell-periphid = <0x10480180>;
265 pinctrl-names = "default";
266 pinctrl-0 = <&sdi2_sleep_mode>;
273 arm,primecell-periphid = <0x10480180>;
274 max-frequency = <100000000>;
277 vmmc-supply = <&ab8500_ldo_aux2_reg>;
278 pinctrl-names = "default", "sleep";
279 pinctrl-0 = <&sdi4_default_mode>;
280 pinctrl-1 = <&sdi4_sleep_mode>;
286 pinctrl-names = "default", "sleep";
287 pinctrl-0 = <&uart0_default_mode>;
288 pinctrl-1 = <&uart0_sleep_mode>;
292 /* This UART is unused and thus left disabled */
294 pinctrl-names = "default", "sleep";
295 pinctrl-0 = <&uart1_default_mode>;
296 pinctrl-1 = <&uart1_sleep_mode>;
300 pinctrl-names = "default", "sleep";
301 pinctrl-0 = <&uart2_default_mode>;
302 pinctrl-1 = <&uart2_sleep_mode>;
307 pinctrl-names = "default","sleep";
308 pinctrl-0 = <&i2c0_default_mode>;
309 pinctrl-1 = <&i2c0_sleep_mode>;
313 pinctrl-names = "default","sleep";
314 pinctrl-0 = <&i2c1_default_mode>;
315 pinctrl-1 = <&i2c1_sleep_mode>;
319 pinctrl-names = "default","sleep";
320 pinctrl-0 = <&i2c2_default_mode>;
321 pinctrl-1 = <&i2c2_sleep_mode>;
324 compatible = "st,lsm303dlh-accel";
325 st,drdy-int-pin = <1>;
327 vdd-supply = <&ab8500_ldo_aux1_reg>;
328 vddio-supply = <&db8500_vsmps2_reg>;
329 pinctrl-names = "default";
330 pinctrl-0 = <&accel_snowball_mode>;
331 interrupt-parent = <&gpio5>;
332 interrupts = <3 IRQ_TYPE_EDGE_RISING>, /* INT1 */
333 <4 IRQ_TYPE_EDGE_RISING>; /* INT2 */
337 compatible = "st,lsm303dlh-magn";
339 vdd-supply = <&ab8500_ldo_aux1_reg>;
340 vddio-supply = <&db8500_vsmps2_reg>;
341 pinctrl-names = "default";
342 pinctrl-0 = <&magneto_snowball_mode>;
343 interrupt-parent = <&gpio5>;
344 interrupts = <5 IRQ_TYPE_EDGE_RISING>; /* DRDY line */
348 compatible = "st,l3g4200d-gyro";
349 st,drdy-int-pin = <2>;
351 vdd-supply = <&ab8500_ldo_aux1_reg>;
352 vddio-supply = <&db8500_vsmps2_reg>;
353 pinctrl-names = "default";
354 pinctrl-0 = <&gyro_snowball_mode>;
355 interrupt-parent = <&gpio5>;
356 interrupts = <6 IRQ_TYPE_EDGE_RISING>, /* DRDY line */
357 <9 IRQ_TYPE_EDGE_RISING>; /* INT1 */
360 /* Barometer/pressure sensor */
361 compatible = "st,lps001wp-press";
363 vdd-supply = <&ab8500_ldo_aux1_reg>;
364 vddio-supply = <&db8500_vsmps2_reg>;
369 pinctrl-names = "default","sleep";
370 pinctrl-0 = <&i2c3_default_mode>;
371 pinctrl-1 = <&i2c3_sleep_mode>;
375 pinctrl-names = "default";
376 pinctrl-0 = <&ssp0_snowball_mode>;
387 * AB8500 GPIOs are numbered starting from 1, so the first
388 * index 0 is what in the datasheet is called "GPIO1", and
389 * the second is "GPIO2" and so forth. Confusingly, the
390 * Snowball schematic then names the "GPIO2" line "PM_GPIO1".
391 * while later naming "GPIO4" as "PM_GPIO4".
393 gpio-line-names = "", /* AB8500 GPIO1 */
394 "PM_GPIO1", /* AB8500 GPIO2 */
395 "WLAN_CLK_REQ", /* AB8500 GPIO3 */
396 "PM_GPIO4", /* AB8500 GPIO4 */
397 "", "", "", "", "", "", "", "", "", "", "",
398 "EN_3V6", /* AB8500 GPIO16 */
399 "", "", "", "" ,"", "", "", "", "",
400 "EN_3V3", /* AB8500 GPIO26 */
401 "", "", "", "", "", "", "", "", "", "", "", "", "",
402 "PM_GPIO40", /* AB8500 GPIO40 */
403 "PM_GPIO41", /* AB8500 GPIO41 */
404 "PM_GPIO42"; /* AB8500 GPIO42 */
408 pinctrl-names = "default", "sleep";
409 pinctrl-0 = <&musb_default_mode>;
410 pinctrl-1 = <&musb_sleep_mode>;
413 ext_regulators: ab8500-ext-regulators {
414 ab8500_ext1_reg: ab8500_ext1 {
415 regulator-name = "ab8500-ext-supply1";
418 ab8500_ext2_reg_reg: ab8500_ext2 {
419 regulator-name = "ab8500-ext-supply2";
422 ab8500_ext3_reg_reg: ab8500_ext3 {
423 regulator-name = "ab8500-ext-supply3";
428 ab8500_ldo_aux1_reg: ab8500_ldo_aux1 {
429 regulator-name = "V-DISPLAY";
432 ab8500_ldo_aux2_reg: ab8500_ldo_aux2 {
433 regulator-name = "V-eMMC1";
436 ab8500_ldo_aux3_reg: ab8500_ldo_aux3 {
437 regulator-name = "V-MMC-SD";
440 ab8500_ldo_intcore_reg: ab8500_ldo_intcore {
441 regulator-name = "V-INTCORE";
444 ab8500_ldo_tvout_reg: ab8500_ldo_tvout {
445 regulator-name = "V-TVOUT";
448 ab8500_ldo_audio_reg: ab8500_ldo_audio {
449 regulator-name = "V-AUD";
452 ab8500_ldo_anamic1_reg: ab8500_ldo_anamic1 {
453 regulator-name = "V-AMIC1";
456 ab8500_ldo_anamic2_reg: ab8500_ldo_anamic2 {
457 regulator-name = "V-AMIC2";
460 ab8500_ldo_dmic_reg: ab8500_ldo_dmic {
461 regulator-name = "V-DMIC";
464 ab8500_ldo_ana_reg: ab8500_ldo_ana {
465 regulator-name = "V-CSI/DSI";
473 * Set this up using hogs, as time goes by and as seems fit, these
474 * can be moved over to being controlled by respective device.
476 pinctrl-names = "default";
477 pinctrl-0 = <&gbf_snowball_mode>,
478 <&wlan_snowball_mode>;
482 * Mux in "SM" which is used for the
483 * SMSC911x Ethernet adapter
485 eth_snowball_mode: eth_snowball {
492 pins = "GPIO140_B11";
493 ste,config = <&in_nopull>;
497 pins = "GPIO141_C12";
498 ste,config = <&gpio_out_hi>;
504 sdi0_default_mode: sdi0_default {
507 /* Add the DAT31 pin even if it is not really used */
508 groups = "mc0dat31dir_a_1";
511 pins = "GPIO21_AB3"; /* DAT31DIR */
512 ste,config = <&out_hi>;
514 /* SD card detect GPIO pin, extend default state */
516 pins = "GPIO218_AH11";
517 ste,config = <&gpio_in_pu>;
519 /* VMMCI level-shifter enable */
521 pins = "GPIO217_AH12";
522 ste,config = <&gpio_out_hi>;
524 /* VMMCI level-shifter voltage select */
526 pins = "GPIO228_AJ6";
527 ste,config = <&gpio_out_hi>;
532 ssp0_snowball_mode: ssp0_snowball_default {
538 pins = "GPIO144_B13"; /* FRM */
539 ste,config = <&gpio_out_hi>;
542 pins = "GPIO145_C13"; /* RXD */
543 ste,config = <&in_pd>;
547 "GPIO146_D13", /* TXD */
548 "GPIO143_D12"; /* CLK */
549 ste,config = <&out_lo>;
555 gpioled_snowball_mode: gpioled_default {
557 pins = "GPIO142_C11";
558 ste,config = <&gpio_out_hi>;
564 accel_snowball_mode: accel_snowball {
565 /* Accelerometer lines */
568 "GPIO163_C20", /* ACCEL_IRQ1 */
569 "GPIO164_B21"; /* ACCEL_IRQ2 */
570 ste,config = <&gpio_in_pu>;
575 gyro_snowball_mode: gyro_snowball {
578 "GPIO166_A22", /* DRDY */
579 "GPIO169_D22"; /* INT */
580 ste,config = <&gpio_in_pu>;
585 magneto_snowball_mode: magneto_snowball {
587 pins = "GPIO165_C21"; /* MAG_DRDY */
588 ste,config = <&gpio_in_pu>;
593 gbf_snowball_mode: gbf_snowball {
595 * GBF (GPS, Bluetooth, FM-radio) interface,
596 * pull low to reset state
599 pins = "GPIO171_D23"; /* GBF_ENA_RESET */
600 ste,config = <&gpio_out_lo>;
605 wlan_snowball_mode: wlan_snowball {
607 * Activate this mode with the WLAN chip.
608 * These are plain GPIO pins used by WLAN
612 "GPIO161_D21", /* WLAN_PMU_EN */
613 "GPIO215_AH13"; /* WLAN_ENA */
614 ste,config = <&gpio_out_lo>;
617 pins = "GPIO216_AG12"; /* WLAN_IRQ */
618 ste,config = <&gpio_in_pu>;
625 pinctrl-names = "default", "sleep";
626 pinctrl-0 = <&lcd_default_mode>;
627 pinctrl-1 = <&lcd_sleep_mode>;