Merge tag 'drm-misc-fixes-2019-06-05' of git://anongit.freedesktop.org/drm/drm-misc...
[sfrench/cifs-2.6.git] / arch / arm / boot / dts / ste-hrefv60plus.dtsi
1 // SPDX-License-Identifier: GPL-2.0-or-later
2 /*
3  * Copyright 2012 ST-Ericsson AB
4  */
5
6 #include "ste-dbx5x0.dtsi"
7 #include "ste-href-ab8500.dtsi"
8 #include "ste-href.dtsi"
9
10 / {
11         model = "ST-Ericsson HREF (v60+) platform with Device Tree";
12         compatible = "st-ericsson,hrefv60+", "st-ericsson,u8500";
13
14         soc {
15                 /* Name the GPIO muxed rails on the HREF boards */
16                 gpio@8012e000 {
17                         /* GPIOs 0 - 31 */
18                         gpio-line-names =
19                                      /* GPIO0,1 used for UART0 BT RX/TX */
20                                      "", "",
21                                      "UART_WAKE",
22                                      "BT_WAKE",
23                                      "",
24                                      "SDMMC_1V8_3V_SEL",
25                                      "FLASH_LED_SYNC (FLASH_CTRL_0)",
26                                      "XENON_READY (FLASH_CTRL_1)",
27                                      "", "", "", "", "", "", "", "",
28                                      "", "", "", "",
29                                      "",
30                                      "FLASH_LED_EN (FLASH_CTRL_3)",
31                                      "", "",
32                                      "", "", "", "", "",
33                                      /* Used by UART2 (console) */
34                                      "", "",
35                                      "MAGNETOMETER_INT";
36                 };
37
38                 gpio@8012e080 {
39                         /* GPIOs 32 - 63 */
40                         gpio-line-names =
41                                      "MAGNETOMETER_DRDY",
42                                      "", "", "", "", "", "", "",
43                                      "", "", "", "", "", "", "", "",
44                                      "", "", "", "", "", "", "", "",
45                                      "", "", "", "", "", "", "", "";
46                 };
47
48                 gpio@8000e000 {
49                         /* GPIOs 64 - 95 */
50                         gpio-line-names = "XENON_EN2 (FLASH_CTRL_4)",
51                                      "DISP1_RST",
52                                      "DISP2_RST",
53                                      "TOUCH_INT2",
54                                      "LCD_VSI0_A",
55                                      "LCD_VSI1_A",
56                                      /* GPIO 70-77 used for ETM */
57                                      "", "", "", "", "", "", "", "",
58                                      /* GPIO 78-81 used for YCBCR */
59                                      "", "", "", "",
60                                      "ACCELEROMETER_INT1_RDY",
61                                      "ACCELEROMETER_INT2",
62                                      "TOUCH_INT",
63                                      "WLAN_ENA",
64                                      "", "", "", "", "",
65                                      "FORCE_SENSING_INT",
66                                      "FORCE_SENSING_RESET",
67                                      "", "",
68                                      "SDMMC_CD";
69                 };
70
71                 gpio@8000e080 {
72                         /* GPIOs 96 - 127 */
73                         gpio-line-names = "",
74                                      "FORCE_SENSING_WU",
75                                      "", "", "", "", "", "",
76                                      "", "", "", "", "", "", "", "",
77                                      "", "", "", "", "", "", "", "",
78                                      "", "", "", "", "", "", "", "";
79                 };
80
81                 gpio@8000e100 {
82                         /* GPIOs 128 - 159 */
83                         gpio-line-names = "", "", "", "", "", "", "", "",
84                                      "", "", "",
85                                      "DIPRO_INT", /* GPIO139 */
86                                      "XSHUTDOWN_SECONDARY_SENSOR",
87                                      "XSHUTDOWN_PRIMARY_SENSOR",
88                                      "NFC_RST (NFC_CTRL_",
89                                      "TOUCH_RST",
90                                      "NFC_IRQ (NFC_CTRL_1)",
91                                      "HAL_SW",
92                                      "TOUCH_RST2",
93                                      "", "",
94                                      "VAUDIO_HF_EN", /* GPIO149 */
95                                      "", "", "", "", "", "", "", "", "", "";
96                 };
97
98                 gpio@8000e180 {
99                         /* GPIOs 160 - 191 */
100                         gpio-line-names = "", "", "", "", "", "", "", "",
101                                      "",
102                                      "SDMMC_EN",
103                                      "XENON_CHARGE (FLASH_CONTROL_5)",
104                                      "GBF_ENA_RESET",
105                                      "", "", "", "",
106                                      "", "", "", "", "", "", "", "",
107                                      "", "", "", "", "", "", "", "";
108                 };
109
110                 gpio@8011e000 {
111                         /* GPIOs 192 - 223 */
112                         gpio-line-names = "HDTV_INTN",
113                                      "", "", "",
114                                      "HDTV_RSTN",
115                                      "", "", "",
116                                      "", /* GPIO200 */
117                                      "", "", "", "", "", "", "",
118                                      /* GPIO208-216 used for WGBF_MC1 */
119                                      "", "", "", "", "", "", "", "", "",
120                                      "SW_FRONT_PROXIMITY", /* GPIO217 */
121                                      "KPD_CTRL_INT", /* Keypad controller */
122                                      "", "", "", "", "";
123                 };
124
125                 gpio@8011e080 {
126                         /* GPIOs 224 - 255 */
127                         gpio-line-names = "", "",
128                                      "HSIT_ACWAKE0",
129                                      "", "", "", "", "",
130                                      "", "", "", "", "", "", "", "",
131                                      "", "", "", "", "", "", "", "",
132                                      "", "", "", "", "", "", "", "";
133                 };
134
135                 // External Micro SD slot
136                 sdi0_per1@80126000 {
137                         cd-gpios  = <&gpio2 31 GPIO_ACTIVE_HIGH>; // 95
138                 };
139
140                 vmmci: regulator-gpio {
141                         gpios = <&gpio0 5 GPIO_ACTIVE_HIGH>;
142                         enable-gpio = <&gpio5 9 GPIO_ACTIVE_HIGH>;
143                         enable-active-high;
144                 };
145
146                 pinctrl {
147                         /*
148                          * Set this up using hogs, as time goes by and as seems fit, these
149                          * can be moved over to being controlled by respective device.
150                          */
151                         pinctrl-names = "default";
152                         pinctrl-0 = <&ipgpio_hrefv60_mode>,
153                                   <&etm_hrefv60_mode>,
154                                   <&nahj_hrefv60_mode>,
155                                   <&nfc_hrefv60_mode>,
156                                   <&force_hrefv60_mode>,
157                                   <&dipro_hrefv60_mode>,
158                                   <&vaudio_hf_hrefv60_mode>,
159                                   <&gbf_hrefv60_mode>,
160                                   <&hdtv_hrefv60_mode>,
161                                   <&gpios_hrefv60_mode>;
162
163                         sdi0 {
164                                 sdi0_default_mode: sdi0_default {
165                                         /* SD card detect GPIO pin, extend default state */
166                                         default_hrefv60_cfg1 {
167                                                 pins = "GPIO95_E8";
168                                                 ste,config = <&gpio_in_pu>;
169                                         };
170                                         /* VMMCI level-shifter enable */
171                                         default_hrefv60_cfg2 {
172                                                 pins = "GPIO169_D22";
173                                                 ste,config = <&gpio_out_hi>;
174                                         };
175                                         /* VMMCI level-shifter voltage select */
176                                         default_hrefv60_cfg3 {
177                                                 pins = "GPIO5_AG6";
178                                                 ste,config = <&gpio_out_hi>;
179                                         };
180                                 };
181                         };
182                         ipgpio {
183                                 /*
184                                  * XENON Flashgun on image processor GPIO (controlled from image
185                                  * processor firmware), mux in these image processor GPIO lines 0
186                                  * (XENON_FLASH_ID), 1 (XENON_READY) and there is an assistant
187                                  * LED on IP GPIO 4 (XENON_EN2) on altfunction C, that need bias
188                                  * from GPIO21 so pull up 0, 1 and drive 4 and GPIO21 low as output.
189                                  */
190                                 ipgpio_hrefv60_mode: ipgpio_hrefv60 {
191                                         hrefv60_mux {
192                                                 function = "ipgpio";
193                                                 groups = "ipgpio0_c_1", "ipgpio1_c_1", "ipgpio4_c_1";
194                                         };
195                                         hrefv60_cfg1 {
196                                                 pins = "GPIO6_AF6", "GPIO7_AG5";
197                                                 ste,config = <&in_pu>;
198                                         };
199                                         hrefv60_cfg2 {
200                                                 pins = "GPIO21_AB3";
201                                                 ste,config = <&gpio_out_lo>;
202                                         };
203                                         hrefv60_cfg3 {
204                                                 pins = "GPIO64_F3";
205                                                 ste,config = <&out_lo>;
206                                         };
207                                 };
208                         };
209                         etm {
210                                 /*
211                                  * Drive D19-D23 for the ETM PTM trace interface low,
212                                  * (presumably pins are unconnected therefore grounded here,
213                                  * the "other alt C1" setting enables these pins)
214                                  */
215                                 etm_hrefv60_mode: etm_hrefv60 {
216                                         hrefv60_cfg1 {
217                                                 pins =
218                                                 "GPIO70_G5",
219                                                 "GPIO71_G4",
220                                                 "GPIO72_H4",
221                                                 "GPIO73_H3",
222                                                 "GPIO74_J3";
223                                                 ste,config = <&gpio_out_lo>;
224                                         };
225                                  };
226                         };
227                         nahj {
228                                 nahj_hrefv60_mode: nahj_hrefv60 {
229                                         /* NAHJ CTRL on GPIO76 to low, CTRL_INV on GPIO216 to high */
230                                         hrefv60_cfg1 {
231                                                 pins = "GPIO76_J2";
232                                                 ste,config = <&gpio_out_lo>;
233                                         };
234                                         hrefv60_cfg2 {
235                                                 pins = "GPIO216_AG12";
236                                                 ste,config = <&gpio_out_hi>;
237                                         };
238                                  };
239                         };
240                         nfc {
241                                 nfc_hrefv60_mode: nfc_hrefv60 {
242                                         /* NFC ENA and RESET to low, pulldown IRQ line */
243                                         hrefv60_cfg1 {
244                                                 pins =
245                                                 "GPIO77_H1", /* NFC_ENA */
246                                                 "GPIO142_C11"; /* NFC_RESET */
247                                                 ste,config = <&gpio_out_lo>;
248                                         };
249                                         hrefv60_cfg2 {
250                                                 pins = "GPIO144_B13"; /* NFC_IRQ */
251                                                 ste,config = <&gpio_in_pd>;
252                                         };
253                                  };
254                         };
255                         force {
256                                 force_hrefv60_mode: force_hrefv60 {
257                                         hrefv60_cfg1 {
258                                                 pins = "GPIO91_B6"; /* FORCE_SENSING_INT */
259                                                 ste,config = <&gpio_in_pu>;
260                                         };
261                                         hrefv60_cfg2 {
262                                                 pins =
263                                                 "GPIO92_D6", /* FORCE_SENSING_RST */
264                                                 "GPIO97_D9"; /* FORCE_SENSING_WU */
265                                                 ste,config = <&gpio_out_lo>;
266                                         };
267                                  };
268                         };
269                         dipro {
270                                 dipro_hrefv60_mode: dipro_hrefv60 {
271                                         hrefv60_cfg1 {
272                                                 pins = "GPIO139_C9"; /* DIPRO_INT */
273                                                 ste,config = <&gpio_in_pu>;
274                                         };
275                                  };
276                         };
277                         vaudio_hf {
278                                 vaudio_hf_hrefv60_mode: vaudio_hf_hrefv60 {
279                                         /* Audio Amplifier HF enable GPIO */
280                                         hrefv60_cfg1 {
281                                                 pins = "GPIO149_B14"; /* VAUDIO_HF_EN, enable MAX8968 */
282                                                 ste,config = <&gpio_out_hi>;
283                                         };
284                                  };
285                         };
286                         gbf {
287                                 gbf_hrefv60_mode: gbf_hrefv60 {
288                                         /*
289                                          * GBF (GPS, Bluetooth, FM-radio) interface,
290                                          * pull low to reset state
291                                          */
292                                         hrefv60_cfg1 {
293                                                 pins = "GPIO171_D23"; /* GBF_ENA_RESET */
294                                                 ste,config = <&gpio_out_lo>;
295                                         };
296                                  };
297                         };
298                         hdtv {
299                                 hdtv_hrefv60_mode: hdtv_hrefv60 {
300                                         /* MSP : HDTV INTERFACE GPIO line */
301                                         hrefv60_cfg1 {
302                                                 pins = "GPIO192_AJ27";
303                                                 ste,config = <&gpio_in_pd>;
304                                         };
305                                  };
306                         };
307                         mcde {
308                                 lcd_hrefv60_mode: lcd_hrefv60 {
309                                         /*
310                                          * Display Interface 1 uses GPIO 65 for RST (reset).
311                                          * Display Interface 2 uses GPIO 66 for RST (reset).
312                                          * Drive DISP1 reset high (not reset), driver DISP2 reset low (reset)
313                                          */
314                                         hrefv60_cfg1 {
315                                                 pins ="GPIO65_F1";
316                                                 ste,config = <&gpio_out_hi>;
317                                         };
318                                         hrefv60_cfg2 {
319                                                 pins ="GPIO66_G3";
320                                                 ste,config = <&gpio_out_lo>;
321                                         };
322                                 };
323                         };
324                         gpios {
325                                 /* Dangling GPIO pins */
326                                 gpios_hrefv60_mode: gpios_hrefv60 {
327                                         default_cfg1 {
328                                                 /* Normally UART1 RXD, now dangling */
329                                                 pins = "GPIO4_AH6";
330                                                 ste,config = <&in_pu>;
331                                         };
332                                 };
333                         };
334                 };
335         };
336 };