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