Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi
[linux-2.6-microblaze.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         thermal-zones {
14                 chassis-thermal {
15                         /* Poll every 20 seconds */
16                         polling-delay = <20000>;
17                         /* Poll every 2nd second when cooling */
18                         polling-delay-passive = <2000>;
19
20                         thermal-sensors = <&therm1>, <&therm2>;
21
22                         /* Tripping points made from rough guess about operating conditions */
23                         trips {
24                                 chassis_alert: chassis-alert {
25                                         /* At 50 degrees take down the CPU frequency */
26                                         temperature = <50000>;
27                                         hysteresis = <3000>;
28                                         type = "active";
29                                 };
30                                 chassis_crit: chassis-crit {
31                                         /* Just shut down at 70 degrees */
32                                         temperature = <70000>;
33                                         hysteresis = <2000>;
34                                         type = "critical";
35                                 };
36                         };
37
38                         /* Push down the operating frequency of the SoC when it gets hot */
39                         cooling-maps {
40                                 map0 {
41                                         trip = <&chassis_alert>;
42                                         cooling-device = <&CPU0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
43                                         contribution = <100>;
44                                 };
45                         };
46                 };
47         };
48
49         /*
50          * Thermistors on the board, formally to monitor battery temperatures
51          * but what they measure is the board temperature.
52          */
53         therm1: thermistor@0 {
54                 compatible = "murata,ncp18wb473";
55                 io-channels = <&gpadc 0x06>; /* AUX1 */
56                 pullup-uv = <1800000>;
57                 pullup-ohm = <220000>;
58                 pulldown-ohm = <0>;
59                 #thermal-sensor-cells = <0>;
60         };
61
62         therm2: thermistor@1 {
63                 compatible = "murata,ncp18wb473";
64                 io-channels = <&gpadc 0x07>; /* AUX2 */
65                 pullup-uv = <1800000>;
66                 pullup-ohm = <220000>;
67                 pulldown-ohm = <0>;
68                 #thermal-sensor-cells = <0>;
69         };
70
71         soc {
72                 /* Name the GPIO muxed rails on the HREF boards */
73                 gpio@8012e000 {
74                         /* GPIOs 0 - 31 */
75                         gpio-line-names =
76                                      /* GPIO0,1 used for UART0 BT RX/TX */
77                                      "", "",
78                                      "UART_WAKE",
79                                      "BT_WAKE",
80                                      "",
81                                      "SDMMC_1V8_3V_SEL",
82                                      "FLASH_LED_SYNC (FLASH_CTRL_0)",
83                                      "XENON_READY (FLASH_CTRL_1)",
84                                      "", "", "", "", "", "", "", "",
85                                      "", "", "", "",
86                                      "",
87                                      "FLASH_LED_EN (FLASH_CTRL_3)",
88                                      "", "",
89                                      "", "", "", "", "",
90                                      /* Used by UART2 (console) */
91                                      "", "",
92                                      "MAGNETOMETER_INT";
93                 };
94
95                 gpio@8012e080 {
96                         /* GPIOs 32 - 63 */
97                         gpio-line-names =
98                                      "MAGNETOMETER_DRDY",
99                                      "", "", "", "", "", "", "",
100                                      "", "", "", "", "", "", "", "",
101                                      "", "", "", "", "", "", "", "",
102                                      "", "", "", "", "", "", "", "";
103                 };
104
105                 gpio@8000e000 {
106                         /* GPIOs 64 - 95 */
107                         gpio-line-names = "XENON_EN2 (FLASH_CTRL_4)",
108                                      "DISP1_RST",
109                                      "DISP2_RST",
110                                      "TOUCH_INT2",
111                                      "LCD_VSI0_A",
112                                      "LCD_VSI1_A",
113                                      /* GPIO 70-77 used for ETM */
114                                      "", "", "", "", "", "", "", "",
115                                      /* GPIO 78-81 used for YCBCR */
116                                      "", "", "", "",
117                                      "ACCELEROMETER_INT1_RDY",
118                                      "ACCELEROMETER_INT2",
119                                      "TOUCH_INT",
120                                      "WLAN_ENA",
121                                      "", "", "", "", "",
122                                      "FORCE_SENSING_INT",
123                                      "FORCE_SENSING_RESET",
124                                      "", "",
125                                      "SDMMC_CD";
126                 };
127
128                 gpio@8000e080 {
129                         /* GPIOs 96 - 127 */
130                         gpio-line-names = "",
131                                      "FORCE_SENSING_WU",
132                                      "", "", "", "", "", "",
133                                      "", "", "", "", "", "", "", "",
134                                      "", "", "", "", "", "", "", "",
135                                      "", "", "", "", "", "", "", "";
136                 };
137
138                 gpio@8000e100 {
139                         /* GPIOs 128 - 159 */
140                         gpio-line-names = "", "", "", "", "", "", "", "",
141                                      "", "", "",
142                                      "DIPRO_INT", /* GPIO139 */
143                                      "XSHUTDOWN_SECONDARY_SENSOR",
144                                      "XSHUTDOWN_PRIMARY_SENSOR",
145                                      "NFC_RST (NFC_CTRL_",
146                                      "TOUCH_RST",
147                                      "NFC_IRQ (NFC_CTRL_1)",
148                                      "HAL_SW",
149                                      "TOUCH_RST2",
150                                      "", "",
151                                      "VAUDIO_HF_EN", /* GPIO149 */
152                                      "", "", "", "", "", "", "", "", "", "";
153                 };
154
155                 gpio@8000e180 {
156                         /* GPIOs 160 - 191 */
157                         gpio-line-names = "", "", "", "", "", "", "", "",
158                                      "",
159                                      "SDMMC_EN",
160                                      "XENON_CHARGE (FLASH_CONTROL_5)",
161                                      "GBF_ENA_RESET",
162                                      "", "", "", "",
163                                      "", "", "", "", "", "", "", "",
164                                      "", "", "", "", "", "", "", "";
165                 };
166
167                 gpio@8011e000 {
168                         /* GPIOs 192 - 223 */
169                         gpio-line-names = "HDTV_INTN",
170                                      "", "", "",
171                                      "HDTV_RSTN",
172                                      "", "", "",
173                                      "", /* GPIO200 */
174                                      "", "", "", "", "", "", "",
175                                      /* GPIO208-216 used for WGBF_MC1 */
176                                      "", "", "", "", "", "", "", "", "",
177                                      "SW_FRONT_PROXIMITY", /* GPIO217 */
178                                      "KPD_CTRL_INT", /* Keypad controller */
179                                      "", "", "", "", "";
180                 };
181
182                 gpio@8011e080 {
183                         /* GPIOs 224 - 255 */
184                         gpio-line-names = "", "",
185                                      "HSIT_ACWAKE0",
186                                      "", "", "", "", "",
187                                      "", "", "", "", "", "", "", "",
188                                      "", "", "", "", "", "", "", "",
189                                      "", "", "", "", "", "", "", "";
190                 };
191
192                 // External Micro SD slot
193                 mmc@80126000 {
194                         cd-gpios  = <&gpio2 31 GPIO_ACTIVE_HIGH>; // 95
195                 };
196
197                 pinctrl {
198                         /*
199                          * Set this up using hogs, as time goes by and as seems fit, these
200                          * can be moved over to being controlled by respective device.
201                          */
202                         pinctrl-names = "default";
203                         pinctrl-0 = <&ipgpio_hrefv60_mode>,
204                                   <&etm_hrefv60_mode>,
205                                   <&nahj_hrefv60_mode>,
206                                   <&nfc_hrefv60_mode>,
207                                   <&force_hrefv60_mode>,
208                                   <&dipro_hrefv60_mode>,
209                                   <&vaudio_hf_hrefv60_mode>,
210                                   <&gbf_hrefv60_mode>,
211                                   <&hdtv_hrefv60_mode>,
212                                   <&gpios_hrefv60_mode>;
213
214                         sdi0 {
215                                 sdi0_default_mode: sdi0_default {
216                                         /* SD card detect GPIO pin, extend default state */
217                                         default_hrefv60_cfg1 {
218                                                 pins = "GPIO95_E8";
219                                                 ste,config = <&gpio_in_pu>;
220                                         };
221                                 };
222                         };
223                         ipgpio {
224                                 /*
225                                  * XENON Flashgun on image processor GPIO (controlled from image
226                                  * processor firmware), mux in these image processor GPIO lines 0
227                                  * (XENON_FLASH_ID), 1 (XENON_READY) and there is an assistant
228                                  * LED on IP GPIO 4 (XENON_EN2) on altfunction C, that need bias
229                                  * from GPIO21 so pull up 0, 1 and drive 4 and GPIO21 low as output.
230                                  */
231                                 ipgpio_hrefv60_mode: ipgpio_hrefv60 {
232                                         hrefv60_mux {
233                                                 function = "ipgpio";
234                                                 groups = "ipgpio0_c_1", "ipgpio1_c_1", "ipgpio4_c_1";
235                                         };
236                                         hrefv60_cfg1 {
237                                                 pins = "GPIO6_AF6", "GPIO7_AG5";
238                                                 ste,config = <&in_pu>;
239                                         };
240                                         hrefv60_cfg2 {
241                                                 pins = "GPIO21_AB3";
242                                                 ste,config = <&gpio_out_lo>;
243                                         };
244                                         hrefv60_cfg3 {
245                                                 pins = "GPIO64_F3";
246                                                 ste,config = <&out_lo>;
247                                         };
248                                 };
249                         };
250                         etm {
251                                 /*
252                                  * Drive D19-D23 for the ETM PTM trace interface low,
253                                  * (presumably pins are unconnected therefore grounded here,
254                                  * the "other alt C1" setting enables these pins)
255                                  */
256                                 etm_hrefv60_mode: etm_hrefv60 {
257                                         hrefv60_cfg1 {
258                                                 pins =
259                                                 "GPIO70_G5",
260                                                 "GPIO71_G4",
261                                                 "GPIO72_H4",
262                                                 "GPIO73_H3",
263                                                 "GPIO74_J3";
264                                                 ste,config = <&gpio_out_lo>;
265                                         };
266                                  };
267                         };
268                         nahj {
269                                 nahj_hrefv60_mode: nahj_hrefv60 {
270                                         /* NAHJ CTRL on GPIO76 to low, CTRL_INV on GPIO216 to high */
271                                         hrefv60_cfg1 {
272                                                 pins = "GPIO76_J2";
273                                                 ste,config = <&gpio_out_lo>;
274                                         };
275                                         hrefv60_cfg2 {
276                                                 pins = "GPIO216_AG12";
277                                                 ste,config = <&gpio_out_hi>;
278                                         };
279                                  };
280                         };
281                         nfc {
282                                 nfc_hrefv60_mode: nfc_hrefv60 {
283                                         /* NFC ENA and RESET to low, pulldown IRQ line */
284                                         hrefv60_cfg1 {
285                                                 pins =
286                                                 "GPIO77_H1", /* NFC_ENA */
287                                                 "GPIO142_C11"; /* NFC_RESET */
288                                                 ste,config = <&gpio_out_lo>;
289                                         };
290                                         hrefv60_cfg2 {
291                                                 pins = "GPIO144_B13"; /* NFC_IRQ */
292                                                 ste,config = <&gpio_in_pd>;
293                                         };
294                                  };
295                         };
296                         force {
297                                 force_hrefv60_mode: force_hrefv60 {
298                                         hrefv60_cfg1 {
299                                                 pins = "GPIO91_B6"; /* FORCE_SENSING_INT */
300                                                 ste,config = <&gpio_in_pu>;
301                                         };
302                                         hrefv60_cfg2 {
303                                                 pins =
304                                                 "GPIO92_D6", /* FORCE_SENSING_RST */
305                                                 "GPIO97_D9"; /* FORCE_SENSING_WU */
306                                                 ste,config = <&gpio_out_lo>;
307                                         };
308                                  };
309                         };
310                         dipro {
311                                 dipro_hrefv60_mode: dipro_hrefv60 {
312                                         hrefv60_cfg1 {
313                                                 pins = "GPIO139_C9"; /* DIPRO_INT */
314                                                 ste,config = <&gpio_in_pu>;
315                                         };
316                                  };
317                         };
318                         vaudio_hf {
319                                 vaudio_hf_hrefv60_mode: vaudio_hf_hrefv60 {
320                                         /* Audio Amplifier HF enable GPIO */
321                                         hrefv60_cfg1 {
322                                                 pins = "GPIO149_B14"; /* VAUDIO_HF_EN, enable MAX8968 */
323                                                 ste,config = <&gpio_out_hi>;
324                                         };
325                                  };
326                         };
327                         gbf {
328                                 gbf_hrefv60_mode: gbf_hrefv60 {
329                                         /*
330                                          * GBF (GPS, Bluetooth, FM-radio) interface,
331                                          * pull low to reset state
332                                          */
333                                         hrefv60_cfg1 {
334                                                 pins = "GPIO171_D23"; /* GBF_ENA_RESET */
335                                                 ste,config = <&gpio_out_lo>;
336                                         };
337                                  };
338                         };
339                         hdtv {
340                                 hdtv_hrefv60_mode: hdtv_hrefv60 {
341                                         /* MSP : HDTV INTERFACE GPIO line */
342                                         hrefv60_cfg1 {
343                                                 pins = "GPIO192_AJ27";
344                                                 ste,config = <&gpio_in_pd>;
345                                         };
346                                  };
347                         };
348                         mcde {
349                                 lcd_hrefv60_mode: lcd_hrefv60 {
350                                         /*
351                                          * Display Interface 1 uses GPIO 65 for RST (reset).
352                                          * Display Interface 2 uses GPIO 66 for RST (reset).
353                                          * Drive DISP1 reset high (not reset), driver DISP2 reset low (reset)
354                                          */
355                                         hrefv60_cfg1 {
356                                                 pins ="GPIO65_F1";
357                                                 ste,config = <&gpio_out_hi>;
358                                         };
359                                         hrefv60_cfg2 {
360                                                 pins ="GPIO66_G3";
361                                                 ste,config = <&gpio_out_lo>;
362                                         };
363                                 };
364                         };
365                         gpios {
366                                 /* Dangling GPIO pins */
367                                 gpios_hrefv60_mode: gpios_hrefv60 {
368                                         default_cfg1 {
369                                                 /* Normally UART1 RXD, now dangling */
370                                                 pins = "GPIO4_AH6";
371                                                 ste,config = <&in_pu>;
372                                         };
373                                 };
374                         };
375                 };
376         };
377 };