Loading...
1// SPDX-License-Identifier: GPL-2.0-or-later
2/*
3 * Copyright 2011 ST-Ericsson AB
4 */
5
6/dts-v1/;
7#include "ste-db9500.dtsi"
8#include "ste-href-ab8500.dtsi"
9#include "ste-href-family-pinctrl.dtsi"
10
11/ {
12 model = "Calao Systems Snowball platform with device tree";
13 compatible = "calaosystems,snowball-a9500", "st-ericsson,u9500";
14
15 memory {
16 device_type = "memory";
17 reg = <0x00000000 0x20000000>;
18 };
19
20 battery: battery {
21 compatible = "simple-battery";
22 battery-type = "lithium-ion-polymer";
23 };
24
25 thermal-zones {
26 battery-thermal {
27 /* This zone will be polled by the battery temperature code */
28 polling-delay = <0>;
29 polling-delay-passive = <0>;
30 thermal-sensors = <&bat_therm>;
31
32 trips {
33 battery-crit-hi {
34 temperature = <70000>;
35 hysteresis = <2000>;
36 type = "critical";
37 };
38 };
39 };
40 };
41
42 bat_therm: thermistor {
43 compatible = "murata,ncp18wb473";
44 io-channels = <&gpadc 0x02>; /* BatTemp */
45 pullup-uv = <1800000>;
46 pullup-ohm = <230000>;
47 pulldown-ohm = <0>;
48 #thermal-sensor-cells = <0>;
49 };
50
51 en_3v3_reg: en_3v3 {
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>;
59 enable-active-high;
60 };
61
62 gpio_keys {
63 compatible = "gpio-keys";
64 #address-cells = <1>;
65 #size-cells = <0>;
66
67 button@1 {
68 debounce-interval = <50>;
69 wakeup-source;
70 linux,code = <2>;
71 label = "userpb";
72 gpios = <&gpio1 0 GPIO_ACTIVE_HIGH>;
73 };
74 button@2 {
75 debounce-interval = <50>;
76 wakeup-source;
77 linux,code = <3>;
78 label = "extkb1";
79 gpios = <&gpio4 23 GPIO_ACTIVE_HIGH>;
80 };
81 button@3 {
82 debounce-interval = <50>;
83 wakeup-source;
84 linux,code = <4>;
85 label = "extkb2";
86 gpios = <&gpio4 24 GPIO_ACTIVE_HIGH>;
87 };
88 button@4 {
89 debounce-interval = <50>;
90 wakeup-source;
91 linux,code = <5>;
92 label = "extkb3";
93 gpios = <&gpio5 1 GPIO_ACTIVE_HIGH>;
94 };
95 button@5 {
96 debounce-interval = <50>;
97 wakeup-source;
98 linux,code = <6>;
99 label = "extkb4";
100 gpios = <&gpio5 2 GPIO_ACTIVE_HIGH>;
101 };
102 };
103
104 leds {
105 compatible = "gpio-leds";
106 pinctrl-names = "default";
107 pinctrl-0 = <&gpioled_snowball_mode>;
108 used-led {
109 label = "user_led";
110 gpios = <&gpio4 14 GPIO_ACTIVE_HIGH>;
111 default-state = "on";
112 linux,default-trigger = "heartbeat";
113 };
114 };
115
116 soc {
117 /* Name the GPIO muxed rails on the Snowball board */
118 gpio@8012e000 {
119 /* GPIOs 0 - 31 */
120 gpio-line-names = "", "", "", "", "", "", "", "",
121 "", "", "", "", "", "", "", "",
122 "", "", "", "", "", "", "", "",
123 "", "", "", "", "", "", "",
124 "AP_GPIO31";
125 };
126
127 gpio@8012e080 {
128 /* GPIOs 32 - 63 */
129 gpio-line-names = "USR PB", "", "", "", "", "", "", "",
130 "", "", "", "", "", "", "", "",
131 "", "", "", "", "", "", "", "",
132 "", "", "", "", "", "", "", "";
133 };
134
135 gpio@8000e000 {
136 /* GPIOs 64 - 95 */
137 gpio-line-names = "", "", "", "", "AP_GPIO68", "", "", "",
138 "", "", "", "", "", "", "", "",
139 "", "", "", "", "", "", "", "",
140 "", "", "", "", "", "", "", "";
141 };
142
143 gpio@8000e100 {
144 /* GPIOs 128 - 159 */
145 gpio-line-names = "", "", "", "", "", "", "", "",
146 "", "", "", "", "IRQ_LAN", "RSTn_LAN",
147 "USR_LED", "", "", "", "", "", "",
148 "", "", "AP_GPIO151", "AP_GPIO152",
149 "", "", "", "", "", "", "";
150 };
151
152 gpio@8000e180 {
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",
159 "", "", "", "",
160 "", "", "", "", "", "", "", "",
161 "", "", "", "", "", "", "", "";
162 };
163
164 gpio@8011e000 {
165 /* GPIOs 192 - 223 */
166 gpio-line-names = "HDTV_INTn", "", "", "", "HDTV_RST",
167 "", "", "", "", "", "", "", "", "",
168 "", "", "", "", "", "", "", "", "",
169 "WLAN_RESETN", "WLAN_IRQ", "MMC_EN",
170 "MMC_CD", "", "", "", "", "";
171 };
172
173 gpio@8011e080 {
174 /* GPIOs 224 - 255 */
175 gpio-line-names = "", "", "", "", "SD_SEL", "", "", "",
176 "", "", "", "", "", "", "", "",
177 "", "", "", "", "", "", "", "",
178 "", "", "", "", "", "", "", "";
179 };
180
181 msp0: msp@80123000 {
182 pinctrl-names = "default";
183 pinctrl-0 = <&msp0txrxtfstck_a_1_default>;
184 status = "okay";
185 };
186
187 msp1: msp@80124000 {
188 pinctrl-names = "default";
189 pinctrl-0 = <&msp1txrx_a_1_default>;
190 status = "okay";
191 };
192
193 msp2: msp@80117000 {
194 pinctrl-names = "default";
195 pinctrl-0 = <&msp2_a_1_default>;
196 };
197
198 msp3: msp@80125000 {
199 status = "okay";
200 };
201
202 external-bus@50000000 {
203 status = "okay";
204
205 ethernet@0 {
206 compatible = "smsc,lan9115";
207 reg = <0 0x10000>;
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>;
214
215 reg-shift = <1>;
216 reg-io-width = <2>;
217 smsc,force-internal-phy;
218 smsc,irq-active-high;
219 smsc,irq-push-pull;
220
221 clocks = <&prcc_pclk 3 0>;
222 };
223 };
224
225 /* ST6G3244ME level translator for 1.8/2.9 V */
226 vmmci: regulator-gpio {
227 compatible = "regulator-gpio";
228
229 /* GPIO228 SD_SEL */
230 gpios = <&gpio7 4 GPIO_ACTIVE_HIGH>;
231 /* GPIO217 MMC_EN */
232 enable-gpio = <&gpio6 25 GPIO_ACTIVE_HIGH>;
233 enable-active-high;
234
235 regulator-min-microvolt = <1800000>;
236 regulator-max-microvolt = <2900000>;
237 regulator-name = "mmci-reg";
238 regulator-type = "voltage";
239
240 startup-delay-us = <100>;
241
242 states = <1800000 0x1
243 2900000 0x0>;
244 };
245
246 // External Micro SD slot
247 mmc@80126000 {
248 arm,primecell-periphid = <0x10480180>;
249 max-frequency = <100000000>;
250 bus-width = <4>;
251 cap-sd-highspeed;
252 cap-mmc-highspeed;
253 sd-uhs-sdr12;
254 sd-uhs-sdr25;
255 /* All direction control is used */
256 st,sig-dir-cmd;
257 st,sig-dir-dat0;
258 st,sig-dir-dat2;
259 st,sig-dir-dat31;
260 st,sig-pin-fbclk;
261 full-pwr-cycle;
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>;
267
268 /* GPIO218 MMC_CD */
269 cd-gpios = <&gpio6 26 GPIO_ACTIVE_LOW>;
270
271 status = "okay";
272 };
273
274 // WLAN SDIO channel
275 mmc@80118000 {
276 arm,primecell-periphid = <0x10480180>;
277 max-frequency = <100000000>;
278 bus-width = <4>;
279 pinctrl-names = "default", "sleep";
280 pinctrl-0 = <&mc1_a_1_default>;
281 pinctrl-1 = <&mc1_a_1_sleep>;
282
283 status = "okay";
284 };
285
286 // Unused PoP eMMC - register and put it to sleep by default */
287 mmc@80005000 {
288 arm,primecell-periphid = <0x10480180>;
289 pinctrl-names = "default";
290 pinctrl-0 = <&mc2_a_1_sleep>;
291
292 status = "okay";
293 };
294
295 // On-board eMMC
296 mmc@80114000 {
297 arm,primecell-periphid = <0x10480180>;
298 max-frequency = <100000000>;
299 bus-width = <8>;
300 cap-mmc-highspeed;
301 no-sdio;
302 no-sd;
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>;
307
308 status = "okay";
309 };
310
311 uart@80120000 {
312 pinctrl-names = "default", "sleep";
313 pinctrl-0 = <&u0_a_1_default>;
314 pinctrl-1 = <&u0_a_1_sleep>;
315 status = "okay";
316 };
317
318 /* This UART is unused and thus left disabled */
319 uart@80121000 {
320 pinctrl-names = "default", "sleep";
321 pinctrl-0 = <&u1rxtx_a_1_default>;
322 pinctrl-1 = <&u1rxtx_a_1_sleep>;
323 };
324
325 uart@80007000 {
326 pinctrl-names = "default", "sleep";
327 pinctrl-0 = <&u2rxtx_c_1_default>;
328 pinctrl-1 = <&u2rxtx_c_1_sleep>;
329 status = "okay";
330 };
331
332 i2c@80004000 {
333 pinctrl-names = "default","sleep";
334 pinctrl-0 = <&i2c0_a_1_default>;
335 pinctrl-1 = <&i2c0_a_1_sleep>;
336 status = "okay";
337 };
338
339 i2c@80122000 {
340 pinctrl-names = "default","sleep";
341 pinctrl-0 = <&i2c1_b_2_default>;
342 pinctrl-1 = <&i2c1_b_2_sleep>;
343 status = "okay";
344 };
345
346 i2c@80128000 {
347 pinctrl-names = "default","sleep";
348 pinctrl-0 = <&i2c2_b_2_default>;
349 pinctrl-1 = <&i2c2_b_2_sleep>;
350 status = "okay";
351 lsm303dlh@18 {
352 /* Accelerometer */
353 compatible = "st,lsm303dlh-accel";
354 st,drdy-int-pin = <1>;
355 reg = <0x18>;
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 */
363 };
364 lsm303dlh@1e {
365 /* Magnetometer */
366 compatible = "st,lsm303dlh-magn";
367 reg = <0x1e>;
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 */
374 };
375 l3g4200d@68 {
376 /* Gyroscope */
377 compatible = "st,l3g4200d-gyro";
378 st,drdy-int-pin = <2>;
379 reg = <0x68>;
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 */
387 };
388 lsp001wm@5c {
389 /* Barometer/pressure sensor */
390 compatible = "st,lps001wp-press";
391 reg = <0x5c>;
392 vdd-supply = <&ab8500_ldo_aux1_reg>;
393 vddio-supply = <&db8500_vsmps2_reg>;
394 };
395 };
396
397 i2c@80110000 {
398 pinctrl-names = "default","sleep";
399 pinctrl-0 = <&i2c3_c_2_default>;
400 pinctrl-1 = <&i2c3_c_2_sleep>;
401 status = "okay";
402 };
403
404 spi@80002000 {
405 pinctrl-names = "default";
406 pinctrl-0 = <&ssp0_snowball_mode>;
407 status = "okay";
408 };
409
410 prcmu@80157000 {
411 ab8500 {
412 gpio {
413 /*
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".
419 */
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 */
432 };
433
434 phy {
435 pinctrl-names = "default", "sleep";
436 pinctrl-0 = <&usb_a_1_default>;
437 pinctrl-1 = <&usb_a_1_sleep>;
438 };
439
440 ext_regulators: regulator-external {
441 ab8500_ext1_reg: ab8500_ext1 {
442 regulator-name = "ab8500-ext-supply1";
443 };
444
445 ab8500_ext2_reg_reg: ab8500_ext2 {
446 regulator-name = "ab8500-ext-supply2";
447 };
448
449 ab8500_ext3_reg_reg: ab8500_ext3 {
450 regulator-name = "ab8500-ext-supply3";
451 };
452 };
453
454 regulator {
455 ab8500_ldo_aux1_reg: ab8500_ldo_aux1 {
456 regulator-name = "V-DISPLAY";
457 };
458
459 ab8500_ldo_aux2_reg: ab8500_ldo_aux2 {
460 regulator-name = "V-eMMC1";
461 };
462
463 ab8500_ldo_aux3_reg: ab8500_ldo_aux3 {
464 regulator-name = "V-MMC-SD";
465 };
466
467 ab8500_ldo_intcore_reg: ab8500_ldo_intcore {
468 regulator-name = "V-INTCORE";
469 };
470
471 ab8500_ldo_tvout_reg: ab8500_ldo_tvout {
472 regulator-name = "V-TVOUT";
473 };
474
475 ab8500_ldo_audio_reg: ab8500_ldo_audio {
476 regulator-name = "V-AUD";
477 };
478
479 ab8500_ldo_anamic1_reg: ab8500_ldo_anamic1 {
480 regulator-name = "V-AMIC1";
481 };
482
483 ab8500_ldo_anamic2_reg: ab8500_ldo_anamic2 {
484 regulator-name = "V-AMIC2";
485 };
486
487 ab8500_ldo_dmic_reg: ab8500_ldo_dmic {
488 regulator-name = "V-DMIC";
489 };
490
491 ab8500_ldo_ana_reg: ab8500_ldo_ana {
492 regulator-name = "V-CSI/DSI";
493 };
494 };
495 };
496 };
497
498 pinctrl {
499 /*
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.
502 */
503 pinctrl-names = "default";
504 pinctrl-0 = <&gbf_snowball_mode>,
505 <&wlan_snowball_mode>;
506
507 ethernet {
508 /*
509 * Mux in "SM" which is used for the
510 * SMSC911x Ethernet adapter
511 */
512 eth_snowball_mode: eth_snowball {
513 snowball_mux {
514 function = "sm";
515 groups = "sm_b_1";
516 };
517 /* LAN IRQ pin */
518 snowball_cfg1 {
519 pins = "GPIO140_B11";
520 ste,config = <&in_nopull>;
521 };
522 /* LAN reset pin */
523 snowball_cfg2 {
524 pins = "GPIO141_C12";
525 ste,config = <&gpio_out_hi>;
526 };
527
528 };
529 };
530 sdi0 {
531 sdi0_default_mode: sdi0_default {
532 snowball_mux {
533 function = "mc0";
534 /* Add the DAT31 pin even if it is not really used */
535 groups = "mc0dat31dir_a_1";
536 };
537 snowball_cfg1 {
538 pins = "GPIO21_AB3"; /* DAT31DIR */
539 ste,config = <&out_hi>;
540 };
541 /* SD card detect GPIO pin, extend default state */
542 snowball_cfg2 {
543 pins = "GPIO218_AH11";
544 ste,config = <&gpio_in_pu>;
545 };
546 /* VMMCI level-shifter enable */
547 snowball_cfg3 {
548 pins = "GPIO217_AH12";
549 ste,config = <&gpio_out_hi>;
550 };
551 /* VMMCI level-shifter voltage select */
552 snowball_cfg4 {
553 pins = "GPIO228_AJ6";
554 ste,config = <&gpio_out_hi>;
555 };
556 };
557 };
558 ssp0 {
559 ssp0_snowball_mode: ssp0_snowball_default {
560 snowball_mux {
561 function = "ssp0";
562 groups = "ssp0_a_1";
563 };
564 snowball_cfg1 {
565 pins = "GPIO144_B13"; /* FRM */
566 ste,config = <&gpio_out_hi>;
567 };
568 snowball_cfg2 {
569 pins = "GPIO145_C13"; /* RXD */
570 ste,config = <&in_pd>;
571 };
572 snowball_cfg3 {
573 pins =
574 "GPIO146_D13", /* TXD */
575 "GPIO143_D12"; /* CLK */
576 ste,config = <&out_lo>;
577 };
578
579 };
580 };
581 gpio_led {
582 gpioled_snowball_mode: gpioled_default {
583 snowball_cfg1 {
584 pins = "GPIO142_C11";
585 ste,config = <&gpio_out_hi>;
586 };
587
588 };
589 };
590 accelerometer {
591 accel_snowball_mode: accel_snowball {
592 /* Accelerometer lines */
593 snowball_cfg1 {
594 pins =
595 "GPIO163_C20", /* ACCEL_IRQ1 */
596 "GPIO164_B21"; /* ACCEL_IRQ2 */
597 ste,config = <&gpio_in_pu>;
598 };
599 };
600 };
601 gyro {
602 gyro_snowball_mode: gyro_snowball {
603 snowball_cfg1 {
604 pins =
605 "GPIO166_A22", /* DRDY */
606 "GPIO169_D22"; /* INT */
607 ste,config = <&gpio_in_pu>;
608 };
609 };
610 };
611 magnetometer {
612 magneto_snowball_mode: magneto_snowball {
613 snowball_cfg1 {
614 pins = "GPIO165_C21"; /* MAG_DRDY */
615 ste,config = <&gpio_in_pu>;
616 };
617 };
618 };
619 gbf {
620 gbf_snowball_mode: gbf_snowball {
621 /*
622 * GBF (GPS, Bluetooth, FM-radio) interface,
623 * pull low to reset state
624 */
625 snowball_cfg1 {
626 pins = "GPIO171_D23"; /* GBF_ENA_RESET */
627 ste,config = <&gpio_out_lo>;
628 };
629 };
630 };
631 wlan {
632 wlan_snowball_mode: wlan_snowball {
633 /*
634 * Activate this mode with the WLAN chip.
635 * These are plain GPIO pins used by WLAN
636 */
637 snowball_cfg1 {
638 pins =
639 "GPIO161_D21", /* WLAN_PMU_EN */
640 "GPIO215_AH13"; /* WLAN_ENA */
641 ste,config = <&gpio_out_lo>;
642 };
643 snowball_cfg2 {
644 pins = "GPIO216_AG12"; /* WLAN_IRQ */
645 ste,config = <&gpio_in_pu>;
646 };
647 };
648 };
649 };
650
651 mcde@a0350000 {
652 pinctrl-names = "default", "sleep";
653 pinctrl-0 = <&lcd_default_mode>;
654 pinctrl-1 = <&lcd_sleep_mode>;
655 };
656 };
657};
1/*
2 * Copyright 2011 ST-Ericsson AB
3 *
4 * The code contained herein is licensed under the GNU General Public
5 * License. You may obtain a copy of the GNU General Public License
6 * Version 2 or later at the following locations:
7 *
8 * http://www.opensource.org/licenses/gpl-license.html
9 * http://www.gnu.org/copyleft/gpl.html
10 */
11
12/dts-v1/;
13#include "ste-dbx5x0.dtsi"
14#include "ste-href-ab8500.dtsi"
15#include "ste-href-family-pinctrl.dtsi"
16
17/ {
18 model = "Calao Systems Snowball platform with device tree";
19 compatible = "calaosystems,snowball-a9500", "st-ericsson,u9500";
20
21 /* This stablilizes the serial port enumeration */
22 aliases {
23 serial0 = &ux500_serial0;
24 serial1 = &ux500_serial1;
25 serial2 = &ux500_serial2;
26 };
27
28 memory {
29 reg = <0x00000000 0x20000000>;
30 };
31
32 en_3v3_reg: en_3v3 {
33 compatible = "regulator-fixed";
34 regulator-name = "en-3v3-fixed-supply";
35 regulator-min-microvolt = <3300000>;
36 regulator-max-microvolt = <3300000>;
37 /* AB8500 GPIOs start from 1 - offset 25 is GPIO26. */
38 gpio = <&ab8500_gpio 25 0x4>;
39 startup-delay-us = <5000>;
40 enable-active-high;
41 };
42
43 gpio_keys {
44 compatible = "gpio-keys";
45 #address-cells = <1>;
46 #size-cells = <0>;
47
48 button@1 {
49 debounce_interval = <50>;
50 wakeup-source;
51 linux,code = <2>;
52 label = "userpb";
53 gpios = <&gpio1 0 GPIO_ACTIVE_HIGH>;
54 };
55 button@2 {
56 debounce_interval = <50>;
57 wakeup-source;
58 linux,code = <3>;
59 label = "extkb1";
60 gpios = <&gpio4 23 GPIO_ACTIVE_HIGH>;
61 };
62 button@3 {
63 debounce_interval = <50>;
64 wakeup-source;
65 linux,code = <4>;
66 label = "extkb2";
67 gpios = <&gpio4 24 GPIO_ACTIVE_HIGH>;
68 };
69 button@4 {
70 debounce_interval = <50>;
71 wakeup-source;
72 linux,code = <5>;
73 label = "extkb3";
74 gpios = <&gpio5 1 GPIO_ACTIVE_HIGH>;
75 };
76 button@5 {
77 debounce_interval = <50>;
78 wakeup-source;
79 linux,code = <6>;
80 label = "extkb4";
81 gpios = <&gpio5 2 GPIO_ACTIVE_HIGH>;
82 };
83 };
84
85 leds {
86 compatible = "gpio-leds";
87 pinctrl-names = "default";
88 pinctrl-0 = <&gpioled_snowball_mode>;
89 used-led {
90 label = "user_led";
91 gpios = <&gpio4 14 GPIO_ACTIVE_HIGH>;
92 default-state = "on";
93 linux,default-trigger = "heartbeat";
94 };
95 };
96
97 soc {
98 /* Name the GPIO muxed rails on the Snowball board */
99 gpio@8012e000 {
100 /* GPIOs 0 - 31 */
101 gpio-line-names = "", "", "", "", "", "", "", "",
102 "", "", "", "", "", "", "", "",
103 "", "", "", "", "", "", "", "",
104 "", "", "", "", "", "", "",
105 "AP_GPIO31";
106 };
107
108 gpio@8012e080 {
109 /* GPIOs 32 - 63 */
110 gpio-line-names = "USR PB", "", "", "", "", "", "", "",
111 "", "", "", "", "", "", "", "",
112 "", "", "", "", "", "", "", "",
113 "", "", "", "", "", "", "", "";
114 };
115
116 gpio@8000e000 {
117 /* GPIOs 64 - 95 */
118 gpio-line-names = "", "", "", "", "AP_GPIO68", "", "", "",
119 "", "", "", "", "", "", "", "",
120 "", "", "", "", "", "", "", "",
121 "", "", "", "", "", "", "", "";
122 };
123
124 gpio@8000e100 {
125 /* GPIOs 128 - 159 */
126 gpio-line-names = "", "", "", "", "", "", "", "",
127 "", "", "", "", "IRQ_LAN", "RSTn_LAN",
128 "USR_LED", "", "", "", "", "", "",
129 "", "", "AP_GPIO151", "AP_GPIO152",
130 "", "", "", "", "", "", "";
131 };
132
133 gpio@8000e180 {
134 /* GPIOs 160 - 191 */
135 gpio-line-names = "", "AP_GPIO161", "AP_GPIO162",
136 "ACCELEROMETER_INT1_RDY",
137 "ACCELEROMETER_INT2", "MAG_DRDY",
138 "GYRO_DRDY", "RSTn_MLC", "RSTn_SLC",
139 "GYRO_INT", "UART_WAKE", "GBF_RESET",
140 "", "", "", "",
141 "", "", "", "", "", "", "", "",
142 "", "", "", "", "", "", "", "";
143 };
144
145 gpio@8011e000 {
146 /* GPIOs 192 - 223 */
147 gpio-line-names = "HDTV_INTn", "", "", "", "HDTV_RST",
148 "", "", "", "", "", "", "", "", "",
149 "", "", "", "", "", "", "", "", "",
150 "WLAN_RESETN", "WLAN_IRQ", "MMC_EN",
151 "MMC_CD", "", "", "", "", "";
152 };
153
154 gpio@8011e080 {
155 /* GPIOs 224 - 255 */
156 gpio-line-names = "", "", "", "", "SD_SEL", "", "", "",
157 "", "", "", "", "", "", "", "",
158 "", "", "", "", "", "", "", "",
159 "", "", "", "", "", "", "", "";
160 };
161
162 usb_per5@a03e0000 {
163 pinctrl-names = "default", "sleep";
164 pinctrl-0 = <&musb_default_mode>;
165 pinctrl-1 = <&musb_sleep_mode>;
166 };
167
168 sound {
169 compatible = "stericsson,snd-soc-mop500";
170
171 stericsson,cpu-dai = <&msp1 &msp3>;
172 stericsson,audio-codec = <&codec>;
173 };
174
175 msp0: msp@80123000 {
176 pinctrl-names = "default";
177 pinctrl-0 = <&msp0_default_mode>;
178 status = "okay";
179 };
180
181 msp1: msp@80124000 {
182 pinctrl-names = "default";
183 pinctrl-0 = <&msp1_default_mode>;
184 status = "okay";
185 };
186
187 msp2: msp@80117000 {
188 pinctrl-names = "default";
189 pinctrl-0 = <&msp2_default_mode>;
190 };
191
192 msp3: msp@80125000 {
193 status = "okay";
194 };
195
196 external-bus@50000000 {
197 status = "okay";
198
199 ethernet@0 {
200 compatible = "smsc,lan9115";
201 reg = <0 0x10000>;
202 interrupts = <12 IRQ_TYPE_EDGE_RISING>;
203 interrupt-parent = <&gpio4>;
204 vdd33a-supply = <&en_3v3_reg>;
205 vddvario-supply = <&db8500_vape_reg>;
206 pinctrl-names = "default";
207 pinctrl-0 = <ð_snowball_mode>;
208
209 reg-shift = <1>;
210 reg-io-width = <2>;
211 smsc,force-internal-phy;
212 smsc,irq-active-high;
213 smsc,irq-push-pull;
214
215 clocks = <&prcc_pclk 3 0>;
216 };
217 };
218
219 vmmci: regulator-gpio {
220 compatible = "regulator-gpio";
221
222 gpios = <&gpio7 4 GPIO_ACTIVE_HIGH>;
223 enable-gpio = <&gpio6 25 GPIO_ACTIVE_HIGH>;
224
225 regulator-min-microvolt = <1800000>;
226 regulator-max-microvolt = <2900000>;
227 regulator-name = "mmci-reg";
228 regulator-type = "voltage";
229
230 startup-delay-us = <100>;
231 enable-active-high;
232
233 states = <1800000 0x1
234 2900000 0x0>;
235 };
236
237 // External Micro SD slot
238 sdi0_per1@80126000 {
239 arm,primecell-periphid = <0x10480180>;
240 max-frequency = <100000000>;
241 bus-width = <4>;
242 cap-sd-highspeed;
243 cap-mmc-highspeed;
244 sd-uhs-sdr12;
245 sd-uhs-sdr25;
246 /* All direction control is used */
247 st,sig-dir-cmd;
248 st,sig-dir-dat0;
249 st,sig-dir-dat2;
250 st,sig-dir-dat31;
251 st,sig-pin-fbclk;
252 full-pwr-cycle;
253 vmmc-supply = <&ab8500_ldo_aux3_reg>;
254 vqmmc-supply = <&vmmci>;
255 pinctrl-names = "default", "sleep";
256 pinctrl-0 = <&sdi0_default_mode>;
257 pinctrl-1 = <&sdi0_sleep_mode>;
258
259 /* GPIO218 MMC_CD */
260 cd-gpios = <&gpio6 26 GPIO_ACTIVE_LOW>;
261
262 status = "okay";
263 };
264
265 // WLAN SDIO channel
266 sdi1_per2@80118000 {
267 arm,primecell-periphid = <0x10480180>;
268 max-frequency = <100000000>;
269 bus-width = <4>;
270 pinctrl-names = "default", "sleep";
271 pinctrl-0 = <&sdi1_default_mode>;
272 pinctrl-1 = <&sdi1_sleep_mode>;
273
274 status = "okay";
275 };
276
277 // Unused PoP eMMC - register and put it to sleep by default */
278 sdi2_per3@80005000 {
279 arm,primecell-periphid = <0x10480180>;
280 pinctrl-names = "default";
281 pinctrl-0 = <&sdi2_sleep_mode>;
282
283 status = "okay";
284 };
285
286 // On-board eMMC
287 sdi4_per2@80114000 {
288 arm,primecell-periphid = <0x10480180>;
289 max-frequency = <100000000>;
290 bus-width = <8>;
291 cap-mmc-highspeed;
292 vmmc-supply = <&ab8500_ldo_aux2_reg>;
293 pinctrl-names = "default", "sleep";
294 pinctrl-0 = <&sdi4_default_mode>;
295 pinctrl-1 = <&sdi4_sleep_mode>;
296
297 status = "okay";
298 };
299
300 uart@80120000 {
301 pinctrl-names = "default", "sleep";
302 pinctrl-0 = <&uart0_default_mode>;
303 pinctrl-1 = <&uart0_sleep_mode>;
304 status = "okay";
305 };
306
307 /* This UART is unused and thus left disabled */
308 uart@80121000 {
309 pinctrl-names = "default", "sleep";
310 pinctrl-0 = <&uart1_default_mode>;
311 pinctrl-1 = <&uart1_sleep_mode>;
312 };
313
314 uart@80007000 {
315 pinctrl-names = "default", "sleep";
316 pinctrl-0 = <&uart2_default_mode>;
317 pinctrl-1 = <&uart2_sleep_mode>;
318 status = "okay";
319 };
320
321 i2c@80004000 {
322 pinctrl-names = "default","sleep";
323 pinctrl-0 = <&i2c0_default_mode>;
324 pinctrl-1 = <&i2c0_sleep_mode>;
325 };
326
327 i2c@80122000 {
328 pinctrl-names = "default","sleep";
329 pinctrl-0 = <&i2c1_default_mode>;
330 pinctrl-1 = <&i2c1_sleep_mode>;
331 };
332
333 i2c@80128000 {
334 pinctrl-names = "default","sleep";
335 pinctrl-0 = <&i2c2_default_mode>;
336 pinctrl-1 = <&i2c2_sleep_mode>;
337 lsm303dlh@18 {
338 /* Accelerometer */
339 compatible = "st,lsm303dlh-accel";
340 st,drdy-int-pin = <1>;
341 reg = <0x18>;
342 vdd-supply = <&ab8500_ldo_aux1_reg>;
343 vddio-supply = <&db8500_vsmps2_reg>;
344 pinctrl-names = "default";
345 pinctrl-0 = <&accel_snowball_mode>;
346 interrupt-parent = <&gpio5>;
347 interrupts = <3 IRQ_TYPE_EDGE_RISING>, /* INT1 */
348 <4 IRQ_TYPE_EDGE_RISING>; /* INT2 */
349 };
350 lsm303dlh@1e {
351 /* Magnetometer */
352 compatible = "st,lsm303dlh-magn";
353 reg = <0x1e>;
354 vdd-supply = <&ab8500_ldo_aux1_reg>;
355 vddio-supply = <&db8500_vsmps2_reg>;
356 pinctrl-names = "default";
357 pinctrl-0 = <&magneto_snowball_mode>;
358 interrupt-parent = <&gpio5>;
359 interrupts = <5 IRQ_TYPE_EDGE_RISING>; /* DRDY line */
360 };
361 l3g4200d@68 {
362 /* Gyroscope */
363 compatible = "st,l3g4200d-gyro";
364 st,drdy-int-pin = <2>;
365 reg = <0x68>;
366 vdd-supply = <&ab8500_ldo_aux1_reg>;
367 vddio-supply = <&db8500_vsmps2_reg>;
368 pinctrl-names = "default";
369 pinctrl-0 = <&gyro_snowball_mode>;
370 interrupt-parent = <&gpio5>;
371 interrupts = <6 IRQ_TYPE_EDGE_RISING>, /* DRDY line */
372 <9 IRQ_TYPE_EDGE_RISING>; /* INT1 */
373 };
374 lsp001wm@5c {
375 /* Barometer/pressure sensor */
376 compatible = "st,lps001wp-press";
377 reg = <0x5c>;
378 vdd-supply = <&ab8500_ldo_aux1_reg>;
379 vddio-supply = <&db8500_vsmps2_reg>;
380 };
381 };
382
383 i2c@80110000 {
384 pinctrl-names = "default","sleep";
385 pinctrl-0 = <&i2c3_default_mode>;
386 pinctrl-1 = <&i2c3_sleep_mode>;
387 };
388
389 ssp@80002000 {
390 pinctrl-names = "default";
391 pinctrl-0 = <&ssp0_snowball_mode>;
392 };
393
394 cpufreq-cooling {
395 status = "okay";
396 };
397
398 prcmu@80157000 {
399 cpufreq {
400 status = "okay";
401 };
402
403 thermal@801573c0 {
404 num-trips = <4>;
405
406 trip0-temp = <70000>;
407 trip0-type = "active";
408 trip0-cdev-num = <1>;
409 trip0-cdev-name0 = "thermal-cpufreq-0";
410
411 trip1-temp = <75000>;
412 trip1-type = "active";
413 trip1-cdev-num = <1>;
414 trip1-cdev-name0 = "thermal-cpufreq-0";
415
416 trip2-temp = <80000>;
417 trip2-type = "active";
418 trip2-cdev-num = <1>;
419 trip2-cdev-name0 = "thermal-cpufreq-0";
420
421 trip3-temp = <85000>;
422 trip3-type = "critical";
423 trip3-cdev-num = <0>;
424
425 status = "okay";
426 };
427
428 ab8500 {
429 ab8500-gpio {
430 /*
431 * AB8500 GPIOs are numbered starting from 1, so the first
432 * index 0 is what in the datasheet is called "GPIO1", and
433 * the second is "GPIO2" and so forth. Confusingly, the
434 * Snowball schematic then names the "GPIO2" line "PM_GPIO1".
435 * while later naming "GPIO4" as "PM_GPIO4".
436 */
437 gpio-line-names = "", /* AB8500 GPIO1 */
438 "PM_GPIO1", /* AB8500 GPIO2 */
439 "WLAN_CLK_REQ", /* AB8500 GPIO3 */
440 "PM_GPIO4", /* AB8500 GPIO4 */
441 "", "", "", "", "", "", "", "", "", "", "",
442 "EN_3V6", /* AB8500 GPIO16 */
443 "", "", "", "" ,"", "", "", "", "",
444 "EN_3V3", /* AB8500 GPIO26 */
445 "", "", "", "", "", "", "", "", "", "", "", "", "",
446 "PM_GPIO40", /* AB8500 GPIO40 */
447 "PM_GPIO41", /* AB8500 GPIO41 */
448 "PM_GPIO42"; /* AB8500 GPIO42 */
449 };
450
451 ext_regulators: ab8500-ext-regulators {
452 ab8500_ext1_reg: ab8500_ext1 {
453 regulator-name = "ab8500-ext-supply1";
454 };
455
456 ab8500_ext2_reg_reg: ab8500_ext2 {
457 regulator-name = "ab8500-ext-supply2";
458 };
459
460 ab8500_ext3_reg_reg: ab8500_ext3 {
461 regulator-name = "ab8500-ext-supply3";
462 };
463 };
464
465 ab8500-regulators {
466 ab8500_ldo_aux1_reg: ab8500_ldo_aux1 {
467 regulator-name = "V-DISPLAY";
468 };
469
470 ab8500_ldo_aux2_reg: ab8500_ldo_aux2 {
471 regulator-name = "V-eMMC1";
472 };
473
474 ab8500_ldo_aux3_reg: ab8500_ldo_aux3 {
475 regulator-name = "V-MMC-SD";
476 };
477
478 ab8500_ldo_intcore_reg: ab8500_ldo_intcore {
479 regulator-name = "V-INTCORE";
480 };
481
482 ab8500_ldo_tvout_reg: ab8500_ldo_tvout {
483 regulator-name = "V-TVOUT";
484 };
485
486 ab8500_ldo_usb_reg: ab8500_ldo_usb {
487 regulator-name = "dummy";
488 };
489
490 ab8500_ldo_audio_reg: ab8500_ldo_audio {
491 regulator-name = "V-AUD";
492 };
493
494 ab8500_ldo_anamic1_reg: ab8500_ldo_anamic1 {
495 regulator-name = "V-AMIC1";
496 };
497
498 ab8500_ldo_anamic2_reg: ab8500_ldo_anamic2 {
499 regulator-name = "V-AMIC2";
500 };
501
502 ab8500_ldo_dmic_reg: ab8500_ldo_dmic {
503 regulator-name = "V-DMIC";
504 };
505
506 ab8500_ldo_ana_reg: ab8500_ldo_ana {
507 regulator-name = "V-CSI/DSI";
508 };
509 };
510 };
511 };
512
513 pinctrl {
514 /*
515 * Set this up using hogs, as time goes by and as seems fit, these
516 * can be moved over to being controlled by respective device.
517 */
518 pinctrl-names = "default";
519 pinctrl-0 = <&gbf_snowball_mode>,
520 <&wlan_snowball_mode>;
521
522 ethernet {
523 /*
524 * Mux in "SM" which is used for the
525 * SMSC911x Ethernet adapter
526 */
527 eth_snowball_mode: eth_snowball {
528 snowball_mux {
529 function = "sm";
530 groups = "sm_b_1";
531 };
532 /* LAN IRQ pin */
533 snowball_cfg1 {
534 pins = "GPIO140_B11";
535 ste,config = <&in_nopull>;
536 };
537 /* LAN reset pin */
538 snowball_cfg2 {
539 pins = "GPIO141_C12";
540 ste,config = <&gpio_out_hi>;
541 };
542
543 };
544 };
545 sdi0 {
546 sdi0_default_mode: sdi0_default {
547 snowball_mux {
548 function = "mc0";
549 groups = "mc0dat31dir_a_1";
550 };
551 snowball_cfg1 {
552 pins = "GPIO21_AB3"; /* DAT31DIR */
553 ste,config = <&out_hi>;
554 };
555 /* SD card detect GPIO pin, extend default state */
556 snowball_cfg2 {
557 pins = "GPIO218_AH11";
558 ste,config = <&gpio_in_pu>;
559 };
560 /* VMMCI level-shifter enable */
561 snowball_cfg3 {
562 pins = "GPIO217_AH12";
563 ste,config = <&gpio_out_hi>;
564 };
565 /* VMMCI level-shifter voltage select */
566 snowball_cfg4 {
567 pins = "GPIO228_AJ6";
568 ste,config = <&gpio_out_hi>;
569 };
570 };
571 };
572 ssp0 {
573 ssp0_snowball_mode: ssp0_snowball_default {
574 snowball_mux {
575 function = "ssp0";
576 groups = "ssp0_a_1";
577 };
578 snowball_cfg1 {
579 pins = "GPIO144_B13"; /* FRM */
580 ste,config = <&gpio_out_hi>;
581 };
582 snowball_cfg2 {
583 pins = "GPIO145_C13"; /* RXD */
584 ste,config = <&in_pd>;
585 };
586 snowball_cfg3 {
587 pins =
588 "GPIO146_D13", /* TXD */
589 "GPIO143_D12"; /* CLK */
590 ste,config = <&out_lo>;
591 };
592
593 };
594 };
595 gpio_led {
596 gpioled_snowball_mode: gpioled_default {
597 snowball_cfg1 {
598 pins = "GPIO142_C11";
599 ste,config = <&gpio_out_hi>;
600 };
601
602 };
603 };
604 accelerometer {
605 accel_snowball_mode: accel_snowball {
606 /* Accelerometer lines */
607 snowball_cfg1 {
608 pins =
609 "GPIO163_C20", /* ACCEL_IRQ1 */
610 "GPIO164_B21"; /* ACCEL_IRQ2 */
611 ste,config = <&gpio_in_pu>;
612 };
613 };
614 };
615 gyro {
616 gyro_snowball_mode: gyro_snowball {
617 snowball_cfg1 {
618 pins =
619 "GPIO166_A22", /* DRDY */
620 "GPIO169_D22"; /* INT */
621 ste,config = <&gpio_in_pu>;
622 };
623 };
624 };
625 magnetometer {
626 magneto_snowball_mode: magneto_snowball {
627 snowball_cfg1 {
628 pins = "GPIO165_C21"; /* MAG_DRDY */
629 ste,config = <&gpio_in_pu>;
630 };
631 };
632 };
633 gbf {
634 gbf_snowball_mode: gbf_snowball {
635 /*
636 * GBF (GPS, Bluetooth, FM-radio) interface,
637 * pull low to reset state
638 */
639 snowball_cfg1 {
640 pins = "GPIO171_D23"; /* GBF_ENA_RESET */
641 ste,config = <&gpio_out_lo>;
642 };
643 };
644 };
645 wlan {
646 wlan_snowball_mode: wlan_snowball {
647 /*
648 * Activate this mode with the WLAN chip.
649 * These are plain GPIO pins used by WLAN
650 */
651 snowball_cfg1 {
652 pins =
653 "GPIO161_D21", /* WLAN_PMU_EN */
654 "GPIO215_AH13"; /* WLAN_ENA */
655 ste,config = <&gpio_out_lo>;
656 };
657 snowball_cfg2 {
658 pins = "GPIO216_AG12"; /* WLAN_IRQ */
659 ste,config = <&gpio_in_pu>;
660 };
661 };
662 };
663 };
664
665 mcde@a0350000 {
666 pinctrl-names = "default", "sleep";
667 pinctrl-0 = <&lcd_default_mode>;
668 pinctrl-1 = <&lcd_sleep_mode>;
669 };
670 };
671};