Loading...
1/*
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
12#include "ste-dbx5x0.dtsi"
13#include "ste-href-ab8500.dtsi"
14#include "ste-href.dtsi"
15
16/ {
17 model = "ST-Ericsson HREF (v60+) platform with Device Tree";
18 compatible = "st-ericsson,hrefv60+", "st-ericsson,u8500";
19
20 soc {
21 /* 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
141 // External Micro SD slot
142 sdi0_per1@80126000 {
143 cd-gpios = <&gpio2 31 GPIO_ACTIVE_HIGH>; // 95
144 };
145
146 vmmci: regulator-gpio {
147 gpios = <&gpio0 5 GPIO_ACTIVE_HIGH>;
148 enable-gpio = <&gpio5 9 GPIO_ACTIVE_HIGH>;
149 enable-active-high;
150 };
151
152 pinctrl {
153 /*
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 */
157 pinctrl-names = "default";
158 pinctrl-0 = <&ipgpio_hrefv60_mode>,
159 <&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>,
167 <&gpios_hrefv60_mode>;
168
169 sdi0 {
170 sdi0_default_mode: sdi0_default {
171 /* SD card detect GPIO pin, extend default state */
172 default_hrefv60_cfg1 {
173 pins = "GPIO95_E8";
174 ste,config = <&gpio_in_pu>;
175 };
176 /* VMMCI level-shifter enable */
177 default_hrefv60_cfg2 {
178 pins = "GPIO169_D22";
179 ste,config = <&gpio_out_hi>;
180 };
181 /* VMMCI level-shifter voltage select */
182 default_hrefv60_cfg3 {
183 pins = "GPIO5_AG6";
184 ste,config = <&gpio_out_hi>;
185 };
186 };
187 };
188 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 {
198 function = "ipgpio";
199 groups = "ipgpio0_c_1", "ipgpio1_c_1", "ipgpio4_c_1";
200 };
201 hrefv60_cfg1 {
202 pins = "GPIO6_AF6", "GPIO7_AG5";
203 ste,config = <&in_pu>;
204 };
205 hrefv60_cfg2 {
206 pins = "GPIO21_AB3";
207 ste,config = <&gpio_out_lo>;
208 };
209 hrefv60_cfg3 {
210 pins = "GPIO64_F3";
211 ste,config = <&out_lo>;
212 };
213 };
214 };
215 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 {
223 pins =
224 "GPIO70_G5",
225 "GPIO71_G4",
226 "GPIO72_H4",
227 "GPIO73_H3",
228 "GPIO74_J3";
229 ste,config = <&gpio_out_lo>;
230 };
231 };
232 };
233 nahj {
234 nahj_hrefv60_mode: nahj_hrefv60 {
235 /* NAHJ CTRL on GPIO76 to low, CTRL_INV on GPIO216 to high */
236 hrefv60_cfg1 {
237 pins = "GPIO76_J2";
238 ste,config = <&gpio_out_lo>;
239 };
240 hrefv60_cfg2 {
241 pins = "GPIO216_AG12";
242 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 {
250 pins =
251 "GPIO77_H1", /* NFC_ENA */
252 "GPIO142_C11"; /* NFC_RESET */
253 ste,config = <&gpio_out_lo>;
254 };
255 hrefv60_cfg2 {
256 pins = "GPIO144_B13"; /* NFC_IRQ */
257 ste,config = <&gpio_in_pd>;
258 };
259 };
260 };
261 force {
262 force_hrefv60_mode: force_hrefv60 {
263 hrefv60_cfg1 {
264 pins = "GPIO91_B6"; /* FORCE_SENSING_INT */
265 ste,config = <&gpio_in_pu>;
266 };
267 hrefv60_cfg2 {
268 pins =
269 "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 {
278 pins = "GPIO139_C9"; /* DIPRO_INT */
279 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 {
287 pins = "GPIO149_B14"; /* VAUDIO_HF_EN, enable MAX8968 */
288 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 {
299 pins = "GPIO171_D23"; /* GBF_ENA_RESET */
300 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 {
308 pins = "GPIO192_AJ27";
309 ste,config = <&gpio_in_pd>;
310 };
311 };
312 };
313 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 {
321 pins ="GPIO65_F1";
322 ste,config = <&gpio_out_hi>;
323 };
324 hrefv60_cfg2 {
325 pins ="GPIO66_G3";
326 ste,config = <&gpio_out_lo>;
327 };
328 };
329 };
330 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 };
340 };
341 };
342};
1/*
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
12#include "ste-dbx5x0.dtsi"
13#include "ste-href-ab8500.dtsi"
14#include "ste-href.dtsi"
15
16/ {
17 model = "ST-Ericsson HREF (v60+) platform with Device Tree";
18 compatible = "st-ericsson,hrefv60+", "st-ericsson,u8500";
19
20 soc {
21 // External Micro SD slot
22 sdi0_per1@80126000 {
23 cd-gpios = <&gpio2 31 0x4>; // 95
24 };
25
26 vmmci: regulator-gpio {
27 gpios = <&gpio0 5 0x4>;
28 enable-gpio = <&gpio5 9 0x4>;
29 };
30
31 pinctrl {
32 /*
33 * Set this up using hogs, as time goes by and as seems fit, these
34 * can be moved over to being controlled by respective device.
35 */
36 pinctrl-names = "default";
37 pinctrl-0 = <&ipgpio_hrefv60_mode>,
38 <&accel_hrefv60_mode>,
39 <&magneto_hrefv60_mode>,
40 <&etm_hrefv60_mode>,
41 <&nahj_hrefv60_mode>,
42 <&nfc_hrefv60_mode>,
43 <&force_hrefv60_mode>,
44 <&dipro_hrefv60_mode>,
45 <&vaudio_hf_hrefv60_mode>,
46 <&gbf_hrefv60_mode>,
47 <&hdtv_hrefv60_mode>,
48 <&touch_hrefv60_mode>;
49
50 sdi0 {
51 /* SD card detect GPIO pin, extend default state */
52 sdi0_default_mode: sdi0_default {
53 default_hrefv60_cfg1 {
54 ste,pins = "GPIO95_E8";
55 ste,config = <&gpio_in_pu>;
56 };
57 };
58 };
59 ipgpio {
60 /*
61 * XENON Flashgun on image processor GPIO (controlled from image
62 * processor firmware), mux in these image processor GPIO lines 0
63 * (XENON_FLASH_ID), 1 (XENON_READY) and there is an assistant
64 * LED on IP GPIO 4 (XENON_EN2) on altfunction C, that need bias
65 * from GPIO21 so pull up 0, 1 and drive 4 and GPIO21 low as output.
66 */
67 ipgpio_hrefv60_mode: ipgpio_hrefv60 {
68 hrefv60_mux {
69 ste,function = "ipgpio";
70 ste,pins = "ipgpio0_c_1", "ipgpio1_c_1", "ipgpio4_c_1";
71 };
72 hrefv60_cfg1 {
73 ste,pins = "GPIO6_AF6", "GPIO7_AG5";
74 ste,config = <&in_pu>;
75 };
76 hrefv60_cfg2 {
77 ste,pins = "GPIO21_AB3";
78 ste,config = <&gpio_out_lo>;
79 };
80 hrefv60_cfg3 {
81 ste,pins = "GPIO64_F3";
82 ste,config = <&out_lo>;
83 };
84 };
85 };
86 accelerometer {
87 accel_hrefv60_mode: accel_hrefv60 {
88 /* Accelerometer interrupt lines 1 & 2 */
89 hrefv60_cfg1 {
90 ste,pins = "GPIO82_C1", "GPIO83_D3";
91 ste,config = <&gpio_in_pu>;
92 };
93 };
94 };
95 magnetometer {
96 magneto_hrefv60_mode: magneto_hrefv60 {
97 /* Magnetometer uses GPIO 31 and 32, pull these up/down respectively */
98 hrefv60_cfg1 {
99 ste,pins = "GPIO31_V3";
100 ste,config = <&gpio_in_pu>;
101 };
102 hrefv60_cfg2 {
103 ste,pins = "GPIO32_V2";
104 ste,config = <&gpio_in_pd>;
105 };
106 };
107 };
108 etm {
109 /*
110 * Drive D19-D23 for the ETM PTM trace interface low,
111 * (presumably pins are unconnected therefore grounded here,
112 * the "other alt C1" setting enables these pins)
113 */
114 etm_hrefv60_mode: etm_hrefv60 {
115 hrefv60_cfg1 {
116 ste,pins =
117 "GPIO70_G5",
118 "GPIO71_G4",
119 "GPIO72_H4",
120 "GPIO73_H3",
121 "GPIO74_J3";
122 ste,config = <&gpio_out_lo>;
123 };
124 };
125 };
126 nahj {
127 nahj_hrefv60_mode: nahj_hrefv60 {
128 /* NAHJ CTRL on GPIO76 to low, CTRL_INV on GPIO216 to high */
129 hrefv60_cfg1 {
130 ste,pins = "GPIO76_J2";
131 ste,config = <&gpio_out_lo>;
132 };
133 hrefv60_cfg2 {
134 ste,pins = "GPIO216_AG12";
135 ste,config = <&gpio_out_hi>;
136 };
137 };
138 };
139 nfc {
140 nfc_hrefv60_mode: nfc_hrefv60 {
141 /* NFC ENA and RESET to low, pulldown IRQ line */
142 hrefv60_cfg1 {
143 ste,pins =
144 "GPIO77_H1", /* NFC_ENA */
145 "GPIO142_C11"; /* NFC_RESET */
146 ste,config = <&gpio_out_lo>;
147 };
148 hrefv60_cfg2 {
149 ste,pins = "GPIO144_B13"; /* NFC_IRQ */
150 ste,config = <&gpio_in_pd>;
151 };
152 };
153 };
154 force {
155 force_hrefv60_mode: force_hrefv60 {
156 hrefv60_cfg1 {
157 ste,pins = "GPIO91_B6"; /* FORCE_SENSING_INT */
158 ste,config = <&gpio_in_pu>;
159 };
160 hrefv60_cfg2 {
161 ste,pins =
162 "GPIO92_D6", /* FORCE_SENSING_RST */
163 "GPIO97_D9"; /* FORCE_SENSING_WU */
164 ste,config = <&gpio_out_lo>;
165 };
166 };
167 };
168 dipro {
169 dipro_hrefv60_mode: dipro_hrefv60 {
170 hrefv60_cfg1 {
171 ste,pins = "GPIO139_C9"; /* DIPRO_INT */
172 ste,config = <&gpio_in_pu>;
173 };
174 };
175 };
176 vaudio_hf {
177 vaudio_hf_hrefv60_mode: vaudio_hf_hrefv60 {
178 /* Audio Amplifier HF enable GPIO */
179 hrefv60_cfg1 {
180 ste,pins = "GPIO149_B14"; /* VAUDIO_HF_EN, enable MAX8968 */
181 ste,config = <&gpio_out_hi>;
182 };
183 };
184 };
185 gbf {
186 gbf_hrefv60_mode: gbf_hrefv60 {
187 /*
188 * GBF (GPS, Bluetooth, FM-radio) interface,
189 * pull low to reset state
190 */
191 hrefv60_cfg1 {
192 ste,pins = "GPIO171_D23"; /* GBF_ENA_RESET */
193 ste,config = <&gpio_out_lo>;
194 };
195 };
196 };
197 hdtv {
198 hdtv_hrefv60_mode: hdtv_hrefv60 {
199 /* MSP : HDTV INTERFACE GPIO line */
200 hrefv60_cfg1 {
201 ste,pins = "GPIO192_AJ27";
202 ste,config = <&gpio_in_pd>;
203 };
204 };
205 };
206 touch {
207 touch_hrefv60_mode: touch_hrefv60 {
208 /*
209 * Touch screen uses GPIO 143 for RST1, GPIO 146 for RST2 and
210 * GPIO 67 for interrupts. Pull-up the IRQ line and drive both
211 * reset signals low.
212 */
213 hrefv60_cfg1 {
214 ste,pins = "GPIO143_D12", "GPIO146_D13";
215 ste,config = <&gpio_out_lo>;
216 };
217 hrefv60_cfg2 {
218 ste,pins = "GPIO67_G2";
219 ste,config = <&gpio_in_pu>;
220 };
221 };
222 };
223 mcde {
224 lcd_hrefv60_mode: lcd_hrefv60 {
225 /*
226 * Display Interface 1 uses GPIO 65 for RST (reset).
227 * Display Interface 2 uses GPIO 66 for RST (reset).
228 * Drive DISP1 reset high (not reset), driver DISP2 reset low (reset)
229 */
230 hrefv60_cfg1 {
231 ste,pins ="GPIO65_F1";
232 ste,config = <&gpio_out_hi>;
233 };
234 hrefv60_cfg2 {
235 ste,pins ="GPIO66_G3";
236 ste,config = <&gpio_out_lo>;
237 };
238 };
239 };
240 };
241 };
242};