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