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>;
391 trip0-temp = <70000>;
392 trip0-type = "active";
393 trip0-cdev-num = <1>;
394 trip0-cdev-name0 = "thermal-cpufreq-0";
396 trip1-temp = <75000>;
397 trip1-type = "active";
398 trip1-cdev-num = <1>;
399 trip1-cdev-name0 = "thermal-cpufreq-0";
401 trip2-temp = <80000>;
402 trip2-type = "active";
403 trip2-cdev-num = <1>;
404 trip2-cdev-name0 = "thermal-cpufreq-0";
406 trip3-temp = <85000>;
407 trip3-type = "critical";
408 trip3-cdev-num = <0>;
416 * AB8500 GPIOs are numbered starting from 1, so the first
417 * index 0 is what in the datasheet is called "GPIO1", and
418 * the second is "GPIO2" and so forth. Confusingly, the
419 * Snowball schematic then names the "GPIO2" line "PM_GPIO1".
420 * while later naming "GPIO4" as "PM_GPIO4".
422 gpio-line-names = "", /* AB8500 GPIO1 */
423 "PM_GPIO1", /* AB8500 GPIO2 */
424 "WLAN_CLK_REQ", /* AB8500 GPIO3 */
425 "PM_GPIO4", /* AB8500 GPIO4 */
426 "", "", "", "", "", "", "", "", "", "", "",
427 "EN_3V6", /* AB8500 GPIO16 */
428 "", "", "", "" ,"", "", "", "", "",
429 "EN_3V3", /* AB8500 GPIO26 */
430 "", "", "", "", "", "", "", "", "", "", "", "", "",
431 "PM_GPIO40", /* AB8500 GPIO40 */
432 "PM_GPIO41", /* AB8500 GPIO41 */
433 "PM_GPIO42"; /* AB8500 GPIO42 */
437 pinctrl-names = "default", "sleep";
438 pinctrl-0 = <&musb_default_mode>;
439 pinctrl-1 = <&musb_sleep_mode>;
442 ext_regulators: ab8500-ext-regulators {
443 ab8500_ext1_reg: ab8500_ext1 {
444 regulator-name = "ab8500-ext-supply1";
447 ab8500_ext2_reg_reg: ab8500_ext2 {
448 regulator-name = "ab8500-ext-supply2";
451 ab8500_ext3_reg_reg: ab8500_ext3 {
452 regulator-name = "ab8500-ext-supply3";
457 ab8500_ldo_aux1_reg: ab8500_ldo_aux1 {
458 regulator-name = "V-DISPLAY";
461 ab8500_ldo_aux2_reg: ab8500_ldo_aux2 {
462 regulator-name = "V-eMMC1";
465 ab8500_ldo_aux3_reg: ab8500_ldo_aux3 {
466 regulator-name = "V-MMC-SD";
469 ab8500_ldo_intcore_reg: ab8500_ldo_intcore {
470 regulator-name = "V-INTCORE";
473 ab8500_ldo_tvout_reg: ab8500_ldo_tvout {
474 regulator-name = "V-TVOUT";
477 ab8500_ldo_usb_reg: ab8500_ldo_usb {
478 regulator-name = "dummy";
481 ab8500_ldo_audio_reg: ab8500_ldo_audio {
482 regulator-name = "V-AUD";
485 ab8500_ldo_anamic1_reg: ab8500_ldo_anamic1 {
486 regulator-name = "V-AMIC1";
489 ab8500_ldo_anamic2_reg: ab8500_ldo_anamic2 {
490 regulator-name = "V-AMIC2";
493 ab8500_ldo_dmic_reg: ab8500_ldo_dmic {
494 regulator-name = "V-DMIC";
497 ab8500_ldo_ana_reg: ab8500_ldo_ana {
498 regulator-name = "V-CSI/DSI";
506 * Set this up using hogs, as time goes by and as seems fit, these
507 * can be moved over to being controlled by respective device.
509 pinctrl-names = "default";
510 pinctrl-0 = <&gbf_snowball_mode>,
511 <&wlan_snowball_mode>;
515 * Mux in "SM" which is used for the
516 * SMSC911x Ethernet adapter
518 eth_snowball_mode: eth_snowball {
525 pins = "GPIO140_B11";
526 ste,config = <&in_nopull>;
530 pins = "GPIO141_C12";
531 ste,config = <&gpio_out_hi>;
537 sdi0_default_mode: sdi0_default {
540 /* Add the DAT31 pin even if it is not really used */
541 groups = "mc0dat31dir_a_1";
544 pins = "GPIO21_AB3"; /* DAT31DIR */
545 ste,config = <&out_hi>;
547 /* SD card detect GPIO pin, extend default state */
549 pins = "GPIO218_AH11";
550 ste,config = <&gpio_in_pu>;
552 /* VMMCI level-shifter enable */
554 pins = "GPIO217_AH12";
555 ste,config = <&gpio_out_hi>;
557 /* VMMCI level-shifter voltage select */
559 pins = "GPIO228_AJ6";
560 ste,config = <&gpio_out_hi>;
565 ssp0_snowball_mode: ssp0_snowball_default {
571 pins = "GPIO144_B13"; /* FRM */
572 ste,config = <&gpio_out_hi>;
575 pins = "GPIO145_C13"; /* RXD */
576 ste,config = <&in_pd>;
580 "GPIO146_D13", /* TXD */
581 "GPIO143_D12"; /* CLK */
582 ste,config = <&out_lo>;
588 gpioled_snowball_mode: gpioled_default {
590 pins = "GPIO142_C11";
591 ste,config = <&gpio_out_hi>;
597 accel_snowball_mode: accel_snowball {
598 /* Accelerometer lines */
601 "GPIO163_C20", /* ACCEL_IRQ1 */
602 "GPIO164_B21"; /* ACCEL_IRQ2 */
603 ste,config = <&gpio_in_pu>;
608 gyro_snowball_mode: gyro_snowball {
611 "GPIO166_A22", /* DRDY */
612 "GPIO169_D22"; /* INT */
613 ste,config = <&gpio_in_pu>;
618 magneto_snowball_mode: magneto_snowball {
620 pins = "GPIO165_C21"; /* MAG_DRDY */
621 ste,config = <&gpio_in_pu>;
626 gbf_snowball_mode: gbf_snowball {
628 * GBF (GPS, Bluetooth, FM-radio) interface,
629 * pull low to reset state
632 pins = "GPIO171_D23"; /* GBF_ENA_RESET */
633 ste,config = <&gpio_out_lo>;
638 wlan_snowball_mode: wlan_snowball {
640 * Activate this mode with the WLAN chip.
641 * These are plain GPIO pins used by WLAN
645 "GPIO161_D21", /* WLAN_PMU_EN */
646 "GPIO215_AH13"; /* WLAN_ENA */
647 ste,config = <&gpio_out_lo>;
650 pins = "GPIO216_AG12"; /* WLAN_IRQ */
651 ste,config = <&gpio_in_pu>;
658 pinctrl-names = "default", "sleep";
659 pinctrl-0 = <&lcd_default_mode>;
660 pinctrl-1 = <&lcd_sleep_mode>;