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 = "regulator-fixed";
22 regulator-name = "en-3v3-fixed-supply";
23 regulator-min-microvolt = <3300000>;
24 regulator-max-microvolt = <3300000>;
25 /* AB8500 GPIOs start from 1 - offset 25 is GPIO26. */
26 gpio = <&ab8500_gpio 25 0x4>;
27 startup-delay-us = <5000>;
32 compatible = "gpio-keys";
37 debounce-interval = <50>;
41 gpios = <&gpio1 0 GPIO_ACTIVE_HIGH>;
44 debounce-interval = <50>;
48 gpios = <&gpio4 23 GPIO_ACTIVE_HIGH>;
51 debounce-interval = <50>;
55 gpios = <&gpio4 24 GPIO_ACTIVE_HIGH>;
58 debounce-interval = <50>;
62 gpios = <&gpio5 1 GPIO_ACTIVE_HIGH>;
65 debounce-interval = <50>;
69 gpios = <&gpio5 2 GPIO_ACTIVE_HIGH>;
74 compatible = "gpio-leds";
75 pinctrl-names = "default";
76 pinctrl-0 = <&gpioled_snowball_mode>;
79 gpios = <&gpio4 14 GPIO_ACTIVE_HIGH>;
81 linux,default-trigger = "heartbeat";
86 /* Name the GPIO muxed rails on the Snowball board */
89 gpio-line-names = "", "", "", "", "", "", "", "",
90 "", "", "", "", "", "", "", "",
91 "", "", "", "", "", "", "", "",
92 "", "", "", "", "", "", "",
98 gpio-line-names = "USR PB", "", "", "", "", "", "", "",
99 "", "", "", "", "", "", "", "",
100 "", "", "", "", "", "", "", "",
101 "", "", "", "", "", "", "", "";
106 gpio-line-names = "", "", "", "", "AP_GPIO68", "", "", "",
107 "", "", "", "", "", "", "", "",
108 "", "", "", "", "", "", "", "",
109 "", "", "", "", "", "", "", "";
113 /* GPIOs 128 - 159 */
114 gpio-line-names = "", "", "", "", "", "", "", "",
115 "", "", "", "", "IRQ_LAN", "RSTn_LAN",
116 "USR_LED", "", "", "", "", "", "",
117 "", "", "AP_GPIO151", "AP_GPIO152",
118 "", "", "", "", "", "", "";
122 /* GPIOs 160 - 191 */
123 gpio-line-names = "", "AP_GPIO161", "AP_GPIO162",
124 "ACCELEROMETER_INT1_RDY",
125 "ACCELEROMETER_INT2", "MAG_DRDY",
126 "GYRO_DRDY", "RSTn_MLC", "RSTn_SLC",
127 "GYRO_INT", "UART_WAKE", "GBF_RESET",
129 "", "", "", "", "", "", "", "",
130 "", "", "", "", "", "", "", "";
134 /* GPIOs 192 - 223 */
135 gpio-line-names = "HDTV_INTn", "", "", "", "HDTV_RST",
136 "", "", "", "", "", "", "", "", "",
137 "", "", "", "", "", "", "", "", "",
138 "WLAN_RESETN", "WLAN_IRQ", "MMC_EN",
139 "MMC_CD", "", "", "", "", "";
143 /* GPIOs 224 - 255 */
144 gpio-line-names = "", "", "", "", "SD_SEL", "", "", "",
145 "", "", "", "", "", "", "", "",
146 "", "", "", "", "", "", "", "",
147 "", "", "", "", "", "", "", "";
151 pinctrl-names = "default";
152 pinctrl-0 = <&msp0txrxtfstck_a_1_default>;
157 pinctrl-names = "default";
158 pinctrl-0 = <&msp1txrx_a_1_default>;
163 pinctrl-names = "default";
164 pinctrl-0 = <&msp2_a_1_default>;
171 external-bus@50000000 {
175 compatible = "smsc,lan9115";
177 interrupts = <12 IRQ_TYPE_EDGE_RISING>;
178 interrupt-parent = <&gpio4>;
179 vdd33a-supply = <&en_3v3_reg>;
180 vddvario-supply = <&db8500_vape_reg>;
181 pinctrl-names = "default";
182 pinctrl-0 = <ð_snowball_mode>;
186 smsc,force-internal-phy;
187 smsc,irq-active-high;
190 clocks = <&prcc_pclk 3 0>;
194 /* ST6G3244ME level translator for 1.8/2.9 V */
195 vmmci: regulator-gpio {
196 compatible = "regulator-gpio";
199 gpios = <&gpio7 4 GPIO_ACTIVE_HIGH>;
201 enable-gpio = <&gpio6 25 GPIO_ACTIVE_HIGH>;
204 regulator-min-microvolt = <1800000>;
205 regulator-max-microvolt = <2900000>;
206 regulator-name = "mmci-reg";
207 regulator-type = "voltage";
209 startup-delay-us = <100>;
211 states = <1800000 0x1
215 // External Micro SD slot
217 arm,primecell-periphid = <0x10480180>;
218 max-frequency = <100000000>;
224 /* All direction control is used */
231 vmmc-supply = <&ab8500_ldo_aux3_reg>;
232 vqmmc-supply = <&vmmci>;
233 pinctrl-names = "default", "sleep";
234 pinctrl-0 = <&mc0_a_1_default &sdi0_default_mode>;
235 pinctrl-1 = <&mc0_a_1_sleep>;
238 cd-gpios = <&gpio6 26 GPIO_ACTIVE_LOW>;
245 arm,primecell-periphid = <0x10480180>;
246 max-frequency = <100000000>;
248 pinctrl-names = "default", "sleep";
249 pinctrl-0 = <&mc1_a_1_default>;
250 pinctrl-1 = <&mc1_a_1_sleep>;
255 // Unused PoP eMMC - register and put it to sleep by default */
257 arm,primecell-periphid = <0x10480180>;
258 pinctrl-names = "default";
259 pinctrl-0 = <&mc2_a_1_sleep>;
266 arm,primecell-periphid = <0x10480180>;
267 max-frequency = <100000000>;
272 vmmc-supply = <&ab8500_ldo_aux2_reg>;
273 pinctrl-names = "default", "sleep";
274 pinctrl-0 = <&mc4_a_1_default>;
275 pinctrl-1 = <&mc4_a_1_sleep>;
281 pinctrl-names = "default", "sleep";
282 pinctrl-0 = <&u0_a_1_default>;
283 pinctrl-1 = <&u0_a_1_sleep>;
287 /* This UART is unused and thus left disabled */
289 pinctrl-names = "default", "sleep";
290 pinctrl-0 = <&u1rxtx_a_1_default>;
291 pinctrl-1 = <&u1rxtx_a_1_sleep>;
295 pinctrl-names = "default", "sleep";
296 pinctrl-0 = <&u2rxtx_c_1_default>;
297 pinctrl-1 = <&u2rxtx_c_1_sleep>;
302 pinctrl-names = "default","sleep";
303 pinctrl-0 = <&i2c0_a_1_default>;
304 pinctrl-1 = <&i2c0_a_1_sleep>;
309 pinctrl-names = "default","sleep";
310 pinctrl-0 = <&i2c1_b_2_default>;
311 pinctrl-1 = <&i2c1_b_2_sleep>;
316 pinctrl-names = "default","sleep";
317 pinctrl-0 = <&i2c2_b_2_default>;
318 pinctrl-1 = <&i2c2_b_2_sleep>;
322 compatible = "st,lsm303dlh-accel";
323 st,drdy-int-pin = <1>;
325 vdd-supply = <&ab8500_ldo_aux1_reg>;
326 vddio-supply = <&db8500_vsmps2_reg>;
327 pinctrl-names = "default";
328 pinctrl-0 = <&accel_snowball_mode>;
329 interrupt-parent = <&gpio5>;
330 interrupts = <3 IRQ_TYPE_EDGE_RISING>, /* INT1 */
331 <4 IRQ_TYPE_EDGE_RISING>; /* INT2 */
335 compatible = "st,lsm303dlh-magn";
337 vdd-supply = <&ab8500_ldo_aux1_reg>;
338 vddio-supply = <&db8500_vsmps2_reg>;
339 pinctrl-names = "default";
340 pinctrl-0 = <&magneto_snowball_mode>;
341 interrupt-parent = <&gpio5>;
342 interrupts = <5 IRQ_TYPE_EDGE_RISING>; /* DRDY line */
346 compatible = "st,l3g4200d-gyro";
347 st,drdy-int-pin = <2>;
349 vdd-supply = <&ab8500_ldo_aux1_reg>;
350 vddio-supply = <&db8500_vsmps2_reg>;
351 pinctrl-names = "default";
352 pinctrl-0 = <&gyro_snowball_mode>;
353 interrupt-parent = <&gpio5>;
354 interrupts = <6 IRQ_TYPE_EDGE_RISING>, /* DRDY line */
355 <9 IRQ_TYPE_EDGE_RISING>; /* INT1 */
358 /* Barometer/pressure sensor */
359 compatible = "st,lps001wp-press";
361 vdd-supply = <&ab8500_ldo_aux1_reg>;
362 vddio-supply = <&db8500_vsmps2_reg>;
367 pinctrl-names = "default","sleep";
368 pinctrl-0 = <&i2c3_c_2_default>;
369 pinctrl-1 = <&i2c3_c_2_sleep>;
374 pinctrl-names = "default";
375 pinctrl-0 = <&ssp0_snowball_mode>;
381 ab8500-gpiocontroller {
383 * AB8500 GPIOs are numbered starting from 1, so the first
384 * index 0 is what in the datasheet is called "GPIO1", and
385 * the second is "GPIO2" and so forth. Confusingly, the
386 * Snowball schematic then names the "GPIO2" line "PM_GPIO1".
387 * while later naming "GPIO4" as "PM_GPIO4".
389 gpio-line-names = "", /* AB8500 GPIO1 */
390 "PM_GPIO1", /* AB8500 GPIO2 */
391 "WLAN_CLK_REQ", /* AB8500 GPIO3 */
392 "PM_GPIO4", /* AB8500 GPIO4 */
393 "", "", "", "", "", "", "", "", "", "", "",
394 "EN_3V6", /* AB8500 GPIO16 */
395 "", "", "", "" ,"", "", "", "", "",
396 "EN_3V3", /* AB8500 GPIO26 */
397 "", "", "", "", "", "", "", "", "", "", "", "", "",
398 "PM_GPIO40", /* AB8500 GPIO40 */
399 "PM_GPIO41", /* AB8500 GPIO41 */
400 "PM_GPIO42"; /* AB8500 GPIO42 */
404 pinctrl-names = "default", "sleep";
405 pinctrl-0 = <&usb_a_1_default>;
406 pinctrl-1 = <&usb_a_1_sleep>;
409 ext_regulators: ab8500-ext-regulators {
410 ab8500_ext1_reg: ab8500_ext1 {
411 regulator-name = "ab8500-ext-supply1";
414 ab8500_ext2_reg_reg: ab8500_ext2 {
415 regulator-name = "ab8500-ext-supply2";
418 ab8500_ext3_reg_reg: ab8500_ext3 {
419 regulator-name = "ab8500-ext-supply3";
424 ab8500_ldo_aux1_reg: ab8500_ldo_aux1 {
425 regulator-name = "V-DISPLAY";
428 ab8500_ldo_aux2_reg: ab8500_ldo_aux2 {
429 regulator-name = "V-eMMC1";
432 ab8500_ldo_aux3_reg: ab8500_ldo_aux3 {
433 regulator-name = "V-MMC-SD";
436 ab8500_ldo_intcore_reg: ab8500_ldo_intcore {
437 regulator-name = "V-INTCORE";
440 ab8500_ldo_tvout_reg: ab8500_ldo_tvout {
441 regulator-name = "V-TVOUT";
444 ab8500_ldo_audio_reg: ab8500_ldo_audio {
445 regulator-name = "V-AUD";
448 ab8500_ldo_anamic1_reg: ab8500_ldo_anamic1 {
449 regulator-name = "V-AMIC1";
452 ab8500_ldo_anamic2_reg: ab8500_ldo_anamic2 {
453 regulator-name = "V-AMIC2";
456 ab8500_ldo_dmic_reg: ab8500_ldo_dmic {
457 regulator-name = "V-DMIC";
460 ab8500_ldo_ana_reg: ab8500_ldo_ana {
461 regulator-name = "V-CSI/DSI";
469 * Set this up using hogs, as time goes by and as seems fit, these
470 * can be moved over to being controlled by respective device.
472 pinctrl-names = "default";
473 pinctrl-0 = <&gbf_snowball_mode>,
474 <&wlan_snowball_mode>;
478 * Mux in "SM" which is used for the
479 * SMSC911x Ethernet adapter
481 eth_snowball_mode: eth_snowball {
488 pins = "GPIO140_B11";
489 ste,config = <&in_nopull>;
493 pins = "GPIO141_C12";
494 ste,config = <&gpio_out_hi>;
500 sdi0_default_mode: sdi0_default {
503 /* Add the DAT31 pin even if it is not really used */
504 groups = "mc0dat31dir_a_1";
507 pins = "GPIO21_AB3"; /* DAT31DIR */
508 ste,config = <&out_hi>;
510 /* SD card detect GPIO pin, extend default state */
512 pins = "GPIO218_AH11";
513 ste,config = <&gpio_in_pu>;
515 /* VMMCI level-shifter enable */
517 pins = "GPIO217_AH12";
518 ste,config = <&gpio_out_hi>;
520 /* VMMCI level-shifter voltage select */
522 pins = "GPIO228_AJ6";
523 ste,config = <&gpio_out_hi>;
528 ssp0_snowball_mode: ssp0_snowball_default {
534 pins = "GPIO144_B13"; /* FRM */
535 ste,config = <&gpio_out_hi>;
538 pins = "GPIO145_C13"; /* RXD */
539 ste,config = <&in_pd>;
543 "GPIO146_D13", /* TXD */
544 "GPIO143_D12"; /* CLK */
545 ste,config = <&out_lo>;
551 gpioled_snowball_mode: gpioled_default {
553 pins = "GPIO142_C11";
554 ste,config = <&gpio_out_hi>;
560 accel_snowball_mode: accel_snowball {
561 /* Accelerometer lines */
564 "GPIO163_C20", /* ACCEL_IRQ1 */
565 "GPIO164_B21"; /* ACCEL_IRQ2 */
566 ste,config = <&gpio_in_pu>;
571 gyro_snowball_mode: gyro_snowball {
574 "GPIO166_A22", /* DRDY */
575 "GPIO169_D22"; /* INT */
576 ste,config = <&gpio_in_pu>;
581 magneto_snowball_mode: magneto_snowball {
583 pins = "GPIO165_C21"; /* MAG_DRDY */
584 ste,config = <&gpio_in_pu>;
589 gbf_snowball_mode: gbf_snowball {
591 * GBF (GPS, Bluetooth, FM-radio) interface,
592 * pull low to reset state
595 pins = "GPIO171_D23"; /* GBF_ENA_RESET */
596 ste,config = <&gpio_out_lo>;
601 wlan_snowball_mode: wlan_snowball {
603 * Activate this mode with the WLAN chip.
604 * These are plain GPIO pins used by WLAN
608 "GPIO161_D21", /* WLAN_PMU_EN */
609 "GPIO215_AH13"; /* WLAN_ENA */
610 ste,config = <&gpio_out_lo>;
613 pins = "GPIO216_AG12"; /* WLAN_IRQ */
614 ste,config = <&gpio_in_pu>;
621 pinctrl-names = "default", "sleep";
622 pinctrl-0 = <&lcd_default_mode>;
623 pinctrl-1 = <&lcd_sleep_mode>;