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