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