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