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 temperature = <70000>;
42 bat_therm: thermistor {
43 compatible = "murata,ncp18wb473";
44 io-channels = <&gpadc 0x02>; /* BatTemp */
45 pullup-uv = <1800000>;
46 pullup-ohm = <230000>;
48 #thermal-sensor-cells = <0>;
52 compatible = "regulator-fixed";
53 regulator-name = "en-3v3-fixed-supply";
54 regulator-min-microvolt = <3300000>;
55 regulator-max-microvolt = <3300000>;
56 /* AB8500 GPIOs start from 1 - offset 25 is GPIO26. */
57 gpio = <&ab8500_gpio 25 0x4>;
58 startup-delay-us = <5000>;
63 compatible = "gpio-keys";
68 debounce-interval = <50>;
72 gpios = <&gpio1 0 GPIO_ACTIVE_HIGH>;
75 debounce-interval = <50>;
79 gpios = <&gpio4 23 GPIO_ACTIVE_HIGH>;
82 debounce-interval = <50>;
86 gpios = <&gpio4 24 GPIO_ACTIVE_HIGH>;
89 debounce-interval = <50>;
93 gpios = <&gpio5 1 GPIO_ACTIVE_HIGH>;
96 debounce-interval = <50>;
100 gpios = <&gpio5 2 GPIO_ACTIVE_HIGH>;
105 compatible = "gpio-leds";
106 pinctrl-names = "default";
107 pinctrl-0 = <&gpioled_snowball_mode>;
110 gpios = <&gpio4 14 GPIO_ACTIVE_HIGH>;
111 default-state = "on";
112 linux,default-trigger = "heartbeat";
117 /* Name the GPIO muxed rails on the Snowball board */
120 gpio-line-names = "", "", "", "", "", "", "", "",
121 "", "", "", "", "", "", "", "",
122 "", "", "", "", "", "", "", "",
123 "", "", "", "", "", "", "",
129 gpio-line-names = "USR PB", "", "", "", "", "", "", "",
130 "", "", "", "", "", "", "", "",
131 "", "", "", "", "", "", "", "",
132 "", "", "", "", "", "", "", "";
137 gpio-line-names = "", "", "", "", "AP_GPIO68", "", "", "",
138 "", "", "", "", "", "", "", "",
139 "", "", "", "", "", "", "", "",
140 "", "", "", "", "", "", "", "";
144 /* GPIOs 128 - 159 */
145 gpio-line-names = "", "", "", "", "", "", "", "",
146 "", "", "", "", "IRQ_LAN", "RSTn_LAN",
147 "USR_LED", "", "", "", "", "", "",
148 "", "", "AP_GPIO151", "AP_GPIO152",
149 "", "", "", "", "", "", "";
153 /* GPIOs 160 - 191 */
154 gpio-line-names = "", "AP_GPIO161", "AP_GPIO162",
155 "ACCELEROMETER_INT1_RDY",
156 "ACCELEROMETER_INT2", "MAG_DRDY",
157 "GYRO_DRDY", "RSTn_MLC", "RSTn_SLC",
158 "GYRO_INT", "UART_WAKE", "GBF_RESET",
160 "", "", "", "", "", "", "", "",
161 "", "", "", "", "", "", "", "";
165 /* GPIOs 192 - 223 */
166 gpio-line-names = "HDTV_INTn", "", "", "", "HDTV_RST",
167 "", "", "", "", "", "", "", "", "",
168 "", "", "", "", "", "", "", "", "",
169 "WLAN_RESETN", "WLAN_IRQ", "MMC_EN",
170 "MMC_CD", "", "", "", "", "";
174 /* GPIOs 224 - 255 */
175 gpio-line-names = "", "", "", "", "SD_SEL", "", "", "",
176 "", "", "", "", "", "", "", "",
177 "", "", "", "", "", "", "", "",
178 "", "", "", "", "", "", "", "";
182 pinctrl-names = "default";
183 pinctrl-0 = <&msp0txrxtfstck_a_1_default>;
188 pinctrl-names = "default";
189 pinctrl-0 = <&msp1txrx_a_1_default>;
194 pinctrl-names = "default";
195 pinctrl-0 = <&msp2_a_1_default>;
202 external-bus@50000000 {
206 compatible = "smsc,lan9115";
208 interrupts = <12 IRQ_TYPE_EDGE_RISING>;
209 interrupt-parent = <&gpio4>;
210 vdd33a-supply = <&en_3v3_reg>;
211 vddvario-supply = <&db8500_vape_reg>;
212 pinctrl-names = "default";
213 pinctrl-0 = <ð_snowball_mode>;
217 smsc,force-internal-phy;
218 smsc,irq-active-high;
221 clocks = <&prcc_pclk 3 0>;
225 /* ST6G3244ME level translator for 1.8/2.9 V */
226 vmmci: regulator-gpio {
227 compatible = "regulator-gpio";
230 gpios = <&gpio7 4 GPIO_ACTIVE_HIGH>;
232 enable-gpio = <&gpio6 25 GPIO_ACTIVE_HIGH>;
235 regulator-min-microvolt = <1800000>;
236 regulator-max-microvolt = <2900000>;
237 regulator-name = "mmci-reg";
238 regulator-type = "voltage";
240 startup-delay-us = <100>;
242 states = <1800000 0x1
246 // External Micro SD slot
248 arm,primecell-periphid = <0x10480180>;
249 max-frequency = <100000000>;
255 /* All direction control is used */
262 vmmc-supply = <&ab8500_ldo_aux3_reg>;
263 vqmmc-supply = <&vmmci>;
264 pinctrl-names = "default", "sleep";
265 pinctrl-0 = <&mc0_a_1_default &sdi0_default_mode>;
266 pinctrl-1 = <&mc0_a_1_sleep>;
269 cd-gpios = <&gpio6 26 GPIO_ACTIVE_LOW>;
276 arm,primecell-periphid = <0x10480180>;
277 max-frequency = <100000000>;
279 pinctrl-names = "default", "sleep";
280 pinctrl-0 = <&mc1_a_1_default>;
281 pinctrl-1 = <&mc1_a_1_sleep>;
286 // Unused PoP eMMC - register and put it to sleep by default */
288 arm,primecell-periphid = <0x10480180>;
289 pinctrl-names = "default";
290 pinctrl-0 = <&mc2_a_1_sleep>;
297 arm,primecell-periphid = <0x10480180>;
298 max-frequency = <100000000>;
303 vmmc-supply = <&ab8500_ldo_aux2_reg>;
304 pinctrl-names = "default", "sleep";
305 pinctrl-0 = <&mc4_a_1_default>;
306 pinctrl-1 = <&mc4_a_1_sleep>;
312 pinctrl-names = "default", "sleep";
313 pinctrl-0 = <&u0_a_1_default>;
314 pinctrl-1 = <&u0_a_1_sleep>;
318 /* This UART is unused and thus left disabled */
320 pinctrl-names = "default", "sleep";
321 pinctrl-0 = <&u1rxtx_a_1_default>;
322 pinctrl-1 = <&u1rxtx_a_1_sleep>;
326 pinctrl-names = "default", "sleep";
327 pinctrl-0 = <&u2rxtx_c_1_default>;
328 pinctrl-1 = <&u2rxtx_c_1_sleep>;
333 pinctrl-names = "default","sleep";
334 pinctrl-0 = <&i2c0_a_1_default>;
335 pinctrl-1 = <&i2c0_a_1_sleep>;
340 pinctrl-names = "default","sleep";
341 pinctrl-0 = <&i2c1_b_2_default>;
342 pinctrl-1 = <&i2c1_b_2_sleep>;
347 pinctrl-names = "default","sleep";
348 pinctrl-0 = <&i2c2_b_2_default>;
349 pinctrl-1 = <&i2c2_b_2_sleep>;
353 compatible = "st,lsm303dlh-accel";
354 st,drdy-int-pin = <1>;
356 vdd-supply = <&ab8500_ldo_aux1_reg>;
357 vddio-supply = <&db8500_vsmps2_reg>;
358 pinctrl-names = "default";
359 pinctrl-0 = <&accel_snowball_mode>;
360 interrupt-parent = <&gpio5>;
361 interrupts = <3 IRQ_TYPE_EDGE_RISING>, /* INT1 */
362 <4 IRQ_TYPE_EDGE_RISING>; /* INT2 */
366 compatible = "st,lsm303dlh-magn";
368 vdd-supply = <&ab8500_ldo_aux1_reg>;
369 vddio-supply = <&db8500_vsmps2_reg>;
370 pinctrl-names = "default";
371 pinctrl-0 = <&magneto_snowball_mode>;
372 interrupt-parent = <&gpio5>;
373 interrupts = <5 IRQ_TYPE_EDGE_RISING>; /* DRDY line */
377 compatible = "st,l3g4200d-gyro";
378 st,drdy-int-pin = <2>;
380 vdd-supply = <&ab8500_ldo_aux1_reg>;
381 vddio-supply = <&db8500_vsmps2_reg>;
382 pinctrl-names = "default";
383 pinctrl-0 = <&gyro_snowball_mode>;
384 interrupt-parent = <&gpio5>;
385 interrupts = <6 IRQ_TYPE_EDGE_RISING>, /* DRDY line */
386 <9 IRQ_TYPE_EDGE_RISING>; /* INT1 */
389 /* Barometer/pressure sensor */
390 compatible = "st,lps001wp-press";
392 vdd-supply = <&ab8500_ldo_aux1_reg>;
393 vddio-supply = <&db8500_vsmps2_reg>;
398 pinctrl-names = "default","sleep";
399 pinctrl-0 = <&i2c3_c_2_default>;
400 pinctrl-1 = <&i2c3_c_2_sleep>;
405 pinctrl-names = "default";
406 pinctrl-0 = <&ssp0_snowball_mode>;
414 * AB8500 GPIOs are numbered starting from 1, so the first
415 * index 0 is what in the datasheet is called "GPIO1", and
416 * the second is "GPIO2" and so forth. Confusingly, the
417 * Snowball schematic then names the "GPIO2" line "PM_GPIO1".
418 * while later naming "GPIO4" as "PM_GPIO4".
420 gpio-line-names = "", /* AB8500 GPIO1 */
421 "PM_GPIO1", /* AB8500 GPIO2 */
422 "WLAN_CLK_REQ", /* AB8500 GPIO3 */
423 "PM_GPIO4", /* AB8500 GPIO4 */
424 "", "", "", "", "", "", "", "", "", "", "",
425 "EN_3V6", /* AB8500 GPIO16 */
426 "", "", "", "" ,"", "", "", "", "",
427 "EN_3V3", /* AB8500 GPIO26 */
428 "", "", "", "", "", "", "", "", "", "", "", "", "",
429 "PM_GPIO40", /* AB8500 GPIO40 */
430 "PM_GPIO41", /* AB8500 GPIO41 */
431 "PM_GPIO42"; /* AB8500 GPIO42 */
435 pinctrl-names = "default", "sleep";
436 pinctrl-0 = <&usb_a_1_default>;
437 pinctrl-1 = <&usb_a_1_sleep>;
440 ext_regulators: regulator-external {
441 ab8500_ext1_reg: ab8500_ext1 {
442 regulator-name = "ab8500-ext-supply1";
445 ab8500_ext2_reg_reg: ab8500_ext2 {
446 regulator-name = "ab8500-ext-supply2";
449 ab8500_ext3_reg_reg: ab8500_ext3 {
450 regulator-name = "ab8500-ext-supply3";
455 ab8500_ldo_aux1_reg: ab8500_ldo_aux1 {
456 regulator-name = "V-DISPLAY";
459 ab8500_ldo_aux2_reg: ab8500_ldo_aux2 {
460 regulator-name = "V-eMMC1";
463 ab8500_ldo_aux3_reg: ab8500_ldo_aux3 {
464 regulator-name = "V-MMC-SD";
467 ab8500_ldo_intcore_reg: ab8500_ldo_intcore {
468 regulator-name = "V-INTCORE";
471 ab8500_ldo_tvout_reg: ab8500_ldo_tvout {
472 regulator-name = "V-TVOUT";
475 ab8500_ldo_audio_reg: ab8500_ldo_audio {
476 regulator-name = "V-AUD";
479 ab8500_ldo_anamic1_reg: ab8500_ldo_anamic1 {
480 regulator-name = "V-AMIC1";
483 ab8500_ldo_anamic2_reg: ab8500_ldo_anamic2 {
484 regulator-name = "V-AMIC2";
487 ab8500_ldo_dmic_reg: ab8500_ldo_dmic {
488 regulator-name = "V-DMIC";
491 ab8500_ldo_ana_reg: ab8500_ldo_ana {
492 regulator-name = "V-CSI/DSI";
500 * Set this up using hogs, as time goes by and as seems fit, these
501 * can be moved over to being controlled by respective device.
503 pinctrl-names = "default";
504 pinctrl-0 = <&gbf_snowball_mode>,
505 <&wlan_snowball_mode>;
509 * Mux in "SM" which is used for the
510 * SMSC911x Ethernet adapter
512 eth_snowball_mode: eth_snowball {
519 pins = "GPIO140_B11";
520 ste,config = <&in_nopull>;
524 pins = "GPIO141_C12";
525 ste,config = <&gpio_out_hi>;
531 sdi0_default_mode: sdi0_default {
534 /* Add the DAT31 pin even if it is not really used */
535 groups = "mc0dat31dir_a_1";
538 pins = "GPIO21_AB3"; /* DAT31DIR */
539 ste,config = <&out_hi>;
541 /* SD card detect GPIO pin, extend default state */
543 pins = "GPIO218_AH11";
544 ste,config = <&gpio_in_pu>;
546 /* VMMCI level-shifter enable */
548 pins = "GPIO217_AH12";
549 ste,config = <&gpio_out_hi>;
551 /* VMMCI level-shifter voltage select */
553 pins = "GPIO228_AJ6";
554 ste,config = <&gpio_out_hi>;
559 ssp0_snowball_mode: ssp0_snowball_default {
565 pins = "GPIO144_B13"; /* FRM */
566 ste,config = <&gpio_out_hi>;
569 pins = "GPIO145_C13"; /* RXD */
570 ste,config = <&in_pd>;
574 "GPIO146_D13", /* TXD */
575 "GPIO143_D12"; /* CLK */
576 ste,config = <&out_lo>;
582 gpioled_snowball_mode: gpioled_default {
584 pins = "GPIO142_C11";
585 ste,config = <&gpio_out_hi>;
591 accel_snowball_mode: accel_snowball {
592 /* Accelerometer lines */
595 "GPIO163_C20", /* ACCEL_IRQ1 */
596 "GPIO164_B21"; /* ACCEL_IRQ2 */
597 ste,config = <&gpio_in_pu>;
602 gyro_snowball_mode: gyro_snowball {
605 "GPIO166_A22", /* DRDY */
606 "GPIO169_D22"; /* INT */
607 ste,config = <&gpio_in_pu>;
612 magneto_snowball_mode: magneto_snowball {
614 pins = "GPIO165_C21"; /* MAG_DRDY */
615 ste,config = <&gpio_in_pu>;
620 gbf_snowball_mode: gbf_snowball {
622 * GBF (GPS, Bluetooth, FM-radio) interface,
623 * pull low to reset state
626 pins = "GPIO171_D23"; /* GBF_ENA_RESET */
627 ste,config = <&gpio_out_lo>;
632 wlan_snowball_mode: wlan_snowball {
634 * Activate this mode with the WLAN chip.
635 * These are plain GPIO pins used by WLAN
639 "GPIO161_D21", /* WLAN_PMU_EN */
640 "GPIO215_AH13"; /* WLAN_ENA */
641 ste,config = <&gpio_out_lo>;
644 pins = "GPIO216_AG12"; /* WLAN_IRQ */
645 ste,config = <&gpio_in_pu>;
652 pinctrl-names = "default", "sleep";
653 pinctrl-0 = <&lcd_default_mode>;
654 pinctrl-1 = <&lcd_sleep_mode>;