2 * linux/drivers/pinctrl/pinmux-pxa910.c
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * publishhed by the Free Software Foundation.
8 * Copyright (C) 2011, Marvell Technology Group Ltd.
10 * Author: Haojian Zhuang <haojian.zhuang@marvell.com>
14 #include <linux/device.h>
15 #include <linux/module.h>
17 #include <linux/platform_device.h>
18 #include "pinctrl-pxa3xx.h"
20 #define PXA910_DS_MASK 0x1800
21 #define PXA910_DS_SHIFT 11
22 #define PXA910_SLEEP_MASK 0x38
23 #define PXA910_SLEEP_SELECT (1 << 9)
24 #define PXA910_SLEEP_DATA (1 << 8)
25 #define PXA910_SLEEP_DIR (1 << 7)
27 #define MFPR_910(a, r, f0, f1, f2, f3, f4, f5, f6, f7) \
44 #define GRP_910(a, m, p) \
45 { .name = a, .mux = PXA910_MUX_##m, .pins = p, .npins = ARRAY_SIZE(p), }
48 enum pxa910_pin_list
{
49 /* 0~127: GPIO0~GPIO127 */
95 /* PXA3xx_MUX_GPIO = 0 (predefined in pinctrl-pxa3xx.h) */
106 PXA910_MUX_SEC1_JTAG
,
107 PXA910_MUX_SEC2_JTAG
,
108 PXA910_MUX_RESET
, /* SLAVE RESET OUT */
112 PXA910_MUX_VCXO_REQ2
,
113 PXA910_MUX_VCXO_OUT2
,
143 PXA910_MUX_32K_CLK
, /* 32KHz CLK OUT */
144 PXA910_MUX_MN_CLK
, /* MN CLK OUT */
146 PXA910_MUX_SM_ADDR18
,
147 PXA910_MUX_SM_ADDR19
,
148 PXA910_MUX_SM_ADDR20
,
149 PXA910_MUX_NONE
= 0xffff,
153 static struct pinctrl_pin_desc pxa910_pads
[] = {
154 PINCTRL_PIN(GPIO0
, "GPIO0"),
155 PINCTRL_PIN(GPIO1
, "GPIO1"),
156 PINCTRL_PIN(GPIO2
, "GPIO2"),
157 PINCTRL_PIN(GPIO3
, "GPIO3"),
158 PINCTRL_PIN(GPIO4
, "GPIO4"),
159 PINCTRL_PIN(GPIO5
, "GPIO5"),
160 PINCTRL_PIN(GPIO6
, "GPIO6"),
161 PINCTRL_PIN(GPIO7
, "GPIO7"),
162 PINCTRL_PIN(GPIO8
, "GPIO8"),
163 PINCTRL_PIN(GPIO9
, "GPIO9"),
164 PINCTRL_PIN(GPIO10
, "GPIO10"),
165 PINCTRL_PIN(GPIO11
, "GPIO11"),
166 PINCTRL_PIN(GPIO12
, "GPIO12"),
167 PINCTRL_PIN(GPIO13
, "GPIO13"),
168 PINCTRL_PIN(GPIO14
, "GPIO14"),
169 PINCTRL_PIN(GPIO15
, "GPIO15"),
170 PINCTRL_PIN(GPIO16
, "GPIO16"),
171 PINCTRL_PIN(GPIO17
, "GPIO17"),
172 PINCTRL_PIN(GPIO18
, "GPIO18"),
173 PINCTRL_PIN(GPIO19
, "GPIO19"),
174 PINCTRL_PIN(GPIO20
, "GPIO20"),
175 PINCTRL_PIN(GPIO21
, "GPIO21"),
176 PINCTRL_PIN(GPIO22
, "GPIO22"),
177 PINCTRL_PIN(GPIO23
, "GPIO23"),
178 PINCTRL_PIN(GPIO24
, "GPIO24"),
179 PINCTRL_PIN(GPIO25
, "GPIO25"),
180 PINCTRL_PIN(GPIO26
, "GPIO26"),
181 PINCTRL_PIN(GPIO27
, "GPIO27"),
182 PINCTRL_PIN(GPIO28
, "GPIO28"),
183 PINCTRL_PIN(GPIO29
, "GPIO29"),
184 PINCTRL_PIN(GPIO30
, "GPIO30"),
185 PINCTRL_PIN(GPIO31
, "GPIO31"),
186 PINCTRL_PIN(GPIO32
, "GPIO32"),
187 PINCTRL_PIN(GPIO33
, "GPIO33"),
188 PINCTRL_PIN(GPIO34
, "GPIO34"),
189 PINCTRL_PIN(GPIO35
, "GPIO35"),
190 PINCTRL_PIN(GPIO36
, "GPIO36"),
191 PINCTRL_PIN(GPIO37
, "GPIO37"),
192 PINCTRL_PIN(GPIO38
, "GPIO38"),
193 PINCTRL_PIN(GPIO39
, "GPIO39"),
194 PINCTRL_PIN(GPIO40
, "GPIO40"),
195 PINCTRL_PIN(GPIO41
, "GPIO41"),
196 PINCTRL_PIN(GPIO42
, "GPIO42"),
197 PINCTRL_PIN(GPIO43
, "GPIO43"),
198 PINCTRL_PIN(GPIO44
, "GPIO44"),
199 PINCTRL_PIN(GPIO45
, "GPIO45"),
200 PINCTRL_PIN(GPIO46
, "GPIO46"),
201 PINCTRL_PIN(GPIO47
, "GPIO47"),
202 PINCTRL_PIN(GPIO48
, "GPIO48"),
203 PINCTRL_PIN(GPIO49
, "GPIO49"),
204 PINCTRL_PIN(GPIO50
, "GPIO50"),
205 PINCTRL_PIN(GPIO51
, "GPIO51"),
206 PINCTRL_PIN(GPIO52
, "GPIO52"),
207 PINCTRL_PIN(GPIO53
, "GPIO53"),
208 PINCTRL_PIN(GPIO54
, "GPIO54"),
209 PINCTRL_PIN(GPIO55
, "GPIO55"),
210 PINCTRL_PIN(GPIO56
, "GPIO56"),
211 PINCTRL_PIN(GPIO57
, "GPIO57"),
212 PINCTRL_PIN(GPIO58
, "GPIO58"),
213 PINCTRL_PIN(GPIO59
, "GPIO59"),
214 PINCTRL_PIN(GPIO60
, "GPIO60"),
215 PINCTRL_PIN(GPIO61
, "GPIO61"),
216 PINCTRL_PIN(GPIO62
, "GPIO62"),
217 PINCTRL_PIN(GPIO63
, "GPIO63"),
218 PINCTRL_PIN(GPIO64
, "GPIO64"),
219 PINCTRL_PIN(GPIO65
, "GPIO65"),
220 PINCTRL_PIN(GPIO66
, "GPIO66"),
221 PINCTRL_PIN(GPIO67
, "GPIO67"),
222 PINCTRL_PIN(GPIO68
, "GPIO68"),
223 PINCTRL_PIN(GPIO69
, "GPIO69"),
224 PINCTRL_PIN(GPIO70
, "GPIO70"),
225 PINCTRL_PIN(GPIO71
, "GPIO71"),
226 PINCTRL_PIN(GPIO72
, "GPIO72"),
227 PINCTRL_PIN(GPIO73
, "GPIO73"),
228 PINCTRL_PIN(GPIO74
, "GPIO74"),
229 PINCTRL_PIN(GPIO75
, "GPIO75"),
230 PINCTRL_PIN(GPIO76
, "GPIO76"),
231 PINCTRL_PIN(GPIO77
, "GPIO77"),
232 PINCTRL_PIN(GPIO78
, "GPIO78"),
233 PINCTRL_PIN(GPIO79
, "GPIO79"),
234 PINCTRL_PIN(GPIO80
, "GPIO80"),
235 PINCTRL_PIN(GPIO81
, "GPIO81"),
236 PINCTRL_PIN(GPIO82
, "GPIO82"),
237 PINCTRL_PIN(GPIO83
, "GPIO83"),
238 PINCTRL_PIN(GPIO84
, "GPIO84"),
239 PINCTRL_PIN(GPIO85
, "GPIO85"),
240 PINCTRL_PIN(GPIO86
, "GPIO86"),
241 PINCTRL_PIN(GPIO87
, "GPIO87"),
242 PINCTRL_PIN(GPIO88
, "GPIO88"),
243 PINCTRL_PIN(GPIO89
, "GPIO89"),
244 PINCTRL_PIN(GPIO90
, "GPIO90"),
245 PINCTRL_PIN(GPIO91
, "GPIO91"),
246 PINCTRL_PIN(GPIO92
, "GPIO92"),
247 PINCTRL_PIN(GPIO93
, "GPIO93"),
248 PINCTRL_PIN(GPIO94
, "GPIO94"),
249 PINCTRL_PIN(GPIO95
, "GPIO95"),
250 PINCTRL_PIN(GPIO96
, "GPIO96"),
251 PINCTRL_PIN(GPIO97
, "GPIO97"),
252 PINCTRL_PIN(GPIO98
, "GPIO98"),
253 PINCTRL_PIN(GPIO99
, "GPIO99"),
254 PINCTRL_PIN(GPIO100
, "GPIO100"),
255 PINCTRL_PIN(GPIO101
, "GPIO101"),
256 PINCTRL_PIN(GPIO102
, "GPIO102"),
257 PINCTRL_PIN(GPIO103
, "GPIO103"),
258 PINCTRL_PIN(GPIO104
, "GPIO104"),
259 PINCTRL_PIN(GPIO105
, "GPIO105"),
260 PINCTRL_PIN(GPIO106
, "GPIO106"),
261 PINCTRL_PIN(GPIO107
, "GPIO107"),
262 PINCTRL_PIN(GPIO108
, "GPIO108"),
263 PINCTRL_PIN(GPIO109
, "GPIO109"),
264 PINCTRL_PIN(GPIO110
, "GPIO110"),
265 PINCTRL_PIN(GPIO111
, "GPIO111"),
266 PINCTRL_PIN(GPIO112
, "GPIO112"),
267 PINCTRL_PIN(GPIO113
, "GPIO113"),
268 PINCTRL_PIN(GPIO114
, "GPIO114"),
269 PINCTRL_PIN(GPIO115
, "GPIO115"),
270 PINCTRL_PIN(GPIO116
, "GPIO116"),
271 PINCTRL_PIN(GPIO117
, "GPIO117"),
272 PINCTRL_PIN(GPIO118
, "GPIO118"),
273 PINCTRL_PIN(GPIO119
, "GPIO119"),
274 PINCTRL_PIN(GPIO120
, "GPIO120"),
275 PINCTRL_PIN(GPIO121
, "GPIO121"),
276 PINCTRL_PIN(GPIO122
, "GPIO122"),
277 PINCTRL_PIN(GPIO123
, "GPIO123"),
278 PINCTRL_PIN(GPIO124
, "GPIO124"),
279 PINCTRL_PIN(GPIO125
, "GPIO125"),
280 PINCTRL_PIN(GPIO126
, "GPIO126"),
281 PINCTRL_PIN(GPIO127
, "GPIO127"),
282 PINCTRL_PIN(ND_IO15
, "ND_IO15"),
283 PINCTRL_PIN(ND_IO14
, "ND_IO14"),
284 PINCTRL_PIN(ND_IO13
, "ND_IO13"),
285 PINCTRL_PIN(ND_IO12
, "ND_IO12"),
286 PINCTRL_PIN(ND_IO11
, "ND_IO11"),
287 PINCTRL_PIN(ND_IO10
, "ND_IO10"),
288 PINCTRL_PIN(ND_IO9
, "ND_IO9"),
289 PINCTRL_PIN(ND_IO8
, "ND_IO8"),
290 PINCTRL_PIN(ND_IO7
, "ND_IO7"),
291 PINCTRL_PIN(ND_IO6
, "ND_IO6"),
292 PINCTRL_PIN(ND_IO5
, "ND_IO5"),
293 PINCTRL_PIN(ND_IO4
, "ND_IO4"),
294 PINCTRL_PIN(ND_IO3
, "ND_IO3"),
295 PINCTRL_PIN(ND_IO2
, "ND_IO2"),
296 PINCTRL_PIN(ND_IO1
, "ND_IO1"),
297 PINCTRL_PIN(ND_IO0
, "ND_IO0"),
298 PINCTRL_PIN(ND_NCS0
, "ND_NCS0_SM_NCS2"),
299 PINCTRL_PIN(ND_NCS1
, "ND_NCS1_SM_NCS3"),
300 PINCTRL_PIN(SM_NCS0
, "SM_NCS0"),
301 PINCTRL_PIN(SM_NCS1
, "SM_NCS1"),
302 PINCTRL_PIN(ND_NWE
, "ND_NWE"),
303 PINCTRL_PIN(ND_NRE
, "ND_NRE"),
304 PINCTRL_PIN(ND_CLE
, "ND_CLE_SM_NOE"),
305 PINCTRL_PIN(ND_ALE
, "ND_ALE_SM_NWE"),
306 PINCTRL_PIN(SM_SCLK
, "SM_SCLK"),
307 PINCTRL_PIN(ND_RDY0
, "ND_RDY0"),
308 PINCTRL_PIN(SM_ADV
, "SM_ADV"),
309 PINCTRL_PIN(ND_RDY1
, "ND_RDY1"),
310 PINCTRL_PIN(SM_RDY
, "SM_RDY"),
311 PINCTRL_PIN(MMC1_DAT7
, "MMC1_DAT7"),
312 PINCTRL_PIN(MMC1_DAT6
, "MMC1_DAT6"),
313 PINCTRL_PIN(MMC1_DAT5
, "MMC1_DAT5"),
314 PINCTRL_PIN(MMC1_DAT4
, "MMC1_DAT4"),
315 PINCTRL_PIN(MMC1_DAT3
, "MMC1_DAT3"),
316 PINCTRL_PIN(MMC1_DAT2
, "MMC1_DAT2"),
317 PINCTRL_PIN(MMC1_DAT1
, "MMC1_DAT1"),
318 PINCTRL_PIN(MMC1_DAT0
, "MMC1_DAT0"),
319 PINCTRL_PIN(MMC1_CMD
, "MMC1 CMD"),
320 PINCTRL_PIN(MMC1_CLK
, "MMC1 CLK"),
321 PINCTRL_PIN(MMC1_CD
, "MMC1 CD"),
322 PINCTRL_PIN(VCXO_OUT
, "VCXO_OUT"),
325 struct pxa3xx_mfp_pin pxa910_mfp
[] = {
326 /* pin offs f0 f1 f2 f3 f4 f5 f6 f7 */
327 MFPR_910(GPIO0
, 0x0DC, GPIO
, KP_MK
, NONE
, NONE
, NONE
, NONE
, NONE
, NONE
),
328 MFPR_910(GPIO1
, 0x0E0, GPIO
, KP_MK
, NONE
, NONE
, NONE
, NONE
, NONE
, NONE
),
329 MFPR_910(GPIO2
, 0x0E4, GPIO
, KP_MK
, NONE
, NONE
, NONE
, NONE
, NONE
, NONE
),
330 MFPR_910(GPIO3
, 0x0E8, GPIO
, KP_MK
, NONE
, NONE
, NONE
, NONE
, NONE
, NONE
),
331 MFPR_910(GPIO4
, 0x0EC, GPIO
, KP_MK
, NONE
, NONE
, NONE
, NONE
, NONE
, NONE
),
332 MFPR_910(GPIO5
, 0x0F0, GPIO
, KP_MK
, NONE
, NONE
, NONE
, NONE
, NONE
, NONE
),
333 MFPR_910(GPIO6
, 0x0F4, GPIO
, KP_MK
, NONE
, NONE
, NONE
, NONE
, NONE
, NONE
),
334 MFPR_910(GPIO7
, 0x0F8, GPIO
, KP_MK
, NONE
, NONE
, NONE
, NONE
, NONE
, NONE
),
335 MFPR_910(GPIO8
, 0x0FC, GPIO
, KP_MK
, NONE
, NONE
, NONE
, NONE
, NONE
, NONE
),
336 MFPR_910(GPIO9
, 0x100, GPIO
, KP_MK
, NONE
, NONE
, NONE
, NONE
, NONE
, NONE
),
337 MFPR_910(GPIO10
, 0x104, GPIO
, KP_MK
, NONE
, NONE
, NONE
, NONE
, NONE
, NONE
),
338 MFPR_910(GPIO11
, 0x108, GPIO
, KP_MK
, NONE
, NONE
, NONE
, NONE
, NONE
, NONE
),
339 MFPR_910(GPIO12
, 0x10C, GPIO
, KP_MK
, NONE
, NONE
, KP_DK
, NONE
, NONE
, NONE
),
340 MFPR_910(GPIO13
, 0x110, GPIO
, KP_MK
, NONE
, NONE
, KP_DK
, NONE
, NONE
, NONE
),
341 MFPR_910(GPIO14
, 0x114, GPIO
, KP_MK
, NONE
, NONE
, KP_DK
, TB
, NONE
, NONE
),
342 MFPR_910(GPIO15
, 0x118, GPIO
, KP_MK
, NONE
, NONE
, KP_DK
, TB
, NONE
, NONE
),
343 MFPR_910(GPIO16
, 0x11C, GPIO
, KP_DK
, NONE
, NONE
, NONE
, TB
, NONE
, NONE
),
344 MFPR_910(GPIO17
, 0x120, GPIO
, KP_DK
, NONE
, NONE
, NONE
, TB
, NONE
, NONE
),
345 MFPR_910(GPIO18
, 0x124, GPIO
, KP_DK
, NONE
, NONE
, ROT
, NONE
, NONE
, NONE
),
346 MFPR_910(GPIO19
, 0x128, GPIO
, KP_DK
, NONE
, NONE
, ROT
, NONE
, NONE
, NONE
),
347 MFPR_910(GPIO20
, 0x12C, GPIO
, SSP1
, NONE
, NONE
, VCXO_OUT
, NONE
, NONE
, NONE
),
348 MFPR_910(GPIO21
, 0x130, GPIO
, SSP1
, NONE
, NONE
, NONE
, NONE
, NONE
, NONE
),
349 MFPR_910(GPIO22
, 0x134, GPIO
, SSP1
, NONE
, NONE
, NONE
, NONE
, NONE
, NONE
),
350 MFPR_910(GPIO23
, 0x138, GPIO
, SSP1
, NONE
, NONE
, NONE
, NONE
, NONE
, NONE
),
351 MFPR_910(GPIO24
, 0x13C, GPIO
, SSP1
, NONE
, NONE
, NONE
, NONE
, NONE
, NONE
),
352 MFPR_910(GPIO25
, 0x140, GPIO
, GSSP
, NONE
, NONE
, NONE
, NONE
, NONE
, NONE
),
353 MFPR_910(GPIO26
, 0x144, GPIO
, GSSP
, NONE
, NONE
, NONE
, NONE
, NONE
, NONE
),
354 MFPR_910(GPIO27
, 0x148, GPIO
, GSSP
, NONE
, NONE
, NONE
, NONE
, NONE
, NONE
),
355 MFPR_910(GPIO28
, 0x14C, GPIO
, GSSP
, NONE
, NONE
, NONE
, NONE
, NONE
, NONE
),
356 MFPR_910(GPIO29
, 0x150, GPIO
, UART0
, NONE
, NONE
, UART1
, NONE
, NONE
, NONE
),
357 MFPR_910(GPIO30
, 0x154, GPIO
, UART0
, NONE
, NONE
, UART1
, NONE
, NONE
, NONE
),
358 MFPR_910(GPIO31
, 0x158, GPIO
, UART0
, NONE
, NONE
, UART1
, NONE
, NONE
, NONE
),
359 MFPR_910(GPIO32
, 0x15C, GPIO
, UART0
, DAC_ST23
, NONE
, UART1
, NONE
, NONE
, NONE
),
360 MFPR_910(GPIO33
, 0x160, GPIO
, MMC2
, SSP0
, SSP2
, NONE
, SPI
, NONE
, MMC3
),
361 MFPR_910(GPIO34
, 0x164, GPIO
, MMC2
, SSP0
, SSP2
, NONE
, SPI
, NONE
, MMC3
),
362 MFPR_910(GPIO35
, 0x168, GPIO
, MMC2
, SSP0
, SSP2
, NONE
, SPI
, NONE
, MMC3
),
363 MFPR_910(GPIO36
, 0x16C, GPIO
, MMC2
, SSP0
, SSP2
, NONE
, SPI
, NONE
, MMC3
),
364 MFPR_910(GPIO37
, 0x170, GPIO
, MMC2
, NONE
, NONE
, NONE
, SPI
, HSL
, NONE
),
365 MFPR_910(GPIO38
, 0x174, GPIO
, MMC2
, NONE
, NONE
, NONE
, NONE
, HSL
, NONE
),
366 MFPR_910(GPIO39
, 0x178, GPIO
, MMC2
, NONE
, NONE
, NONE
, NONE
, HSL
, NONE
),
367 MFPR_910(GPIO40
, 0x17C, GPIO
, MMC2
, NONE
, NONE
, NONE
, NONE
, HSL
, NONE
),
368 MFPR_910(GPIO41
, 0x180, GPIO
, MMC2
, NONE
, NONE
, NONE
, NONE
, HSL
, NONE
),
369 MFPR_910(GPIO42
, 0x184, GPIO
, MMC2
, NONE
, NONE
, NONE
, NONE
, HSL
, NONE
),
370 MFPR_910(GPIO43
, 0x188, GPIO
, UART1
, NONE
, DAC_ST23
, NONE
, DSSP2
, SPI
, UART2
),
371 MFPR_910(GPIO44
, 0x18C, GPIO
, UART1
, NONE
, EXT_INT
, NONE
, DSSP2
, SPI
, UART2
),
372 MFPR_910(GPIO45
, 0x190, GPIO
, UART1
, NONE
, EXT_INT
, NONE
, DSSP2
, SPI
, UART2
),
373 MFPR_910(GPIO46
, 0x194, GPIO
, UART1
, NONE
, EXT_INT
, NONE
, DSSP2
, SPI
, UART2
),
374 MFPR_910(GPIO47
, 0x198, GPIO
, SSP0
, NONE
, NONE
, NONE
, SSP2
, UART1
, NONE
),
375 MFPR_910(GPIO48
, 0x19C, GPIO
, SSP0
, NONE
, NONE
, NONE
, SSP2
, UART1
, NONE
),
376 MFPR_910(GPIO49
, 0x1A0, GPIO
, SSP0
, UART0
, VCXO_REQ
, NONE
, SSP2
, NONE
, MMC3
),
377 MFPR_910(GPIO50
, 0x1A4, GPIO
, SSP0
, UART0
, VCXO_OUT
, NONE
, SSP2
, NONE
, MMC3
),
378 MFPR_910(GPIO51
, 0x1A8, GPIO
, UART2
, PWM1
, TWSI
, SSP0
, NONE
, DSSP3
, NONE
),
379 MFPR_910(GPIO52
, 0x1AC, GPIO
, UART2
, DAC_ST23
, TWSI
, SSP0
, NONE
, DSSP3
, NONE
),
380 MFPR_910(GPIO53
, 0x1B0, GPIO
, UART2
, TWSI
, NONE
, SSP0
, NONE
, DSSP3
, NONE
),
381 MFPR_910(GPIO54
, 0x1B4, GPIO
, UART2
, TWSI
, SSP0
, NONE
, NONE
, DSSP3
, NONE
),
382 MFPR_910(GPIO55
, 0x2F0, TDS
, GPIO
, TB
, NONE
, NONE
, NONE
, NONE
, NONE
),
383 MFPR_910(GPIO56
, 0x2F4, TDS
, GPIO
, TB
, NONE
, NONE
, NONE
, NONE
, NONE
),
384 MFPR_910(GPIO57
, 0x2F8, TDS
, GPIO
, TB
, NONE
, NONE
, NONE
, NONE
, NONE
),
385 MFPR_910(GPIO58
, 0x2FC, TDS
, GPIO
, TB
, NONE
, NONE
, NONE
, NONE
, NONE
),
386 MFPR_910(GPIO59
, 0x300, TDS
, GPIO
, TCU_GPOA
, TCU_GPOB
, ONE_WIRE
, NONE
, NONE
, NONE
),
387 MFPR_910(GPIO60
, 0x304, GPIO
, NONE
, NONE
, NONE
, NONE
, NONE
, NONE
, NONE
),
388 MFPR_910(GPIO61
, 0x308, GPIO
, NONE
, NONE
, NONE
, NONE
, NONE
, NONE
, HSL
),
389 MFPR_910(GPIO62
, 0x30C, GPIO
, NONE
, NONE
, NONE
, NONE
, NONE
, NONE
, HSL
),
390 MFPR_910(GPIO63
, 0x310, GPIO
, NONE
, NONE
, NONE
, NONE
, NONE
, NONE
, HSL
),
391 MFPR_910(GPIO64
, 0x314, GPIO
, SPI2
, NONE
, NONE
, NONE
, NONE
, NONE
, HSL
),
392 MFPR_910(GPIO65
, 0x318, GPIO
, SPI2
, NONE
, NONE
, NONE
, NONE
, ONE_WIRE
, HSL
),
393 MFPR_910(GPIO66
, 0x31C, GPIO
, NONE
, NONE
, NONE
, NONE
, NONE
, NONE
, HSL
),
394 MFPR_910(GPIO67
, 0x1B8, GPIO
, CCIC
, SPI
, NONE
, NONE
, ULPI
, NONE
, USIM2
),
395 MFPR_910(GPIO68
, 0x1BC, GPIO
, CCIC
, SPI
, NONE
, NONE
, ULPI
, NONE
, USIM2
),
396 MFPR_910(GPIO69
, 0x1C0, GPIO
, CCIC
, SPI
, NONE
, NONE
, ULPI
, NONE
, USIM2
),
397 MFPR_910(GPIO70
, 0x1C4, GPIO
, CCIC
, SPI
, NONE
, NONE
, ULPI
, NONE
, NONE
),
398 MFPR_910(GPIO71
, 0x1C8, GPIO
, CCIC
, SPI
, NONE
, NONE
, ULPI
, NONE
, NONE
),
399 MFPR_910(GPIO72
, 0x1CC, GPIO
, CCIC
, EXT_DMA
, NONE
, NONE
, ULPI
, NONE
, NONE
),
400 MFPR_910(GPIO73
, 0x1D0, GPIO
, CCIC
, EXT_DMA
, NONE
, NONE
, ULPI
, NONE
, NONE
),
401 MFPR_910(GPIO74
, 0x1D4, GPIO
, CCIC
, EXT_DMA
, NONE
, NONE
, ULPI
, NONE
, NONE
),
402 MFPR_910(GPIO75
, 0x1D8, GPIO
, CCIC
, NONE
, NONE
, NONE
, ULPI
, NONE
, NONE
),
403 MFPR_910(GPIO76
, 0x1DC, GPIO
, CCIC
, NONE
, NONE
, NONE
, ULPI
, NONE
, NONE
),
404 MFPR_910(GPIO77
, 0x1E0, GPIO
, CCIC
, NONE
, NONE
, NONE
, ULPI
, NONE
, NONE
),
405 MFPR_910(GPIO78
, 0x1E4, GPIO
, CCIC
, NONE
, NONE
, NONE
, ULPI
, NONE
, NONE
),
406 MFPR_910(GPIO79
, 0x1E8, GPIO
, TWSI
, NONE
, NONE
, NONE
, NONE
, NONE
, NONE
),
407 MFPR_910(GPIO80
, 0x1EC, GPIO
, TWSI
, NONE
, NONE
, NONE
, NONE
, NONE
, NONE
),
408 MFPR_910(GPIO81
, 0x1F0, GPIO
, LCD
, NONE
, NONE
, NONE
, NONE
, NONE
, NONE
),
409 MFPR_910(GPIO82
, 0x1F4, GPIO
, LCD
, NONE
, NONE
, NONE
, NONE
, NONE
, NONE
),
410 MFPR_910(GPIO83
, 0x1F8, GPIO
, LCD
, NONE
, NONE
, NONE
, NONE
, NONE
, NONE
),
411 MFPR_910(GPIO84
, 0x1FC, GPIO
, LCD
, VCXO_REQ2
, NONE
, NONE
, NONE
, NONE
, NONE
),
412 MFPR_910(GPIO85
, 0x200, GPIO
, LCD
, NONE
, NONE
, NONE
, NONE
, NONE
, NONE
),
413 MFPR_910(GPIO86
, 0x204, GPIO
, LCD
, VCXO_OUT2
, NONE
, NONE
, NONE
, NONE
, NONE
),
414 MFPR_910(GPIO87
, 0x208, GPIO
, LCD
, NONE
, NONE
, NONE
, NONE
, NONE
, NONE
),
415 MFPR_910(GPIO88
, 0x20C, GPIO
, LCD
, NONE
, NONE
, NONE
, NONE
, NONE
, NONE
),
416 MFPR_910(GPIO89
, 0x210, GPIO
, LCD
, NONE
, NONE
, NONE
, NONE
, NONE
, NONE
),
417 MFPR_910(GPIO90
, 0x214, GPIO
, LCD
, NONE
, NONE
, NONE
, NONE
, NONE
, NONE
),
418 MFPR_910(GPIO91
, 0x218, GPIO
, LCD
, NONE
, NONE
, NONE
, NONE
, NONE
, NONE
),
419 MFPR_910(GPIO92
, 0x21C, GPIO
, LCD
, NONE
, NONE
, NONE
, NONE
, NONE
, NONE
),
420 MFPR_910(GPIO93
, 0x220, GPIO
, LCD
, NONE
, NONE
, NONE
, NONE
, NONE
, NONE
),
421 MFPR_910(GPIO94
, 0x224, GPIO
, LCD
, NONE
, NONE
, NONE
, NONE
, NONE
, NONE
),
422 MFPR_910(GPIO95
, 0x228, GPIO
, LCD
, NONE
, NONE
, NONE
, NONE
, NONE
, NONE
),
423 MFPR_910(GPIO96
, 0x22C, GPIO
, LCD
, NONE
, NONE
, NONE
, NONE
, NONE
, NONE
),
424 MFPR_910(GPIO97
, 0x230, GPIO
, LCD
, NONE
, NONE
, NONE
, NONE
, NONE
, NONE
),
425 MFPR_910(GPIO98
, 0x234, GPIO
, LCD
, NONE
, NONE
, NONE
, NONE
, NONE
, NONE
),
426 MFPR_910(GPIO99
, 0x0B0, MMC1
, GPIO
, NONE
, NONE
, NONE
, NONE
, NONE
, NONE
),
427 MFPR_910(GPIO100
, 0x238, GPIO
, LCD
, NONE
, NONE
, NONE
, NONE
, NONE
, NONE
),
428 MFPR_910(GPIO101
, 0x23C, GPIO
, LCD
, NONE
, NONE
, NONE
, NONE
, NONE
, NONE
),
429 MFPR_910(GPIO102
, 0x240, GPIO
, LCD
, DSSP2
, SPI
, NONE
, NONE
, NONE
, SPI2
),
430 MFPR_910(GPIO103
, 0x244, GPIO
, LCD
, DSSP2
, SPI
, NONE
, NONE
, NONE
, SPI2
),
431 MFPR_910(GPIO104
, 0x248, GPIO
, LCD
, DSSP2
, SPI
, NONE
, NONE
, NONE
, NONE
),
432 MFPR_910(GPIO105
, 0x24C, GPIO
, LCD
, DSSP2
, SPI
, NONE
, NONE
, NONE
, NONE
),
433 MFPR_910(GPIO106
, 0x250, GPIO
, LCD
, DSSP3
, ONE_WIRE
, NONE
, NONE
, NONE
, NONE
),
434 MFPR_910(GPIO107
, 0x254, GPIO
, LCD
, DSSP3
, SPI
, NONE
, NONE
, NONE
, NONE
),
435 MFPR_910(GPIO108
, 0x258, GPIO
, LCD
, DSSP3
, SPI
, NONE
, NONE
, NONE
, NONE
),
436 MFPR_910(GPIO109
, 0x25C, GPIO
, LCD
, DSSP3
, SPI
, NONE
, NONE
, NONE
, NONE
),
437 MFPR_910(GPIO110
, 0x298, GPIO
, NONE
, NONE
, NONE
, NONE
, NONE
, NONE
, NONE
),
438 MFPR_910(GPIO111
, 0x29C, GPIO
, NONE
, DSSP2
, NONE
, NONE
, NONE
, NONE
, NONE
),
439 MFPR_910(GPIO112
, 0x2A0, GPIO
, NONE
, DSSP2
, NONE
, NONE
, NONE
, NONE
, NONE
),
440 MFPR_910(GPIO113
, 0x2A4, GPIO
, NONE
, DSSP2
, NONE
, NONE
, NONE
, NONE
, NONE
),
441 MFPR_910(GPIO114
, 0x2A8, GPIO
, NONE
, DSSP3
, NONE
, NONE
, NONE
, NONE
, NONE
),
442 MFPR_910(GPIO115
, 0x2AC, GPIO
, NONE
, DSSP3
, NONE
, NONE
, NONE
, NONE
, NONE
),
443 MFPR_910(GPIO116
, 0x2B0, GPIO
, NONE
, DSSP3
, NONE
, NONE
, NONE
, NONE
, NONE
),
444 MFPR_910(GPIO117
, 0x0B4, PRI_JTAG
, GPIO
, PWM0
, NONE
, NONE
, NONE
, NONE
, NONE
),
445 MFPR_910(GPIO118
, 0x0B8, PRI_JTAG
, GPIO
, PWM1
, NONE
, NONE
, NONE
, NONE
, NONE
),
446 MFPR_910(GPIO119
, 0x0BC, PRI_JTAG
, GPIO
, PWM2
, NONE
, NONE
, NONE
, NONE
, NONE
),
447 MFPR_910(GPIO120
, 0x0C0, PRI_JTAG
, GPIO
, PWM3
, NONE
, NONE
, NONE
, NONE
, NONE
),
448 MFPR_910(GPIO121
, 0x32C, GPIO
, NONE
, NONE
, NONE
, NONE
, NONE
, NONE
, NONE
),
449 MFPR_910(GPIO122
, 0x0C8, RESET
, GPIO
, 32K_CLK
, NONE
, NONE
, NONE
, NONE
, NONE
),
450 MFPR_910(GPIO123
, 0x0CC, CLK_REQ
, GPIO
, ONE_WIRE
, EXT_DMA
, NONE
, NONE
, NONE
, NONE
),
451 MFPR_910(GPIO124
, 0x0D0, GPIO
, MN_CLK
, DAC_ST23
, NONE
, NONE
, NONE
, NONE
, NONE
),
452 MFPR_910(GPIO125
, 0x0D4, VCXO_REQ
, GPIO
, NONE
, EXT_INT
, NONE
, NONE
, NONE
, NONE
),
453 MFPR_910(GPIO126
, 0x06C, GPIO
, SMC
, NONE
, SM_ADDR18
, NONE
, EXT_DMA
, NONE
, NONE
),
454 MFPR_910(GPIO127
, 0x070, GPIO
, SMC
, NONE
, NONE
, NONE
, NONE
, NONE
, NONE
),
455 MFPR_910(ND_IO15
, 0x004, NAND
, GPIO
, USIM2
, EXT_DMA
, NONE
, NONE
, NONE
, NONE
),
456 MFPR_910(ND_IO14
, 0x008, NAND
, GPIO
, USIM2
, NONE
, NONE
, NONE
, NONE
, NONE
),
457 MFPR_910(ND_IO13
, 0x00C, NAND
, GPIO
, USIM2
, EXT_INT
, NONE
, NONE
, NONE
, NONE
),
458 MFPR_910(ND_IO12
, 0x010, NAND
, GPIO
, SSP2
, EXT_INT
, NONE
, NONE
, NONE
, NONE
),
459 MFPR_910(ND_IO11
, 0x014, NAND
, GPIO
, SSP2
, NONE
, NONE
, NONE
, NONE
, NONE
),
460 MFPR_910(ND_IO10
, 0x018, NAND
, GPIO
, SSP2
, NONE
, NONE
, NONE
, NONE
, NONE
),
461 MFPR_910(ND_IO9
, 0x01C, NAND
, GPIO
, SSP2
, NONE
, VCXO_OUT2
, NONE
, NONE
, NONE
),
462 MFPR_910(ND_IO8
, 0x020, NAND
, GPIO
, NONE
, NONE
, PWM3
, NONE
, NONE
, NONE
),
463 MFPR_910(ND_IO7
, 0x024, NAND
, MMC3
, NONE
, NONE
, NONE
, NONE
, NONE
, NONE
),
464 MFPR_910(ND_IO6
, 0x028, NAND
, MMC3
, NONE
, NONE
, NONE
, NONE
, NONE
, NONE
),
465 MFPR_910(ND_IO5
, 0x02C, NAND
, MMC3
, NONE
, NONE
, NONE
, NONE
, NONE
, NONE
),
466 MFPR_910(ND_IO4
, 0x030, NAND
, MMC3
, NONE
, NONE
, NONE
, NONE
, NONE
, NONE
),
467 MFPR_910(ND_IO3
, 0x034, NAND
, MMC3
, NONE
, NONE
, NONE
, NONE
, NONE
, NONE
),
468 MFPR_910(ND_IO2
, 0x038, NAND
, MMC3
, NONE
, NONE
, NONE
, NONE
, NONE
, NONE
),
469 MFPR_910(ND_IO1
, 0x03C, NAND
, MMC3
, NONE
, NONE
, NONE
, NONE
, NONE
, NONE
),
470 MFPR_910(ND_IO0
, 0x040, NAND
, MMC3
, NONE
, NONE
, NONE
, NONE
, NONE
, NONE
),
471 MFPR_910(ND_NCS0
, 0x044, NAND
, GPIO
, NONE
, NONE
, NONE
, NONE
, NONE
, NONE
),
472 MFPR_910(ND_NCS1
, 0x048, NAND
, GPIO
, NONE
, NONE
, NONE
, NONE
, NONE
, NONE
),
473 MFPR_910(SM_NCS0
, 0x04C, SMC
, GPIO
, NONE
, NONE
, NONE
, NONE
, NONE
, NONE
),
474 MFPR_910(SM_NCS1
, 0x050, SMC
, GPIO
, NONE
, NONE
, NONE
, NONE
, NONE
, NONE
),
475 MFPR_910(ND_NWE
, 0x054, GPIO
, NAND
, NONE
, SM_ADDR20
, NONE
, SMC
, NONE
, NONE
),
476 MFPR_910(ND_NRE
, 0x058, GPIO
, NAND
, NONE
, SMC
, NONE
, EXT_DMA
, NONE
, NONE
),
477 MFPR_910(ND_CLE
, 0x05C, NAND
, MMC3
, NONE
, NONE
, NONE
, NONE
, NONE
, NONE
),
478 MFPR_910(ND_ALE
, 0x060, GPIO
, NAND
, NONE
, NONE
, NONE
, NONE
, NONE
, NONE
),
479 MFPR_910(SM_SCLK
, 0x064, MMC3
, NONE
, NONE
, NONE
, NONE
, NONE
, NONE
, NONE
),
480 MFPR_910(ND_RDY0
, 0x068, NAND
, GPIO
, NONE
, SMC
, NONE
, NONE
, NONE
, NONE
),
481 MFPR_910(SM_ADV
, 0x074, SMC
, GPIO
, NONE
, NONE
, NONE
, NONE
, NONE
, NONE
),
482 MFPR_910(ND_RDY1
, 0x078, NAND
, GPIO
, NONE
, SMC
, NONE
, NONE
, NONE
, NONE
),
483 MFPR_910(SM_ADVMUX
, 0x07C, SMC
, GPIO
, NONE
, SM_ADDR19
, NONE
, NONE
, NONE
, NONE
),
484 MFPR_910(SM_RDY
, 0x080, SMC
, GPIO
, NONE
, NONE
, NONE
, NONE
, NONE
, NONE
),
485 MFPR_910(MMC1_DAT7
, 0x084, MMC1
, GPIO
, SEC1_JTAG
, TB
, NONE
, NONE
, NONE
, NONE
),
486 MFPR_910(MMC1_DAT6
, 0x088, MMC1
, GPIO
, SEC1_JTAG
, TB
, NONE
, NONE
, NONE
, NONE
),
487 MFPR_910(MMC1_DAT5
, 0x08C, MMC1
, GPIO
, SEC1_JTAG
, TB
, NONE
, NONE
, NONE
, NONE
),
488 MFPR_910(MMC1_DAT4
, 0x090, MMC1
, GPIO
, NONE
, TB
, NONE
, NONE
, NONE
, NONE
),
489 MFPR_910(MMC1_DAT3
, 0x094, MMC1
, HSL
, SEC2_JTAG
, SSP0
, NONE
, NONE
, NONE
, NONE
),
490 MFPR_910(MMC1_DAT2
, 0x098, MMC1
, HSL
, SEC2_JTAG
, SSP2
, SSP0
, NONE
, NONE
, NONE
),
491 MFPR_910(MMC1_DAT1
, 0x09C, MMC1
, HSL
, SEC2_JTAG
, SSP2
, SSP0
, NONE
, NONE
, NONE
),
492 MFPR_910(MMC1_DAT0
, 0x0A0, MMC1
, HSL
, SEC2_JTAG
, SSP2
, NONE
, NONE
, NONE
, NONE
),
493 MFPR_910(MMC1_CMD
, 0x0A4, MMC1
, HSL
, SEC1_JTAG
, SSP2
, NONE
, NONE
, NONE
, NONE
),
494 MFPR_910(MMC1_CLK
, 0x0A8, MMC1
, HSL
, SEC2_JTAG
, SSP0
, NONE
, NONE
, NONE
, NONE
),
495 MFPR_910(MMC1_CD
, 0x0AC, MMC1
, GPIO
, SEC1_JTAG
, NONE
, NONE
, NONE
, NONE
, NONE
),
496 MFPR_910(VCXO_OUT
, 0x0D8, VCXO_OUT
, PWM3
, NONE
, NONE
, NONE
, NONE
, NONE
, NONE
),
500 static const unsigned p910_usim2_pin1
[] = {GPIO67
, GPIO68
, GPIO69
};
501 static const unsigned p910_usim2_pin2
[] = {ND_IO15
, ND_IO14
, ND_IO13
};
502 static const unsigned p910_mmc1_pin1
[] = {MMC1_DAT7
, MMC1_DAT6
, MMC1_DAT5
,
503 MMC1_DAT4
, MMC1_DAT3
, MMC1_DAT2
, MMC1_DAT1
, MMC1_DAT0
, MMC1_CMD
,
504 MMC1_CLK
, MMC1_CD
, GPIO99
};
505 static const unsigned p910_mmc2_pin1
[] = {GPIO33
, GPIO34
, GPIO35
, GPIO36
,
506 GPIO37
, GPIO38
, GPIO39
, GPIO40
, GPIO41
, GPIO42
};
507 static const unsigned p910_mmc3_pin1
[] = {GPIO33
, GPIO34
, GPIO35
, GPIO36
,
509 static const unsigned p910_mmc3_pin2
[] = {ND_IO7
, ND_IO6
, ND_IO5
, ND_IO4
,
510 ND_IO3
, ND_IO2
, ND_IO1
, ND_IO0
, ND_CLE
, SM_SCLK
};
511 static const unsigned p910_uart0_pin1
[] = {GPIO29
, GPIO30
, GPIO31
, GPIO32
};
512 static const unsigned p910_uart1_pin1
[] = {GPIO47
, GPIO48
};
513 static const unsigned p910_uart1_pin2
[] = {GPIO31
, GPIO32
};
514 static const unsigned p910_uart1_pin3
[] = {GPIO45
, GPIO46
};
515 static const unsigned p910_uart1_pin4
[] = {GPIO29
, GPIO30
, GPIO31
, GPIO32
};
516 static const unsigned p910_uart1_pin5
[] = {GPIO43
, GPIO44
, GPIO45
, GPIO46
};
517 static const unsigned p910_uart2_pin1
[] = {GPIO43
, GPIO44
};
518 static const unsigned p910_uart2_pin2
[] = {GPIO51
, GPIO52
};
519 static const unsigned p910_uart2_pin3
[] = {GPIO43
, GPIO44
, GPIO45
, GPIO46
};
520 static const unsigned p910_uart2_pin4
[] = {GPIO51
, GPIO52
, GPIO53
, GPIO54
};
521 static const unsigned p910_twsi_pin1
[] = {GPIO51
, GPIO52
};
522 static const unsigned p910_twsi_pin2
[] = {GPIO53
, GPIO54
};
523 static const unsigned p910_twsi_pin3
[] = {GPIO79
, GPIO80
};
524 static const unsigned p910_ccic_pin1
[] = {GPIO67
, GPIO68
, GPIO69
, GPIO70
,
525 GPIO71
, GPIO72
, GPIO73
, GPIO74
, GPIO75
, GPIO76
, GPIO77
, GPIO78
};
526 static const unsigned p910_lcd_pin1
[] = {GPIO81
, GPIO82
, GPIO83
, GPIO84
,
527 GPIO85
, GPIO86
, GPIO87
, GPIO88
, GPIO89
, GPIO90
, GPIO91
, GPIO92
,
528 GPIO93
, GPIO94
, GPIO95
, GPIO96
, GPIO97
, GPIO98
, GPIO100
, GPIO101
,
530 static const unsigned p910_spi_pin1
[] = {GPIO104
, GPIO105
, GPIO107
, GPIO108
};
531 static const unsigned p910_spi_pin2
[] = {GPIO43
, GPIO44
, GPIO45
, GPIO46
};
532 static const unsigned p910_spi_pin3
[] = {GPIO33
, GPIO34
, GPIO35
, GPIO36
,
534 static const unsigned p910_spi_pin4
[] = {GPIO67
, GPIO68
, GPIO69
, GPIO70
,
536 static const unsigned p910_spi2_pin1
[] = {GPIO64
, GPIO65
};
537 static const unsigned p910_spi2_pin2
[] = {GPIO102
, GPIO103
};
538 static const unsigned p910_dssp2_pin1
[] = {GPIO102
, GPIO103
, GPIO104
, GPIO105
};
539 static const unsigned p910_dssp2_pin2
[] = {GPIO43
, GPIO44
, GPIO45
, GPIO46
};
540 static const unsigned p910_dssp2_pin3
[] = {GPIO111
, GPIO112
, GPIO113
};
541 static const unsigned p910_dssp3_pin1
[] = {GPIO106
, GPIO107
, GPIO108
, GPIO109
};
542 static const unsigned p910_dssp3_pin2
[] = {GPIO51
, GPIO52
, GPIO53
, GPIO54
};
543 static const unsigned p910_dssp3_pin3
[] = {GPIO114
, GPIO115
, GPIO116
};
544 static const unsigned p910_ssp0_pin1
[] = {MMC1_DAT3
, MMC1_DAT2
, MMC1_DAT1
,
546 static const unsigned p910_ssp0_pin2
[] = {GPIO33
, GPIO34
, GPIO35
, GPIO36
};
547 static const unsigned p910_ssp0_pin3
[] = {GPIO47
, GPIO48
, GPIO49
, GPIO50
};
548 static const unsigned p910_ssp0_pin4
[] = {GPIO51
, GPIO52
, GPIO53
, GPIO54
};
549 static const unsigned p910_ssp1_pin1
[] = {GPIO21
, GPIO22
, GPIO23
, GPIO24
};
550 static const unsigned p910_ssp1_pin2
[] = {GPIO20
, GPIO21
, GPIO22
, GPIO23
,
552 static const unsigned p910_ssp2_pin1
[] = {MMC1_DAT2
, MMC1_DAT1
, MMC1_DAT0
,
554 static const unsigned p910_ssp2_pin2
[] = {GPIO33
, GPIO34
, GPIO35
, GPIO36
};
555 static const unsigned p910_ssp2_pin3
[] = {GPIO47
, GPIO48
, GPIO49
, GPIO50
};
556 static const unsigned p910_ssp2_pin4
[] = {ND_IO12
, ND_IO11
, ND_IO10
, ND_IO9
};
557 static const unsigned p910_gssp_pin1
[] = {GPIO25
, GPIO26
, GPIO27
, GPIO28
};
558 static const unsigned p910_pwm0_pin1
[] = {GPIO117
};
559 static const unsigned p910_pwm1_pin1
[] = {GPIO118
};
560 static const unsigned p910_pwm1_pin2
[] = {GPIO51
};
561 static const unsigned p910_pwm2_pin1
[] = {GPIO119
};
562 static const unsigned p910_pwm3_pin1
[] = {GPIO120
};
563 static const unsigned p910_pwm3_pin2
[] = {ND_IO8
};
564 static const unsigned p910_pwm3_pin3
[] = {VCXO_OUT
};
565 static const unsigned p910_pri_jtag_pin1
[] = {GPIO117
, GPIO118
, GPIO119
,
567 static const unsigned p910_sec1_jtag_pin1
[] = {MMC1_DAT7
, MMC1_DAT6
, MMC1_DAT5
,
569 static const unsigned p910_sec2_jtag_pin1
[] = {MMC1_DAT3
, MMC1_DAT2
, MMC1_DAT1
,
570 MMC1_DAT0
, MMC1_CLK
};
571 static const unsigned p910_hsl_pin1
[] = {GPIO37
, GPIO38
, GPIO39
, GPIO40
,
573 static const unsigned p910_hsl_pin2
[] = {GPIO61
, GPIO62
, GPIO63
, GPIO64
,
575 static const unsigned p910_hsl_pin3
[] = {MMC1_DAT3
, MMC1_DAT2
, MMC1_DAT1
,
576 MMC1_DAT0
, MMC1_CMD
, MMC1_CLK
};
577 static const unsigned p910_w1_pin1
[] = {GPIO59
};
578 static const unsigned p910_w1_pin2
[] = {GPIO65
};
579 static const unsigned p910_w1_pin3
[] = {GPIO106
};
580 static const unsigned p910_w1_pin4
[] = {GPIO123
};
581 static const unsigned p910_kpmk_pin1
[] = {GPIO0
, GPIO1
, GPIO2
, GPIO3
, GPIO4
,
582 GPIO5
, GPIO6
, GPIO7
, GPIO8
, GPIO9
, GPIO10
, GPIO11
, GPIO12
, GPIO13
,
584 static const unsigned p910_kpmk_pin2
[] = {GPIO0
, GPIO1
, GPIO2
, GPIO3
, GPIO4
,
585 GPIO5
, GPIO6
, GPIO7
, GPIO8
, GPIO9
, GPIO12
};
586 static const unsigned p910_kpdk_pin1
[] = {GPIO12
, GPIO13
, GPIO14
, GPIO15
,
587 GPIO16
, GPIO17
, GPIO18
, GPIO19
};
588 static const unsigned p910_tds_pin1
[] = {GPIO55
, GPIO56
, GPIO57
, GPIO58
,
590 static const unsigned p910_tds_pin2
[] = {GPIO55
, GPIO57
, GPIO58
, GPIO59
};
591 static const unsigned p910_tb_pin1
[] = {GPIO14
, GPIO15
, GPIO16
, GPIO17
};
592 static const unsigned p910_tb_pin2
[] = {GPIO55
, GPIO56
, GPIO57
, GPIO58
};
593 static const unsigned p910_tb_pin3
[] = {MMC1_DAT7
, MMC1_DAT6
, MMC1_DAT5
,
595 static const unsigned p910_ext_dma0_pin1
[] = {GPIO72
};
596 static const unsigned p910_ext_dma0_pin2
[] = {ND_IO15
};
597 static const unsigned p910_ext_dma0_pin3
[] = {ND_NRE
};
598 static const unsigned p910_ext_dma1_pin1
[] = {GPIO73
};
599 static const unsigned p910_ext_dma1_pin2
[] = {GPIO123
};
600 static const unsigned p910_ext_dma1_pin3
[] = {GPIO126
};
601 static const unsigned p910_ext_dma2_pin1
[] = {GPIO74
};
602 static const unsigned p910_ext0_int_pin1
[] = {GPIO44
};
603 static const unsigned p910_ext0_int_pin2
[] = {ND_IO13
};
604 static const unsigned p910_ext1_int_pin1
[] = {GPIO45
};
605 static const unsigned p910_ext1_int_pin2
[] = {ND_IO12
};
606 static const unsigned p910_ext2_int_pin1
[] = {GPIO46
};
607 static const unsigned p910_ext2_int_pin2
[] = {GPIO125
};
608 static const unsigned p910_dac_st23_pin1
[] = {GPIO32
};
609 static const unsigned p910_dac_st23_pin2
[] = {GPIO43
};
610 static const unsigned p910_dac_st23_pin3
[] = {GPIO52
};
611 static const unsigned p910_dac_st23_pin4
[] = {GPIO124
};
612 static const unsigned p910_vcxo_out_pin1
[] = {GPIO50
};
613 static const unsigned p910_vcxo_out_pin2
[] = {VCXO_OUT
};
614 static const unsigned p910_vcxo_out_pin3
[] = {GPIO20
};
615 static const unsigned p910_vcxo_req_pin1
[] = {GPIO49
};
616 static const unsigned p910_vcxo_req_pin2
[] = {GPIO125
};
617 static const unsigned p910_vcxo_out2_pin1
[] = {GPIO86
};
618 static const unsigned p910_vcxo_out2_pin2
[] = {ND_IO9
};
619 static const unsigned p910_vcxo_req2_pin1
[] = {GPIO84
};
620 static const unsigned p910_ulpi_pin1
[] = {GPIO67
, GPIO68
, GPIO69
, GPIO70
,
621 GPIO71
, GPIO72
, GPIO73
, GPIO74
, GPIO75
, GPIO76
, GPIO77
, GPIO78
};
622 static const unsigned p910_nand_pin1
[] = {ND_IO15
, ND_IO14
, ND_IO13
, ND_IO12
,
623 ND_IO11
, ND_IO10
, ND_IO9
, ND_IO8
, ND_IO7
, ND_IO6
, ND_IO5
, ND_IO4
,
624 ND_IO3
, ND_IO2
, ND_IO1
, ND_IO0
, ND_NCS0
, ND_NWE
, ND_NRE
, ND_CLE
,
626 static const unsigned p910_gpio0_pin1
[] = {GPIO0
};
627 static const unsigned p910_gpio0_pin2
[] = {SM_ADV
};
628 static const unsigned p910_gpio1_pin1
[] = {GPIO1
};
629 static const unsigned p910_gpio1_pin2
[] = {ND_RDY1
};
630 static const unsigned p910_gpio2_pin1
[] = {GPIO2
};
631 static const unsigned p910_gpio2_pin2
[] = {SM_ADVMUX
};
632 static const unsigned p910_gpio3_pin1
[] = {GPIO3
};
633 static const unsigned p910_gpio3_pin2
[] = {SM_RDY
};
634 static const unsigned p910_gpio20_pin1
[] = {GPIO20
};
635 static const unsigned p910_gpio20_pin2
[] = {ND_IO15
};
636 static const unsigned p910_gpio20_pin3
[] = {MMC1_DAT6
};
637 static const unsigned p910_gpio21_pin1
[] = {GPIO21
};
638 static const unsigned p910_gpio21_pin2
[] = {ND_IO14
};
639 static const unsigned p910_gpio21_pin3
[] = {MMC1_DAT5
};
640 static const unsigned p910_gpio22_pin1
[] = {GPIO22
};
641 static const unsigned p910_gpio22_pin2
[] = {ND_IO13
};
642 static const unsigned p910_gpio22_pin3
[] = {MMC1_DAT4
};
643 static const unsigned p910_gpio23_pin1
[] = {GPIO23
};
644 static const unsigned p910_gpio23_pin2
[] = {ND_IO12
};
645 static const unsigned p910_gpio23_pin3
[] = {MMC1_CD
};
646 static const unsigned p910_gpio24_pin1
[] = {GPIO24
};
647 static const unsigned p910_gpio24_pin2
[] = {ND_IO11
};
648 static const unsigned p910_gpio24_pin3
[] = {MMC1_DAT7
};
649 static const unsigned p910_gpio25_pin1
[] = {GPIO25
};
650 static const unsigned p910_gpio25_pin2
[] = {ND_IO10
};
651 static const unsigned p910_gpio26_pin1
[] = {GPIO26
};
652 static const unsigned p910_gpio26_pin2
[] = {ND_IO9
};
653 static const unsigned p910_gpio27_pin1
[] = {GPIO27
};
654 static const unsigned p910_gpio27_pin2
[] = {ND_IO8
};
655 static const unsigned p910_gpio85_pin1
[] = {GPIO85
};
656 static const unsigned p910_gpio85_pin2
[] = {ND_NCS0
};
657 static const unsigned p910_gpio86_pin1
[] = {GPIO86
};
658 static const unsigned p910_gpio86_pin2
[] = {ND_NCS1
};
659 static const unsigned p910_gpio87_pin1
[] = {GPIO87
};
660 static const unsigned p910_gpio87_pin2
[] = {SM_NCS0
};
661 static const unsigned p910_gpio88_pin1
[] = {GPIO88
};
662 static const unsigned p910_gpio88_pin2
[] = {SM_NCS1
};
663 static const unsigned p910_gpio89_pin1
[] = {GPIO89
};
664 static const unsigned p910_gpio89_pin2
[] = {ND_NWE
};
665 static const unsigned p910_gpio90_pin1
[] = {GPIO90
};
666 static const unsigned p910_gpio90_pin2
[] = {ND_NRE
};
667 static const unsigned p910_gpio91_pin1
[] = {GPIO91
};
668 static const unsigned p910_gpio91_pin2
[] = {ND_ALE
};
669 static const unsigned p910_gpio92_pin1
[] = {GPIO92
};
670 static const unsigned p910_gpio92_pin2
[] = {ND_RDY0
};
672 static struct pxa3xx_pin_group pxa910_grps
[] = {
673 GRP_910("usim2 3p1", USIM2
, p910_usim2_pin1
),
674 GRP_910("usim2 3p2", USIM2
, p910_usim2_pin2
),
675 GRP_910("mmc1 12p", MMC1
, p910_mmc1_pin1
),
676 GRP_910("mmc2 10p", MMC2
, p910_mmc2_pin1
),
677 GRP_910("mmc3 6p", MMC3
, p910_mmc3_pin1
),
678 GRP_910("mmc3 10p", MMC3
, p910_mmc3_pin2
),
679 GRP_910("uart0 4p", UART0
, p910_uart0_pin1
),
680 GRP_910("uart1 2p1", UART1
, p910_uart1_pin1
),
681 GRP_910("uart1 2p2", UART1
, p910_uart1_pin2
),
682 GRP_910("uart1 2p3", UART1
, p910_uart1_pin3
),
683 GRP_910("uart1 4p4", UART1
, p910_uart1_pin4
),
684 GRP_910("uart1 4p5", UART1
, p910_uart1_pin5
),
685 GRP_910("uart2 2p1", UART2
, p910_uart2_pin1
),
686 GRP_910("uart2 2p2", UART2
, p910_uart2_pin2
),
687 GRP_910("uart2 4p3", UART2
, p910_uart2_pin3
),
688 GRP_910("uart2 4p4", UART2
, p910_uart2_pin4
),
689 GRP_910("twsi 2p1", TWSI
, p910_twsi_pin1
),
690 GRP_910("twsi 2p2", TWSI
, p910_twsi_pin2
),
691 GRP_910("twsi 2p3", TWSI
, p910_twsi_pin3
),
692 GRP_910("ccic", CCIC
, p910_ccic_pin1
),
693 GRP_910("lcd", LCD
, p910_lcd_pin1
),
694 GRP_910("spi 4p1", SPI
, p910_spi_pin1
),
695 GRP_910("spi 4p2", SPI
, p910_spi_pin2
),
696 GRP_910("spi 5p3", SPI
, p910_spi_pin3
),
697 GRP_910("spi 5p4", SPI
, p910_spi_pin4
),
698 GRP_910("dssp2 4p1", DSSP2
, p910_dssp2_pin1
),
699 GRP_910("dssp2 4p2", DSSP2
, p910_dssp2_pin2
),
700 GRP_910("dssp2 3p3", DSSP2
, p910_dssp2_pin3
),
701 GRP_910("dssp3 4p1", DSSP3
, p910_dssp3_pin1
),
702 GRP_910("dssp3 4p2", DSSP3
, p910_dssp3_pin2
),
703 GRP_910("dssp3 3p3", DSSP3
, p910_dssp3_pin3
),
704 GRP_910("ssp0 4p1", SSP0
, p910_ssp0_pin1
),
705 GRP_910("ssp0 4p2", SSP0
, p910_ssp0_pin2
),
706 GRP_910("ssp0 4p3", SSP0
, p910_ssp0_pin3
),
707 GRP_910("ssp0 4p4", SSP0
, p910_ssp0_pin4
),
708 GRP_910("ssp1 4p1", SSP1
, p910_ssp1_pin1
),
709 GRP_910("ssp1 5p2", SSP1
, p910_ssp1_pin2
),
710 GRP_910("ssp2 4p1", SSP2
, p910_ssp2_pin1
),
711 GRP_910("ssp2 4p2", SSP2
, p910_ssp2_pin2
),
712 GRP_910("ssp2 4p3", SSP2
, p910_ssp2_pin3
),
713 GRP_910("ssp2 4p4", SSP2
, p910_ssp2_pin4
),
714 GRP_910("gssp", GSSP
, p910_gssp_pin1
),
715 GRP_910("pwm0", PWM0
, p910_pwm0_pin1
),
716 GRP_910("pwm1-1", PWM1
, p910_pwm1_pin1
),
717 GRP_910("pwm1-2", PWM1
, p910_pwm1_pin2
),
718 GRP_910("pwm2", PWM2
, p910_pwm2_pin1
),
719 GRP_910("pwm3-1", PWM3
, p910_pwm3_pin1
),
720 GRP_910("pwm3-2", PWM3
, p910_pwm3_pin2
),
721 GRP_910("pwm3-3", PWM3
, p910_pwm3_pin3
),
722 GRP_910("pri jtag", PRI_JTAG
, p910_pri_jtag_pin1
),
723 GRP_910("sec1 jtag", SEC1_JTAG
, p910_sec1_jtag_pin1
),
724 GRP_910("sec2 jtag", SEC2_JTAG
, p910_sec2_jtag_pin1
),
725 GRP_910("hsl 6p1", HSL
, p910_hsl_pin1
),
726 GRP_910("hsl 6p2", HSL
, p910_hsl_pin2
),
727 GRP_910("hsl 6p3", HSL
, p910_hsl_pin3
),
728 GRP_910("w1-1", ONE_WIRE
, p910_w1_pin1
),
729 GRP_910("w1-2", ONE_WIRE
, p910_w1_pin2
),
730 GRP_910("w1-3", ONE_WIRE
, p910_w1_pin3
),
731 GRP_910("w1-4", ONE_WIRE
, p910_w1_pin4
),
732 GRP_910("kpmk 16p1", KP_MK
, p910_kpmk_pin1
),
733 GRP_910("kpmk 11p2", KP_MK
, p910_kpmk_pin2
),
734 GRP_910("kpdk 8p1", KP_DK
, p910_kpdk_pin1
),
735 GRP_910("tds 5p1", TDS
, p910_tds_pin1
),
736 GRP_910("tds 4p2", TDS
, p910_tds_pin2
),
737 GRP_910("tb 4p1", TB
, p910_tb_pin1
),
738 GRP_910("tb 4p2", TB
, p910_tb_pin2
),
739 GRP_910("tb 4p3", TB
, p910_tb_pin3
),
740 GRP_910("ext dma0-1", EXT_DMA
, p910_ext_dma0_pin1
),
741 GRP_910("ext dma0-2", EXT_DMA
, p910_ext_dma0_pin2
),
742 GRP_910("ext dma0-3", EXT_DMA
, p910_ext_dma0_pin3
),
743 GRP_910("ext dma1-1", EXT_DMA
, p910_ext_dma1_pin1
),
744 GRP_910("ext dma1-2", EXT_DMA
, p910_ext_dma1_pin2
),
745 GRP_910("ext dma1-3", EXT_DMA
, p910_ext_dma1_pin3
),
746 GRP_910("ext dma2", EXT_DMA
, p910_ext_dma2_pin1
),
747 GRP_910("ext0 int-1", EXT_INT
, p910_ext0_int_pin1
),
748 GRP_910("ext0 int-2", EXT_INT
, p910_ext0_int_pin2
),
749 GRP_910("ext1 int-1", EXT_INT
, p910_ext1_int_pin1
),
750 GRP_910("ext1 int-2", EXT_INT
, p910_ext1_int_pin2
),
751 GRP_910("ext2 int-1", EXT_INT
, p910_ext2_int_pin1
),
752 GRP_910("ext2 int-2", EXT_INT
, p910_ext2_int_pin2
),
753 GRP_910("dac st23-1", DAC_ST23
, p910_dac_st23_pin1
),
754 GRP_910("dac st23-2", DAC_ST23
, p910_dac_st23_pin2
),
755 GRP_910("dac st23-3", DAC_ST23
, p910_dac_st23_pin3
),
756 GRP_910("dac st23-4", DAC_ST23
, p910_dac_st23_pin4
),
757 GRP_910("vcxo out-1", VCXO_OUT
, p910_vcxo_out_pin1
),
758 GRP_910("vcxo out-2", VCXO_OUT
, p910_vcxo_out_pin2
),
759 GRP_910("vcxo out-3", VCXO_OUT
, p910_vcxo_out_pin3
),
760 GRP_910("vcxo req-1", VCXO_REQ
, p910_vcxo_req_pin1
),
761 GRP_910("vcxo req-2", VCXO_REQ
, p910_vcxo_req_pin2
),
762 GRP_910("vcxo out2-1", VCXO_OUT2
, p910_vcxo_out2_pin1
),
763 GRP_910("vcxo out2-2", VCXO_OUT2
, p910_vcxo_out2_pin2
),
764 GRP_910("vcxo req2", VCXO_REQ2
, p910_vcxo_req2_pin1
),
765 GRP_910("ulpi", ULPI
, p910_ulpi_pin1
),
766 GRP_910("nand", NAND
, p910_nand_pin1
),
767 GRP_910("gpio0-1", GPIO
, p910_gpio0_pin1
),
768 GRP_910("gpio0-2", GPIO
, p910_gpio0_pin2
),
769 GRP_910("gpio1-1", GPIO
, p910_gpio1_pin1
),
770 GRP_910("gpio1-2", GPIO
, p910_gpio1_pin2
),
771 GRP_910("gpio2-1", GPIO
, p910_gpio2_pin1
),
772 GRP_910("gpio2-2", GPIO
, p910_gpio2_pin2
),
773 GRP_910("gpio3-1", GPIO
, p910_gpio3_pin1
),
774 GRP_910("gpio3-2", GPIO
, p910_gpio3_pin2
),
775 GRP_910("gpio20-1", GPIO
, p910_gpio20_pin1
),
776 GRP_910("gpio20-2", GPIO
, p910_gpio20_pin2
),
777 GRP_910("gpio21-1", GPIO
, p910_gpio21_pin1
),
778 GRP_910("gpio21-2", GPIO
, p910_gpio21_pin2
),
779 GRP_910("gpio22-1", GPIO
, p910_gpio22_pin1
),
780 GRP_910("gpio22-2", GPIO
, p910_gpio22_pin2
),
781 GRP_910("gpio23-1", GPIO
, p910_gpio23_pin1
),
782 GRP_910("gpio23-2", GPIO
, p910_gpio23_pin2
),
783 GRP_910("gpio24-1", GPIO
, p910_gpio24_pin1
),
784 GRP_910("gpio24-2", GPIO
, p910_gpio24_pin2
),
785 GRP_910("gpio25-1", GPIO
, p910_gpio25_pin1
),
786 GRP_910("gpio25-2", GPIO
, p910_gpio25_pin2
),
787 GRP_910("gpio26-1", GPIO
, p910_gpio26_pin1
),
788 GRP_910("gpio26-2", GPIO
, p910_gpio26_pin2
),
789 GRP_910("gpio27-1", GPIO
, p910_gpio27_pin1
),
790 GRP_910("gpio27-2", GPIO
, p910_gpio27_pin2
),
791 GRP_910("gpio85-1", GPIO
, p910_gpio85_pin1
),
792 GRP_910("gpio85-2", GPIO
, p910_gpio85_pin2
),
793 GRP_910("gpio86-1", GPIO
, p910_gpio86_pin1
),
794 GRP_910("gpio86-2", GPIO
, p910_gpio86_pin2
),
795 GRP_910("gpio87-1", GPIO
, p910_gpio87_pin1
),
796 GRP_910("gpio87-2", GPIO
, p910_gpio87_pin2
),
797 GRP_910("gpio88-1", GPIO
, p910_gpio88_pin1
),
798 GRP_910("gpio88-2", GPIO
, p910_gpio88_pin2
),
799 GRP_910("gpio89-1", GPIO
, p910_gpio89_pin1
),
800 GRP_910("gpio89-2", GPIO
, p910_gpio89_pin2
),
801 GRP_910("gpio90-1", GPIO
, p910_gpio90_pin1
),
802 GRP_910("gpio90-2", GPIO
, p910_gpio90_pin2
),
803 GRP_910("gpio91-1", GPIO
, p910_gpio91_pin1
),
804 GRP_910("gpio91-2", GPIO
, p910_gpio91_pin2
),
805 GRP_910("gpio92-1", GPIO
, p910_gpio92_pin1
),
806 GRP_910("gpio92-2", GPIO
, p910_gpio92_pin2
),
809 static const char * const p910_usim2_grps
[] = {"usim2 3p1", "usim2 3p2"};
810 static const char * const p910_mmc1_grps
[] = {"mmc1 12p"};
811 static const char * const p910_mmc2_grps
[] = {"mmc2 10p"};
812 static const char * const p910_mmc3_grps
[] = {"mmc3 6p", "mmc3 10p"};
813 static const char * const p910_uart0_grps
[] = {"uart0 4p"};
814 static const char * const p910_uart1_grps
[] = {"uart1 2p1", "uart1 2p2",
815 "uart1 2p3", "uart1 4p4", "uart1 4p5"};
816 static const char * const p910_uart2_grps
[] = {"uart2 2p1", "uart2 2p2",
817 "uart2 4p3", "uart2 4p4"};
818 static const char * const p910_twsi_grps
[] = {"twsi 2p1", "twsi 2p2",
820 static const char * const p910_ccic_grps
[] = {"ccic"};
821 static const char * const p910_lcd_grps
[] = {"lcd"};
822 static const char * const p910_spi_grps
[] = {"spi 4p1", "spi 4p2", "spi 5p3",
824 static const char * const p910_dssp2_grps
[] = {"dssp2 4p1", "dssp2 4p2",
826 static const char * const p910_dssp3_grps
[] = {"dssp3 4p1", "dssp3 4p2",
828 static const char * const p910_ssp0_grps
[] = {"ssp0 4p1", "ssp0 4p2",
829 "ssp0 4p3", "ssp0 4p4"};
830 static const char * const p910_ssp1_grps
[] = {"ssp1 4p1", "ssp1 5p2"};
831 static const char * const p910_ssp2_grps
[] = {"ssp2 4p1", "ssp2 4p2",
832 "ssp2 4p3", "ssp2 4p4"};
833 static const char * const p910_gssp_grps
[] = {"gssp"};
834 static const char * const p910_pwm0_grps
[] = {"pwm0"};
835 static const char * const p910_pwm1_grps
[] = {"pwm1-1", "pwm1-2"};
836 static const char * const p910_pwm2_grps
[] = {"pwm2"};
837 static const char * const p910_pwm3_grps
[] = {"pwm3-1", "pwm3-2", "pwm3-3"};
838 static const char * const p910_pri_jtag_grps
[] = {"pri jtag"};
839 static const char * const p910_sec1_jtag_grps
[] = {"sec1 jtag"};
840 static const char * const p910_sec2_jtag_grps
[] = {"sec2 jtag"};
841 static const char * const p910_hsl_grps
[] = {"hsl 6p1", "hsl 6p2", "hsl 6p3"};
842 static const char * const p910_w1_grps
[] = {"w1-1", "w1-2", "w1-3", "w1-4"};
843 static const char * const p910_kpmk_grps
[] = {"kpmk 16p1", "kpmk 11p2"};
844 static const char * const p910_kpdk_grps
[] = {"kpdk 8p1"};
845 static const char * const p910_tds_grps
[] = {"tds 5p1", "tds 4p2"};
846 static const char * const p910_tb_grps
[] = {"tb 4p1", "tb 4p2", "tb 4p3"};
847 static const char * const p910_dma0_grps
[] = {"ext dma0-1", "ext dma0-2",
849 static const char * const p910_dma1_grps
[] = {"ext dma1-1", "ext dma1-2",
851 static const char * const p910_dma2_grps
[] = {"ext dma2"};
852 static const char * const p910_int0_grps
[] = {"ext0 int-1", "ext0 int-2"};
853 static const char * const p910_int1_grps
[] = {"ext1 int-1", "ext1 int-2"};
854 static const char * const p910_int2_grps
[] = {"ext2 int-1", "ext2 int-2"};
855 static const char * const p910_dac_st23_grps
[] = {"dac st23-1", "dac st23-2",
856 "dac st23-3", "dac st23-4"};
857 static const char * const p910_vcxo_out_grps
[] = {"vcxo out-1", "vcxo out-2",
859 static const char * const p910_vcxo_req_grps
[] = {"vcxo req-1", "vcxo req-2"};
860 static const char * const p910_vcxo_out2_grps
[] = {"vcxo out2-1",
862 static const char * const p910_vcxo_req2_grps
[] = {"vcxo req2"};
863 static const char * const p910_ulpi_grps
[] = {"ulpi"};
864 static const char * const p910_nand_grps
[] = {"nand"};
865 static const char * const p910_gpio0_grps
[] = {"gpio0-1", "gpio0-2"};
866 static const char * const p910_gpio1_grps
[] = {"gpio1-1", "gpio1-2"};
867 static const char * const p910_gpio2_grps
[] = {"gpio2-1", "gpio2-2"};
868 static const char * const p910_gpio3_grps
[] = {"gpio3-1", "gpio3-2"};
869 static const char * const p910_gpio20_grps
[] = {"gpio20-1", "gpio20-2"};
870 static const char * const p910_gpio21_grps
[] = {"gpio21-1", "gpio21-2"};
871 static const char * const p910_gpio22_grps
[] = {"gpio22-1", "gpio22-2"};
872 static const char * const p910_gpio23_grps
[] = {"gpio23-1", "gpio23-2"};
873 static const char * const p910_gpio24_grps
[] = {"gpio24-1", "gpio24-2"};
874 static const char * const p910_gpio25_grps
[] = {"gpio25-1", "gpio25-2"};
875 static const char * const p910_gpio26_grps
[] = {"gpio26-1", "gpio26-2"};
876 static const char * const p910_gpio27_grps
[] = {"gpio27-1", "gpio27-2"};
877 static const char * const p910_gpio85_grps
[] = {"gpio85-1", "gpio85-2"};
878 static const char * const p910_gpio86_grps
[] = {"gpio86-1", "gpio86-2"};
879 static const char * const p910_gpio87_grps
[] = {"gpio87-1", "gpio87-2"};
880 static const char * const p910_gpio88_grps
[] = {"gpio88-1", "gpio88-2"};
881 static const char * const p910_gpio89_grps
[] = {"gpio89-1", "gpio89-2"};
882 static const char * const p910_gpio90_grps
[] = {"gpio90-1", "gpio90-2"};
883 static const char * const p910_gpio91_grps
[] = {"gpio91-1", "gpio91-2"};
884 static const char * const p910_gpio92_grps
[] = {"gpio92-1", "gpio92-2"};
886 static struct pxa3xx_pmx_func pxa910_funcs
[] = {
887 {"usim2", ARRAY_AND_SIZE(p910_usim2_grps
)},
888 {"mmc1", ARRAY_AND_SIZE(p910_mmc1_grps
)},
889 {"mmc2", ARRAY_AND_SIZE(p910_mmc2_grps
)},
890 {"mmc3", ARRAY_AND_SIZE(p910_mmc3_grps
)},
891 {"uart0", ARRAY_AND_SIZE(p910_uart0_grps
)},
892 {"uart1", ARRAY_AND_SIZE(p910_uart1_grps
)},
893 {"uart2", ARRAY_AND_SIZE(p910_uart2_grps
)},
894 {"twsi", ARRAY_AND_SIZE(p910_twsi_grps
)},
895 {"ccic", ARRAY_AND_SIZE(p910_ccic_grps
)},
896 {"lcd", ARRAY_AND_SIZE(p910_lcd_grps
)},
897 {"spi", ARRAY_AND_SIZE(p910_spi_grps
)},
898 {"dssp2", ARRAY_AND_SIZE(p910_dssp2_grps
)},
899 {"dssp3", ARRAY_AND_SIZE(p910_dssp3_grps
)},
900 {"ssp0", ARRAY_AND_SIZE(p910_ssp0_grps
)},
901 {"ssp1", ARRAY_AND_SIZE(p910_ssp1_grps
)},
902 {"ssp2", ARRAY_AND_SIZE(p910_ssp2_grps
)},
903 {"gssp", ARRAY_AND_SIZE(p910_gssp_grps
)},
904 {"pwm0", ARRAY_AND_SIZE(p910_pwm0_grps
)},
905 {"pwm1", ARRAY_AND_SIZE(p910_pwm1_grps
)},
906 {"pwm2", ARRAY_AND_SIZE(p910_pwm2_grps
)},
907 {"pwm3", ARRAY_AND_SIZE(p910_pwm3_grps
)},
908 {"pri_jtag", ARRAY_AND_SIZE(p910_pri_jtag_grps
)},
909 {"sec1_jtag", ARRAY_AND_SIZE(p910_sec1_jtag_grps
)},
910 {"sec2_jtag", ARRAY_AND_SIZE(p910_sec2_jtag_grps
)},
911 {"hsl", ARRAY_AND_SIZE(p910_hsl_grps
)},
912 {"w1", ARRAY_AND_SIZE(p910_w1_grps
)},
913 {"kpmk", ARRAY_AND_SIZE(p910_kpmk_grps
)},
914 {"kpdk", ARRAY_AND_SIZE(p910_kpdk_grps
)},
915 {"tds", ARRAY_AND_SIZE(p910_tds_grps
)},
916 {"tb", ARRAY_AND_SIZE(p910_tb_grps
)},
917 {"dma0", ARRAY_AND_SIZE(p910_dma0_grps
)},
918 {"dma1", ARRAY_AND_SIZE(p910_dma1_grps
)},
919 {"dma2", ARRAY_AND_SIZE(p910_dma2_grps
)},
920 {"int0", ARRAY_AND_SIZE(p910_int0_grps
)},
921 {"int1", ARRAY_AND_SIZE(p910_int1_grps
)},
922 {"int2", ARRAY_AND_SIZE(p910_int2_grps
)},
923 {"dac_st23", ARRAY_AND_SIZE(p910_dac_st23_grps
)},
924 {"vcxo_out", ARRAY_AND_SIZE(p910_vcxo_out_grps
)},
925 {"vcxo_req", ARRAY_AND_SIZE(p910_vcxo_req_grps
)},
926 {"vcxo_out2", ARRAY_AND_SIZE(p910_vcxo_out2_grps
)},
927 {"vcxo_req2", ARRAY_AND_SIZE(p910_vcxo_req2_grps
)},
928 {"ulpi", ARRAY_AND_SIZE(p910_ulpi_grps
)},
929 {"nand", ARRAY_AND_SIZE(p910_nand_grps
)},
930 {"gpio0", ARRAY_AND_SIZE(p910_gpio0_grps
)},
931 {"gpio1", ARRAY_AND_SIZE(p910_gpio1_grps
)},
932 {"gpio2", ARRAY_AND_SIZE(p910_gpio2_grps
)},
933 {"gpio3", ARRAY_AND_SIZE(p910_gpio3_grps
)},
934 {"gpio20", ARRAY_AND_SIZE(p910_gpio20_grps
)},
935 {"gpio21", ARRAY_AND_SIZE(p910_gpio21_grps
)},
936 {"gpio22", ARRAY_AND_SIZE(p910_gpio22_grps
)},
937 {"gpio23", ARRAY_AND_SIZE(p910_gpio23_grps
)},
938 {"gpio24", ARRAY_AND_SIZE(p910_gpio24_grps
)},
939 {"gpio25", ARRAY_AND_SIZE(p910_gpio25_grps
)},
940 {"gpio26", ARRAY_AND_SIZE(p910_gpio26_grps
)},
941 {"gpio27", ARRAY_AND_SIZE(p910_gpio27_grps
)},
942 {"gpio85", ARRAY_AND_SIZE(p910_gpio85_grps
)},
943 {"gpio86", ARRAY_AND_SIZE(p910_gpio86_grps
)},
944 {"gpio87", ARRAY_AND_SIZE(p910_gpio87_grps
)},
945 {"gpio88", ARRAY_AND_SIZE(p910_gpio88_grps
)},
946 {"gpio89", ARRAY_AND_SIZE(p910_gpio89_grps
)},
947 {"gpio90", ARRAY_AND_SIZE(p910_gpio90_grps
)},
948 {"gpio91", ARRAY_AND_SIZE(p910_gpio91_grps
)},
949 {"gpio92", ARRAY_AND_SIZE(p910_gpio92_grps
)},
952 static struct pinctrl_desc pxa910_pctrl_desc
= {
953 .name
= "pxa910-pinctrl",
954 .owner
= THIS_MODULE
,
957 static struct pxa3xx_pinmux_info pxa910_info
= {
959 .num_mfp
= ARRAY_SIZE(pxa910_mfp
),
961 .num_grps
= ARRAY_SIZE(pxa910_grps
),
962 .funcs
= pxa910_funcs
,
963 .num_funcs
= ARRAY_SIZE(pxa910_funcs
),
965 .desc
= &pxa910_pctrl_desc
,
967 .num_pads
= ARRAY_SIZE(pxa910_pads
),
969 .cputype
= PINCTRL_PXA910
,
970 .ds_mask
= PXA910_DS_MASK
,
971 .ds_shift
= PXA910_DS_SHIFT
,
974 static int pxa910_pinmux_probe(struct platform_device
*pdev
)
976 return pxa3xx_pinctrl_register(pdev
, &pxa910_info
);
979 static int pxa910_pinmux_remove(struct platform_device
*pdev
)
981 return pxa3xx_pinctrl_unregister(pdev
);
984 static struct platform_driver pxa910_pinmux_driver
= {
986 .name
= "pxa910-pinmux",
987 .owner
= THIS_MODULE
,
989 .probe
= pxa910_pinmux_probe
,
990 .remove
= pxa910_pinmux_remove
,
993 static int __init
pxa910_pinmux_init(void)
995 return platform_driver_register(&pxa910_pinmux_driver
);
997 core_initcall_sync(pxa910_pinmux_init
);
999 static void __exit
pxa910_pinmux_exit(void)
1001 platform_driver_unregister(&pxa910_pinmux_driver
);
1003 module_exit(pxa910_pinmux_exit
);
1005 MODULE_AUTHOR("Haojian Zhuang <haojian.zhuang@marvell.com>");
1006 MODULE_DESCRIPTION("PXA3xx pin control driver");
1007 MODULE_LICENSE("GPL v2");