1 // SPDX-License-Identifier: GPL-2.0-or-later
3 * Copyright 2011 ST-Ericsson AB
7 #include "ste-db8500.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>;
270 vmmc-supply = <&ab8500_ldo_aux2_reg>;
271 pinctrl-names = "default", "sleep";
272 pinctrl-0 = <&mc4_a_1_default>;
273 pinctrl-1 = <&mc4_a_1_sleep>;
279 pinctrl-names = "default", "sleep";
280 pinctrl-0 = <&u0_a_1_default>;
281 pinctrl-1 = <&u0_a_1_sleep>;
285 /* This UART is unused and thus left disabled */
287 pinctrl-names = "default", "sleep";
288 pinctrl-0 = <&u1rxtx_a_1_default>;
289 pinctrl-1 = <&u1rxtx_a_1_sleep>;
293 pinctrl-names = "default", "sleep";
294 pinctrl-0 = <&u2rxtx_c_1_default>;
295 pinctrl-1 = <&u2rxtx_c_1_sleep>;
300 pinctrl-names = "default","sleep";
301 pinctrl-0 = <&i2c0_a_1_default>;
302 pinctrl-1 = <&i2c0_a_1_sleep>;
307 pinctrl-names = "default","sleep";
308 pinctrl-0 = <&i2c1_b_2_default>;
309 pinctrl-1 = <&i2c1_b_2_sleep>;
314 pinctrl-names = "default","sleep";
315 pinctrl-0 = <&i2c2_b_2_default>;
316 pinctrl-1 = <&i2c2_b_2_sleep>;
320 compatible = "st,lsm303dlh-accel";
321 st,drdy-int-pin = <1>;
323 vdd-supply = <&ab8500_ldo_aux1_reg>;
324 vddio-supply = <&db8500_vsmps2_reg>;
325 pinctrl-names = "default";
326 pinctrl-0 = <&accel_snowball_mode>;
327 interrupt-parent = <&gpio5>;
328 interrupts = <3 IRQ_TYPE_EDGE_RISING>, /* INT1 */
329 <4 IRQ_TYPE_EDGE_RISING>; /* INT2 */
333 compatible = "st,lsm303dlh-magn";
335 vdd-supply = <&ab8500_ldo_aux1_reg>;
336 vddio-supply = <&db8500_vsmps2_reg>;
337 pinctrl-names = "default";
338 pinctrl-0 = <&magneto_snowball_mode>;
339 interrupt-parent = <&gpio5>;
340 interrupts = <5 IRQ_TYPE_EDGE_RISING>; /* DRDY line */
344 compatible = "st,l3g4200d-gyro";
345 st,drdy-int-pin = <2>;
347 vdd-supply = <&ab8500_ldo_aux1_reg>;
348 vddio-supply = <&db8500_vsmps2_reg>;
349 pinctrl-names = "default";
350 pinctrl-0 = <&gyro_snowball_mode>;
351 interrupt-parent = <&gpio5>;
352 interrupts = <6 IRQ_TYPE_EDGE_RISING>, /* DRDY line */
353 <9 IRQ_TYPE_EDGE_RISING>; /* INT1 */
356 /* Barometer/pressure sensor */
357 compatible = "st,lps001wp-press";
359 vdd-supply = <&ab8500_ldo_aux1_reg>;
360 vddio-supply = <&db8500_vsmps2_reg>;
365 pinctrl-names = "default","sleep";
366 pinctrl-0 = <&i2c3_c_2_default>;
367 pinctrl-1 = <&i2c3_c_2_sleep>;
372 pinctrl-names = "default";
373 pinctrl-0 = <&ssp0_snowball_mode>;
381 * AB8500 GPIOs are numbered starting from 1, so the first
382 * index 0 is what in the datasheet is called "GPIO1", and
383 * the second is "GPIO2" and so forth. Confusingly, the
384 * Snowball schematic then names the "GPIO2" line "PM_GPIO1".
385 * while later naming "GPIO4" as "PM_GPIO4".
387 gpio-line-names = "", /* AB8500 GPIO1 */
388 "PM_GPIO1", /* AB8500 GPIO2 */
389 "WLAN_CLK_REQ", /* AB8500 GPIO3 */
390 "PM_GPIO4", /* AB8500 GPIO4 */
391 "", "", "", "", "", "", "", "", "", "", "",
392 "EN_3V6", /* AB8500 GPIO16 */
393 "", "", "", "" ,"", "", "", "", "",
394 "EN_3V3", /* AB8500 GPIO26 */
395 "", "", "", "", "", "", "", "", "", "", "", "", "",
396 "PM_GPIO40", /* AB8500 GPIO40 */
397 "PM_GPIO41", /* AB8500 GPIO41 */
398 "PM_GPIO42"; /* AB8500 GPIO42 */
402 pinctrl-names = "default", "sleep";
403 pinctrl-0 = <&usb_a_1_default>;
404 pinctrl-1 = <&usb_a_1_sleep>;
407 ext_regulators: ab8500-ext-regulators {
408 ab8500_ext1_reg: ab8500_ext1 {
409 regulator-name = "ab8500-ext-supply1";
412 ab8500_ext2_reg_reg: ab8500_ext2 {
413 regulator-name = "ab8500-ext-supply2";
416 ab8500_ext3_reg_reg: ab8500_ext3 {
417 regulator-name = "ab8500-ext-supply3";
422 ab8500_ldo_aux1_reg: ab8500_ldo_aux1 {
423 regulator-name = "V-DISPLAY";
426 ab8500_ldo_aux2_reg: ab8500_ldo_aux2 {
427 regulator-name = "V-eMMC1";
430 ab8500_ldo_aux3_reg: ab8500_ldo_aux3 {
431 regulator-name = "V-MMC-SD";
434 ab8500_ldo_intcore_reg: ab8500_ldo_intcore {
435 regulator-name = "V-INTCORE";
438 ab8500_ldo_tvout_reg: ab8500_ldo_tvout {
439 regulator-name = "V-TVOUT";
442 ab8500_ldo_audio_reg: ab8500_ldo_audio {
443 regulator-name = "V-AUD";
446 ab8500_ldo_anamic1_reg: ab8500_ldo_anamic1 {
447 regulator-name = "V-AMIC1";
450 ab8500_ldo_anamic2_reg: ab8500_ldo_anamic2 {
451 regulator-name = "V-AMIC2";
454 ab8500_ldo_dmic_reg: ab8500_ldo_dmic {
455 regulator-name = "V-DMIC";
458 ab8500_ldo_ana_reg: ab8500_ldo_ana {
459 regulator-name = "V-CSI/DSI";
467 * Set this up using hogs, as time goes by and as seems fit, these
468 * can be moved over to being controlled by respective device.
470 pinctrl-names = "default";
471 pinctrl-0 = <&gbf_snowball_mode>,
472 <&wlan_snowball_mode>;
476 * Mux in "SM" which is used for the
477 * SMSC911x Ethernet adapter
479 eth_snowball_mode: eth_snowball {
486 pins = "GPIO140_B11";
487 ste,config = <&in_nopull>;
491 pins = "GPIO141_C12";
492 ste,config = <&gpio_out_hi>;
498 sdi0_default_mode: sdi0_default {
501 /* Add the DAT31 pin even if it is not really used */
502 groups = "mc0dat31dir_a_1";
505 pins = "GPIO21_AB3"; /* DAT31DIR */
506 ste,config = <&out_hi>;
508 /* SD card detect GPIO pin, extend default state */
510 pins = "GPIO218_AH11";
511 ste,config = <&gpio_in_pu>;
513 /* VMMCI level-shifter enable */
515 pins = "GPIO217_AH12";
516 ste,config = <&gpio_out_hi>;
518 /* VMMCI level-shifter voltage select */
520 pins = "GPIO228_AJ6";
521 ste,config = <&gpio_out_hi>;
526 ssp0_snowball_mode: ssp0_snowball_default {
532 pins = "GPIO144_B13"; /* FRM */
533 ste,config = <&gpio_out_hi>;
536 pins = "GPIO145_C13"; /* RXD */
537 ste,config = <&in_pd>;
541 "GPIO146_D13", /* TXD */
542 "GPIO143_D12"; /* CLK */
543 ste,config = <&out_lo>;
549 gpioled_snowball_mode: gpioled_default {
551 pins = "GPIO142_C11";
552 ste,config = <&gpio_out_hi>;
558 accel_snowball_mode: accel_snowball {
559 /* Accelerometer lines */
562 "GPIO163_C20", /* ACCEL_IRQ1 */
563 "GPIO164_B21"; /* ACCEL_IRQ2 */
564 ste,config = <&gpio_in_pu>;
569 gyro_snowball_mode: gyro_snowball {
572 "GPIO166_A22", /* DRDY */
573 "GPIO169_D22"; /* INT */
574 ste,config = <&gpio_in_pu>;
579 magneto_snowball_mode: magneto_snowball {
581 pins = "GPIO165_C21"; /* MAG_DRDY */
582 ste,config = <&gpio_in_pu>;
587 gbf_snowball_mode: gbf_snowball {
589 * GBF (GPS, Bluetooth, FM-radio) interface,
590 * pull low to reset state
593 pins = "GPIO171_D23"; /* GBF_ENA_RESET */
594 ste,config = <&gpio_out_lo>;
599 wlan_snowball_mode: wlan_snowball {
601 * Activate this mode with the WLAN chip.
602 * These are plain GPIO pins used by WLAN
606 "GPIO161_D21", /* WLAN_PMU_EN */
607 "GPIO215_AH13"; /* WLAN_ENA */
608 ste,config = <&gpio_out_lo>;
611 pins = "GPIO216_AG12"; /* WLAN_IRQ */
612 ste,config = <&gpio_in_pu>;
619 pinctrl-names = "default", "sleep";
620 pinctrl-0 = <&lcd_default_mode>;
621 pinctrl-1 = <&lcd_sleep_mode>;