1d0e30968SRobert Jarzmik /*
2d0e30968SRobert Jarzmik  * Marvell PXA27x family pin control
3d0e30968SRobert Jarzmik  *
4d0e30968SRobert Jarzmik  * Copyright (C) 2015 Robert Jarzmik
5d0e30968SRobert Jarzmik  *
6d0e30968SRobert Jarzmik  * This program is free software; you can redistribute it and/or modify
7d0e30968SRobert Jarzmik  * it under the terms of the GNU General Public License as published by
8d0e30968SRobert Jarzmik  * the Free Software Foundation; version 2 of the License.
9d0e30968SRobert Jarzmik  *
10d0e30968SRobert Jarzmik  */
11d0e30968SRobert Jarzmik #include <linux/module.h>
12d0e30968SRobert Jarzmik #include <linux/platform_device.h>
13d0e30968SRobert Jarzmik #include <linux/of.h>
14d0e30968SRobert Jarzmik #include <linux/of_device.h>
15d0e30968SRobert Jarzmik #include <linux/pinctrl/pinctrl.h>
16d0e30968SRobert Jarzmik 
17d0e30968SRobert Jarzmik #include "pinctrl-pxa2xx.h"
18d0e30968SRobert Jarzmik 
19d0e30968SRobert Jarzmik static const struct pxa_desc_pin pxa27x_pins[] = {
20d0e30968SRobert Jarzmik 	PXA_GPIO_ONLY_PIN(PXA_PINCTRL_PIN(0)),
21d0e30968SRobert Jarzmik 	PXA_GPIO_ONLY_PIN(PXA_PINCTRL_PIN(1)),
22d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(9),
23d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 3, "FFCTS"),
24d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 1, "HZ_CLK"),
25d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 3, "CHOUT<0>")),
26d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(10),
27d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 1, "FFDCD"),
28d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 3, "USB_P3_5"),
29d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 1, "HZ_CLK"),
30d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 3, "CHOUT<1>")),
31d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(11),
32d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 1, "EXT_SYNC<0>"),
33d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 2, "SSPRXD2"),
34d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 3, "USB_P3_1"),
35d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 1, "CHOUT<0>"),
36d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 1, "PWM_OUT<2>"),
37d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 3, "48_MHz")),
38d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(12),
39d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 1, "EXT_SYNC<1>"),
40d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 2, "CIF_DD<7>"),
41d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 1, "CHOUT<1>"),
42d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 1, "PWM_OUT<3>"),
43d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 3, "48_MHz")),
44d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(13),
45d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 1, "CLK_EXT"),
46d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 2, "KP_DKIN<7>"),
47d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 3, "KP_MKIN<7>"),
48d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 1, "SSPTXD2")),
49d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(14),
50d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 1, "L_VSYNC"),
51d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 2, "SSPSFRM2"),
52d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 1, "SSPSFRM2"),
53d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 3, "UCLK")),
54d0e30968SRobert Jarzmik 	PXA_GPIO_ONLY_PIN(PXA_PINCTRL_PIN(15)),
55d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(16),
56d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 1, "KP_MKIN<5>"),
57d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 2, "PWM_OUT<0>"),
58d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 3, "FFTXD")),
59d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(17),
60d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 1, "KP_MKIN<6>"),
61d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 2, "CIF_DD<6>"),
62d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 2, "PWM_OUT<1>")),
63d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(18),
64d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 1, "RDY")),
65d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(19),
66d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 1, "SSPSCLK2"),
67d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 3, "FFRXD"),
68d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 1, "SSPSCLK2"),
69d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 2, "L_CS"),
70d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 3, "nURST")),
71d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(20),
72d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 1, "DREQ<0>"),
73d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 2, "MBREQ"),
74d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 1, "nSDCS<2>")),
75d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(21),
76d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 1, "nSDCS<3>"),
77d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 2, "DVAL<0>"),
78d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 3, "MBGNT")),
79d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(22),
80d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 1, "SSPEXTCLK2"),
81d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 2, "SSPSCLKEN2"),
82d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 3, "SSPSCLK2"),
83d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 1, "KP_MKOUT<7>"),
84d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 2, "SSPSYSCLK2"),
85d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 3, "SSPSCLK2")),
86d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(23),
87d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 2, "SSPSCLK"),
88d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 1, "CIF_MCLK"),
89d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 1, "SSPSCLK")),
90d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(24),
91d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 1, "CIF_FV"),
92d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 2, "SSPSFRM"),
93d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 1, "CIF_FV"),
94d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 2, "SSPSFRM")),
95d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(25),
96d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 1, "CIF_LV"),
97d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 1, "CIF_LV"),
98d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 2, "SSPTXD")),
99d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(26),
100d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 1, "SSPRXD"),
101d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 2, "CIF_PCLK"),
102d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 3, "FFCTS")),
103d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(27),
104d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 1, "SSPEXTCLK"),
105d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 2, "SSPSCLKEN"),
106d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 3, "CIF_DD<0>"),
107d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 1, "SSPSYSCLK"),
108d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 3, "FFRTS")),
109d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(28),
110d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 1, "AC97_BITCLK"),
111d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 2, "I2S_BITCLK"),
112d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 3, "SSPSFRM"),
113d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 1, "I2S_BITCLK"),
114d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 3, "SSPSFRM")),
115d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(29),
116d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 1, "AC97_SDATA_IN_0"),
117d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 2, "I2S_SDATA_IN"),
118d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 3, "SSPSCLK"),
119d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 1, "SSPRXD2"),
120d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 3, "SSPSCLK")),
121d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(30),
122d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 1, "I2S_SDATA_OUT"),
123d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 2, "AC97_SDATA_OUT"),
124d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 3, "USB_P3_2")),
125d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(31),
126d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 1, "I2S_SYNC"),
127d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 2, "AC97_SYNC"),
128d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 3, "USB_P3_6")),
129d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(32),
130d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 1, "MSSCLK"),
131d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 2, "MMCLK")),
132d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(33),
133d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 1, "FFRXD"),
134d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 2, "FFDSR"),
135d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 1, "DVAL<1>"),
136d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 2, "nCS<5>"),
137d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 3, "MBGNT")),
138d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(34),
139d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 1, "FFRXD"),
140d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 2, "KP_MKIN<3>"),
141d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 3, "SSPSCLK3"),
142d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 1, "USB_P2_2"),
143d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 3, "SSPSCLK3")),
144d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(35),
145d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 1, "FFCTS"),
146d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 2, "USB_P2_1"),
147d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 3, "SSPSFRM3"),
148d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 2, "KP_MKOUT<6>"),
149d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 3, "SSPTXD3")),
150d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(36),
151d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 1, "FFDCD"),
152d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 2, "SSPSCLK2"),
153d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 3, "KP_MKIN<7>"),
154d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 1, "USB_P2_4"),
155d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 2, "SSPSCLK2")),
156d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(37),
157d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 1, "FFDSR"),
158d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 2, "SSPSFRM2"),
159d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 3, "KP_MKIN<3>"),
160d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 1, "USB_P2_8"),
161d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 2, "SSPSFRM2"),
162d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 3, "FFTXD")),
163d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(38),
164d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 1, "FFRI"),
165d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 2, "KP_MKIN<4>"),
166d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 3, "USB_P2_3"),
167d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 1, "SSPTXD3"),
168d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 2, "SSPTXD2"),
169d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 3, "PWM_OUT<0>")),
170d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(39),
171d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 1, "KP_MKIN<4>"),
172d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 3, "SSPSFRM3"),
173d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 1, "USB_P2_6"),
174d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 2, "FFTXD"),
175d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 3, "SSPSFRM3")),
176d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(40),
177d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 1, "SSPRXD2"),
178d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 3, "USB_P2_5"),
179d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 1, "KP_MKOUT<6>"),
180d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 2, "FFDTR"),
181d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 3, "SSPSCLK3")),
182d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(41),
183d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 1, "FFRXD"),
184d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 2, "USB_P2_7"),
185d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 3, "SSPRXD3"),
186d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 1, "KP_MKOUT<7>"),
187d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 2, "FFRTS")),
188d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(42),
189d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 1, "BTRXD"),
190d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 2, "ICP_RXD"),
191d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 3, "CIF_MCLK")),
192d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(43),
193d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 3, "CIF_FV"),
194d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 1, "ICP_TXD"),
195d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 2, "BTTXD"),
196d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 3, "CIF_FV")),
197d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(44),
198d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 1, "BTCTS"),
199d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 3, "CIF_LV"),
200d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 3, "CIF_LV")),
201d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(45),
202d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 3, "CIF_PCLK"),
203d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 1, "AC97_SYSCLK"),
204d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 2, "BTRTS"),
205d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 3, "SSPSYSCLK3")),
206d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(46),
207d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 1, "ICP_RXD"),
208d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 2, "STD_RXD"),
209d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 2, "PWM_OUT<2>")),
210d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(47),
211d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 1, "CIF_DD<0>"),
212d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 1, "STD_TXD"),
213d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 2, "ICP_TXD"),
214d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 3, "PWM_OUT<3>")),
215d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(48),
216d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 1, "CIF_DD<5>"),
217d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 1, "BB_OB_DAT<1>"),
218d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 2, "nPOE")),
219d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(49),
220d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 2, "nPWE")),
221d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(50),
222d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 1, "CIF_DD<3>"),
223d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 3, "SSPSCLK2"),
224d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 1, "BB_OB_DAT<2>"),
225d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 2, "nPIOR"),
226d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 3, "SSPSCLK2")),
227d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(51),
228d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 1, "CIF_DD<2>"),
229d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 1, "BB_OB_DAT<3>"),
230d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 2, "nPIOW")),
231d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(52),
232d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 1, "CIF_DD<4>"),
233d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 2, "SSPSCLK3"),
234d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 1, "BB_OB_CLK"),
235d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 2, "SSPSCLK3")),
236d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(53),
237d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 1, "FFRXD"),
238d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 2, "USB_P2_3"),
239d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 1, "BB_OB_STB"),
240d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 2, "CIF_MCLK"),
241d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 3, "SSPSYSCLK")),
242d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(54),
243d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 2, "BB_OB_WAIT"),
244d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 3, "CIF_PCLK"),
245d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 2, "nPCE<2>")),
246d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(55),
247d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 1, "CIF_DD<1>"),
248d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 2, "BB_IB_DAT<1>"),
249d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 2, "nPREG")),
250d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(56),
251d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 1, "nPWAIT"),
252d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 2, "BB_IB_DAT<2>"),
253d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 1, "USB_P3_4")),
254d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(57),
255d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 1, "nIOS16"),
256d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 2, "BB_IB_DAT<3>"),
257d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 3, "SSPTXD")),
258d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(58),
259d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 2, "LDD<0>"),
260d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 2, "LDD<0>")),
261d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(59),
262d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 2, "LDD<1>"),
263d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 2, "LDD<1>")),
264d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(60),
265d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 2, "LDD<2>"),
266d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 2, "LDD<2>")),
267d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(61),
268d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 2, "LDD<3>"),
269d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 2, "LDD<3>")),
270d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(62),
271d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 2, "LDD<4>"),
272d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 2, "LDD<4>")),
273d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(63),
274d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 2, "LDD<5>"),
275d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 2, "LDD<5>")),
276d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(64),
277d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 2, "LDD<6>"),
278d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 2, "LDD<6>")),
279d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(65),
280d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 2, "LDD<7>"),
281d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 2, "LDD<7>")),
282d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(66),
283d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 2, "LDD<8>"),
284d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 2, "LDD<8>")),
285d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(67),
286d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 2, "LDD<9>"),
287d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 2, "LDD<9>")),
288d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(68),
289d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 2, "LDD<10>"),
290d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 2, "LDD<10>")),
291d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(69),
292d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 2, "LDD<11>"),
293d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 2, "LDD<11>")),
294d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(70),
295d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 2, "LDD<12>"),
296d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 2, "LDD<12>")),
297d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(71),
298d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 2, "LDD<13>"),
299d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 2, "LDD<13>")),
300d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(72),
301d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 2, "LDD<14>"),
302d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 2, "LDD<14>")),
303d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(73),
304d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 2, "LDD<15>"),
305d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 2, "LDD<15>")),
306d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(74),
307d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 2, "L_FCLK_RD")),
308d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(75),
309d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 2, "L_LCLK_A0")),
310d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(76),
311d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 2, "L_PCLK_WR")),
312d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(77),
313d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 2, "L_BIAS")),
314d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(78),
315d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 1, "nPCE<2>"),
316d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 2, "nCS<2>")),
317d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(79),
318d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 1, "PSKTSEL"),
319d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 2, "nCS<3>"),
320d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 3, "PWM_OUT<2>")),
321d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(80),
322d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 1, "DREQ<1>"),
323d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 2, "MBREQ"),
324d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 2, "nCS<4>"),
325d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 3, "PWM_OUT<3>")),
326d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(81),
327d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 2, "CIF_DD<0>"),
328d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 1, "SSPTXD3"),
329d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 2, "BB_OB_DAT<0>")),
330d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(82),
331d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 1, "SSPRXD3"),
332d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 2, "BB_IB_DAT<0>"),
333d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 3, "CIF_DD<5>"),
334d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 3, "FFDTR")),
335d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(83),
336d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 1, "SSPSFRM3"),
337d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 2, "BB_IB_CLK"),
338d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 3, "CIF_DD<5>"),
339d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 1, "SSPSFRM3"),
340d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 2, "FFTXD"),
341d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 3, "FFRTS")),
342d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(84),
343d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 1, "SSPCLK3"),
344d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 2, "BB_IB_STB"),
345d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 3, "CIF_FV"),
346d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 1, "SSPCLK3"),
347d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 3, "CIF_FV")),
348d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(85),
349d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 1, "FFRXD"),
350d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 2, "DREQ<2>"),
351d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 3, "CIF_LV"),
352d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 1, "nPCE<1>"),
353d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 2, "BB_IB_WAIT"),
354d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 3, "CIF_LV")),
355d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(86),
356d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 1, "SSPRXD2"),
357d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 2, "LDD<16>"),
358d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 3, "USB_P3_5"),
359d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 1, "nPCE<1>"),
360d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 2, "LDD<16>")),
361d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(87),
362d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 1, "nPCE<2>"),
363d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 2, "LDD<17>"),
364d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 3, "USB_P3_1"),
365d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 1, "SSPTXD2"),
366d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 2, "LDD<17>"),
367d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 3, "SSPSFRM2")),
368d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(88),
369d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 1, "USBHPWR<1>"),
370d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 2, "SSPRXD2"),
371d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 3, "SSPSFRM2"),
372d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 2, "SSPTXD2"),
373d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 3, "SSPSFRM2")),
374d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(89),
375d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 1, "SSPRXD3"),
376d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 3, "FFRI"),
377d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 1, "AC97_SYSCLK"),
378d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 2, "USBHPEN<1>"),
379d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 3, "SSPTXD2")),
380d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(90),
381d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 1, "KP_MKIN<5>"),
382d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 3, "USB_P3_5"),
383d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 1, "CIF_DD<4>"),
384d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 2, "nURST")),
385d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(91),
386d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 1, "KP_MKIN<6>"),
387d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 3, "USB_P3_1"),
388d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 1, "CIF_DD<5>"),
389d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 2, "UCLK")),
390d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(92),
391d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 1, "MMDAT<0>"),
392d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 1, "MMDAT<0>"),
393d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 2, "MSBS")),
394d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(93),
395d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 1, "KP_DKIN<0>"),
396d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 2, "CIF_DD<6>"),
397d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 1, "AC97_SDATA_OUT")),
398d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(94),
399d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 1, "KP_DKIN<1>"),
400d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 2, "CIF_DD<5>"),
401d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 1, "AC97_SYNC")),
402d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(95),
403d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 1, "KP_DKIN<2>"),
404d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 2, "CIF_DD<4>"),
405d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 3, "KP_MKIN<6>"),
406d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 1, "AC97_RESET_n")),
407d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(96),
408d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 1, "KP_DKIN<3>"),
409d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 2, "MBREQ"),
410d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 3, "FFRXD"),
411d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 2, "DVAL<1>"),
412d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 3, "KP_MKOUT<6>")),
413d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(97),
414d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 1, "KP_DKIN<4>"),
415d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 2, "DREQ<1>"),
416d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 3, "KP_MKIN<3>"),
417d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 2, "MBGNT")),
418d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(98),
419d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 1, "KP_DKIN<5>"),
420d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 2, "CIF_DD<0>"),
421d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 3, "KP_MKIN<4>"),
422d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 1, "AC97_SYSCLK"),
423d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 3, "FFRTS")),
424d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(99),
425d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 1, "KP_DKIN<6>"),
426d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 2, "AC97_SDATA_IN_1"),
427d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 3, "KP_MKIN<5>"),
428d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 3, "FFTXD")),
429d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(100),
430d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 1, "KP_MKIN<0>"),
431d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 2, "DREQ<2>"),
432d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 3, "FFCTS")),
433d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(101),
434d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 1, "KP_MKIN<1>")),
435d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(102),
436d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 1, "KP_MKIN<2>"),
437d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 3, "FFRXD"),
438d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 1, "nPCE<1>")),
439d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(103),
440d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 1, "CIF_DD<3>"),
441d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 2, "KP_MKOUT<0>")),
442d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(104),
443d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 1, "CIF_DD<2>"),
444d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 1, "PSKTSEL"),
445d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 2, "KP_MKOUT<1>")),
446d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(105),
447d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 1, "CIF_DD<1>"),
448d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 1, "nPCE<2>"),
449d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 2, "KP_MKOUT<2>")),
450d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(106),
451d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 1, "CIF_DD<9>"),
452d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 2, "KP_MKOUT<3>")),
453d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(107),
454d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 1, "CIF_DD<8>"),
455d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 2, "KP_MKOUT<4>")),
456d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(108),
457d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 1, "CIF_DD<7>"),
458d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 1, "CHOUT<0>"),
459d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 2, "KP_MKOUT<5>")),
460d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(109),
461d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 1, "MMDAT<1>"),
462d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 2, "MSSDIO"),
463d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 1, "MMDAT<1>"),
464d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 2, "MSSDIO")),
465d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(110),
466d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 1, "MMDAT<2>"),
467d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 1, "MMDAT<2>")),
468d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(111),
469d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 1, "MMDAT<3>"),
470d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 1, "MMDAT<3>")),
471d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(112),
472d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 1, "MMCMD"),
473d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 2, "nMSINS"),
474d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 1, "MMCMD")),
475d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(113),
476d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 3, "USB_P3_3"),
477d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 1, "I2S_SYSCLK"),
478d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 2, "AC97_RESET_n")),
479d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(114),
480d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 1, "CIF_DD<1>"),
481d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 1, "UEN"),
482d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 2, "UVS0")),
483d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(115),
484d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 1, "DREQ<0>"),
485d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 2, "CIF_DD<3>"),
486d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 3, "MBREQ"),
487d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 1, "UEN"),
488d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 2, "nUVS1"),
489d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 3, "PWM_OUT<1>")),
490d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(116),
491d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 1, "CIF_DD<2>"),
492d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 2, "AC97_SDATA_IN_0"),
493d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 3, "UDET"),
494d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 1, "DVAL<0>"),
495d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 2, "nUVS2"),
496d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 3, "MBGNT")),
497d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(117),
498d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 1, "SCL"),
499d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 1, "SCL")),
500d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(118),
501d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 1, "SDA"),
502d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 1, "SDA")),
503d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(119),
504d0e30968SRobert Jarzmik 		     PXA_FUNCTION(0, 1, "USBHPWR<2>")),
505d0e30968SRobert Jarzmik 	PXA_GPIO_PIN(PXA_PINCTRL_PIN(120),
506d0e30968SRobert Jarzmik 		     PXA_FUNCTION(1, 2, "USBHPEN<2>")),
507d0e30968SRobert Jarzmik };
508d0e30968SRobert Jarzmik 
509d0e30968SRobert Jarzmik static int pxa27x_pinctrl_probe(struct platform_device *pdev)
510d0e30968SRobert Jarzmik {
511d0e30968SRobert Jarzmik 	int ret, i;
512d0e30968SRobert Jarzmik 	void __iomem *base_af[8];
513d0e30968SRobert Jarzmik 	void __iomem *base_dir[4];
514d0e30968SRobert Jarzmik 	void __iomem *base_sleep[4];
515d0e30968SRobert Jarzmik 	struct resource *res;
516d0e30968SRobert Jarzmik 
517d0e30968SRobert Jarzmik 	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
518d0e30968SRobert Jarzmik 	base_af[0] = devm_ioremap_resource(&pdev->dev, res);
519d0e30968SRobert Jarzmik 	if (IS_ERR(base_af[0]))
520d0e30968SRobert Jarzmik 		return PTR_ERR(base_af[0]);
521d0e30968SRobert Jarzmik 
522d0e30968SRobert Jarzmik 	res = platform_get_resource(pdev, IORESOURCE_MEM, 1);
523d0e30968SRobert Jarzmik 	base_dir[0] = devm_ioremap_resource(&pdev->dev, res);
524d0e30968SRobert Jarzmik 	if (IS_ERR(base_dir[0]))
525d0e30968SRobert Jarzmik 		return PTR_ERR(base_dir[0]);
526d0e30968SRobert Jarzmik 
527d0e30968SRobert Jarzmik 	res = platform_get_resource(pdev, IORESOURCE_MEM, 2);
528d0e30968SRobert Jarzmik 	base_dir[3] = devm_ioremap_resource(&pdev->dev, res);
529d0e30968SRobert Jarzmik 	if (IS_ERR(base_dir[3]))
530d0e30968SRobert Jarzmik 		return PTR_ERR(base_dir[3]);
531d0e30968SRobert Jarzmik 
532d0e30968SRobert Jarzmik 	res = platform_get_resource(pdev, IORESOURCE_MEM, 3);
533d0e30968SRobert Jarzmik 	base_sleep[0] = devm_ioremap_resource(&pdev->dev, res);
534d0e30968SRobert Jarzmik 	if (IS_ERR(base_sleep[0]))
535d0e30968SRobert Jarzmik 		return PTR_ERR(base_sleep[0]);
536d0e30968SRobert Jarzmik 
537d0e30968SRobert Jarzmik 	for (i = 0; i < ARRAY_SIZE(base_af); i++)
538d0e30968SRobert Jarzmik 		base_af[i] = base_af[0] + sizeof(base_af[0]) * i;
539d0e30968SRobert Jarzmik 	for (i = 0; i < 3; i++)
540d0e30968SRobert Jarzmik 		base_dir[i] = base_dir[0] + sizeof(base_dir[0]) * i;
541d0e30968SRobert Jarzmik 	for (i = 0; i < ARRAY_SIZE(base_sleep); i++)
542d0e30968SRobert Jarzmik 		base_sleep[i] = base_sleep[0] + sizeof(base_af[0]) * i;
543d0e30968SRobert Jarzmik 
544d0e30968SRobert Jarzmik 	ret = pxa2xx_pinctrl_init(pdev, pxa27x_pins, ARRAY_SIZE(pxa27x_pins),
545d0e30968SRobert Jarzmik 				  base_af, base_dir, base_sleep);
546d0e30968SRobert Jarzmik 	return ret;
547d0e30968SRobert Jarzmik }
548d0e30968SRobert Jarzmik 
549d0e30968SRobert Jarzmik static const struct of_device_id pxa27x_pinctrl_match[] = {
550d0e30968SRobert Jarzmik 	{ .compatible = "marvell,pxa27x-pinctrl", },
551d0e30968SRobert Jarzmik 	{}
552d0e30968SRobert Jarzmik };
553d0e30968SRobert Jarzmik MODULE_DEVICE_TABLE(of, pxa27x_pinctrl_match);
554d0e30968SRobert Jarzmik 
555d0e30968SRobert Jarzmik static struct platform_driver pxa27x_pinctrl_driver = {
556d0e30968SRobert Jarzmik 	.probe	= pxa27x_pinctrl_probe,
557d0e30968SRobert Jarzmik 	.driver	= {
558d0e30968SRobert Jarzmik 		.name		= "pxa27x-pinctrl",
559d0e30968SRobert Jarzmik 		.of_match_table	= pxa27x_pinctrl_match,
560d0e30968SRobert Jarzmik 	},
561d0e30968SRobert Jarzmik };
562d0e30968SRobert Jarzmik module_platform_driver(pxa27x_pinctrl_driver);
563d0e30968SRobert Jarzmik 
564d0e30968SRobert Jarzmik MODULE_AUTHOR("Robert Jarzmik <robert.jarzmik@free.fr>");
565d0e30968SRobert Jarzmik MODULE_DESCRIPTION("Marvell PXA27x pinctrl driver");
566d0e30968SRobert Jarzmik MODULE_LICENSE("GPL v2");
567