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