blob: bf259bbd1d0a289bbde53868eda758af1abdb499 [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>;
Linus Walleijadef9532016-10-07 09:30:46 +0200149 enable-active-high;
Ulf Hanssona1ab5e42013-12-12 14:31:37 +0100150 };
151
Linus Walleij1e662352013-11-13 13:46:57 +0100152 pinctrl {
Linus Walleij7ab05bd2013-11-15 15:50:11 +0100153 /*
154 * Set this up using hogs, as time goes by and as seems fit, these
155 * can be moved over to being controlled by respective device.
156 */
Linus Walleij1c850e42013-11-15 14:44:59 +0100157 pinctrl-names = "default";
Linus Walleij7ab05bd2013-11-15 15:50:11 +0100158 pinctrl-0 = <&ipgpio_hrefv60_mode>,
Linus Walleij7ab05bd2013-11-15 15:50:11 +0100159 <&etm_hrefv60_mode>,
160 <&nahj_hrefv60_mode>,
161 <&nfc_hrefv60_mode>,
162 <&force_hrefv60_mode>,
163 <&dipro_hrefv60_mode>,
164 <&vaudio_hf_hrefv60_mode>,
165 <&gbf_hrefv60_mode>,
166 <&hdtv_hrefv60_mode>,
Linus Walleij1d8aca92015-07-08 15:15:22 +0200167 <&gpios_hrefv60_mode>;
Linus Walleij1c850e42013-11-15 14:44:59 +0100168
Linus Walleij1e662352013-11-13 13:46:57 +0100169 sdi0 {
Linus Walleij1e662352013-11-13 13:46:57 +0100170 sdi0_default_mode: sdi0_default {
Linus Walleij1d8aca92015-07-08 15:15:22 +0200171 /* SD card detect GPIO pin, extend default state */
Linus Walleij1e662352013-11-13 13:46:57 +0100172 default_hrefv60_cfg1 {
Linus Walleij1637d482014-09-30 12:16:25 +0200173 pins = "GPIO95_E8";
Linus Walleij1e662352013-11-13 13:46:57 +0100174 ste,config = <&gpio_in_pu>;
175 };
Linus Walleij1d8aca92015-07-08 15:15:22 +0200176 /* VMMCI level-shifter enable */
177 default_hrefv60_cfg2 {
178 pins = "GPIO169_D22";
Linus Walleij83bf6b132015-10-13 19:46:54 +0200179 ste,config = <&gpio_out_hi>;
Linus Walleij1d8aca92015-07-08 15:15:22 +0200180 };
181 /* VMMCI level-shifter voltage select */
182 default_hrefv60_cfg3 {
183 pins = "GPIO5_AG6";
184 ste,config = <&gpio_out_hi>;
185 };
Linus Walleij1e662352013-11-13 13:46:57 +0100186 };
187 };
Linus Walleij1c850e42013-11-15 14:44:59 +0100188 ipgpio {
189 /*
190 * XENON Flashgun on image processor GPIO (controlled from image
191 * processor firmware), mux in these image processor GPIO lines 0
192 * (XENON_FLASH_ID), 1 (XENON_READY) and there is an assistant
193 * LED on IP GPIO 4 (XENON_EN2) on altfunction C, that need bias
194 * from GPIO21 so pull up 0, 1 and drive 4 and GPIO21 low as output.
195 */
196 ipgpio_hrefv60_mode: ipgpio_hrefv60 {
197 hrefv60_mux {
Linus Walleij68d41f22014-09-29 17:21:56 +0200198 function = "ipgpio";
199 groups = "ipgpio0_c_1", "ipgpio1_c_1", "ipgpio4_c_1";
Linus Walleij1c850e42013-11-15 14:44:59 +0100200 };
201 hrefv60_cfg1 {
Linus Walleij1637d482014-09-30 12:16:25 +0200202 pins = "GPIO6_AF6", "GPIO7_AG5";
Linus Walleij1c850e42013-11-15 14:44:59 +0100203 ste,config = <&in_pu>;
204 };
205 hrefv60_cfg2 {
Linus Walleij1637d482014-09-30 12:16:25 +0200206 pins = "GPIO21_AB3";
Linus Walleij1c850e42013-11-15 14:44:59 +0100207 ste,config = <&gpio_out_lo>;
208 };
209 hrefv60_cfg3 {
Linus Walleij1637d482014-09-30 12:16:25 +0200210 pins = "GPIO64_F3";
Linus Walleij1c850e42013-11-15 14:44:59 +0100211 ste,config = <&out_lo>;
212 };
Linus Walleij7ab05bd2013-11-15 15:50:11 +0100213 };
214 };
Linus Walleij7ab05bd2013-11-15 15:50:11 +0100215 etm {
216 /*
217 * Drive D19-D23 for the ETM PTM trace interface low,
218 * (presumably pins are unconnected therefore grounded here,
219 * the "other alt C1" setting enables these pins)
220 */
221 etm_hrefv60_mode: etm_hrefv60 {
222 hrefv60_cfg1 {
Linus Walleij1637d482014-09-30 12:16:25 +0200223 pins =
Linus Walleij7ab05bd2013-11-15 15:50:11 +0100224 "GPIO70_G5",
225 "GPIO71_G4",
226 "GPIO72_H4",
227 "GPIO73_H3",
228 "GPIO74_J3";
229 ste,config = <&gpio_out_lo>;
230 };
Linus Walleij1c850e42013-11-15 14:44:59 +0100231 };
232 };
Linus Walleij7ab05bd2013-11-15 15:50:11 +0100233 nahj {
234 nahj_hrefv60_mode: nahj_hrefv60 {
235 /* NAHJ CTRL on GPIO76 to low, CTRL_INV on GPIO216 to high */
236 hrefv60_cfg1 {
Linus Walleij1637d482014-09-30 12:16:25 +0200237 pins = "GPIO76_J2";
Linus Walleij7ab05bd2013-11-15 15:50:11 +0100238 ste,config = <&gpio_out_lo>;
239 };
240 hrefv60_cfg2 {
Linus Walleij1637d482014-09-30 12:16:25 +0200241 pins = "GPIO216_AG12";
Linus Walleij7ab05bd2013-11-15 15:50:11 +0100242 ste,config = <&gpio_out_hi>;
243 };
244 };
245 };
246 nfc {
247 nfc_hrefv60_mode: nfc_hrefv60 {
248 /* NFC ENA and RESET to low, pulldown IRQ line */
249 hrefv60_cfg1 {
Linus Walleij1637d482014-09-30 12:16:25 +0200250 pins =
Linus Walleij7ab05bd2013-11-15 15:50:11 +0100251 "GPIO77_H1", /* NFC_ENA */
252 "GPIO142_C11"; /* NFC_RESET */
253 ste,config = <&gpio_out_lo>;
254 };
255 hrefv60_cfg2 {
Linus Walleij1637d482014-09-30 12:16:25 +0200256 pins = "GPIO144_B13"; /* NFC_IRQ */
Linus Walleij7ab05bd2013-11-15 15:50:11 +0100257 ste,config = <&gpio_in_pd>;
258 };
259 };
260 };
261 force {
262 force_hrefv60_mode: force_hrefv60 {
263 hrefv60_cfg1 {
Linus Walleij1637d482014-09-30 12:16:25 +0200264 pins = "GPIO91_B6"; /* FORCE_SENSING_INT */
Linus Walleij7ab05bd2013-11-15 15:50:11 +0100265 ste,config = <&gpio_in_pu>;
266 };
267 hrefv60_cfg2 {
Linus Walleij1637d482014-09-30 12:16:25 +0200268 pins =
Linus Walleij7ab05bd2013-11-15 15:50:11 +0100269 "GPIO92_D6", /* FORCE_SENSING_RST */
270 "GPIO97_D9"; /* FORCE_SENSING_WU */
271 ste,config = <&gpio_out_lo>;
272 };
273 };
274 };
275 dipro {
276 dipro_hrefv60_mode: dipro_hrefv60 {
277 hrefv60_cfg1 {
Linus Walleij1637d482014-09-30 12:16:25 +0200278 pins = "GPIO139_C9"; /* DIPRO_INT */
Linus Walleij7ab05bd2013-11-15 15:50:11 +0100279 ste,config = <&gpio_in_pu>;
280 };
281 };
282 };
283 vaudio_hf {
284 vaudio_hf_hrefv60_mode: vaudio_hf_hrefv60 {
285 /* Audio Amplifier HF enable GPIO */
286 hrefv60_cfg1 {
Linus Walleij1637d482014-09-30 12:16:25 +0200287 pins = "GPIO149_B14"; /* VAUDIO_HF_EN, enable MAX8968 */
Linus Walleij7ab05bd2013-11-15 15:50:11 +0100288 ste,config = <&gpio_out_hi>;
289 };
290 };
291 };
292 gbf {
293 gbf_hrefv60_mode: gbf_hrefv60 {
294 /*
295 * GBF (GPS, Bluetooth, FM-radio) interface,
296 * pull low to reset state
297 */
298 hrefv60_cfg1 {
Linus Walleij1637d482014-09-30 12:16:25 +0200299 pins = "GPIO171_D23"; /* GBF_ENA_RESET */
Linus Walleij7ab05bd2013-11-15 15:50:11 +0100300 ste,config = <&gpio_out_lo>;
301 };
302 };
303 };
304 hdtv {
305 hdtv_hrefv60_mode: hdtv_hrefv60 {
306 /* MSP : HDTV INTERFACE GPIO line */
307 hrefv60_cfg1 {
Linus Walleij1637d482014-09-30 12:16:25 +0200308 pins = "GPIO192_AJ27";
Linus Walleij7ab05bd2013-11-15 15:50:11 +0100309 ste,config = <&gpio_in_pd>;
310 };
311 };
312 };
Linus Walleij17afa712013-11-15 14:55:30 +0100313 mcde {
314 lcd_hrefv60_mode: lcd_hrefv60 {
315 /*
316 * Display Interface 1 uses GPIO 65 for RST (reset).
317 * Display Interface 2 uses GPIO 66 for RST (reset).
318 * Drive DISP1 reset high (not reset), driver DISP2 reset low (reset)
319 */
320 hrefv60_cfg1 {
Linus Walleij1637d482014-09-30 12:16:25 +0200321 pins ="GPIO65_F1";
Linus Walleij17afa712013-11-15 14:55:30 +0100322 ste,config = <&gpio_out_hi>;
323 };
324 hrefv60_cfg2 {
Linus Walleij1637d482014-09-30 12:16:25 +0200325 pins ="GPIO66_G3";
Linus Walleij17afa712013-11-15 14:55:30 +0100326 ste,config = <&gpio_out_lo>;
327 };
328 };
329 };
Linus Walleij1d8aca92015-07-08 15:15:22 +0200330 gpios {
331 /* Dangling GPIO pins */
332 gpios_hrefv60_mode: gpios_hrefv60 {
333 default_cfg1 {
334 /* Normally UART1 RXD, now dangling */
335 pins = "GPIO4_AH6";
336 ste,config = <&in_pu>;
337 };
338 };
339 };
Linus Walleij1e662352013-11-13 13:46:57 +0100340 };
Lee Jonescbebba72012-09-28 14:41:06 +0100341 };
Lee Jones6af7fd82012-08-30 15:53:39 +0100342};