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