blob: e66fa59c2de64ebfd7d4cdf6e716784ce7d59396 [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001// 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};