Merge branch 'nvmf-4.8-rc' of git://git.infradead.org/nvme-fabrics into for-linus
[deliverable/linux.git] / arch / arm / boot / dts / ste-snowball.dts
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 = <&eth_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-mmc-highspeed;
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 cd-gpios = <&gpio6 26 GPIO_ACTIVE_LOW>; // 218
250
251 status = "okay";
252 };
253
254 // WLAN SDIO channel
255 sdi1_per2@80118000 {
256 arm,primecell-periphid = <0x10480180>;
257 max-frequency = <100000000>;
258 bus-width = <4>;
259 pinctrl-names = "default", "sleep";
260 pinctrl-0 = <&sdi1_default_mode>;
261 pinctrl-1 = <&sdi1_sleep_mode>;
262
263 status = "okay";
264 };
265
266 // Unused PoP eMMC - register and put it to sleep by default */
267 sdi2_per3@80005000 {
268 arm,primecell-periphid = <0x10480180>;
269 pinctrl-names = "default";
270 pinctrl-0 = <&sdi2_sleep_mode>;
271
272 status = "okay";
273 };
274
275 // On-board eMMC
276 sdi4_per2@80114000 {
277 arm,primecell-periphid = <0x10480180>;
278 max-frequency = <100000000>;
279 bus-width = <8>;
280 cap-mmc-highspeed;
281 vmmc-supply = <&ab8500_ldo_aux2_reg>;
282 pinctrl-names = "default", "sleep";
283 pinctrl-0 = <&sdi4_default_mode>;
284 pinctrl-1 = <&sdi4_sleep_mode>;
285
286 status = "okay";
287 };
288
289 uart@80120000 {
290 pinctrl-names = "default", "sleep";
291 pinctrl-0 = <&uart0_default_mode>;
292 pinctrl-1 = <&uart0_sleep_mode>;
293 status = "okay";
294 };
295
296 /* This UART is unused and thus left disabled */
297 uart@80121000 {
298 pinctrl-names = "default", "sleep";
299 pinctrl-0 = <&uart1_default_mode>;
300 pinctrl-1 = <&uart1_sleep_mode>;
301 };
302
303 uart@80007000 {
304 pinctrl-names = "default", "sleep";
305 pinctrl-0 = <&uart2_default_mode>;
306 pinctrl-1 = <&uart2_sleep_mode>;
307 status = "okay";
308 };
309
310 i2c@80004000 {
311 pinctrl-names = "default","sleep";
312 pinctrl-0 = <&i2c0_default_mode>;
313 pinctrl-1 = <&i2c0_sleep_mode>;
314 };
315
316 i2c@80122000 {
317 pinctrl-names = "default","sleep";
318 pinctrl-0 = <&i2c1_default_mode>;
319 pinctrl-1 = <&i2c1_sleep_mode>;
320 };
321
322 i2c@80128000 {
323 pinctrl-names = "default","sleep";
324 pinctrl-0 = <&i2c2_default_mode>;
325 pinctrl-1 = <&i2c2_sleep_mode>;
326 lsm303dlh@18 {
327 /* Accelerometer */
328 compatible = "st,lsm303dlh-accel";
329 st,drdy-int-pin = <1>;
330 reg = <0x18>;
331 vdd-supply = <&ab8500_ldo_aux1_reg>;
332 vddio-supply = <&db8500_vsmps2_reg>;
333 pinctrl-names = "default";
334 pinctrl-0 = <&accel_snowball_mode>;
335 interrupt-parent = <&gpio5>;
336 interrupts = <3 IRQ_TYPE_EDGE_RISING>, /* INT1 */
337 <4 IRQ_TYPE_EDGE_RISING>; /* INT2 */
338 };
339 lsm303dlh@1e {
340 /* Magnetometer */
341 compatible = "st,lsm303dlh-magn";
342 reg = <0x1e>;
343 vdd-supply = <&ab8500_ldo_aux1_reg>;
344 vddio-supply = <&db8500_vsmps2_reg>;
345 pinctrl-names = "default";
346 pinctrl-0 = <&magneto_snowball_mode>;
347 interrupt-parent = <&gpio5>;
348 interrupts = <5 IRQ_TYPE_EDGE_RISING>; /* DRDY line */
349 };
350 l3g4200d@68 {
351 /* Gyroscope */
352 compatible = "st,l3g4200d-gyro";
353 st,drdy-int-pin = <2>;
354 reg = <0x68>;
355 vdd-supply = <&ab8500_ldo_aux1_reg>;
356 vddio-supply = <&db8500_vsmps2_reg>;
357 pinctrl-names = "default";
358 pinctrl-0 = <&gyro_snowball_mode>;
359 interrupt-parent = <&gpio5>;
360 interrupts = <6 IRQ_TYPE_EDGE_RISING>, /* DRDY line */
361 <9 IRQ_TYPE_EDGE_RISING>; /* INT1 */
362 };
363 lsp001wm@5c {
364 /* Barometer/pressure sensor */
365 compatible = "st,lps001wp-press";
366 reg = <0x5c>;
367 vdd-supply = <&ab8500_ldo_aux1_reg>;
368 vddio-supply = <&db8500_vsmps2_reg>;
369 };
370 };
371
372 i2c@80110000 {
373 pinctrl-names = "default","sleep";
374 pinctrl-0 = <&i2c3_default_mode>;
375 pinctrl-1 = <&i2c3_sleep_mode>;
376 };
377
378 ssp@80002000 {
379 pinctrl-names = "default";
380 pinctrl-0 = <&ssp0_snowball_mode>;
381 };
382
383 cpufreq-cooling {
384 status = "okay";
385 };
386
387 prcmu@80157000 {
388 cpufreq {
389 status = "okay";
390 };
391
392 thermal@801573c0 {
393 num-trips = <4>;
394
395 trip0-temp = <70000>;
396 trip0-type = "active";
397 trip0-cdev-num = <1>;
398 trip0-cdev-name0 = "thermal-cpufreq-0";
399
400 trip1-temp = <75000>;
401 trip1-type = "active";
402 trip1-cdev-num = <1>;
403 trip1-cdev-name0 = "thermal-cpufreq-0";
404
405 trip2-temp = <80000>;
406 trip2-type = "active";
407 trip2-cdev-num = <1>;
408 trip2-cdev-name0 = "thermal-cpufreq-0";
409
410 trip3-temp = <85000>;
411 trip3-type = "critical";
412 trip3-cdev-num = <0>;
413
414 status = "okay";
415 };
416
417 ab8500 {
418 ab8500-gpio {
419 /*
420 * AB8500 GPIOs are numbered starting from 1, so the first
421 * index 0 is what in the datasheet is called "GPIO1", and
422 * the second is "GPIO2" and so forth. Confusingly, the
423 * Snowball schematic then names the "GPIO2" line "PM_GPIO1".
424 * while later naming "GPIO4" as "PM_GPIO4".
425 */
426 gpio-line-names = "", /* AB8500 GPIO1 */
427 "PM_GPIO1", /* AB8500 GPIO2 */
428 "WLAN_CLK_REQ", /* AB8500 GPIO3 */
429 "PM_GPIO4", /* AB8500 GPIO4 */
430 "", "", "", "", "", "", "", "", "", "", "",
431 "EN_3V6", /* AB8500 GPIO16 */
432 "", "", "", "" ,"", "", "", "", "",
433 "EN_3V3", /* AB8500 GPIO26 */
434 "", "", "", "", "", "", "", "", "", "", "", "", "",
435 "PM_GPIO40", /* AB8500 GPIO40 */
436 "PM_GPIO41", /* AB8500 GPIO41 */
437 "PM_GPIO42"; /* AB8500 GPIO42 */
438 };
439
440 ext_regulators: ab8500-ext-regulators {
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 ab8500-regulators {
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_usb_reg: ab8500_ldo_usb {
476 regulator-name = "dummy";
477 };
478
479 ab8500_ldo_audio_reg: ab8500_ldo_audio {
480 regulator-name = "V-AUD";
481 };
482
483 ab8500_ldo_anamic1_reg: ab8500_ldo_anamic1 {
484 regulator-name = "V-AMIC1";
485 };
486
487 ab8500_ldo_anamic2_reg: ab8500_ldo_anamic2 {
488 regulator-name = "V-AMIC2";
489 };
490
491 ab8500_ldo_dmic_reg: ab8500_ldo_dmic {
492 regulator-name = "V-DMIC";
493 };
494
495 ab8500_ldo_ana_reg: ab8500_ldo_ana {
496 regulator-name = "V-CSI/DSI";
497 };
498 };
499 };
500 };
501
502 pinctrl {
503 /*
504 * Set this up using hogs, as time goes by and as seems fit, these
505 * can be moved over to being controlled by respective device.
506 */
507 pinctrl-names = "default";
508 pinctrl-0 = <&gbf_snowball_mode>,
509 <&wlan_snowball_mode>;
510
511 ethernet {
512 /*
513 * Mux in "SM" which is used for the
514 * SMSC911x Ethernet adapter
515 */
516 eth_snowball_mode: eth_snowball {
517 snowball_mux {
518 function = "sm";
519 groups = "sm_b_1";
520 };
521 /* LAN IRQ pin */
522 snowball_cfg1 {
523 pins = "GPIO140_B11";
524 ste,config = <&in_nopull>;
525 };
526 /* LAN reset pin */
527 snowball_cfg2 {
528 pins = "GPIO141_C12";
529 ste,config = <&gpio_out_hi>;
530 };
531
532 };
533 };
534 sdi0 {
535 sdi0_default_mode: sdi0_default {
536 snowball_mux {
537 function = "mc0";
538 groups = "mc0dat31dir_a_1";
539 };
540 snowball_cfg1 {
541 pins = "GPIO21_AB3"; /* DAT31DIR */
542 ste,config = <&out_hi>;
543 };
544 /* SD card detect GPIO pin, extend default state */
545 snowball_cfg2 {
546 pins = "GPIO218_AH11";
547 ste,config = <&gpio_in_pu>;
548 };
549 /* VMMCI level-shifter enable */
550 snowball_cfg3 {
551 pins = "GPIO217_AH12";
552 ste,config = <&gpio_out_lo>;
553 };
554 /* VMMCI level-shifter voltage select */
555 snowball_cfg4 {
556 pins = "GPIO228_AJ6";
557 ste,config = <&gpio_out_hi>;
558 };
559 };
560 };
561 ssp0 {
562 ssp0_snowball_mode: ssp0_snowball_default {
563 snowball_mux {
564 function = "ssp0";
565 groups = "ssp0_a_1";
566 };
567 snowball_cfg1 {
568 pins = "GPIO144_B13"; /* FRM */
569 ste,config = <&gpio_out_hi>;
570 };
571 snowball_cfg2 {
572 pins = "GPIO145_C13"; /* RXD */
573 ste,config = <&in_pd>;
574 };
575 snowball_cfg3 {
576 pins =
577 "GPIO146_D13", /* TXD */
578 "GPIO143_D12"; /* CLK */
579 ste,config = <&out_lo>;
580 };
581
582 };
583 };
584 gpio_led {
585 gpioled_snowball_mode: gpioled_default {
586 snowball_cfg1 {
587 pins = "GPIO142_C11";
588 ste,config = <&gpio_out_hi>;
589 };
590
591 };
592 };
593 accelerometer {
594 accel_snowball_mode: accel_snowball {
595 /* Accelerometer lines */
596 snowball_cfg1 {
597 pins =
598 "GPIO163_C20", /* ACCEL_IRQ1 */
599 "GPIO164_B21"; /* ACCEL_IRQ2 */
600 ste,config = <&gpio_in_pu>;
601 };
602 };
603 };
604 gyro {
605 gyro_snowball_mode: gyro_snowball {
606 snowball_cfg1 {
607 pins =
608 "GPIO166_A22", /* DRDY */
609 "GPIO169_D22"; /* INT */
610 ste,config = <&gpio_in_pu>;
611 };
612 };
613 };
614 magnetometer {
615 magneto_snowball_mode: magneto_snowball {
616 snowball_cfg1 {
617 pins = "GPIO165_C21"; /* MAG_DRDY */
618 ste,config = <&gpio_in_pu>;
619 };
620 };
621 };
622 gbf {
623 gbf_snowball_mode: gbf_snowball {
624 /*
625 * GBF (GPS, Bluetooth, FM-radio) interface,
626 * pull low to reset state
627 */
628 snowball_cfg1 {
629 pins = "GPIO171_D23"; /* GBF_ENA_RESET */
630 ste,config = <&gpio_out_lo>;
631 };
632 };
633 };
634 wlan {
635 wlan_snowball_mode: wlan_snowball {
636 /*
637 * Activate this mode with the WLAN chip.
638 * These are plain GPIO pins used by WLAN
639 */
640 snowball_cfg1 {
641 pins =
642 "GPIO161_D21", /* WLAN_PMU_EN */
643 "GPIO215_AH13"; /* WLAN_ENA */
644 ste,config = <&gpio_out_lo>;
645 };
646 snowball_cfg2 {
647 pins = "GPIO216_AG12"; /* WLAN_IRQ */
648 ste,config = <&gpio_in_pu>;
649 };
650 };
651 };
652 };
653
654 mcde@a0350000 {
655 pinctrl-names = "default", "sleep";
656 pinctrl-0 = <&lcd_default_mode>;
657 pinctrl-1 = <&lcd_sleep_mode>;
658 };
659 };
660 };
This page took 0.046452 seconds and 5 git commands to generate.