Merge branch 'x86-hyperv-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
[sfrench/cifs-2.6.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                 prcmu@80157000 {
380                         cpufreq {
381                                 status = "okay";
382                         };
383
384                         ab8500 {
385                                 ab8500-gpio {
386                                         /*
387                                          * AB8500 GPIOs are numbered starting from 1, so the first
388                                          * index 0 is what in the datasheet is called "GPIO1", and
389                                          * the second is "GPIO2" and so forth. Confusingly, the
390                                          * Snowball schematic then names the "GPIO2" line "PM_GPIO1".
391                                          * while later naming "GPIO4" as "PM_GPIO4".
392                                          */
393                                         gpio-line-names = "", /* AB8500 GPIO1 */
394                                                      "PM_GPIO1", /* AB8500 GPIO2 */
395                                                      "WLAN_CLK_REQ", /* AB8500 GPIO3 */
396                                                      "PM_GPIO4", /* AB8500 GPIO4 */
397                                                      "", "", "", "", "", "", "", "", "", "", "",
398                                                      "EN_3V6", /* AB8500 GPIO16 */
399                                                      "", "", "", "" ,"", "", "", "", "",
400                                                      "EN_3V3", /* AB8500 GPIO26 */
401                                                      "", "", "", "", "", "", "", "", "", "", "", "", "",
402                                                      "PM_GPIO40", /* AB8500 GPIO40 */
403                                                      "PM_GPIO41", /* AB8500 GPIO41 */
404                                                      "PM_GPIO42"; /* AB8500 GPIO42 */
405                                 };
406
407                                 ab8500_usb {
408                                         pinctrl-names = "default", "sleep";
409                                         pinctrl-0 = <&musb_default_mode>;
410                                         pinctrl-1 = <&musb_sleep_mode>;
411                                 };
412
413                                 ext_regulators: ab8500-ext-regulators {
414                                         ab8500_ext1_reg: ab8500_ext1 {
415                                                 regulator-name = "ab8500-ext-supply1";
416                                         };
417
418                                         ab8500_ext2_reg_reg: ab8500_ext2 {
419                                                 regulator-name = "ab8500-ext-supply2";
420                                         };
421
422                                         ab8500_ext3_reg_reg: ab8500_ext3 {
423                                                 regulator-name = "ab8500-ext-supply3";
424                                         };
425                                 };
426
427                                 ab8500-regulators {
428                                         ab8500_ldo_aux1_reg: ab8500_ldo_aux1 {
429                                                 regulator-name = "V-DISPLAY";
430                                         };
431
432                                         ab8500_ldo_aux2_reg: ab8500_ldo_aux2 {
433                                                 regulator-name = "V-eMMC1";
434                                         };
435
436                                         ab8500_ldo_aux3_reg: ab8500_ldo_aux3 {
437                                                 regulator-name = "V-MMC-SD";
438                                         };
439
440                                         ab8500_ldo_intcore_reg: ab8500_ldo_intcore {
441                                                 regulator-name = "V-INTCORE";
442                                         };
443
444                                         ab8500_ldo_tvout_reg: ab8500_ldo_tvout {
445                                                 regulator-name = "V-TVOUT";
446                                         };
447
448                                         ab8500_ldo_audio_reg: ab8500_ldo_audio {
449                                                 regulator-name = "V-AUD";
450                                         };
451
452                                         ab8500_ldo_anamic1_reg: ab8500_ldo_anamic1 {
453                                                 regulator-name = "V-AMIC1";
454                                         };
455
456                                         ab8500_ldo_anamic2_reg: ab8500_ldo_anamic2 {
457                                                 regulator-name = "V-AMIC2";
458                                         };
459
460                                         ab8500_ldo_dmic_reg: ab8500_ldo_dmic {
461                                                 regulator-name = "V-DMIC";
462                                         };
463
464                                         ab8500_ldo_ana_reg: ab8500_ldo_ana {
465                                                 regulator-name = "V-CSI/DSI";
466                                         };
467                                 };
468                         };
469                 };
470
471                 pinctrl {
472                         /*
473                          * Set this up using hogs, as time goes by and as seems fit, these
474                          * can be moved over to being controlled by respective device.
475                          */
476                         pinctrl-names = "default";
477                         pinctrl-0 = <&gbf_snowball_mode>,
478                                   <&wlan_snowball_mode>;
479
480                         ethernet {
481                                 /*
482                                  * Mux in "SM" which is used for the
483                                  * SMSC911x Ethernet adapter
484                                  */
485                                 eth_snowball_mode: eth_snowball {
486                                         snowball_mux {
487                                                 function = "sm";
488                                                 groups = "sm_b_1";
489                                         };
490                                         /* LAN IRQ pin */
491                                         snowball_cfg1 {
492                                                 pins = "GPIO140_B11";
493                                                 ste,config = <&in_nopull>;
494                                         };
495                                         /* LAN reset pin */
496                                         snowball_cfg2 {
497                                                 pins = "GPIO141_C12";
498                                                 ste,config = <&gpio_out_hi>;
499                                         };
500
501                                 };
502                         };
503                         sdi0 {
504                                 sdi0_default_mode: sdi0_default {
505                                         snowball_mux {
506                                                 function = "mc0";
507                                                 /* Add the DAT31 pin even if it is not really used */
508                                                 groups = "mc0dat31dir_a_1";
509                                         };
510                                         snowball_cfg1 {
511                                                 pins = "GPIO21_AB3"; /* DAT31DIR */
512                                                 ste,config = <&out_hi>;
513                                         };
514                                         /* SD card detect GPIO pin, extend default state */
515                                         snowball_cfg2 {
516                                                 pins = "GPIO218_AH11";
517                                                 ste,config = <&gpio_in_pu>;
518                                         };
519                                         /* VMMCI level-shifter enable */
520                                         snowball_cfg3 {
521                                                 pins = "GPIO217_AH12";
522                                                 ste,config = <&gpio_out_hi>;
523                                         };
524                                         /* VMMCI level-shifter voltage select */
525                                         snowball_cfg4 {
526                                                 pins = "GPIO228_AJ6";
527                                                 ste,config = <&gpio_out_hi>;
528                                         };
529                                 };
530                         };
531                         ssp0 {
532                                 ssp0_snowball_mode: ssp0_snowball_default {
533                                         snowball_mux {
534                                                 function = "ssp0";
535                                                 groups = "ssp0_a_1";
536                                         };
537                                         snowball_cfg1 {
538                                                 pins = "GPIO144_B13"; /* FRM */
539                                                 ste,config = <&gpio_out_hi>;
540                                         };
541                                         snowball_cfg2 {
542                                                 pins = "GPIO145_C13"; /* RXD */
543                                                 ste,config = <&in_pd>;
544                                         };
545                                         snowball_cfg3 {
546                                                 pins =
547                                                 "GPIO146_D13", /* TXD */
548                                                 "GPIO143_D12"; /* CLK */
549                                                 ste,config = <&out_lo>;
550                                         };
551
552                                 };
553                         };
554                         gpio_led {
555                                 gpioled_snowball_mode: gpioled_default {
556                                         snowball_cfg1 {
557                                                 pins = "GPIO142_C11";
558                                                 ste,config = <&gpio_out_hi>;
559                                         };
560
561                                 };
562                         };
563                         accelerometer {
564                                 accel_snowball_mode: accel_snowball {
565                                         /* Accelerometer lines */
566                                         snowball_cfg1 {
567                                                 pins =
568                                                 "GPIO163_C20", /* ACCEL_IRQ1 */
569                                                 "GPIO164_B21"; /* ACCEL_IRQ2 */
570                                                 ste,config = <&gpio_in_pu>;
571                                         };
572                                 };
573                         };
574                         gyro {
575                                 gyro_snowball_mode: gyro_snowball {
576                                         snowball_cfg1 {
577                                                 pins =
578                                                 "GPIO166_A22", /* DRDY */
579                                                 "GPIO169_D22"; /* INT */
580                                                 ste,config = <&gpio_in_pu>;
581                                         };
582                                 };
583                         };
584                         magnetometer {
585                                 magneto_snowball_mode: magneto_snowball {
586                                         snowball_cfg1 {
587                                                 pins = "GPIO165_C21"; /* MAG_DRDY */
588                                                 ste,config = <&gpio_in_pu>;
589                                         };
590                                 };
591                         };
592                         gbf {
593                                 gbf_snowball_mode: gbf_snowball {
594                                         /*
595                                          * GBF (GPS, Bluetooth, FM-radio) interface,
596                                          * pull low to reset state
597                                          */
598                                         snowball_cfg1 {
599                                                 pins = "GPIO171_D23"; /* GBF_ENA_RESET */
600                                                 ste,config = <&gpio_out_lo>;
601                                         };
602                                  };
603                         };
604                         wlan {
605                                 wlan_snowball_mode: wlan_snowball {
606                                         /*
607                                          * Activate this mode with the WLAN chip.
608                                          * These are plain GPIO pins used by WLAN
609                                          */
610                                         snowball_cfg1 {
611                                                 pins =
612                                                 "GPIO161_D21", /* WLAN_PMU_EN */
613                                                 "GPIO215_AH13"; /* WLAN_ENA */
614                                                 ste,config = <&gpio_out_lo>;
615                                         };
616                                         snowball_cfg2 {
617                                                 pins = "GPIO216_AG12"; /* WLAN_IRQ */
618                                                 ste,config = <&gpio_in_pu>;
619                                         };
620                                 };
621                         };
622                 };
623
624                 mcde@a0350000 {
625                         pinctrl-names = "default", "sleep";
626                         pinctrl-0 = <&lcd_default_mode>;
627                         pinctrl-1 = <&lcd_sleep_mode>;
628                 };
629         };
630 };