1 // SPDX-License-Identifier: GPL-2.0-or-later
3 * Copyright 2011 ST-Ericsson AB
7 #include "ste-db9500.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";
16 device_type = "memory";
17 reg = <0x00000000 0x20000000>;
21 compatible = "simple-battery";
22 battery-type = "lithium-ion-polymer";
27 /* This zone will be polled by the battery temperature code */
29 polling-delay-passive = <0>;
30 thermal-sensors = <&bat_therm>;
34 bat_therm: thermistor {
35 compatible = "murata,ncp18wb473";
36 io-channels = <&gpadc 0x02>; /* BatTemp */
37 pullup-uv = <1800000>;
38 pullup-ohm = <230000>;
40 #thermal-sensor-cells = <0>;
44 compatible = "regulator-fixed";
45 regulator-name = "en-3v3-fixed-supply";
46 regulator-min-microvolt = <3300000>;
47 regulator-max-microvolt = <3300000>;
48 /* AB8500 GPIOs start from 1 - offset 25 is GPIO26. */
49 gpio = <&ab8500_gpio 25 0x4>;
50 startup-delay-us = <5000>;
55 compatible = "gpio-keys";
60 debounce-interval = <50>;
64 gpios = <&gpio1 0 GPIO_ACTIVE_HIGH>;
67 debounce-interval = <50>;
71 gpios = <&gpio4 23 GPIO_ACTIVE_HIGH>;
74 debounce-interval = <50>;
78 gpios = <&gpio4 24 GPIO_ACTIVE_HIGH>;
81 debounce-interval = <50>;
85 gpios = <&gpio5 1 GPIO_ACTIVE_HIGH>;
88 debounce-interval = <50>;
92 gpios = <&gpio5 2 GPIO_ACTIVE_HIGH>;
97 compatible = "gpio-leds";
98 pinctrl-names = "default";
99 pinctrl-0 = <&gpioled_snowball_mode>;
102 gpios = <&gpio4 14 GPIO_ACTIVE_HIGH>;
103 default-state = "on";
104 linux,default-trigger = "heartbeat";
109 /* Name the GPIO muxed rails on the Snowball board */
112 gpio-line-names = "", "", "", "", "", "", "", "",
113 "", "", "", "", "", "", "", "",
114 "", "", "", "", "", "", "", "",
115 "", "", "", "", "", "", "",
121 gpio-line-names = "USR PB", "", "", "", "", "", "", "",
122 "", "", "", "", "", "", "", "",
123 "", "", "", "", "", "", "", "",
124 "", "", "", "", "", "", "", "";
129 gpio-line-names = "", "", "", "", "AP_GPIO68", "", "", "",
130 "", "", "", "", "", "", "", "",
131 "", "", "", "", "", "", "", "",
132 "", "", "", "", "", "", "", "";
136 /* GPIOs 128 - 159 */
137 gpio-line-names = "", "", "", "", "", "", "", "",
138 "", "", "", "", "IRQ_LAN", "RSTn_LAN",
139 "USR_LED", "", "", "", "", "", "",
140 "", "", "AP_GPIO151", "AP_GPIO152",
141 "", "", "", "", "", "", "";
145 /* GPIOs 160 - 191 */
146 gpio-line-names = "", "AP_GPIO161", "AP_GPIO162",
147 "ACCELEROMETER_INT1_RDY",
148 "ACCELEROMETER_INT2", "MAG_DRDY",
149 "GYRO_DRDY", "RSTn_MLC", "RSTn_SLC",
150 "GYRO_INT", "UART_WAKE", "GBF_RESET",
152 "", "", "", "", "", "", "", "",
153 "", "", "", "", "", "", "", "";
157 /* GPIOs 192 - 223 */
158 gpio-line-names = "HDTV_INTn", "", "", "", "HDTV_RST",
159 "", "", "", "", "", "", "", "", "",
160 "", "", "", "", "", "", "", "", "",
161 "WLAN_RESETN", "WLAN_IRQ", "MMC_EN",
162 "MMC_CD", "", "", "", "", "";
166 /* GPIOs 224 - 255 */
167 gpio-line-names = "", "", "", "", "SD_SEL", "", "", "",
168 "", "", "", "", "", "", "", "",
169 "", "", "", "", "", "", "", "",
170 "", "", "", "", "", "", "", "";
174 pinctrl-names = "default";
175 pinctrl-0 = <&msp0txrxtfstck_a_1_default>;
180 pinctrl-names = "default";
181 pinctrl-0 = <&msp1txrx_a_1_default>;
186 pinctrl-names = "default";
187 pinctrl-0 = <&msp2_a_1_default>;
194 external-bus@50000000 {
198 compatible = "smsc,lan9115";
200 interrupts = <12 IRQ_TYPE_EDGE_RISING>;
201 interrupt-parent = <&gpio4>;
202 vdd33a-supply = <&en_3v3_reg>;
203 vddvario-supply = <&db8500_vape_reg>;
204 pinctrl-names = "default";
205 pinctrl-0 = <ð_snowball_mode>;
209 smsc,force-internal-phy;
210 smsc,irq-active-high;
213 clocks = <&prcc_pclk 3 0>;
217 /* ST6G3244ME level translator for 1.8/2.9 V */
218 vmmci: regulator-gpio {
219 compatible = "regulator-gpio";
222 gpios = <&gpio7 4 GPIO_ACTIVE_HIGH>;
224 enable-gpio = <&gpio6 25 GPIO_ACTIVE_HIGH>;
227 regulator-min-microvolt = <1800000>;
228 regulator-max-microvolt = <2900000>;
229 regulator-name = "mmci-reg";
230 regulator-type = "voltage";
232 startup-delay-us = <100>;
234 states = <1800000 0x1
238 // External Micro SD slot
240 arm,primecell-periphid = <0x10480180>;
241 max-frequency = <100000000>;
247 /* All direction control is used */
254 vmmc-supply = <&ab8500_ldo_aux3_reg>;
255 vqmmc-supply = <&vmmci>;
256 pinctrl-names = "default", "sleep";
257 pinctrl-0 = <&mc0_a_1_default &sdi0_default_mode>;
258 pinctrl-1 = <&mc0_a_1_sleep>;
261 cd-gpios = <&gpio6 26 GPIO_ACTIVE_LOW>;
268 arm,primecell-periphid = <0x10480180>;
269 max-frequency = <100000000>;
271 pinctrl-names = "default", "sleep";
272 pinctrl-0 = <&mc1_a_1_default>;
273 pinctrl-1 = <&mc1_a_1_sleep>;
278 // Unused PoP eMMC - register and put it to sleep by default */
280 arm,primecell-periphid = <0x10480180>;
281 pinctrl-names = "default";
282 pinctrl-0 = <&mc2_a_1_sleep>;
289 arm,primecell-periphid = <0x10480180>;
290 max-frequency = <100000000>;
295 vmmc-supply = <&ab8500_ldo_aux2_reg>;
296 pinctrl-names = "default", "sleep";
297 pinctrl-0 = <&mc4_a_1_default>;
298 pinctrl-1 = <&mc4_a_1_sleep>;
304 pinctrl-names = "default", "sleep";
305 pinctrl-0 = <&u0_a_1_default>;
306 pinctrl-1 = <&u0_a_1_sleep>;
310 /* This UART is unused and thus left disabled */
312 pinctrl-names = "default", "sleep";
313 pinctrl-0 = <&u1rxtx_a_1_default>;
314 pinctrl-1 = <&u1rxtx_a_1_sleep>;
318 pinctrl-names = "default", "sleep";
319 pinctrl-0 = <&u2rxtx_c_1_default>;
320 pinctrl-1 = <&u2rxtx_c_1_sleep>;
325 pinctrl-names = "default","sleep";
326 pinctrl-0 = <&i2c0_a_1_default>;
327 pinctrl-1 = <&i2c0_a_1_sleep>;
332 pinctrl-names = "default","sleep";
333 pinctrl-0 = <&i2c1_b_2_default>;
334 pinctrl-1 = <&i2c1_b_2_sleep>;
339 pinctrl-names = "default","sleep";
340 pinctrl-0 = <&i2c2_b_2_default>;
341 pinctrl-1 = <&i2c2_b_2_sleep>;
345 compatible = "st,lsm303dlh-accel";
346 st,drdy-int-pin = <1>;
348 vdd-supply = <&ab8500_ldo_aux1_reg>;
349 vddio-supply = <&db8500_vsmps2_reg>;
350 pinctrl-names = "default";
351 pinctrl-0 = <&accel_snowball_mode>;
352 interrupt-parent = <&gpio5>;
353 interrupts = <3 IRQ_TYPE_EDGE_RISING>, /* INT1 */
354 <4 IRQ_TYPE_EDGE_RISING>; /* INT2 */
358 compatible = "st,lsm303dlh-magn";
360 vdd-supply = <&ab8500_ldo_aux1_reg>;
361 vddio-supply = <&db8500_vsmps2_reg>;
362 pinctrl-names = "default";
363 pinctrl-0 = <&magneto_snowball_mode>;
364 interrupt-parent = <&gpio5>;
365 interrupts = <5 IRQ_TYPE_EDGE_RISING>; /* DRDY line */
369 compatible = "st,l3g4200d-gyro";
370 st,drdy-int-pin = <2>;
372 vdd-supply = <&ab8500_ldo_aux1_reg>;
373 vddio-supply = <&db8500_vsmps2_reg>;
374 pinctrl-names = "default";
375 pinctrl-0 = <&gyro_snowball_mode>;
376 interrupt-parent = <&gpio5>;
377 interrupts = <6 IRQ_TYPE_EDGE_RISING>, /* DRDY line */
378 <9 IRQ_TYPE_EDGE_RISING>; /* INT1 */
381 /* Barometer/pressure sensor */
382 compatible = "st,lps001wp-press";
384 vdd-supply = <&ab8500_ldo_aux1_reg>;
385 vddio-supply = <&db8500_vsmps2_reg>;
390 pinctrl-names = "default","sleep";
391 pinctrl-0 = <&i2c3_c_2_default>;
392 pinctrl-1 = <&i2c3_c_2_sleep>;
397 pinctrl-names = "default";
398 pinctrl-0 = <&ssp0_snowball_mode>;
406 * AB8500 GPIOs are numbered starting from 1, so the first
407 * index 0 is what in the datasheet is called "GPIO1", and
408 * the second is "GPIO2" and so forth. Confusingly, the
409 * Snowball schematic then names the "GPIO2" line "PM_GPIO1".
410 * while later naming "GPIO4" as "PM_GPIO4".
412 gpio-line-names = "", /* AB8500 GPIO1 */
413 "PM_GPIO1", /* AB8500 GPIO2 */
414 "WLAN_CLK_REQ", /* AB8500 GPIO3 */
415 "PM_GPIO4", /* AB8500 GPIO4 */
416 "", "", "", "", "", "", "", "", "", "", "",
417 "EN_3V6", /* AB8500 GPIO16 */
418 "", "", "", "" ,"", "", "", "", "",
419 "EN_3V3", /* AB8500 GPIO26 */
420 "", "", "", "", "", "", "", "", "", "", "", "", "",
421 "PM_GPIO40", /* AB8500 GPIO40 */
422 "PM_GPIO41", /* AB8500 GPIO41 */
423 "PM_GPIO42"; /* AB8500 GPIO42 */
427 pinctrl-names = "default", "sleep";
428 pinctrl-0 = <&usb_a_1_default>;
429 pinctrl-1 = <&usb_a_1_sleep>;
432 ext_regulators: regulator-external {
433 ab8500_ext1_reg: ab8500_ext1 {
434 regulator-name = "ab8500-ext-supply1";
437 ab8500_ext2_reg_reg: ab8500_ext2 {
438 regulator-name = "ab8500-ext-supply2";
441 ab8500_ext3_reg_reg: ab8500_ext3 {
442 regulator-name = "ab8500-ext-supply3";
447 ab8500_ldo_aux1_reg: ab8500_ldo_aux1 {
448 regulator-name = "V-DISPLAY";
451 ab8500_ldo_aux2_reg: ab8500_ldo_aux2 {
452 regulator-name = "V-eMMC1";
455 ab8500_ldo_aux3_reg: ab8500_ldo_aux3 {
456 regulator-name = "V-MMC-SD";
459 ab8500_ldo_intcore_reg: ab8500_ldo_intcore {
460 regulator-name = "V-INTCORE";
463 ab8500_ldo_tvout_reg: ab8500_ldo_tvout {
464 regulator-name = "V-TVOUT";
467 ab8500_ldo_audio_reg: ab8500_ldo_audio {
468 regulator-name = "V-AUD";
471 ab8500_ldo_anamic1_reg: ab8500_ldo_anamic1 {
472 regulator-name = "V-AMIC1";
475 ab8500_ldo_anamic2_reg: ab8500_ldo_anamic2 {
476 regulator-name = "V-AMIC2";
479 ab8500_ldo_dmic_reg: ab8500_ldo_dmic {
480 regulator-name = "V-DMIC";
483 ab8500_ldo_ana_reg: ab8500_ldo_ana {
484 regulator-name = "V-CSI/DSI";
492 * Set this up using hogs, as time goes by and as seems fit, these
493 * can be moved over to being controlled by respective device.
495 pinctrl-names = "default";
496 pinctrl-0 = <&gbf_snowball_mode>,
497 <&wlan_snowball_mode>;
501 * Mux in "SM" which is used for the
502 * SMSC911x Ethernet adapter
504 eth_snowball_mode: eth_snowball {
511 pins = "GPIO140_B11";
512 ste,config = <&in_nopull>;
516 pins = "GPIO141_C12";
517 ste,config = <&gpio_out_hi>;
523 sdi0_default_mode: sdi0_default {
526 /* Add the DAT31 pin even if it is not really used */
527 groups = "mc0dat31dir_a_1";
530 pins = "GPIO21_AB3"; /* DAT31DIR */
531 ste,config = <&out_hi>;
533 /* SD card detect GPIO pin, extend default state */
535 pins = "GPIO218_AH11";
536 ste,config = <&gpio_in_pu>;
538 /* VMMCI level-shifter enable */
540 pins = "GPIO217_AH12";
541 ste,config = <&gpio_out_hi>;
543 /* VMMCI level-shifter voltage select */
545 pins = "GPIO228_AJ6";
546 ste,config = <&gpio_out_hi>;
551 ssp0_snowball_mode: ssp0_snowball_default {
557 pins = "GPIO144_B13"; /* FRM */
558 ste,config = <&gpio_out_hi>;
561 pins = "GPIO145_C13"; /* RXD */
562 ste,config = <&in_pd>;
566 "GPIO146_D13", /* TXD */
567 "GPIO143_D12"; /* CLK */
568 ste,config = <&out_lo>;
574 gpioled_snowball_mode: gpioled_default {
576 pins = "GPIO142_C11";
577 ste,config = <&gpio_out_hi>;
583 accel_snowball_mode: accel_snowball {
584 /* Accelerometer lines */
587 "GPIO163_C20", /* ACCEL_IRQ1 */
588 "GPIO164_B21"; /* ACCEL_IRQ2 */
589 ste,config = <&gpio_in_pu>;
594 gyro_snowball_mode: gyro_snowball {
597 "GPIO166_A22", /* DRDY */
598 "GPIO169_D22"; /* INT */
599 ste,config = <&gpio_in_pu>;
604 magneto_snowball_mode: magneto_snowball {
606 pins = "GPIO165_C21"; /* MAG_DRDY */
607 ste,config = <&gpio_in_pu>;
612 gbf_snowball_mode: gbf_snowball {
614 * GBF (GPS, Bluetooth, FM-radio) interface,
615 * pull low to reset state
618 pins = "GPIO171_D23"; /* GBF_ENA_RESET */
619 ste,config = <&gpio_out_lo>;
624 wlan_snowball_mode: wlan_snowball {
626 * Activate this mode with the WLAN chip.
627 * These are plain GPIO pins used by WLAN
631 "GPIO161_D21", /* WLAN_PMU_EN */
632 "GPIO215_AH13"; /* WLAN_ENA */
633 ste,config = <&gpio_out_lo>;
636 pins = "GPIO216_AG12"; /* WLAN_IRQ */
637 ste,config = <&gpio_in_pu>;
644 pinctrl-names = "default", "sleep";
645 pinctrl-0 = <&lcd_default_mode>;
646 pinctrl-1 = <&lcd_sleep_mode>;