blob: 7187676836beb4c5eede62b9fe9c8fa0ad9f2c8b [file] [log] [blame]
Lee Jones6af7fd82012-08-30 15:53:39 +01001/*
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
Linus Walleij2ce05a12013-08-07 15:37:52 +020012#include "ste-dbx5x0.dtsi"
Linus Walleij83200622014-02-03 14:32:20 +010013#include "ste-href-ab8500.dtsi"
Linus Walleij2ce05a12013-08-07 15:37:52 +020014#include "ste-href.dtsi"
Lee Jones6af7fd82012-08-30 15:53:39 +010015
16/ {
Lee Jonesd1b8bfa2012-09-26 13:29:09 +010017 model = "ST-Ericsson HREF (v60+) platform with Device Tree";
Lee Jones79b40752012-10-15 10:07:55 +010018 compatible = "st-ericsson,hrefv60+", "st-ericsson,u8500";
Lee Jones6b8db132012-09-26 17:09:17 +010019
Gabriel Fernandezb1ba1432013-03-01 14:38:07 +010020 soc {
Linus Walleijac07a4e2016-04-21 15:18:47 +020021 /* 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
Lee Jones7127c572012-09-14 15:27:41 +0100141 // External Micro SD slot
142 sdi0_per1@80126000 {
Linus Walleij1b1e8e02016-03-24 15:29:30 +0100143 cd-gpios = <&gpio2 31 GPIO_ACTIVE_HIGH>; // 95
Lee Jones7127c572012-09-14 15:27:41 +0100144 };
Linus Walleij1e662352013-11-13 13:46:57 +0100145
Ulf Hanssona1ab5e42013-12-12 14:31:37 +0100146 vmmci: regulator-gpio {
Linus Walleij1b1e8e02016-03-24 15:29:30 +0100147 gpios = <&gpio0 5 GPIO_ACTIVE_HIGH>;
148 enable-gpio = <&gpio5 9 GPIO_ACTIVE_HIGH>;
Ulf Hanssona1ab5e42013-12-12 14:31:37 +0100149 };
150
Linus Walleij1e662352013-11-13 13:46:57 +0100151 pinctrl {
Linus Walleij7ab05bd2013-11-15 15:50:11 +0100152 /*
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 */
Linus Walleij1c850e42013-11-15 14:44:59 +0100156 pinctrl-names = "default";
Linus Walleij7ab05bd2013-11-15 15:50:11 +0100157 pinctrl-0 = <&ipgpio_hrefv60_mode>,
Linus Walleij7ab05bd2013-11-15 15:50:11 +0100158 <&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>,
Linus Walleij1d8aca92015-07-08 15:15:22 +0200166 <&gpios_hrefv60_mode>;
Linus Walleij1c850e42013-11-15 14:44:59 +0100167
Linus Walleij1e662352013-11-13 13:46:57 +0100168 sdi0 {
Linus Walleij1e662352013-11-13 13:46:57 +0100169 sdi0_default_mode: sdi0_default {
Linus Walleij1d8aca92015-07-08 15:15:22 +0200170 /* SD card detect GPIO pin, extend default state */
Linus Walleij1e662352013-11-13 13:46:57 +0100171 default_hrefv60_cfg1 {
Linus Walleij1637d482014-09-30 12:16:25 +0200172 pins = "GPIO95_E8";
Linus Walleij1e662352013-11-13 13:46:57 +0100173 ste,config = <&gpio_in_pu>;
174 };
Linus Walleij1d8aca92015-07-08 15:15:22 +0200175 /* VMMCI level-shifter enable */
176 default_hrefv60_cfg2 {
177 pins = "GPIO169_D22";
Linus Walleij83bf6b132015-10-13 19:46:54 +0200178 ste,config = <&gpio_out_hi>;
Linus Walleij1d8aca92015-07-08 15:15:22 +0200179 };
180 /* VMMCI level-shifter voltage select */
181 default_hrefv60_cfg3 {
182 pins = "GPIO5_AG6";
183 ste,config = <&gpio_out_hi>;
184 };
Linus Walleij1e662352013-11-13 13:46:57 +0100185 };
186 };
Linus Walleij1c850e42013-11-15 14:44:59 +0100187 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 {
Linus Walleij68d41f22014-09-29 17:21:56 +0200197 function = "ipgpio";
198 groups = "ipgpio0_c_1", "ipgpio1_c_1", "ipgpio4_c_1";
Linus Walleij1c850e42013-11-15 14:44:59 +0100199 };
200 hrefv60_cfg1 {
Linus Walleij1637d482014-09-30 12:16:25 +0200201 pins = "GPIO6_AF6", "GPIO7_AG5";
Linus Walleij1c850e42013-11-15 14:44:59 +0100202 ste,config = <&in_pu>;
203 };
204 hrefv60_cfg2 {
Linus Walleij1637d482014-09-30 12:16:25 +0200205 pins = "GPIO21_AB3";
Linus Walleij1c850e42013-11-15 14:44:59 +0100206 ste,config = <&gpio_out_lo>;
207 };
208 hrefv60_cfg3 {
Linus Walleij1637d482014-09-30 12:16:25 +0200209 pins = "GPIO64_F3";
Linus Walleij1c850e42013-11-15 14:44:59 +0100210 ste,config = <&out_lo>;
211 };
Linus Walleij7ab05bd2013-11-15 15:50:11 +0100212 };
213 };
Linus Walleij7ab05bd2013-11-15 15:50:11 +0100214 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 {
Linus Walleij1637d482014-09-30 12:16:25 +0200222 pins =
Linus Walleij7ab05bd2013-11-15 15:50:11 +0100223 "GPIO70_G5",
224 "GPIO71_G4",
225 "GPIO72_H4",
226 "GPIO73_H3",
227 "GPIO74_J3";
228 ste,config = <&gpio_out_lo>;
229 };
Linus Walleij1c850e42013-11-15 14:44:59 +0100230 };
231 };
Linus Walleij7ab05bd2013-11-15 15:50:11 +0100232 nahj {
233 nahj_hrefv60_mode: nahj_hrefv60 {
234 /* NAHJ CTRL on GPIO76 to low, CTRL_INV on GPIO216 to high */
235 hrefv60_cfg1 {
Linus Walleij1637d482014-09-30 12:16:25 +0200236 pins = "GPIO76_J2";
Linus Walleij7ab05bd2013-11-15 15:50:11 +0100237 ste,config = <&gpio_out_lo>;
238 };
239 hrefv60_cfg2 {
Linus Walleij1637d482014-09-30 12:16:25 +0200240 pins = "GPIO216_AG12";
Linus Walleij7ab05bd2013-11-15 15:50:11 +0100241 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 {
Linus Walleij1637d482014-09-30 12:16:25 +0200249 pins =
Linus Walleij7ab05bd2013-11-15 15:50:11 +0100250 "GPIO77_H1", /* NFC_ENA */
251 "GPIO142_C11"; /* NFC_RESET */
252 ste,config = <&gpio_out_lo>;
253 };
254 hrefv60_cfg2 {
Linus Walleij1637d482014-09-30 12:16:25 +0200255 pins = "GPIO144_B13"; /* NFC_IRQ */
Linus Walleij7ab05bd2013-11-15 15:50:11 +0100256 ste,config = <&gpio_in_pd>;
257 };
258 };
259 };
260 force {
261 force_hrefv60_mode: force_hrefv60 {
262 hrefv60_cfg1 {
Linus Walleij1637d482014-09-30 12:16:25 +0200263 pins = "GPIO91_B6"; /* FORCE_SENSING_INT */
Linus Walleij7ab05bd2013-11-15 15:50:11 +0100264 ste,config = <&gpio_in_pu>;
265 };
266 hrefv60_cfg2 {
Linus Walleij1637d482014-09-30 12:16:25 +0200267 pins =
Linus Walleij7ab05bd2013-11-15 15:50:11 +0100268 "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 {
Linus Walleij1637d482014-09-30 12:16:25 +0200277 pins = "GPIO139_C9"; /* DIPRO_INT */
Linus Walleij7ab05bd2013-11-15 15:50:11 +0100278 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 {
Linus Walleij1637d482014-09-30 12:16:25 +0200286 pins = "GPIO149_B14"; /* VAUDIO_HF_EN, enable MAX8968 */
Linus Walleij7ab05bd2013-11-15 15:50:11 +0100287 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 {
Linus Walleij1637d482014-09-30 12:16:25 +0200298 pins = "GPIO171_D23"; /* GBF_ENA_RESET */
Linus Walleij7ab05bd2013-11-15 15:50:11 +0100299 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 {
Linus Walleij1637d482014-09-30 12:16:25 +0200307 pins = "GPIO192_AJ27";
Linus Walleij7ab05bd2013-11-15 15:50:11 +0100308 ste,config = <&gpio_in_pd>;
309 };
310 };
311 };
Linus Walleij17afa712013-11-15 14:55:30 +0100312 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 {
Linus Walleij1637d482014-09-30 12:16:25 +0200320 pins ="GPIO65_F1";
Linus Walleij17afa712013-11-15 14:55:30 +0100321 ste,config = <&gpio_out_hi>;
322 };
323 hrefv60_cfg2 {
Linus Walleij1637d482014-09-30 12:16:25 +0200324 pins ="GPIO66_G3";
Linus Walleij17afa712013-11-15 14:55:30 +0100325 ste,config = <&gpio_out_lo>;
326 };
327 };
328 };
Linus Walleij1d8aca92015-07-08 15:15:22 +0200329 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 };
Linus Walleij1e662352013-11-13 13:46:57 +0100339 };
Lee Jonescbebba72012-09-28 14:41:06 +0100340 };
Lee Jones6af7fd82012-08-30 15:53:39 +0100341};