Merge branch 'next' into for-linus
[sfrench/cifs-2.6.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                 };
150
151                 pinctrl {
152                         /*
153                          * Set this up using hogs, as time goes by and as seems fit, these
154                          * can be moved over to being controlled by respective device.
155                          */
156                         pinctrl-names = "default";
157                         pinctrl-0 = <&ipgpio_hrefv60_mode>,
158                                   <&etm_hrefv60_mode>,
159                                   <&nahj_hrefv60_mode>,
160                                   <&nfc_hrefv60_mode>,
161                                   <&force_hrefv60_mode>,
162                                   <&dipro_hrefv60_mode>,
163                                   <&vaudio_hf_hrefv60_mode>,
164                                   <&gbf_hrefv60_mode>,
165                                   <&hdtv_hrefv60_mode>,
166                                   <&gpios_hrefv60_mode>;
167
168                         sdi0 {
169                                 sdi0_default_mode: sdi0_default {
170                                         /* SD card detect GPIO pin, extend default state */
171                                         default_hrefv60_cfg1 {
172                                                 pins = "GPIO95_E8";
173                                                 ste,config = <&gpio_in_pu>;
174                                         };
175                                         /* VMMCI level-shifter enable */
176                                         default_hrefv60_cfg2 {
177                                                 pins = "GPIO169_D22";
178                                                 ste,config = <&gpio_out_hi>;
179                                         };
180                                         /* VMMCI level-shifter voltage select */
181                                         default_hrefv60_cfg3 {
182                                                 pins = "GPIO5_AG6";
183                                                 ste,config = <&gpio_out_hi>;
184                                         };
185                                 };
186                         };
187                         ipgpio {
188                                 /*
189                                  * XENON Flashgun on image processor GPIO (controlled from image
190                                  * processor firmware), mux in these image processor GPIO lines 0
191                                  * (XENON_FLASH_ID), 1 (XENON_READY) and there is an assistant
192                                  * LED on IP GPIO 4 (XENON_EN2) on altfunction C, that need bias
193                                  * from GPIO21 so pull up 0, 1 and drive 4 and GPIO21 low as output.
194                                  */
195                                 ipgpio_hrefv60_mode: ipgpio_hrefv60 {
196                                         hrefv60_mux {
197                                                 function = "ipgpio";
198                                                 groups = "ipgpio0_c_1", "ipgpio1_c_1", "ipgpio4_c_1";
199                                         };
200                                         hrefv60_cfg1 {
201                                                 pins = "GPIO6_AF6", "GPIO7_AG5";
202                                                 ste,config = <&in_pu>;
203                                         };
204                                         hrefv60_cfg2 {
205                                                 pins = "GPIO21_AB3";
206                                                 ste,config = <&gpio_out_lo>;
207                                         };
208                                         hrefv60_cfg3 {
209                                                 pins = "GPIO64_F3";
210                                                 ste,config = <&out_lo>;
211                                         };
212                                 };
213                         };
214                         etm {
215                                 /*
216                                  * Drive D19-D23 for the ETM PTM trace interface low,
217                                  * (presumably pins are unconnected therefore grounded here,
218                                  * the "other alt C1" setting enables these pins)
219                                  */
220                                 etm_hrefv60_mode: etm_hrefv60 {
221                                         hrefv60_cfg1 {
222                                                 pins =
223                                                 "GPIO70_G5",
224                                                 "GPIO71_G4",
225                                                 "GPIO72_H4",
226                                                 "GPIO73_H3",
227                                                 "GPIO74_J3";
228                                                 ste,config = <&gpio_out_lo>;
229                                         };
230                                  };
231                         };
232                         nahj {
233                                 nahj_hrefv60_mode: nahj_hrefv60 {
234                                         /* NAHJ CTRL on GPIO76 to low, CTRL_INV on GPIO216 to high */
235                                         hrefv60_cfg1 {
236                                                 pins = "GPIO76_J2";
237                                                 ste,config = <&gpio_out_lo>;
238                                         };
239                                         hrefv60_cfg2 {
240                                                 pins = "GPIO216_AG12";
241                                                 ste,config = <&gpio_out_hi>;
242                                         };
243                                  };
244                         };
245                         nfc {
246                                 nfc_hrefv60_mode: nfc_hrefv60 {
247                                         /* NFC ENA and RESET to low, pulldown IRQ line */
248                                         hrefv60_cfg1 {
249                                                 pins =
250                                                 "GPIO77_H1", /* NFC_ENA */
251                                                 "GPIO142_C11"; /* NFC_RESET */
252                                                 ste,config = <&gpio_out_lo>;
253                                         };
254                                         hrefv60_cfg2 {
255                                                 pins = "GPIO144_B13"; /* NFC_IRQ */
256                                                 ste,config = <&gpio_in_pd>;
257                                         };
258                                  };
259                         };
260                         force {
261                                 force_hrefv60_mode: force_hrefv60 {
262                                         hrefv60_cfg1 {
263                                                 pins = "GPIO91_B6"; /* FORCE_SENSING_INT */
264                                                 ste,config = <&gpio_in_pu>;
265                                         };
266                                         hrefv60_cfg2 {
267                                                 pins =
268                                                 "GPIO92_D6", /* FORCE_SENSING_RST */
269                                                 "GPIO97_D9"; /* FORCE_SENSING_WU */
270                                                 ste,config = <&gpio_out_lo>;
271                                         };
272                                  };
273                         };
274                         dipro {
275                                 dipro_hrefv60_mode: dipro_hrefv60 {
276                                         hrefv60_cfg1 {
277                                                 pins = "GPIO139_C9"; /* DIPRO_INT */
278                                                 ste,config = <&gpio_in_pu>;
279                                         };
280                                  };
281                         };
282                         vaudio_hf {
283                                 vaudio_hf_hrefv60_mode: vaudio_hf_hrefv60 {
284                                         /* Audio Amplifier HF enable GPIO */
285                                         hrefv60_cfg1 {
286                                                 pins = "GPIO149_B14"; /* VAUDIO_HF_EN, enable MAX8968 */
287                                                 ste,config = <&gpio_out_hi>;
288                                         };
289                                  };
290                         };
291                         gbf {
292                                 gbf_hrefv60_mode: gbf_hrefv60 {
293                                         /*
294                                          * GBF (GPS, Bluetooth, FM-radio) interface,
295                                          * pull low to reset state
296                                          */
297                                         hrefv60_cfg1 {
298                                                 pins = "GPIO171_D23"; /* GBF_ENA_RESET */
299                                                 ste,config = <&gpio_out_lo>;
300                                         };
301                                  };
302                         };
303                         hdtv {
304                                 hdtv_hrefv60_mode: hdtv_hrefv60 {
305                                         /* MSP : HDTV INTERFACE GPIO line */
306                                         hrefv60_cfg1 {
307                                                 pins = "GPIO192_AJ27";
308                                                 ste,config = <&gpio_in_pd>;
309                                         };
310                                  };
311                         };
312                         mcde {
313                                 lcd_hrefv60_mode: lcd_hrefv60 {
314                                         /*
315                                          * Display Interface 1 uses GPIO 65 for RST (reset).
316                                          * Display Interface 2 uses GPIO 66 for RST (reset).
317                                          * Drive DISP1 reset high (not reset), driver DISP2 reset low (reset)
318                                          */
319                                         hrefv60_cfg1 {
320                                                 pins ="GPIO65_F1";
321                                                 ste,config = <&gpio_out_hi>;
322                                         };
323                                         hrefv60_cfg2 {
324                                                 pins ="GPIO66_G3";
325                                                 ste,config = <&gpio_out_lo>;
326                                         };
327                                 };
328                         };
329                         gpios {
330                                 /* Dangling GPIO pins */
331                                 gpios_hrefv60_mode: gpios_hrefv60 {
332                                         default_cfg1 {
333                                                 /* Normally UART1 RXD, now dangling */
334                                                 pins = "GPIO4_AH6";
335                                                 ste,config = <&in_pu>;
336                                         };
337                                 };
338                         };
339                 };
340         };
341 };