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