Linux 4.16.11
[linux/fpc-iii.git] / drivers / pinctrl / sh-pfc / pfc-sh7264.c
blob8070765311dbf7a488fe5edd9d3d7ce92e2f331a
1 /*
2 * SH7264 Pinmux
4 * Copyright (C) 2012 Renesas Electronics Europe Ltd
6 * This file is subject to the terms and conditions of the GNU General Public
7 * License. See the file "COPYING" in the main directory of this archive
8 * for more details.
9 */
11 #include <linux/kernel.h>
12 #include <linux/gpio.h>
13 #include <cpu/sh7264.h>
15 #include "sh_pfc.h"
17 enum {
18 PINMUX_RESERVED = 0,
20 PINMUX_DATA_BEGIN,
21 /* Port A */
22 PA3_DATA, PA2_DATA, PA1_DATA, PA0_DATA,
23 /* Port B */
24 PB22_DATA, PB21_DATA, PB20_DATA,
25 PB19_DATA, PB18_DATA, PB17_DATA, PB16_DATA,
26 PB15_DATA, PB14_DATA, PB13_DATA, PB12_DATA,
27 PB11_DATA, PB10_DATA, PB9_DATA, PB8_DATA,
28 PB7_DATA, PB6_DATA, PB5_DATA, PB4_DATA,
29 PB3_DATA, PB2_DATA, PB1_DATA,
30 /* Port C */
31 PC10_DATA, PC9_DATA, PC8_DATA,
32 PC7_DATA, PC6_DATA, PC5_DATA, PC4_DATA,
33 PC3_DATA, PC2_DATA, PC1_DATA, PC0_DATA,
34 /* Port D */
35 PD15_DATA, PD14_DATA, PD13_DATA, PD12_DATA,
36 PD11_DATA, PD10_DATA, PD9_DATA, PD8_DATA,
37 PD7_DATA, PD6_DATA, PD5_DATA, PD4_DATA,
38 PD3_DATA, PD2_DATA, PD1_DATA, PD0_DATA,
39 /* Port E */
40 PE5_DATA, PE4_DATA,
41 PE3_DATA, PE2_DATA, PE1_DATA, PE0_DATA,
42 /* Port F */
43 PF12_DATA,
44 PF11_DATA, PF10_DATA, PF9_DATA, PF8_DATA,
45 PF7_DATA, PF6_DATA, PF5_DATA, PF4_DATA,
46 PF3_DATA, PF2_DATA, PF1_DATA, PF0_DATA,
47 /* Port G */
48 PG24_DATA,
49 PG23_DATA, PG22_DATA, PG21_DATA, PG20_DATA,
50 PG19_DATA, PG18_DATA, PG17_DATA, PG16_DATA,
51 PG15_DATA, PG14_DATA, PG13_DATA, PG12_DATA,
52 PG11_DATA, PG10_DATA, PG9_DATA, PG8_DATA,
53 PG7_DATA, PG6_DATA, PG5_DATA, PG4_DATA,
54 PG3_DATA, PG2_DATA, PG1_DATA, PG0_DATA,
55 /* Port H */
56 /* NOTE - Port H does not have a Data Register, but PH Data is
57 connected to PH Port Register */
58 PH7_DATA, PH6_DATA, PH5_DATA, PH4_DATA,
59 PH3_DATA, PH2_DATA, PH1_DATA, PH0_DATA,
60 /* Port I - not on device */
61 /* Port J */
62 PJ12_DATA,
63 PJ11_DATA, PJ10_DATA, PJ9_DATA, PJ8_DATA,
64 PJ7_DATA, PJ6_DATA, PJ5_DATA, PJ4_DATA,
65 PJ3_DATA, PJ2_DATA, PJ1_DATA, PJ0_DATA,
66 /* Port K */
67 PK12_DATA,
68 PK11_DATA, PK10_DATA, PK9_DATA, PK8_DATA,
69 PK7_DATA, PK6_DATA, PK5_DATA, PK4_DATA,
70 PK3_DATA, PK2_DATA, PK1_DATA, PK0_DATA,
71 PINMUX_DATA_END,
73 PINMUX_INPUT_BEGIN,
74 FORCE_IN,
75 /* Port A */
76 PA3_IN, PA2_IN, PA1_IN, PA0_IN,
77 /* Port B */
78 PB22_IN, PB21_IN, PB20_IN,
79 PB19_IN, PB18_IN, PB17_IN, PB16_IN,
80 PB15_IN, PB14_IN, PB13_IN, PB12_IN,
81 PB11_IN, PB10_IN, PB9_IN, PB8_IN,
82 PB7_IN, PB6_IN, PB5_IN, PB4_IN,
83 PB3_IN, PB2_IN, PB1_IN,
84 /* Port C */
85 PC10_IN, PC9_IN, PC8_IN,
86 PC7_IN, PC6_IN, PC5_IN, PC4_IN,
87 PC3_IN, PC2_IN, PC1_IN, PC0_IN,
88 /* Port D */
89 PD15_IN, PD14_IN, PD13_IN, PD12_IN,
90 PD11_IN, PD10_IN, PD9_IN, PD8_IN,
91 PD7_IN, PD6_IN, PD5_IN, PD4_IN,
92 PD3_IN, PD2_IN, PD1_IN, PD0_IN,
93 /* Port E */
94 PE5_IN, PE4_IN,
95 PE3_IN, PE2_IN, PE1_IN, PE0_IN,
96 /* Port F */
97 PF12_IN,
98 PF11_IN, PF10_IN, PF9_IN, PF8_IN,
99 PF7_IN, PF6_IN, PF5_IN, PF4_IN,
100 PF3_IN, PF2_IN, PF1_IN, PF0_IN,
101 /* Port G */
102 PG24_IN,
103 PG23_IN, PG22_IN, PG21_IN, PG20_IN,
104 PG19_IN, PG18_IN, PG17_IN, PG16_IN,
105 PG15_IN, PG14_IN, PG13_IN, PG12_IN,
106 PG11_IN, PG10_IN, PG9_IN, PG8_IN,
107 PG7_IN, PG6_IN, PG5_IN, PG4_IN,
108 PG3_IN, PG2_IN, PG1_IN, PG0_IN,
109 /* Port H - Port H does not have a Data Register */
110 /* Port I - not on device */
111 /* Port J */
112 PJ12_IN,
113 PJ11_IN, PJ10_IN, PJ9_IN, PJ8_IN,
114 PJ7_IN, PJ6_IN, PJ5_IN, PJ4_IN,
115 PJ3_IN, PJ2_IN, PJ1_IN, PJ0_IN,
116 /* Port K */
117 PK12_IN,
118 PK11_IN, PK10_IN, PK9_IN, PK8_IN,
119 PK7_IN, PK6_IN, PK5_IN, PK4_IN,
120 PK3_IN, PK2_IN, PK1_IN, PK0_IN,
121 PINMUX_INPUT_END,
123 PINMUX_OUTPUT_BEGIN,
124 FORCE_OUT,
125 /* Port A */
126 PA3_OUT, PA2_OUT, PA1_OUT, PA0_OUT,
127 /* Port B */
128 PB22_OUT, PB21_OUT, PB20_OUT,
129 PB19_OUT, PB18_OUT, PB17_OUT, PB16_OUT,
130 PB15_OUT, PB14_OUT, PB13_OUT, PB12_OUT,
131 PB11_OUT, PB10_OUT, PB9_OUT, PB8_OUT,
132 PB7_OUT, PB6_OUT, PB5_OUT, PB4_OUT,
133 PB3_OUT, PB2_OUT, PB1_OUT,
134 /* Port C */
135 PC10_OUT, PC9_OUT, PC8_OUT,
136 PC7_OUT, PC6_OUT, PC5_OUT, PC4_OUT,
137 PC3_OUT, PC2_OUT, PC1_OUT, PC0_OUT,
138 /* Port D */
139 PD15_OUT, PD14_OUT, PD13_OUT, PD12_OUT,
140 PD11_OUT, PD10_OUT, PD9_OUT, PD8_OUT,
141 PD7_OUT, PD6_OUT, PD5_OUT, PD4_OUT,
142 PD3_OUT, PD2_OUT, PD1_OUT, PD0_OUT,
143 /* Port E */
144 PE5_OUT, PE4_OUT,
145 PE3_OUT, PE2_OUT, PE1_OUT, PE0_OUT,
146 /* Port F */
147 PF12_OUT,
148 PF11_OUT, PF10_OUT, PF9_OUT, PF8_OUT,
149 PF7_OUT, PF6_OUT, PF5_OUT, PF4_OUT,
150 PF3_OUT, PF2_OUT, PF1_OUT, PF0_OUT,
151 /* Port G */
152 PG24_OUT,
153 PG23_OUT, PG22_OUT, PG21_OUT, PG20_OUT,
154 PG19_OUT, PG18_OUT, PG17_OUT, PG16_OUT,
155 PG15_OUT, PG14_OUT, PG13_OUT, PG12_OUT,
156 PG11_OUT, PG10_OUT, PG9_OUT, PG8_OUT,
157 PG7_OUT, PG6_OUT, PG5_OUT, PG4_OUT,
158 PG3_OUT, PG2_OUT, PG1_OUT, PG0_OUT,
159 /* Port H - Port H does not have a Data Register */
160 /* Port I - not on device */
161 /* Port J */
162 PJ12_OUT,
163 PJ11_OUT, PJ10_OUT, PJ9_OUT, PJ8_OUT,
164 PJ7_OUT, PJ6_OUT, PJ5_OUT, PJ4_OUT,
165 PJ3_OUT, PJ2_OUT, PJ1_OUT, PJ0_OUT,
166 /* Port K */
167 PK12_OUT,
168 PK11_OUT, PK10_OUT, PK9_OUT, PK8_OUT,
169 PK7_OUT, PK6_OUT, PK5_OUT, PK4_OUT,
170 PK3_OUT, PK2_OUT, PK1_OUT, PK0_OUT,
171 PINMUX_OUTPUT_END,
173 PINMUX_FUNCTION_BEGIN,
174 /* Port A */
175 PA3_IOR_IN, PA3_IOR_OUT,
176 PA2_IOR_IN, PA2_IOR_OUT,
177 PA1_IOR_IN, PA1_IOR_OUT,
178 PA0_IOR_IN, PA0_IOR_OUT,
180 /* Port B */
181 PB11_IOR_IN, PB11_IOR_OUT,
182 PB10_IOR_IN, PB10_IOR_OUT,
183 PB9_IOR_IN, PB9_IOR_OUT,
184 PB8_IOR_IN, PB8_IOR_OUT,
186 PB22MD_00, PB22MD_01, PB22MD_10,
187 PB21MD_0, PB21MD_1,
188 PB20MD_0, PB20MD_1,
189 PB19MD_00, PB19MD_01, PB19MD_10, PB19MD_11,
190 PB18MD_00, PB18MD_01, PB18MD_10, PB18MD_11,
191 PB17MD_00, PB17MD_01, PB17MD_10, PB17MD_11,
192 PB16MD_00, PB16MD_01, PB16MD_10, PB16MD_11,
193 PB15MD_00, PB15MD_01, PB15MD_10, PB15MD_11,
194 PB14MD_00, PB14MD_01, PB14MD_10, PB14MD_11,
195 PB13MD_00, PB13MD_01, PB13MD_10, PB13MD_11,
196 PB12MD_00, PB12MD_01, PB12MD_10, PB12MD_11,
197 PB11MD_00, PB11MD_01, PB11MD_10, PB11MD_11,
198 PB10MD_00, PB10MD_01, PB10MD_10, PB10MD_11,
199 PB9MD_00, PB9MD_01, PB9MD_10, PB9MD_11,
200 PB8MD_00, PB8MD_01, PB8MD_10, PB8MD_11,
201 PB7MD_00, PB7MD_01, PB7MD_10, PB7MD_11,
202 PB6MD_00, PB6MD_01, PB6MD_10, PB6MD_11,
203 PB5MD_00, PB5MD_01, PB5MD_10, PB5MD_11,
204 PB4MD_00, PB4MD_01, PB4MD_10, PB4MD_11,
205 PB3MD_0, PB3MD_1,
206 PB2MD_0, PB2MD_1,
207 PB1MD_0, PB1MD_1,
209 /* Port C */
210 PC14_IOR_IN, PC14_IOR_OUT,
211 PC13_IOR_IN, PC13_IOR_OUT,
212 PC12_IOR_IN, PC12_IOR_OUT,
213 PC11_IOR_IN, PC11_IOR_OUT,
214 PC10_IOR_IN, PC10_IOR_OUT,
215 PC9_IOR_IN, PC9_IOR_OUT,
216 PC8_IOR_IN, PC8_IOR_OUT,
217 PC7_IOR_IN, PC7_IOR_OUT,
218 PC6_IOR_IN, PC6_IOR_OUT,
219 PC5_IOR_IN, PC5_IOR_OUT,
220 PC4_IOR_IN, PC4_IOR_OUT,
221 PC3_IOR_IN, PC3_IOR_OUT,
222 PC2_IOR_IN, PC2_IOR_OUT,
223 PC1_IOR_IN, PC1_IOR_OUT,
224 PC0_IOR_IN, PC0_IOR_OUT,
226 PC10MD_0, PC10MD_1,
227 PC9MD_0, PC9MD_1,
228 PC8MD_00, PC8MD_01, PC8MD_10, PC8MD_11,
229 PC7MD_00, PC7MD_01, PC7MD_10, PC7MD_11,
230 PC6MD_00, PC6MD_01, PC6MD_10, PC6MD_11,
231 PC5MD_00, PC5MD_01, PC5MD_10, PC5MD_11,
232 PC4MD_0, PC4MD_1,
233 PC3MD_0, PC3MD_1,
234 PC2MD_0, PC2MD_1,
235 PC1MD_0, PC1MD_1,
236 PC0MD_0, PC0MD_1,
238 /* Port D */
239 PD15_IOR_IN, PD15_IOR_OUT,
240 PD14_IOR_IN, PD14_IOR_OUT,
241 PD13_IOR_IN, PD13_IOR_OUT,
242 PD12_IOR_IN, PD12_IOR_OUT,
243 PD11_IOR_IN, PD11_IOR_OUT,
244 PD10_IOR_IN, PD10_IOR_OUT,
245 PD9_IOR_IN, PD9_IOR_OUT,
246 PD8_IOR_IN, PD8_IOR_OUT,
247 PD7_IOR_IN, PD7_IOR_OUT,
248 PD6_IOR_IN, PD6_IOR_OUT,
249 PD5_IOR_IN, PD5_IOR_OUT,
250 PD4_IOR_IN, PD4_IOR_OUT,
251 PD3_IOR_IN, PD3_IOR_OUT,
252 PD2_IOR_IN, PD2_IOR_OUT,
253 PD1_IOR_IN, PD1_IOR_OUT,
254 PD0_IOR_IN, PD0_IOR_OUT,
256 PD15MD_00, PD15MD_01, PD15MD_10, PD15MD_11,
257 PD14MD_00, PD14MD_01, PD14MD_10, PD14MD_11,
258 PD13MD_00, PD13MD_01, PD13MD_10, PD13MD_11,
259 PD12MD_00, PD12MD_01, PD12MD_10, PD12MD_11,
260 PD11MD_00, PD11MD_01, PD11MD_10, PD11MD_11,
261 PD10MD_00, PD10MD_01, PD10MD_10, PD10MD_11,
262 PD9MD_00, PD9MD_01, PD9MD_10, PD9MD_11,
263 PD8MD_00, PD8MD_01, PD8MD_10, PD8MD_11,
264 PD7MD_00, PD7MD_01, PD7MD_10, PD7MD_11,
265 PD6MD_00, PD6MD_01, PD6MD_10, PD6MD_11,
266 PD5MD_00, PD5MD_01, PD5MD_10, PD5MD_11,
267 PD4MD_00, PD4MD_01, PD4MD_10, PD4MD_11,
268 PD3MD_00, PD3MD_01, PD3MD_10, PD3MD_11,
269 PD2MD_00, PD2MD_01, PD2MD_10, PD2MD_11,
270 PD1MD_00, PD1MD_01, PD1MD_10, PD1MD_11,
271 PD0MD_00, PD0MD_01, PD0MD_10, PD0MD_11,
273 /* Port E */
274 PE5_IOR_IN, PE5_IOR_OUT,
275 PE4_IOR_IN, PE4_IOR_OUT,
276 PE3_IOR_IN, PE3_IOR_OUT,
277 PE2_IOR_IN, PE2_IOR_OUT,
278 PE1_IOR_IN, PE1_IOR_OUT,
279 PE0_IOR_IN, PE0_IOR_OUT,
281 PE5MD_00, PE5MD_01, PE5MD_10, PE5MD_11,
282 PE4MD_00, PE4MD_01, PE4MD_10, PE4MD_11,
283 PE3MD_00, PE3MD_01, PE3MD_10, PE3MD_11,
284 PE2MD_00, PE2MD_01, PE2MD_10, PE2MD_11,
285 PE1MD_000, PE1MD_001, PE1MD_010, PE1MD_011,
286 PE1MD_100, PE1MD_101, PE1MD_110, PE1MD_111,
287 PE0MD_00, PE0MD_01, PE0MD_10, PE0MD_11,
289 /* Port F */
290 PF12_IOR_IN, PF12_IOR_OUT,
291 PF11_IOR_IN, PF11_IOR_OUT,
292 PF10_IOR_IN, PF10_IOR_OUT,
293 PF9_IOR_IN, PF9_IOR_OUT,
294 PF8_IOR_IN, PF8_IOR_OUT,
295 PF7_IOR_IN, PF7_IOR_OUT,
296 PF6_IOR_IN, PF6_IOR_OUT,
297 PF5_IOR_IN, PF5_IOR_OUT,
298 PF4_IOR_IN, PF4_IOR_OUT,
299 PF3_IOR_IN, PF3_IOR_OUT,
300 PF2_IOR_IN, PF2_IOR_OUT,
301 PF1_IOR_IN, PF1_IOR_OUT,
302 PF0_IOR_IN, PF0_IOR_OUT,
304 PF12MD_000, PF12MD_001, PF12MD_010, PF12MD_011,
305 PF12MD_100, PF12MD_101, PF12MD_110, PF12MD_111,
306 PF11MD_000, PF11MD_001, PF11MD_010, PF11MD_011,
307 PF11MD_100, PF11MD_101, PF11MD_110, PF11MD_111,
308 PF10MD_000, PF10MD_001, PF10MD_010, PF10MD_011,
309 PF10MD_100, PF10MD_101, PF10MD_110, PF10MD_111,
310 PF9MD_000, PF9MD_001, PF9MD_010, PF9MD_011,
311 PF9MD_100, PF9MD_101, PF9MD_110, PF9MD_111,
312 PF8MD_00, PF8MD_01, PF8MD_10, PF8MD_11,
313 PF7MD_000, PF7MD_001, PF7MD_010, PF7MD_011,
314 PF7MD_100, PF7MD_101, PF7MD_110, PF7MD_111,
315 PF6MD_000, PF6MD_001, PF6MD_010, PF6MD_011,
316 PF6MD_100, PF6MD_101, PF6MD_110, PF6MD_111,
317 PF5MD_000, PF5MD_001, PF5MD_010, PF5MD_011,
318 PF5MD_100, PF5MD_101, PF5MD_110, PF5MD_111,
319 PF4MD_000, PF4MD_001, PF4MD_010, PF4MD_011,
320 PF4MD_100, PF4MD_101, PF4MD_110, PF4MD_111,
321 PF3MD_000, PF3MD_001, PF3MD_010, PF3MD_011,
322 PF3MD_100, PF3MD_101, PF3MD_110, PF3MD_111,
323 PF2MD_000, PF2MD_001, PF2MD_010, PF2MD_011,
324 PF2MD_100, PF2MD_101, PF2MD_110, PF2MD_111,
325 PF1MD_000, PF1MD_001, PF1MD_010, PF1MD_011,
326 PF1MD_100, PF1MD_101, PF1MD_110, PF1MD_111,
327 PF0MD_000, PF0MD_001, PF0MD_010, PF0MD_011,
328 PF0MD_100, PF0MD_101, PF0MD_110, PF0MD_111,
330 /* Port G */
331 PG24_IOR_IN, PG24_IOR_OUT,
332 PG23_IOR_IN, PG23_IOR_OUT,
333 PG22_IOR_IN, PG22_IOR_OUT,
334 PG21_IOR_IN, PG21_IOR_OUT,
335 PG20_IOR_IN, PG20_IOR_OUT,
336 PG19_IOR_IN, PG19_IOR_OUT,
337 PG18_IOR_IN, PG18_IOR_OUT,
338 PG17_IOR_IN, PG17_IOR_OUT,
339 PG16_IOR_IN, PG16_IOR_OUT,
340 PG15_IOR_IN, PG15_IOR_OUT,
341 PG14_IOR_IN, PG14_IOR_OUT,
342 PG13_IOR_IN, PG13_IOR_OUT,
343 PG12_IOR_IN, PG12_IOR_OUT,
344 PG11_IOR_IN, PG11_IOR_OUT,
345 PG10_IOR_IN, PG10_IOR_OUT,
346 PG9_IOR_IN, PG9_IOR_OUT,
347 PG8_IOR_IN, PG8_IOR_OUT,
348 PG7_IOR_IN, PG7_IOR_OUT,
349 PG6_IOR_IN, PG6_IOR_OUT,
350 PG5_IOR_IN, PG5_IOR_OUT,
351 PG4_IOR_IN, PG4_IOR_OUT,
352 PG3_IOR_IN, PG3_IOR_OUT,
353 PG2_IOR_IN, PG2_IOR_OUT,
354 PG1_IOR_IN, PG1_IOR_OUT,
355 PG0_IOR_IN, PG0_IOR_OUT,
357 PG24MD_00, PG24MD_01, PG24MD_10, PG24MD_11,
358 PG23MD_00, PG23MD_01, PG23MD_10, PG23MD_11,
359 PG22MD_00, PG22MD_01, PG22MD_10, PG22MD_11,
360 PG21MD_00, PG21MD_01, PG21MD_10, PG21MD_11,
361 PG20MD_000, PG20MD_001, PG20MD_010, PG20MD_011,
362 PG20MD_100, PG20MD_101, PG20MD_110, PG20MD_111,
363 PG19MD_000, PG19MD_001, PG19MD_010, PG19MD_011,
364 PG19MD_100, PG19MD_101, PG19MD_110, PG19MD_111,
365 PG18MD_000, PG18MD_001, PG18MD_010, PG18MD_011,
366 PG18MD_100, PG18MD_101, PG18MD_110, PG18MD_111,
367 PG17MD_000, PG17MD_001, PG17MD_010, PG17MD_011,
368 PG17MD_100, PG17MD_101, PG17MD_110, PG17MD_111,
369 PG16MD_000, PG16MD_001, PG16MD_010, PG16MD_011,
370 PG16MD_100, PG16MD_101, PG16MD_110, PG16MD_111,
371 PG15MD_000, PG15MD_001, PG15MD_010, PG15MD_011,
372 PG15MD_100, PG15MD_101, PG15MD_110, PG15MD_111,
373 PG14MD_000, PG14MD_001, PG14MD_010, PG14MD_011,
374 PG14MD_100, PG14MD_101, PG14MD_110, PG14MD_111,
375 PG13MD_000, PG13MD_001, PG13MD_010, PG13MD_011,
376 PG13MD_100, PG13MD_101, PG13MD_110, PG13MD_111,
377 PG12MD_000, PG12MD_001, PG12MD_010, PG12MD_011,
378 PG12MD_100, PG12MD_101, PG12MD_110, PG12MD_111,
379 PG11MD_000, PG11MD_001, PG11MD_010, PG11MD_011,
380 PG11MD_100, PG11MD_101, PG11MD_110, PG11MD_111,
381 PG10MD_000, PG10MD_001, PG10MD_010, PG10MD_011,
382 PG10MD_100, PG10MD_101, PG10MD_110, PG10MD_111,
383 PG9MD_000, PG9MD_001, PG9MD_010, PG9MD_011,
384 PG9MD_100, PG9MD_101, PG9MD_110, PG9MD_111,
385 PG8MD_000, PG8MD_001, PG8MD_010, PG8MD_011,
386 PG8MD_100, PG8MD_101, PG8MD_110, PG8MD_111,
387 PG7MD_00, PG7MD_01, PG7MD_10, PG7MD_11,
388 PG6MD_00, PG6MD_01, PG6MD_10, PG6MD_11,
389 PG5MD_00, PG5MD_01, PG5MD_10, PG5MD_11,
390 PG4MD_00, PG4MD_01, PG4MD_10, PG4MD_11,
391 PG3MD_00, PG3MD_01, PG3MD_10, PG3MD_11,
392 PG2MD_00, PG2MD_01, PG2MD_10, PG2MD_11,
393 PG1MD_00, PG1MD_01, PG1MD_10, PG1MD_11,
394 PG0MD_000, PG0MD_001, PG0MD_010, PG0MD_011,
395 PG0MD_100, PG0MD_101, PG0MD_110, PG0MD_111,
397 /* Port H */
398 PH7MD_0, PH7MD_1,
399 PH6MD_0, PH6MD_1,
400 PH5MD_0, PH5MD_1,
401 PH4MD_0, PH4MD_1,
402 PH3MD_0, PH3MD_1,
403 PH2MD_0, PH2MD_1,
404 PH1MD_0, PH1MD_1,
405 PH0MD_0, PH0MD_1,
407 /* Port I - not on device */
409 /* Port J */
410 PJ11_IOR_IN, PJ11_IOR_OUT,
411 PJ10_IOR_IN, PJ10_IOR_OUT,
412 PJ9_IOR_IN, PJ9_IOR_OUT,
413 PJ8_IOR_IN, PJ8_IOR_OUT,
414 PJ7_IOR_IN, PJ7_IOR_OUT,
415 PJ6_IOR_IN, PJ6_IOR_OUT,
416 PJ5_IOR_IN, PJ5_IOR_OUT,
417 PJ4_IOR_IN, PJ4_IOR_OUT,
418 PJ3_IOR_IN, PJ3_IOR_OUT,
419 PJ2_IOR_IN, PJ2_IOR_OUT,
420 PJ1_IOR_IN, PJ1_IOR_OUT,
421 PJ0_IOR_IN, PJ0_IOR_OUT,
423 PJ11MD_00, PJ11MD_01, PJ11MD_10, PJ11MD_11,
424 PJ10MD_00, PJ10MD_01, PJ10MD_10, PJ10MD_11,
425 PJ9MD_00, PJ9MD_01, PJ9MD_10, PJ9MD_11,
426 PJ8MD_00, PJ8MD_01, PJ8MD_10, PJ8MD_11,
427 PJ7MD_00, PJ7MD_01, PJ7MD_10, PJ7MD_11,
428 PJ6MD_00, PJ6MD_01, PJ6MD_10, PJ6MD_11,
429 PJ5MD_00, PJ5MD_01, PJ5MD_10, PJ5MD_11,
430 PJ4MD_00, PJ4MD_01, PJ4MD_10, PJ4MD_11,
431 PJ3MD_00, PJ3MD_01, PJ3MD_10, PJ3MD_11,
432 PJ2MD_000, PJ2MD_001, PJ2MD_010, PJ2MD_011,
433 PJ2MD_100, PJ2MD_101, PJ2MD_110, PJ2MD_111,
434 PJ1MD_000, PJ1MD_001, PJ1MD_010, PJ1MD_011,
435 PJ1MD_100, PJ1MD_101, PJ1MD_110, PJ1MD_111,
436 PJ0MD_000, PJ0MD_001, PJ0MD_010, PJ0MD_011,
437 PJ0MD_100, PJ0MD_101, PJ0MD_110, PJ0MD_111,
439 /* Port K */
440 PK11_IOR_IN, PK11_IOR_OUT,
441 PK10_IOR_IN, PK10_IOR_OUT,
442 PK9_IOR_IN, PK9_IOR_OUT,
443 PK8_IOR_IN, PK8_IOR_OUT,
444 PK7_IOR_IN, PK7_IOR_OUT,
445 PK6_IOR_IN, PK6_IOR_OUT,
446 PK5_IOR_IN, PK5_IOR_OUT,
447 PK4_IOR_IN, PK4_IOR_OUT,
448 PK3_IOR_IN, PK3_IOR_OUT,
449 PK2_IOR_IN, PK2_IOR_OUT,
450 PK1_IOR_IN, PK1_IOR_OUT,
451 PK0_IOR_IN, PK0_IOR_OUT,
453 PK11MD_00, PK11MD_01, PK11MD_10, PK11MD_11,
454 PK10MD_00, PK10MD_01, PK10MD_10, PK10MD_11,
455 PK9MD_00, PK9MD_01, PK9MD_10, PK9MD_11,
456 PK8MD_00, PK8MD_01, PK8MD_10, PK8MD_11,
457 PK7MD_00, PK7MD_01, PK7MD_10, PK7MD_11,
458 PK6MD_00, PK6MD_01, PK6MD_10, PK6MD_11,
459 PK5MD_00, PK5MD_01, PK5MD_10, PK5MD_11,
460 PK4MD_00, PK4MD_01, PK4MD_10, PK4MD_11,
461 PK3MD_00, PK3MD_01, PK3MD_10, PK3MD_11,
462 PK2MD_00, PK2MD_01, PK2MD_10, PK2MD_11,
463 PK1MD_00, PK1MD_01, PK1MD_10, PK1MD_11,
464 PK0MD_00, PK0MD_01, PK0MD_10, PK0MD_11,
465 PINMUX_FUNCTION_END,
467 PINMUX_MARK_BEGIN,
468 /* Port A */
470 /* Port B */
472 /* Port C */
474 /* Port D */
476 /* Port E */
478 /* Port F */
480 /* Port G */
482 /* Port H */
483 PHAN7_MARK, PHAN6_MARK, PHAN5_MARK, PHAN4_MARK,
484 PHAN3_MARK, PHAN2_MARK, PHAN1_MARK, PHAN0_MARK,
486 /* Port I - not on device */
488 /* Port J */
490 /* Port K */
492 IRQ7_PC_MARK, IRQ6_PC_MARK, IRQ5_PC_MARK, IRQ4_PC_MARK,
493 IRQ3_PG_MARK, IRQ2_PG_MARK, IRQ1_PJ_MARK, IRQ0_PJ_MARK,
494 IRQ3_PE_MARK, IRQ2_PE_MARK, IRQ1_PE_MARK, IRQ0_PE_MARK,
496 PINT7_PG_MARK, PINT6_PG_MARK, PINT5_PG_MARK, PINT4_PG_MARK,
497 PINT3_PG_MARK, PINT2_PG_MARK, PINT1_PG_MARK, PINT0_PG_MARK,
499 SD_CD_MARK, SD_D0_MARK, SD_D1_MARK, SD_D2_MARK, SD_D3_MARK,
500 SD_WP_MARK, SD_CLK_MARK, SD_CMD_MARK,
501 CRX0_MARK, CRX1_MARK,
502 CTX0_MARK, CTX1_MARK,
504 PWM1A_MARK, PWM1B_MARK, PWM1C_MARK, PWM1D_MARK,
505 PWM1E_MARK, PWM1F_MARK, PWM1G_MARK, PWM1H_MARK,
506 PWM2A_MARK, PWM2B_MARK, PWM2C_MARK, PWM2D_MARK,
507 PWM2E_MARK, PWM2F_MARK, PWM2G_MARK, PWM2H_MARK,
508 IERXD_MARK, IETXD_MARK,
509 CRX0_CRX1_MARK,
510 WDTOVF_MARK,
512 CRX0X1_MARK,
514 /* DMAC */
515 TEND0_MARK, DACK0_MARK, DREQ0_MARK,
516 TEND1_MARK, DACK1_MARK, DREQ1_MARK,
518 /* ADC */
519 ADTRG_MARK,
521 /* BSC */
522 A25_MARK, A24_MARK,
523 A23_MARK, A22_MARK, A21_MARK, A20_MARK,
524 A19_MARK, A18_MARK, A17_MARK, A16_MARK,
525 A15_MARK, A14_MARK, A13_MARK, A12_MARK,
526 A11_MARK, A10_MARK, A9_MARK, A8_MARK,
527 A7_MARK, A6_MARK, A5_MARK, A4_MARK,
528 A3_MARK, A2_MARK, A1_MARK, A0_MARK,
529 D15_MARK, D14_MARK, D13_MARK, D12_MARK,
530 D11_MARK, D10_MARK, D9_MARK, D8_MARK,
531 D7_MARK, D6_MARK, D5_MARK, D4_MARK,
532 D3_MARK, D2_MARK, D1_MARK, D0_MARK,
533 BS_MARK,
534 CS4_MARK, CS3_MARK, CS2_MARK, CS1_MARK, CS0_MARK,
535 CS6CE1B_MARK, CS5CE1A_MARK,
536 CE2A_MARK, CE2B_MARK,
537 RD_MARK, RDWR_MARK,
538 ICIOWRAH_MARK,
539 ICIORD_MARK,
540 WE1DQMUWE_MARK,
541 WE0DQML_MARK,
542 RAS_MARK, CAS_MARK, CKE_MARK,
543 WAIT_MARK, BREQ_MARK, BACK_MARK, IOIS16_MARK,
545 /* TMU */
546 TIOC0A_MARK, TIOC0B_MARK, TIOC0C_MARK, TIOC0D_MARK,
547 TIOC1A_MARK, TIOC1B_MARK,
548 TIOC2A_MARK, TIOC2B_MARK,
549 TIOC3A_MARK, TIOC3B_MARK, TIOC3C_MARK, TIOC3D_MARK,
550 TIOC4A_MARK, TIOC4B_MARK, TIOC4C_MARK, TIOC4D_MARK,
551 TCLKA_MARK, TCLKB_MARK, TCLKC_MARK, TCLKD_MARK,
553 /* SCIF */
554 SCK0_MARK, SCK1_MARK, SCK2_MARK, SCK3_MARK,
555 RXD0_MARK, RXD1_MARK, RXD2_MARK, RXD3_MARK,
556 TXD0_MARK, TXD1_MARK, TXD2_MARK, TXD3_MARK,
557 RXD4_MARK, RXD5_MARK, RXD6_MARK, RXD7_MARK,
558 TXD4_MARK, TXD5_MARK, TXD6_MARK, TXD7_MARK,
559 RTS1_MARK, RTS3_MARK,
560 CTS1_MARK, CTS3_MARK,
562 /* RSPI */
563 RSPCK0_MARK, RSPCK1_MARK,
564 MOSI0_MARK, MOSI1_MARK,
565 MISO0_PF12_MARK, MISO1_MARK, MISO1_PG19_MARK,
566 SSL00_MARK, SSL10_MARK,
568 /* IIC3 */
569 SCL0_MARK, SCL1_MARK, SCL2_MARK,
570 SDA0_MARK, SDA1_MARK, SDA2_MARK,
572 /* SSI */
573 SSISCK0_MARK,
574 SSIWS0_MARK,
575 SSITXD0_MARK,
576 SSIRXD0_MARK,
577 SSIWS1_MARK, SSIWS2_MARK, SSIWS3_MARK,
578 SSISCK1_MARK, SSISCK2_MARK, SSISCK3_MARK,
579 SSIDATA1_MARK, SSIDATA2_MARK, SSIDATA3_MARK,
580 AUDIO_CLK_MARK,
582 /* SIOF */ /* NOTE Shares AUDIO_CLK with SSI */
583 SIOFTXD_MARK, SIOFRXD_MARK, SIOFSYNC_MARK, SIOFSCK_MARK,
585 /* SPDIF */ /* NOTE Shares AUDIO_CLK with SSI */
586 SPDIF_IN_MARK, SPDIF_OUT_MARK,
588 /* NANDFMC */ /* NOTE Controller is not available in boot mode 0 */
589 FCE_MARK,
590 FRB_MARK,
592 /* VDC3 */
593 DV_CLK_MARK,
594 DV_VSYNC_MARK, DV_HSYNC_MARK,
595 DV_DATA7_MARK, DV_DATA6_MARK, DV_DATA5_MARK, DV_DATA4_MARK,
596 DV_DATA3_MARK, DV_DATA2_MARK, DV_DATA1_MARK, DV_DATA0_MARK,
597 LCD_CLK_MARK, LCD_EXTCLK_MARK,
598 LCD_VSYNC_MARK, LCD_HSYNC_MARK, LCD_DE_MARK,
599 LCD_DATA15_MARK, LCD_DATA14_MARK, LCD_DATA13_MARK, LCD_DATA12_MARK,
600 LCD_DATA11_MARK, LCD_DATA10_MARK, LCD_DATA9_MARK, LCD_DATA8_MARK,
601 LCD_DATA7_MARK, LCD_DATA6_MARK, LCD_DATA5_MARK, LCD_DATA4_MARK,
602 LCD_DATA3_MARK, LCD_DATA2_MARK, LCD_DATA1_MARK, LCD_DATA0_MARK,
603 LCD_M_DISP_MARK,
604 PINMUX_MARK_END,
607 static const u16 pinmux_data[] = {
608 /* Port A */
609 PINMUX_DATA(PA3_DATA, PA3_IN),
610 PINMUX_DATA(PA2_DATA, PA2_IN),
611 PINMUX_DATA(PA1_DATA, PA1_IN),
612 PINMUX_DATA(PA0_DATA, PA0_IN),
614 /* Port B */
615 PINMUX_DATA(PB22_DATA, PB22MD_00, PB22_IN, PB22_OUT),
616 PINMUX_DATA(A22_MARK, PB22MD_01),
617 PINMUX_DATA(CS4_MARK, PB22MD_10),
619 PINMUX_DATA(PB21_DATA, PB21MD_0, PB21_IN, PB21_OUT),
620 PINMUX_DATA(A21_MARK, PB21MD_1),
621 PINMUX_DATA(A20_MARK, PB20MD_1),
622 PINMUX_DATA(A19_MARK, PB19MD_01),
623 PINMUX_DATA(A18_MARK, PB18MD_01),
624 PINMUX_DATA(A17_MARK, PB17MD_01),
625 PINMUX_DATA(A16_MARK, PB16MD_01),
626 PINMUX_DATA(A15_MARK, PB15MD_01),
627 PINMUX_DATA(A14_MARK, PB14MD_01),
628 PINMUX_DATA(A13_MARK, PB13MD_01),
629 PINMUX_DATA(A12_MARK, PB12MD_01),
630 PINMUX_DATA(A11_MARK, PB11MD_01),
631 PINMUX_DATA(A10_MARK, PB10MD_01),
632 PINMUX_DATA(A9_MARK, PB9MD_01),
633 PINMUX_DATA(A8_MARK, PB8MD_01),
634 PINMUX_DATA(A7_MARK, PB7MD_01),
635 PINMUX_DATA(A6_MARK, PB6MD_01),
636 PINMUX_DATA(A5_MARK, PB5MD_01),
637 PINMUX_DATA(A4_MARK, PB4MD_01),
638 PINMUX_DATA(A3_MARK, PB3MD_1),
639 PINMUX_DATA(A2_MARK, PB2MD_1),
640 PINMUX_DATA(A1_MARK, PB1MD_1),
642 /* Port C */
643 PINMUX_DATA(PC10_DATA, PC10MD_0),
644 PINMUX_DATA(TIOC2B_MARK, PC1MD_1),
645 PINMUX_DATA(PC9_DATA, PC9MD_0),
646 PINMUX_DATA(TIOC2A_MARK, PC9MD_1),
647 PINMUX_DATA(PC8_DATA, PC8MD_00),
648 PINMUX_DATA(CS3_MARK, PC8MD_01),
649 PINMUX_DATA(TIOC4D_MARK, PC8MD_10),
650 PINMUX_DATA(IRQ7_PC_MARK, PC8MD_11),
651 PINMUX_DATA(PC7_DATA, PC7MD_00),
652 PINMUX_DATA(CKE_MARK, PC7MD_01),
653 PINMUX_DATA(TIOC4C_MARK, PC7MD_10),
654 PINMUX_DATA(IRQ6_PC_MARK, PC7MD_11),
655 PINMUX_DATA(PC6_DATA, PC6MD_00),
656 PINMUX_DATA(CAS_MARK, PC6MD_01),
657 PINMUX_DATA(TIOC4B_MARK, PC6MD_10),
658 PINMUX_DATA(IRQ5_PC_MARK, PC6MD_11),
659 PINMUX_DATA(PC5_DATA, PC5MD_00),
660 PINMUX_DATA(RAS_MARK, PC5MD_01),
661 PINMUX_DATA(TIOC4A_MARK, PC5MD_10),
662 PINMUX_DATA(IRQ4_PC_MARK, PC5MD_11),
663 PINMUX_DATA(PC4_DATA, PC4MD_0),
664 PINMUX_DATA(WE1DQMUWE_MARK, PC4MD_1),
665 PINMUX_DATA(PC3_DATA, PC3MD_0),
666 PINMUX_DATA(WE0DQML_MARK, PC3MD_1),
667 PINMUX_DATA(PC2_DATA, PC2MD_0),
668 PINMUX_DATA(RDWR_MARK, PC2MD_1),
669 PINMUX_DATA(PC1_DATA, PC1MD_0),
670 PINMUX_DATA(RD_MARK, PC1MD_1),
671 PINMUX_DATA(PC0_DATA, PC0MD_0),
672 PINMUX_DATA(CS0_MARK, PC0MD_1),
674 /* Port D */
675 PINMUX_DATA(D15_MARK, PD15MD_01),
676 PINMUX_DATA(D14_MARK, PD14MD_01),
677 PINMUX_DATA(D13_MARK, PD13MD_01),
678 PINMUX_DATA(D12_MARK, PD12MD_01),
679 PINMUX_DATA(D11_MARK, PD11MD_01),
680 PINMUX_DATA(D10_MARK, PD10MD_01),
681 PINMUX_DATA(D9_MARK, PD9MD_01),
682 PINMUX_DATA(D8_MARK, PD8MD_01),
683 PINMUX_DATA(D7_MARK, PD7MD_01),
684 PINMUX_DATA(D6_MARK, PD6MD_01),
685 PINMUX_DATA(D5_MARK, PD5MD_01),
686 PINMUX_DATA(D4_MARK, PD4MD_01),
687 PINMUX_DATA(D3_MARK, PD3MD_01),
688 PINMUX_DATA(D2_MARK, PD2MD_01),
689 PINMUX_DATA(D1_MARK, PD1MD_01),
690 PINMUX_DATA(D0_MARK, PD0MD_01),
692 /* Port E */
693 PINMUX_DATA(PE5_DATA, PE5MD_00),
694 PINMUX_DATA(SDA2_MARK, PE5MD_01),
695 PINMUX_DATA(DV_HSYNC_MARK, PE5MD_11),
697 PINMUX_DATA(PE4_DATA, PE4MD_00),
698 PINMUX_DATA(SCL2_MARK, PE4MD_01),
699 PINMUX_DATA(DV_VSYNC_MARK, PE4MD_11),
701 PINMUX_DATA(PE3_DATA, PE3MD_00),
702 PINMUX_DATA(SDA1_MARK, PE3MD_01),
703 PINMUX_DATA(IRQ3_PE_MARK, PE3MD_11),
705 PINMUX_DATA(PE2_DATA, PE2MD_00),
706 PINMUX_DATA(SCL1_MARK, PE2MD_01),
707 PINMUX_DATA(IRQ2_PE_MARK, PE2MD_11),
709 PINMUX_DATA(PE1_DATA, PE1MD_000),
710 PINMUX_DATA(SDA0_MARK, PE1MD_001),
711 PINMUX_DATA(IOIS16_MARK, PE1MD_010),
712 PINMUX_DATA(IRQ1_PE_MARK, PE1MD_011),
713 PINMUX_DATA(TCLKA_MARK, PE1MD_100),
714 PINMUX_DATA(ADTRG_MARK, PE1MD_101),
716 PINMUX_DATA(PE0_DATA, PE0MD_00),
717 PINMUX_DATA(SCL0_MARK, PE0MD_01),
718 PINMUX_DATA(AUDIO_CLK_MARK, PE0MD_10),
719 PINMUX_DATA(IRQ0_PE_MARK, PE0MD_11),
721 /* Port F */
722 PINMUX_DATA(PF12_DATA, PF12MD_000),
723 PINMUX_DATA(BS_MARK, PF12MD_001),
724 PINMUX_DATA(MISO0_PF12_MARK, PF12MD_011),
725 PINMUX_DATA(TIOC3D_MARK, PF12MD_100),
726 PINMUX_DATA(SPDIF_OUT_MARK, PF12MD_101),
728 PINMUX_DATA(PF11_DATA, PF11MD_000),
729 PINMUX_DATA(A25_MARK, PF11MD_001),
730 PINMUX_DATA(SSIDATA3_MARK, PF11MD_010),
731 PINMUX_DATA(MOSI0_MARK, PF11MD_011),
732 PINMUX_DATA(TIOC3C_MARK, PF11MD_100),
733 PINMUX_DATA(SPDIF_IN_MARK, PF11MD_101),
735 PINMUX_DATA(PF10_DATA, PF10MD_000),
736 PINMUX_DATA(A24_MARK, PF10MD_001),
737 PINMUX_DATA(SSIWS3_MARK, PF10MD_010),
738 PINMUX_DATA(SSL00_MARK, PF10MD_011),
739 PINMUX_DATA(TIOC3B_MARK, PF10MD_100),
740 PINMUX_DATA(FCE_MARK, PF10MD_101),
742 PINMUX_DATA(PF9_DATA, PF9MD_000),
743 PINMUX_DATA(A23_MARK, PF9MD_001),
744 PINMUX_DATA(SSISCK3_MARK, PF9MD_010),
745 PINMUX_DATA(RSPCK0_MARK, PF9MD_011),
746 PINMUX_DATA(TIOC3A_MARK, PF9MD_100),
747 PINMUX_DATA(FRB_MARK, PF9MD_101),
749 PINMUX_DATA(PF8_DATA, PF8MD_00),
750 PINMUX_DATA(CE2B_MARK, PF8MD_01),
751 PINMUX_DATA(SSIDATA3_MARK, PF8MD_10),
752 PINMUX_DATA(DV_CLK_MARK, PF8MD_11),
754 PINMUX_DATA(PF7_DATA, PF7MD_000),
755 PINMUX_DATA(CE2A_MARK, PF7MD_001),
756 PINMUX_DATA(SSIWS3_MARK, PF7MD_010),
757 PINMUX_DATA(DV_DATA7_MARK, PF7MD_011),
758 PINMUX_DATA(TCLKD_MARK, PF7MD_100),
760 PINMUX_DATA(PF6_DATA, PF6MD_000),
761 PINMUX_DATA(CS6CE1B_MARK, PF6MD_001),
762 PINMUX_DATA(SSISCK3_MARK, PF6MD_010),
763 PINMUX_DATA(DV_DATA6_MARK, PF6MD_011),
764 PINMUX_DATA(TCLKB_MARK, PF6MD_100),
766 PINMUX_DATA(PF5_DATA, PF5MD_000),
767 PINMUX_DATA(CS5CE1A_MARK, PF5MD_001),
768 PINMUX_DATA(SSIDATA2_MARK, PF5MD_010),
769 PINMUX_DATA(DV_DATA5_MARK, PF5MD_011),
770 PINMUX_DATA(TCLKC_MARK, PF5MD_100),
772 PINMUX_DATA(PF4_DATA, PF4MD_000),
773 PINMUX_DATA(ICIOWRAH_MARK, PF4MD_001),
774 PINMUX_DATA(SSIWS2_MARK, PF4MD_010),
775 PINMUX_DATA(DV_DATA4_MARK, PF4MD_011),
776 PINMUX_DATA(TXD3_MARK, PF4MD_100),
778 PINMUX_DATA(PF3_DATA, PF3MD_000),
779 PINMUX_DATA(ICIORD_MARK, PF3MD_001),
780 PINMUX_DATA(SSISCK2_MARK, PF3MD_010),
781 PINMUX_DATA(DV_DATA3_MARK, PF3MD_011),
782 PINMUX_DATA(RXD3_MARK, PF3MD_100),
784 PINMUX_DATA(PF2_DATA, PF2MD_000),
785 PINMUX_DATA(BACK_MARK, PF2MD_001),
786 PINMUX_DATA(SSIDATA1_MARK, PF2MD_010),
787 PINMUX_DATA(DV_DATA2_MARK, PF2MD_011),
788 PINMUX_DATA(TXD2_MARK, PF2MD_100),
789 PINMUX_DATA(DACK0_MARK, PF2MD_101),
791 PINMUX_DATA(PF1_DATA, PF1MD_000),
792 PINMUX_DATA(BREQ_MARK, PF1MD_001),
793 PINMUX_DATA(SSIWS1_MARK, PF1MD_010),
794 PINMUX_DATA(DV_DATA1_MARK, PF1MD_011),
795 PINMUX_DATA(RXD2_MARK, PF1MD_100),
796 PINMUX_DATA(DREQ0_MARK, PF1MD_101),
798 PINMUX_DATA(PF0_DATA, PF0MD_000),
799 PINMUX_DATA(WAIT_MARK, PF0MD_001),
800 PINMUX_DATA(SSISCK1_MARK, PF0MD_010),
801 PINMUX_DATA(DV_DATA0_MARK, PF0MD_011),
802 PINMUX_DATA(SCK2_MARK, PF0MD_100),
803 PINMUX_DATA(TEND0_MARK, PF0MD_101),
805 /* Port G */
806 PINMUX_DATA(PG24_DATA, PG24MD_00),
807 PINMUX_DATA(MOSI0_MARK, PG24MD_01),
808 PINMUX_DATA(TIOC0D_MARK, PG24MD_10),
810 PINMUX_DATA(PG23_DATA, PG23MD_00),
811 PINMUX_DATA(MOSI1_MARK, PG23MD_01),
812 PINMUX_DATA(TIOC0C_MARK, PG23MD_10),
814 PINMUX_DATA(PG22_DATA, PG22MD_00),
815 PINMUX_DATA(SSL10_MARK, PG22MD_01),
816 PINMUX_DATA(TIOC0B_MARK, PG22MD_10),
818 PINMUX_DATA(PG21_DATA, PG21MD_00),
819 PINMUX_DATA(RSPCK1_MARK, PG21MD_01),
820 PINMUX_DATA(TIOC0A_MARK, PG21MD_10),
822 PINMUX_DATA(PG20_DATA, PG20MD_000),
823 PINMUX_DATA(LCD_EXTCLK_MARK, PG20MD_001),
824 PINMUX_DATA(MISO1_MARK, PG20MD_011),
825 PINMUX_DATA(TXD7_MARK, PG20MD_100),
827 PINMUX_DATA(PG19_DATA, PG19MD_000),
828 PINMUX_DATA(LCD_CLK_MARK, PG19MD_001),
829 PINMUX_DATA(TIOC2B_MARK, PG19MD_010),
830 PINMUX_DATA(MISO1_PG19_MARK, PG19MD_011),
831 PINMUX_DATA(RXD7_MARK, PG19MD_100),
833 PINMUX_DATA(PG18_DATA, PG18MD_000),
834 PINMUX_DATA(LCD_DE_MARK, PG18MD_001),
835 PINMUX_DATA(TIOC2A_MARK, PG18MD_010),
836 PINMUX_DATA(SSL10_MARK, PG18MD_011),
837 PINMUX_DATA(TXD6_MARK, PG18MD_100),
839 PINMUX_DATA(PG17_DATA, PG17MD_000),
840 PINMUX_DATA(LCD_HSYNC_MARK, PG17MD_001),
841 PINMUX_DATA(TIOC1B_MARK, PG17MD_010),
842 PINMUX_DATA(RSPCK1_MARK, PG17MD_011),
843 PINMUX_DATA(RXD6_MARK, PG17MD_100),
845 PINMUX_DATA(PG16_DATA, PG16MD_000),
846 PINMUX_DATA(LCD_VSYNC_MARK, PG16MD_001),
847 PINMUX_DATA(TIOC1A_MARK, PG16MD_010),
848 PINMUX_DATA(TXD3_MARK, PG16MD_011),
849 PINMUX_DATA(CTS1_MARK, PG16MD_100),
851 PINMUX_DATA(PG15_DATA, PG15MD_000),
852 PINMUX_DATA(LCD_DATA15_MARK, PG15MD_001),
853 PINMUX_DATA(TIOC0D_MARK, PG15MD_010),
854 PINMUX_DATA(RXD3_MARK, PG15MD_011),
855 PINMUX_DATA(RTS1_MARK, PG15MD_100),
857 PINMUX_DATA(PG14_DATA, PG14MD_000),
858 PINMUX_DATA(LCD_DATA14_MARK, PG14MD_001),
859 PINMUX_DATA(TIOC0C_MARK, PG14MD_010),
860 PINMUX_DATA(SCK1_MARK, PG14MD_100),
862 PINMUX_DATA(PG13_DATA, PG13MD_000),
863 PINMUX_DATA(LCD_DATA13_MARK, PG13MD_001),
864 PINMUX_DATA(TIOC0B_MARK, PG13MD_010),
865 PINMUX_DATA(TXD1_MARK, PG13MD_100),
867 PINMUX_DATA(PG12_DATA, PG12MD_000),
868 PINMUX_DATA(LCD_DATA12_MARK, PG12MD_001),
869 PINMUX_DATA(TIOC0A_MARK, PG12MD_010),
870 PINMUX_DATA(RXD1_MARK, PG12MD_100),
872 PINMUX_DATA(PG11_DATA, PG11MD_000),
873 PINMUX_DATA(LCD_DATA11_MARK, PG11MD_001),
874 PINMUX_DATA(SSITXD0_MARK, PG11MD_010),
875 PINMUX_DATA(IRQ3_PG_MARK, PG11MD_011),
876 PINMUX_DATA(TXD5_MARK, PG11MD_100),
877 PINMUX_DATA(SIOFTXD_MARK, PG11MD_101),
879 PINMUX_DATA(PG10_DATA, PG10MD_000),
880 PINMUX_DATA(LCD_DATA10_MARK, PG10MD_001),
881 PINMUX_DATA(SSIRXD0_MARK, PG10MD_010),
882 PINMUX_DATA(IRQ2_PG_MARK, PG10MD_011),
883 PINMUX_DATA(RXD5_MARK, PG10MD_100),
884 PINMUX_DATA(SIOFRXD_MARK, PG10MD_101),
886 PINMUX_DATA(PG9_DATA, PG9MD_000),
887 PINMUX_DATA(LCD_DATA9_MARK, PG9MD_001),
888 PINMUX_DATA(SSIWS0_MARK, PG9MD_010),
889 PINMUX_DATA(TXD4_MARK, PG9MD_100),
890 PINMUX_DATA(SIOFSYNC_MARK, PG9MD_101),
892 PINMUX_DATA(PG8_DATA, PG8MD_000),
893 PINMUX_DATA(LCD_DATA8_MARK, PG8MD_001),
894 PINMUX_DATA(SSISCK0_MARK, PG8MD_010),
895 PINMUX_DATA(RXD4_MARK, PG8MD_100),
896 PINMUX_DATA(SIOFSCK_MARK, PG8MD_101),
898 PINMUX_DATA(PG7_DATA, PG7MD_00),
899 PINMUX_DATA(LCD_DATA7_MARK, PG7MD_01),
900 PINMUX_DATA(SD_CD_MARK, PG7MD_10),
901 PINMUX_DATA(PINT7_PG_MARK, PG7MD_11),
903 PINMUX_DATA(PG6_DATA, PG7MD_00),
904 PINMUX_DATA(LCD_DATA6_MARK, PG7MD_01),
905 PINMUX_DATA(SD_WP_MARK, PG7MD_10),
906 PINMUX_DATA(PINT6_PG_MARK, PG7MD_11),
908 PINMUX_DATA(PG5_DATA, PG5MD_00),
909 PINMUX_DATA(LCD_DATA5_MARK, PG5MD_01),
910 PINMUX_DATA(SD_D1_MARK, PG5MD_10),
911 PINMUX_DATA(PINT5_PG_MARK, PG5MD_11),
913 PINMUX_DATA(PG4_DATA, PG4MD_00),
914 PINMUX_DATA(LCD_DATA4_MARK, PG4MD_01),
915 PINMUX_DATA(SD_D0_MARK, PG4MD_10),
916 PINMUX_DATA(PINT4_PG_MARK, PG4MD_11),
918 PINMUX_DATA(PG3_DATA, PG3MD_00),
919 PINMUX_DATA(LCD_DATA3_MARK, PG3MD_01),
920 PINMUX_DATA(SD_CLK_MARK, PG3MD_10),
921 PINMUX_DATA(PINT3_PG_MARK, PG3MD_11),
923 PINMUX_DATA(PG2_DATA, PG2MD_00),
924 PINMUX_DATA(LCD_DATA2_MARK, PG2MD_01),
925 PINMUX_DATA(SD_CMD_MARK, PG2MD_10),
926 PINMUX_DATA(PINT2_PG_MARK, PG2MD_11),
928 PINMUX_DATA(PG1_DATA, PG1MD_00),
929 PINMUX_DATA(LCD_DATA1_MARK, PG1MD_01),
930 PINMUX_DATA(SD_D3_MARK, PG1MD_10),
931 PINMUX_DATA(PINT1_PG_MARK, PG1MD_11),
933 PINMUX_DATA(PG0_DATA, PG0MD_000),
934 PINMUX_DATA(LCD_DATA0_MARK, PG0MD_001),
935 PINMUX_DATA(SD_D2_MARK, PG0MD_010),
936 PINMUX_DATA(PINT0_PG_MARK, PG0MD_011),
937 PINMUX_DATA(WDTOVF_MARK, PG0MD_100),
939 /* Port H */
940 PINMUX_DATA(PH7_DATA, PH7MD_0),
941 PINMUX_DATA(PHAN7_MARK, PH7MD_1),
943 PINMUX_DATA(PH6_DATA, PH6MD_0),
944 PINMUX_DATA(PHAN6_MARK, PH6MD_1),
946 PINMUX_DATA(PH5_DATA, PH5MD_0),
947 PINMUX_DATA(PHAN5_MARK, PH5MD_1),
949 PINMUX_DATA(PH4_DATA, PH4MD_0),
950 PINMUX_DATA(PHAN4_MARK, PH4MD_1),
952 PINMUX_DATA(PH3_DATA, PH3MD_0),
953 PINMUX_DATA(PHAN3_MARK, PH3MD_1),
955 PINMUX_DATA(PH2_DATA, PH2MD_0),
956 PINMUX_DATA(PHAN2_MARK, PH2MD_1),
958 PINMUX_DATA(PH1_DATA, PH1MD_0),
959 PINMUX_DATA(PHAN1_MARK, PH1MD_1),
961 PINMUX_DATA(PH0_DATA, PH0MD_0),
962 PINMUX_DATA(PHAN0_MARK, PH0MD_1),
964 /* Port I - not on device */
966 /* Port J */
967 PINMUX_DATA(PJ11_DATA, PJ11MD_00),
968 PINMUX_DATA(PWM2H_MARK, PJ11MD_01),
969 PINMUX_DATA(DACK1_MARK, PJ11MD_10),
971 PINMUX_DATA(PJ10_DATA, PJ10MD_00),
972 PINMUX_DATA(PWM2G_MARK, PJ10MD_01),
973 PINMUX_DATA(DREQ1_MARK, PJ10MD_10),
975 PINMUX_DATA(PJ9_DATA, PJ9MD_00),
976 PINMUX_DATA(PWM2F_MARK, PJ9MD_01),
977 PINMUX_DATA(TEND1_MARK, PJ9MD_10),
979 PINMUX_DATA(PJ8_DATA, PJ8MD_00),
980 PINMUX_DATA(PWM2E_MARK, PJ8MD_01),
981 PINMUX_DATA(RTS3_MARK, PJ8MD_10),
983 PINMUX_DATA(PJ7_DATA, PJ7MD_00),
984 PINMUX_DATA(TIOC1B_MARK, PJ7MD_01),
985 PINMUX_DATA(CTS3_MARK, PJ7MD_10),
987 PINMUX_DATA(PJ6_DATA, PJ6MD_00),
988 PINMUX_DATA(TIOC1A_MARK, PJ6MD_01),
989 PINMUX_DATA(SCK3_MARK, PJ6MD_10),
991 PINMUX_DATA(PJ5_DATA, PJ5MD_00),
992 PINMUX_DATA(IERXD_MARK, PJ5MD_01),
993 PINMUX_DATA(TXD3_MARK, PJ5MD_10),
995 PINMUX_DATA(PJ4_DATA, PJ4MD_00),
996 PINMUX_DATA(IETXD_MARK, PJ4MD_01),
997 PINMUX_DATA(RXD3_MARK, PJ4MD_10),
999 PINMUX_DATA(PJ3_DATA, PJ3MD_00),
1000 PINMUX_DATA(CRX1_MARK, PJ3MD_01),
1001 PINMUX_DATA(CRX0X1_MARK, PJ3MD_10),
1002 PINMUX_DATA(IRQ1_PJ_MARK, PJ3MD_11),
1004 PINMUX_DATA(PJ2_DATA, PJ2MD_000),
1005 PINMUX_DATA(CTX1_MARK, PJ2MD_001),
1006 PINMUX_DATA(CRX0_CRX1_MARK, PJ2MD_010),
1007 PINMUX_DATA(CS2_MARK, PJ2MD_011),
1008 PINMUX_DATA(SCK0_MARK, PJ2MD_100),
1009 PINMUX_DATA(LCD_M_DISP_MARK, PJ2MD_101),
1011 PINMUX_DATA(PJ1_DATA, PJ1MD_000),
1012 PINMUX_DATA(CRX0_MARK, PJ1MD_001),
1013 PINMUX_DATA(IERXD_MARK, PJ1MD_010),
1014 PINMUX_DATA(IRQ0_PJ_MARK, PJ1MD_011),
1015 PINMUX_DATA(RXD0_MARK, PJ1MD_100),
1017 PINMUX_DATA(PJ0_DATA, PJ0MD_000),
1018 PINMUX_DATA(CTX0_MARK, PJ0MD_001),
1019 PINMUX_DATA(IERXD_MARK, PJ0MD_010),
1020 PINMUX_DATA(CS1_MARK, PJ0MD_011),
1021 PINMUX_DATA(TXD0_MARK, PJ0MD_100),
1022 PINMUX_DATA(A0_MARK, PJ0MD_101),
1024 /* Port K */
1025 PINMUX_DATA(PK11_DATA, PK11MD_00),
1026 PINMUX_DATA(PWM2D_MARK, PK11MD_01),
1027 PINMUX_DATA(SSITXD0_MARK, PK11MD_10),
1029 PINMUX_DATA(PK10_DATA, PK10MD_00),
1030 PINMUX_DATA(PWM2C_MARK, PK10MD_01),
1031 PINMUX_DATA(SSIRXD0_MARK, PK10MD_10),
1033 PINMUX_DATA(PK9_DATA, PK9MD_00),
1034 PINMUX_DATA(PWM2B_MARK, PK9MD_01),
1035 PINMUX_DATA(SSIWS0_MARK, PK9MD_10),
1037 PINMUX_DATA(PK8_DATA, PK8MD_00),
1038 PINMUX_DATA(PWM2A_MARK, PK8MD_01),
1039 PINMUX_DATA(SSISCK0_MARK, PK8MD_10),
1041 PINMUX_DATA(PK7_DATA, PK7MD_00),
1042 PINMUX_DATA(PWM1H_MARK, PK7MD_01),
1043 PINMUX_DATA(SD_CD_MARK, PK7MD_10),
1045 PINMUX_DATA(PK6_DATA, PK6MD_00),
1046 PINMUX_DATA(PWM1G_MARK, PK6MD_01),
1047 PINMUX_DATA(SD_WP_MARK, PK6MD_10),
1049 PINMUX_DATA(PK5_DATA, PK5MD_00),
1050 PINMUX_DATA(PWM1F_MARK, PK5MD_01),
1051 PINMUX_DATA(SD_D1_MARK, PK5MD_10),
1053 PINMUX_DATA(PK4_DATA, PK4MD_00),
1054 PINMUX_DATA(PWM1E_MARK, PK4MD_01),
1055 PINMUX_DATA(SD_D0_MARK, PK4MD_10),
1057 PINMUX_DATA(PK3_DATA, PK3MD_00),
1058 PINMUX_DATA(PWM1D_MARK, PK3MD_01),
1059 PINMUX_DATA(SD_CLK_MARK, PK3MD_10),
1061 PINMUX_DATA(PK2_DATA, PK2MD_00),
1062 PINMUX_DATA(PWM1C_MARK, PK2MD_01),
1063 PINMUX_DATA(SD_CMD_MARK, PK2MD_10),
1065 PINMUX_DATA(PK1_DATA, PK1MD_00),
1066 PINMUX_DATA(PWM1B_MARK, PK1MD_01),
1067 PINMUX_DATA(SD_D3_MARK, PK1MD_10),
1069 PINMUX_DATA(PK0_DATA, PK0MD_00),
1070 PINMUX_DATA(PWM1A_MARK, PK0MD_01),
1071 PINMUX_DATA(SD_D2_MARK, PK0MD_10),
1074 static const struct sh_pfc_pin pinmux_pins[] = {
1075 /* Port A */
1076 PINMUX_GPIO(PA3),
1077 PINMUX_GPIO(PA2),
1078 PINMUX_GPIO(PA1),
1079 PINMUX_GPIO(PA0),
1081 /* Port B */
1082 PINMUX_GPIO(PB22),
1083 PINMUX_GPIO(PB21),
1084 PINMUX_GPIO(PB20),
1085 PINMUX_GPIO(PB19),
1086 PINMUX_GPIO(PB18),
1087 PINMUX_GPIO(PB17),
1088 PINMUX_GPIO(PB16),
1089 PINMUX_GPIO(PB15),
1090 PINMUX_GPIO(PB14),
1091 PINMUX_GPIO(PB13),
1092 PINMUX_GPIO(PB12),
1093 PINMUX_GPIO(PB11),
1094 PINMUX_GPIO(PB10),
1095 PINMUX_GPIO(PB9),
1096 PINMUX_GPIO(PB8),
1097 PINMUX_GPIO(PB7),
1098 PINMUX_GPIO(PB6),
1099 PINMUX_GPIO(PB5),
1100 PINMUX_GPIO(PB4),
1101 PINMUX_GPIO(PB3),
1102 PINMUX_GPIO(PB2),
1103 PINMUX_GPIO(PB1),
1105 /* Port C */
1106 PINMUX_GPIO(PC10),
1107 PINMUX_GPIO(PC9),
1108 PINMUX_GPIO(PC8),
1109 PINMUX_GPIO(PC7),
1110 PINMUX_GPIO(PC6),
1111 PINMUX_GPIO(PC5),
1112 PINMUX_GPIO(PC4),
1113 PINMUX_GPIO(PC3),
1114 PINMUX_GPIO(PC2),
1115 PINMUX_GPIO(PC1),
1116 PINMUX_GPIO(PC0),
1118 /* Port D */
1119 PINMUX_GPIO(PD15),
1120 PINMUX_GPIO(PD14),
1121 PINMUX_GPIO(PD13),
1122 PINMUX_GPIO(PD12),
1123 PINMUX_GPIO(PD11),
1124 PINMUX_GPIO(PD10),
1125 PINMUX_GPIO(PD9),
1126 PINMUX_GPIO(PD8),
1127 PINMUX_GPIO(PD7),
1128 PINMUX_GPIO(PD6),
1129 PINMUX_GPIO(PD5),
1130 PINMUX_GPIO(PD4),
1131 PINMUX_GPIO(PD3),
1132 PINMUX_GPIO(PD2),
1133 PINMUX_GPIO(PD1),
1134 PINMUX_GPIO(PD0),
1136 /* Port E */
1137 PINMUX_GPIO(PE5),
1138 PINMUX_GPIO(PE4),
1139 PINMUX_GPIO(PE3),
1140 PINMUX_GPIO(PE2),
1141 PINMUX_GPIO(PE1),
1142 PINMUX_GPIO(PE0),
1144 /* Port F */
1145 PINMUX_GPIO(PF12),
1146 PINMUX_GPIO(PF11),
1147 PINMUX_GPIO(PF10),
1148 PINMUX_GPIO(PF9),
1149 PINMUX_GPIO(PF8),
1150 PINMUX_GPIO(PF7),
1151 PINMUX_GPIO(PF6),
1152 PINMUX_GPIO(PF5),
1153 PINMUX_GPIO(PF4),
1154 PINMUX_GPIO(PF3),
1155 PINMUX_GPIO(PF2),
1156 PINMUX_GPIO(PF1),
1157 PINMUX_GPIO(PF0),
1159 /* Port G */
1160 PINMUX_GPIO(PG24),
1161 PINMUX_GPIO(PG23),
1162 PINMUX_GPIO(PG22),
1163 PINMUX_GPIO(PG21),
1164 PINMUX_GPIO(PG20),
1165 PINMUX_GPIO(PG19),
1166 PINMUX_GPIO(PG18),
1167 PINMUX_GPIO(PG17),
1168 PINMUX_GPIO(PG16),
1169 PINMUX_GPIO(PG15),
1170 PINMUX_GPIO(PG14),
1171 PINMUX_GPIO(PG13),
1172 PINMUX_GPIO(PG12),
1173 PINMUX_GPIO(PG11),
1174 PINMUX_GPIO(PG10),
1175 PINMUX_GPIO(PG9),
1176 PINMUX_GPIO(PG8),
1177 PINMUX_GPIO(PG7),
1178 PINMUX_GPIO(PG6),
1179 PINMUX_GPIO(PG5),
1180 PINMUX_GPIO(PG4),
1181 PINMUX_GPIO(PG3),
1182 PINMUX_GPIO(PG2),
1183 PINMUX_GPIO(PG1),
1184 PINMUX_GPIO(PG0),
1186 /* Port H - Port H does not have a Data Register */
1188 /* Port I - not on device */
1190 /* Port J */
1191 PINMUX_GPIO(PJ11),
1192 PINMUX_GPIO(PJ10),
1193 PINMUX_GPIO(PJ9),
1194 PINMUX_GPIO(PJ8),
1195 PINMUX_GPIO(PJ7),
1196 PINMUX_GPIO(PJ6),
1197 PINMUX_GPIO(PJ5),
1198 PINMUX_GPIO(PJ4),
1199 PINMUX_GPIO(PJ3),
1200 PINMUX_GPIO(PJ2),
1201 PINMUX_GPIO(PJ1),
1202 PINMUX_GPIO(PJ0),
1204 /* Port K */
1205 PINMUX_GPIO(PK11),
1206 PINMUX_GPIO(PK10),
1207 PINMUX_GPIO(PK9),
1208 PINMUX_GPIO(PK8),
1209 PINMUX_GPIO(PK7),
1210 PINMUX_GPIO(PK6),
1211 PINMUX_GPIO(PK5),
1212 PINMUX_GPIO(PK4),
1213 PINMUX_GPIO(PK3),
1214 PINMUX_GPIO(PK2),
1215 PINMUX_GPIO(PK1),
1216 PINMUX_GPIO(PK0),
1219 #define PINMUX_FN_BASE ARRAY_SIZE(pinmux_pins)
1221 static const struct pinmux_func pinmux_func_gpios[] = {
1222 /* INTC */
1223 GPIO_FN(PINT7_PG),
1224 GPIO_FN(PINT6_PG),
1225 GPIO_FN(PINT5_PG),
1226 GPIO_FN(PINT4_PG),
1227 GPIO_FN(PINT3_PG),
1228 GPIO_FN(PINT2_PG),
1229 GPIO_FN(PINT1_PG),
1231 GPIO_FN(IRQ7_PC),
1232 GPIO_FN(IRQ6_PC),
1233 GPIO_FN(IRQ5_PC),
1234 GPIO_FN(IRQ4_PC),
1235 GPIO_FN(IRQ3_PG),
1236 GPIO_FN(IRQ2_PG),
1237 GPIO_FN(IRQ1_PJ),
1238 GPIO_FN(IRQ0_PJ),
1239 GPIO_FN(IRQ3_PE),
1240 GPIO_FN(IRQ2_PE),
1241 GPIO_FN(IRQ1_PE),
1242 GPIO_FN(IRQ0_PE),
1244 /* WDT */
1245 GPIO_FN(WDTOVF),
1247 /* CAN */
1248 GPIO_FN(CTX1),
1249 GPIO_FN(CRX1),
1250 GPIO_FN(CTX0),
1251 GPIO_FN(CRX0),
1252 GPIO_FN(CRX0_CRX1),
1254 /* DMAC */
1255 GPIO_FN(TEND0),
1256 GPIO_FN(DACK0),
1257 GPIO_FN(DREQ0),
1258 GPIO_FN(TEND1),
1259 GPIO_FN(DACK1),
1260 GPIO_FN(DREQ1),
1262 /* ADC */
1263 GPIO_FN(ADTRG),
1265 /* BSCh */
1266 GPIO_FN(A25),
1267 GPIO_FN(A24),
1268 GPIO_FN(A23),
1269 GPIO_FN(A22),
1270 GPIO_FN(A21),
1271 GPIO_FN(A20),
1272 GPIO_FN(A19),
1273 GPIO_FN(A18),
1274 GPIO_FN(A17),
1275 GPIO_FN(A16),
1276 GPIO_FN(A15),
1277 GPIO_FN(A14),
1278 GPIO_FN(A13),
1279 GPIO_FN(A12),
1280 GPIO_FN(A11),
1281 GPIO_FN(A10),
1282 GPIO_FN(A9),
1283 GPIO_FN(A8),
1284 GPIO_FN(A7),
1285 GPIO_FN(A6),
1286 GPIO_FN(A5),
1287 GPIO_FN(A4),
1288 GPIO_FN(A3),
1289 GPIO_FN(A2),
1290 GPIO_FN(A1),
1291 GPIO_FN(A0),
1293 GPIO_FN(D15),
1294 GPIO_FN(D14),
1295 GPIO_FN(D13),
1296 GPIO_FN(D12),
1297 GPIO_FN(D11),
1298 GPIO_FN(D10),
1299 GPIO_FN(D9),
1300 GPIO_FN(D8),
1301 GPIO_FN(D7),
1302 GPIO_FN(D6),
1303 GPIO_FN(D5),
1304 GPIO_FN(D4),
1305 GPIO_FN(D3),
1306 GPIO_FN(D2),
1307 GPIO_FN(D1),
1308 GPIO_FN(D0),
1310 GPIO_FN(BS),
1311 GPIO_FN(CS4),
1312 GPIO_FN(CS3),
1313 GPIO_FN(CS2),
1314 GPIO_FN(CS1),
1315 GPIO_FN(CS0),
1316 GPIO_FN(CS6CE1B),
1317 GPIO_FN(CS5CE1A),
1318 GPIO_FN(CE2A),
1319 GPIO_FN(CE2B),
1320 GPIO_FN(RD),
1321 GPIO_FN(RDWR),
1322 GPIO_FN(ICIOWRAH),
1323 GPIO_FN(ICIORD),
1324 GPIO_FN(WE1DQMUWE),
1325 GPIO_FN(WE0DQML),
1326 GPIO_FN(RAS),
1327 GPIO_FN(CAS),
1328 GPIO_FN(CKE),
1329 GPIO_FN(WAIT),
1330 GPIO_FN(BREQ),
1331 GPIO_FN(BACK),
1332 GPIO_FN(IOIS16),
1334 /* TMU */
1335 GPIO_FN(TIOC4D),
1336 GPIO_FN(TIOC4C),
1337 GPIO_FN(TIOC4B),
1338 GPIO_FN(TIOC4A),
1339 GPIO_FN(TIOC3D),
1340 GPIO_FN(TIOC3C),
1341 GPIO_FN(TIOC3B),
1342 GPIO_FN(TIOC3A),
1343 GPIO_FN(TIOC2B),
1344 GPIO_FN(TIOC1B),
1345 GPIO_FN(TIOC2A),
1346 GPIO_FN(TIOC1A),
1347 GPIO_FN(TIOC0D),
1348 GPIO_FN(TIOC0C),
1349 GPIO_FN(TIOC0B),
1350 GPIO_FN(TIOC0A),
1351 GPIO_FN(TCLKD),
1352 GPIO_FN(TCLKC),
1353 GPIO_FN(TCLKB),
1354 GPIO_FN(TCLKA),
1356 /* SCIF */
1357 GPIO_FN(TXD0),
1358 GPIO_FN(RXD0),
1359 GPIO_FN(SCK0),
1360 GPIO_FN(TXD1),
1361 GPIO_FN(RXD1),
1362 GPIO_FN(SCK1),
1363 GPIO_FN(TXD2),
1364 GPIO_FN(RXD2),
1365 GPIO_FN(SCK2),
1366 GPIO_FN(RTS3),
1367 GPIO_FN(CTS3),
1368 GPIO_FN(TXD3),
1369 GPIO_FN(RXD3),
1370 GPIO_FN(SCK3),
1371 GPIO_FN(TXD4),
1372 GPIO_FN(RXD4),
1373 GPIO_FN(TXD5),
1374 GPIO_FN(RXD5),
1375 GPIO_FN(TXD6),
1376 GPIO_FN(RXD6),
1377 GPIO_FN(TXD7),
1378 GPIO_FN(RXD7),
1379 GPIO_FN(RTS1),
1380 GPIO_FN(CTS1),
1382 /* RSPI */
1383 GPIO_FN(RSPCK0),
1384 GPIO_FN(MOSI0),
1385 GPIO_FN(MISO0_PF12),
1386 GPIO_FN(MISO1),
1387 GPIO_FN(SSL00),
1388 GPIO_FN(RSPCK1),
1389 GPIO_FN(MOSI1),
1390 GPIO_FN(MISO1_PG19),
1391 GPIO_FN(SSL10),
1393 /* IIC3 */
1394 GPIO_FN(SCL0),
1395 GPIO_FN(SCL1),
1396 GPIO_FN(SCL2),
1397 GPIO_FN(SDA0),
1398 GPIO_FN(SDA1),
1399 GPIO_FN(SDA2),
1401 /* SSI */
1402 GPIO_FN(SSISCK0),
1403 GPIO_FN(SSIWS0),
1404 GPIO_FN(SSITXD0),
1405 GPIO_FN(SSIRXD0),
1406 GPIO_FN(SSIWS1),
1407 GPIO_FN(SSIWS2),
1408 GPIO_FN(SSIWS3),
1409 GPIO_FN(SSISCK1),
1410 GPIO_FN(SSISCK2),
1411 GPIO_FN(SSISCK3),
1412 GPIO_FN(SSIDATA1),
1413 GPIO_FN(SSIDATA2),
1414 GPIO_FN(SSIDATA3),
1415 GPIO_FN(AUDIO_CLK),
1417 /* SIOF */ /* NOTE Shares AUDIO_CLK with SSI */
1418 GPIO_FN(SIOFTXD),
1419 GPIO_FN(SIOFRXD),
1420 GPIO_FN(SIOFSYNC),
1421 GPIO_FN(SIOFSCK),
1423 /* SPDIF */ /* NOTE Shares AUDIO_CLK with SSI */
1424 GPIO_FN(SPDIF_IN),
1425 GPIO_FN(SPDIF_OUT),
1427 /* NANDFMC */ /* NOTE Controller is not available in boot mode 0 */
1428 GPIO_FN(FCE),
1429 GPIO_FN(FRB),
1431 /* VDC3 */
1432 GPIO_FN(DV_CLK),
1433 GPIO_FN(DV_VSYNC),
1434 GPIO_FN(DV_HSYNC),
1436 GPIO_FN(DV_DATA7),
1437 GPIO_FN(DV_DATA6),
1438 GPIO_FN(DV_DATA5),
1439 GPIO_FN(DV_DATA4),
1440 GPIO_FN(DV_DATA3),
1441 GPIO_FN(DV_DATA2),
1442 GPIO_FN(DV_DATA1),
1443 GPIO_FN(DV_DATA0),
1445 GPIO_FN(LCD_CLK),
1446 GPIO_FN(LCD_EXTCLK),
1447 GPIO_FN(LCD_VSYNC),
1448 GPIO_FN(LCD_HSYNC),
1449 GPIO_FN(LCD_DE),
1451 GPIO_FN(LCD_DATA15),
1452 GPIO_FN(LCD_DATA14),
1453 GPIO_FN(LCD_DATA13),
1454 GPIO_FN(LCD_DATA12),
1455 GPIO_FN(LCD_DATA11),
1456 GPIO_FN(LCD_DATA10),
1457 GPIO_FN(LCD_DATA9),
1458 GPIO_FN(LCD_DATA8),
1459 GPIO_FN(LCD_DATA7),
1460 GPIO_FN(LCD_DATA6),
1461 GPIO_FN(LCD_DATA5),
1462 GPIO_FN(LCD_DATA4),
1463 GPIO_FN(LCD_DATA3),
1464 GPIO_FN(LCD_DATA2),
1465 GPIO_FN(LCD_DATA1),
1466 GPIO_FN(LCD_DATA0),
1468 GPIO_FN(LCD_M_DISP),
1471 static const struct pinmux_cfg_reg pinmux_config_regs[] = {
1472 { PINMUX_CFG_REG("PAIOR0", 0xfffe3812, 16, 1) {
1473 0, 0, 0, 0, 0, 0, 0, 0,
1474 0, 0, 0, 0, 0, 0, 0, 0,
1475 0, 0, 0, 0, 0, 0, 0, 0,
1476 PA3_IN, PA3_OUT,
1477 PA2_IN, PA2_OUT,
1478 PA1_IN, PA1_OUT,
1479 PA0_IN, PA0_OUT }
1482 { PINMUX_CFG_REG("PBCR5", 0xfffe3824, 16, 4) {
1483 0, 0, 0, 0, 0, 0, 0, 0,
1484 0, 0, 0, 0, 0, 0, 0, 0,
1485 PB22MD_00, PB22MD_01, PB22MD_10, 0, 0, 0, 0, 0,
1486 0, 0, 0, 0, 0, 0, 0, 0,
1487 PB21MD_0, PB21MD_1, 0, 0, 0, 0, 0, 0,
1488 0, 0, 0, 0, 0, 0, 0, 0,
1489 0, PB20MD_1, 0, 0, 0, 0, 0, 0,
1490 0, 0, 0, 0, 0, 0, 0, 0 }
1493 { PINMUX_CFG_REG("PBCR4", 0xfffe3826, 16, 4) {
1494 0, PB19MD_01, 0, 0, 0, 0, 0, 0,
1495 0, 0, 0, 0, 0, 0, 0, 0,
1496 0, PB18MD_01, 0, 0, 0, 0, 0, 0,
1497 0, 0, 0, 0, 0, 0, 0, 0,
1498 0, PB17MD_01, 0, 0, 0, 0, 0, 0,
1499 0, 0, 0, 0, 0, 0, 0, 0,
1500 0, PB16MD_01, 0, 0, 0, 0, 0, 0,
1501 0, 0, 0, 0, 0, 0, 0, 0 }
1503 { PINMUX_CFG_REG("PBCR3", 0xfffe3828, 16, 4) {
1504 0, PB15MD_01, 0, 0, 0, 0, 0, 0,
1505 0, 0, 0, 0, 0, 0, 0, 0,
1506 0, PB14MD_01, 0, 0, 0, 0, 0, 0,
1507 0, 0, 0, 0, 0, 0, 0, 0,
1508 0, PB13MD_01, 0, 0, 0, 0, 0, 0,
1509 0, 0, 0, 0, 0, 0, 0, 0,
1510 0, PB12MD_01, 0, 0, 0, 0, 0, 0,
1511 0, 0, 0, 0, 0, 0, 0, 0 }
1513 { PINMUX_CFG_REG("PBCR2", 0xfffe382a, 16, 4) {
1514 0, PB11MD_01, 0, 0, 0, 0, 0, 0,
1515 0, 0, 0, 0, 0, 0, 0, 0,
1516 0, PB10MD_01, 0, 0, 0, 0, 0, 0,
1517 0, 0, 0, 0, 0, 0, 0, 0,
1518 0, PB9MD_01, 0, 0, 0, 0, 0, 0,
1519 0, 0, 0, 0, 0, 0, 0, 0,
1520 0, PB8MD_01, 0, 0, 0, 0, 0, 0,
1521 0, 0, 0, 0, 0, 0, 0, 0 }
1523 { PINMUX_CFG_REG("PBCR1", 0xfffe382c, 16, 4) {
1524 0, PB7MD_01, 0, 0, 0, 0, 0, 0,
1525 0, 0, 0, 0, 0, 0, 0, 0,
1526 0, PB6MD_01, 0, 0, 0, 0, 0, 0,
1527 0, 0, 0, 0, 0, 0, 0, 0,
1528 0, PB5MD_01, 0, 0, 0, 0, 0, 0,
1529 0, 0, 0, 0, 0, 0, 0, 0,
1530 0, PB4MD_01, 0, 0, 0, 0, 0, 0,
1531 0, 0, 0, 0, 0, 0, 0, 0 }
1533 { PINMUX_CFG_REG("PBCR0", 0xfffe382e, 16, 4) {
1534 0, PB3MD_1, 0, 0, 0, 0, 0, 0,
1535 0, 0, 0, 0, 0, 0, 0, 0,
1536 0, PB2MD_1, 0, 0, 0, 0, 0, 0,
1537 0, 0, 0, 0, 0, 0, 0, 0,
1538 0, PB1MD_1, 0, 0, 0, 0, 0, 0,
1539 0, 0, 0, 0, 0, 0, 0, 0,
1540 0, 0, 0, 0, 0, 0, 0, 0,
1541 0, 0, 0, 0, 0, 0, 0, 0 }
1544 { PINMUX_CFG_REG("PBIOR1", 0xfffe3830, 16, 1) {
1545 0, 0, 0, 0, 0, 0, 0, 0,
1546 0, 0, 0, 0, 0, 0, 0, 0,
1547 0, 0,
1548 PB22_IN, PB22_OUT,
1549 PB21_IN, PB21_OUT,
1550 PB20_IN, PB20_OUT,
1551 PB19_IN, PB19_OUT,
1552 PB18_IN, PB18_OUT,
1553 PB17_IN, PB17_OUT,
1554 PB16_IN, PB16_OUT }
1557 { PINMUX_CFG_REG("PBIOR0", 0xfffe3832, 16, 1) {
1558 PB15_IN, PB15_OUT,
1559 PB14_IN, PB14_OUT,
1560 PB13_IN, PB13_OUT,
1561 PB12_IN, PB12_OUT,
1562 PB11_IN, PB11_OUT,
1563 PB10_IN, PB10_OUT,
1564 PB9_IN, PB9_OUT,
1565 PB8_IN, PB8_OUT,
1566 PB7_IN, PB7_OUT,
1567 PB6_IN, PB6_OUT,
1568 PB5_IN, PB5_OUT,
1569 PB4_IN, PB4_OUT,
1570 PB3_IN, PB3_OUT,
1571 PB2_IN, PB2_OUT,
1572 PB1_IN, PB1_OUT,
1573 0, 0 }
1576 { PINMUX_CFG_REG("PCCR2", 0xfffe384a, 16, 4) {
1577 0, 0, 0, 0, 0, 0, 0, 0,
1578 0, 0, 0, 0, 0, 0, 0, 0,
1579 PC10MD_0, PC10MD_1, 0, 0, 0, 0, 0, 0,
1580 0, 0, 0, 0, 0, 0, 0, 0,
1581 PC9MD_0, PC9MD_1, 0, 0, 0, 0, 0, 0,
1582 0, 0, 0, 0, 0, 0, 0, 0,
1583 PC8MD_00, PC8MD_01, PC8MD_10, PC8MD_11, 0, 0, 0, 0,
1584 0, 0, 0, 0, 0, 0, 0, 0 }
1586 { PINMUX_CFG_REG("PCCR1", 0xfffe384c, 16, 4) {
1587 PC7MD_00, PC7MD_01, PC7MD_10, PC7MD_11, 0, 0, 0, 0,
1588 0, 0, 0, 0, 0, 0, 0, 0,
1589 PC6MD_00, PC6MD_01, PC6MD_10, PC6MD_11, 0, 0, 0, 0,
1590 0, 0, 0, 0, 0, 0, 0, 0,
1591 PC5MD_00, PC5MD_01, PC5MD_10, PC5MD_11, 0, 0, 0, 0,
1592 0, 0, 0, 0, 0, 0, 0, 0,
1593 PC4MD_0, PC4MD_1, 0, 0, 0, 0, 0, 0,
1594 0, 0, 0, 0, 0, 0, 0, 0 }
1596 { PINMUX_CFG_REG("PCCR0", 0xfffe384e, 16, 4) {
1597 PC3MD_0, PC3MD_1, 0, 0, 0, 0, 0, 0,
1598 0, 0, 0, 0, 0, 0, 0, 0,
1599 PC2MD_0, PC2MD_1, 0, 0, 0, 0, 0, 0,
1600 0, 0, 0, 0, 0, 0, 0, 0,
1601 PC1MD_0, PC1MD_1, 0, 0, 0, 0, 0, 0,
1602 0, 0, 0, 0, 0, 0, 0, 0,
1603 PC0MD_0, PC0MD_1, 0, 0, 0, 0, 0, 0,
1604 0, 0, 0, 0, 0, 0, 0, 0 }
1607 { PINMUX_CFG_REG("PCIOR0", 0xfffe3852, 16, 1) {
1608 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1609 PC10_IN, PC10_OUT,
1610 PC9_IN, PC9_OUT,
1611 PC8_IN, PC8_OUT,
1612 PC7_IN, PC7_OUT,
1613 PC6_IN, PC6_OUT,
1614 PC5_IN, PC5_OUT,
1615 PC4_IN, PC4_OUT,
1616 PC3_IN, PC3_OUT,
1617 PC2_IN, PC2_OUT,
1618 PC1_IN, PC1_OUT,
1619 PC0_IN, PC0_OUT
1623 { PINMUX_CFG_REG("PDCR3", 0xfffe3868, 16, 4) {
1624 0, PD15MD_01, 0, 0, 0, 0, 0, 0,
1625 0, 0, 0, 0, 0, 0, 0, 0,
1626 0, PD14MD_01, 0, 0, 0, 0, 0, 0,
1627 0, 0, 0, 0, 0, 0, 0, 0,
1628 0, PD13MD_01, 0, 0, 0, 0, 0, 0,
1629 0, 0, 0, 0, 0, 0, 0, 0,
1630 0, PD12MD_01, 0, 0, 0, 0, 0, 0,
1631 0, 0, 0, 0, 0, 0, 0, 0 }
1633 { PINMUX_CFG_REG("PDCR2", 0xfffe386a, 16, 4) {
1634 0, PD11MD_01, 0, 0, 0, 0, 0, 0,
1635 0, 0, 0, 0, 0, 0, 0, 0,
1636 0, PD10MD_01, 0, 0, 0, 0, 0, 0,
1637 0, 0, 0, 0, 0, 0, 0, 0,
1638 0, PD9MD_01, 0, 0, 0, 0, 0, 0,
1639 0, 0, 0, 0, 0, 0, 0, 0,
1640 0, PD8MD_01, 0, 0, 0, 0, 0, 0,
1641 0, 0, 0, 0, 0, 0, 0, 0 }
1643 { PINMUX_CFG_REG("PDCR1", 0xfffe386c, 16, 4) {
1644 0, PD7MD_01, 0, 0, 0, 0, 0, 0,
1645 0, 0, 0, 0, 0, 0, 0, 0,
1646 0, PD6MD_01, 0, 0, 0, 0, 0, 0,
1647 0, 0, 0, 0, 0, 0, 0, 0,
1648 0, PD5MD_01, 0, 0, 0, 0, 0, 0,
1649 0, 0, 0, 0, 0, 0, 0, 0,
1650 0, PD4MD_01, 0, 0, 0, 0, 0, 0,
1651 0, 0, 0, 0, 0, 0, 0, 0 }
1653 { PINMUX_CFG_REG("PDCR0", 0xfffe386e, 16, 4) {
1654 0, PD3MD_01, 0, 0, 0, 0, 0, 0,
1655 0, 0, 0, 0, 0, 0, 0, 0,
1656 0, PD2MD_01, 0, 0, 0, 0, 0, 0,
1657 0, 0, 0, 0, 0, 0, 0, 0,
1658 0, PD1MD_01, 0, 0, 0, 0, 0, 0,
1659 0, 0, 0, 0, 0, 0, 0, 0,
1660 0, PD0MD_01, 0, 0, 0, 0, 0, 0,
1661 0, 0, 0, 0, 0, 0, 0, 0 }
1664 { PINMUX_CFG_REG("PDIOR0", 0xfffe3872, 16, 1) {
1665 PD15_IN, PD15_OUT,
1666 PD14_IN, PD14_OUT,
1667 PD13_IN, PD13_OUT,
1668 PD12_IN, PD12_OUT,
1669 PD11_IN, PD11_OUT,
1670 PD10_IN, PD10_OUT,
1671 PD9_IN, PD9_OUT,
1672 PD8_IN, PD8_OUT,
1673 PD7_IN, PD7_OUT,
1674 PD6_IN, PD6_OUT,
1675 PD5_IN, PD5_OUT,
1676 PD4_IN, PD4_OUT,
1677 PD3_IN, PD3_OUT,
1678 PD2_IN, PD2_OUT,
1679 PD1_IN, PD1_OUT,
1680 PD0_IN, PD0_OUT }
1683 { PINMUX_CFG_REG("PECR1", 0xfffe388c, 16, 4) {
1684 0, 0, 0, 0, 0, 0, 0, 0,
1685 0, 0, 0, 0, 0, 0, 0, 0,
1686 0, 0, 0, 0, 0, 0, 0, 0,
1687 0, 0, 0, 0, 0, 0, 0, 0,
1688 PE5MD_00, PE5MD_01, 0, PE5MD_11, 0, 0, 0, 0,
1689 0, 0, 0, 0, 0, 0, 0, 0,
1690 PE4MD_00, PE4MD_01, 0, PE4MD_11, 0, 0, 0, 0,
1691 0, 0, 0, 0, 0, 0, 0, 0 }
1694 { PINMUX_CFG_REG("PECR0", 0xfffe388e, 16, 4) {
1695 PE3MD_00, PE3MD_01, 0, PE3MD_11, 0, 0, 0, 0,
1696 0, 0, 0, 0, 0, 0, 0, 0,
1697 PE2MD_00, PE2MD_01, 0, PE2MD_11, 0, 0, 0, 0,
1698 0, 0, 0, 0, 0, 0, 0, 0,
1699 PE1MD_000, PE1MD_001, PE1MD_010, PE1MD_011,
1700 PE1MD_100, PE1MD_101, 0, 0,
1701 0, 0, 0, 0, 0, 0, 0, 0,
1702 PE0MD_00, PE0MD_01, PE0MD_10, PE0MD_11, 0, 0, 0, 0,
1703 0, 0, 0, 0, 0, 0, 0, 0 }
1706 { PINMUX_CFG_REG("PEIOR0", 0xfffe3892, 16, 1) {
1707 0, 0, 0, 0, 0, 0, 0, 0,
1708 0, 0, 0, 0, 0, 0, 0, 0,
1709 0, 0, 0, 0,
1710 PE5_IN, PE5_OUT,
1711 PE4_IN, PE4_OUT,
1712 PE3_IN, PE3_OUT,
1713 PE2_IN, PE2_OUT,
1714 PE1_IN, PE1_OUT,
1715 PE0_IN, PE0_OUT }
1718 { PINMUX_CFG_REG("PFCR3", 0xfffe38a8, 16, 4) {
1719 PF12MD_000, PF12MD_001, 0, PF12MD_011,
1720 PF12MD_100, PF12MD_101, 0, 0,
1721 0, 0, 0, 0, 0, 0, 0, 0 }
1724 { PINMUX_CFG_REG("PFCR2", 0xfffe38aa, 16, 4) {
1725 PF11MD_000, PF11MD_001, PF11MD_010, PF11MD_011,
1726 PF11MD_100, PF11MD_101, 0, 0,
1727 0, 0, 0, 0, 0, 0, 0, 0,
1728 PF10MD_000, PF10MD_001, PF10MD_010, PF10MD_011,
1729 PF10MD_100, PF10MD_101, 0, 0,
1730 0, 0, 0, 0, 0, 0, 0, 0,
1731 PF9MD_000, PF9MD_001, PF9MD_010, PF9MD_011,
1732 PF9MD_100, PF9MD_101, 0, 0,
1733 0, 0, 0, 0, 0, 0, 0, 0,
1734 PF8MD_00, PF8MD_01, PF8MD_10, PF8MD_11, 0, 0, 0, 0,
1735 0, 0, 0, 0, 0, 0, 0, 0 }
1738 { PINMUX_CFG_REG("PFCR1", 0xfffe38ac, 16, 4) {
1739 PF7MD_000, PF7MD_001, PF7MD_010, PF7MD_011,
1740 PF7MD_100, 0, 0, 0,
1741 0, 0, 0, 0, 0, 0, 0, 0,
1742 PF6MD_000, PF6MD_001, PF6MD_010, PF6MD_011,
1743 PF6MD_100, 0, 0, 0,
1744 0, 0, 0, 0, 0, 0, 0, 0,
1745 PF5MD_000, PF5MD_001, PF5MD_010, PF5MD_011,
1746 PF5MD_100, 0, 0, 0,
1747 0, 0, 0, 0, 0, 0, 0, 0,
1748 PF4MD_000, PF4MD_001, PF4MD_010, PF4MD_011,
1749 PF4MD_100, 0, 0, 0,
1750 0, 0, 0, 0, 0, 0, 0, 0 }
1753 { PINMUX_CFG_REG("PFCR0", 0xfffe38ae, 16, 4) {
1754 PF3MD_000, PF3MD_001, PF3MD_010, PF3MD_011,
1755 PF3MD_100, 0, 0, 0,
1756 0, 0, 0, 0, 0, 0, 0, 0,
1757 PF2MD_000, PF2MD_001, PF2MD_010, PF2MD_011,
1758 PF2MD_100, PF2MD_101, 0, 0,
1759 0, 0, 0, 0, 0, 0, 0, 0,
1760 PF1MD_000, PF1MD_001, PF1MD_010, PF1MD_011,
1761 PF1MD_100, PF1MD_101, 0, 0,
1762 0, 0, 0, 0, 0, 0, 0, 0
1766 { PINMUX_CFG_REG("PFIOR0", 0xfffe38b2, 16, 1) {
1767 0, 0, 0, 0, 0, 0,
1768 PF12_IN, PF12_OUT,
1769 PF11_IN, PF11_OUT,
1770 PF10_IN, PF10_OUT,
1771 PF9_IN, PF9_OUT,
1772 PF8_IN, PF8_OUT,
1773 PF7_IN, PF7_OUT,
1774 PF6_IN, PF6_OUT,
1775 PF5_IN, PF5_OUT,
1776 PF4_IN, PF4_OUT,
1777 PF3_IN, PF3_OUT,
1778 PF2_IN, PF2_OUT,
1779 PF1_IN, PF1_OUT,
1780 PF0_IN, PF0_OUT }
1783 { PINMUX_CFG_REG("PGCR7", 0xfffe38c0, 16, 4) {
1784 0, 0, 0, 0, 0, 0, 0, 0,
1785 0, 0, 0, 0, 0, 0, 0, 0,
1786 0, 0, 0, 0, 0, 0, 0, 0,
1787 0, 0, 0, 0, 0, 0, 0, 0,
1788 0, 0, 0, 0, 0, 0, 0, 0,
1789 0, 0, 0, 0, 0, 0, 0, 0,
1790 PG0MD_000, PG0MD_001, PG0MD_010, PG0MD_011,
1791 PG0MD_100, 0, 0, 0,
1792 0, 0, 0, 0, 0, 0, 0, 0 }
1795 { PINMUX_CFG_REG("PGCR6", 0xfffe38c2, 16, 4) {
1796 0, 0, 0, 0, 0, 0, 0, 0,
1797 0, 0, 0, 0, 0, 0, 0, 0,
1798 0, 0, 0, 0, 0, 0, 0, 0,
1799 0, 0, 0, 0, 0, 0, 0, 0,
1800 0, 0, 0, 0, 0, 0, 0, 0,
1801 0, 0, 0, 0, 0, 0, 0, 0,
1802 PG24MD_00, PG24MD_01, PG24MD_10, PG24MD_11, 0, 0, 0, 0,
1803 0, 0, 0, 0, 0, 0, 0, 0 }
1806 { PINMUX_CFG_REG("PGCR5", 0xfffe38c4, 16, 4) {
1807 PG23MD_00, PG23MD_01, PG23MD_10, PG23MD_11, 0, 0, 0, 0,
1808 0, 0, 0, 0, 0, 0, 0, 0,
1809 PG22MD_00, PG22MD_01, PG22MD_10, PG22MD_11, 0, 0, 0, 0,
1810 0, 0, 0, 0, 0, 0, 0, 0,
1811 PG21MD_00, PG21MD_01, PG21MD_10, PG21MD_11, 0, 0, 0, 0,
1812 0, 0, 0, 0, 0, 0, 0, 0,
1813 PG20MD_000, PG20MD_001, PG20MD_010, PG20MD_011,
1814 PG20MD_100, 0, 0, 0,
1815 0, 0, 0, 0, 0, 0, 0, 0 }
1818 { PINMUX_CFG_REG("PGCR4", 0xfffe38c6, 16, 4) {
1819 PG19MD_000, PG19MD_001, PG19MD_010, PG19MD_011,
1820 PG19MD_100, 0, 0, 0,
1821 0, 0, 0, 0, 0, 0, 0, 0,
1822 PG18MD_000, PG18MD_001, PG18MD_010, PG18MD_011,
1823 PG18MD_100, 0, 0, 0,
1824 0, 0, 0, 0, 0, 0, 0, 0,
1825 PG17MD_000, PG17MD_001, PG17MD_010, PG17MD_011,
1826 PG17MD_100, 0, 0, 0,
1827 0, 0, 0, 0, 0, 0, 0, 0,
1828 PG16MD_000, PG16MD_001, PG16MD_010, PG16MD_011,
1829 PG16MD_100, 0, 0, 0,
1830 0, 0, 0, 0, 0, 0, 0, 0 }
1833 { PINMUX_CFG_REG("PGCR3", 0xfffe38c8, 16, 4) {
1834 PG15MD_000, PG15MD_001, PG15MD_010, PG15MD_011,
1835 PG15MD_100, 0, 0, 0,
1836 0, 0, 0, 0, 0, 0, 0, 0,
1837 PG14MD_000, PG14MD_001, PG14MD_010, 0,
1838 PG14MD_100, 0, 0, 0,
1839 0, 0, 0, 0, 0, 0, 0, 0,
1840 PG13MD_000, PG13MD_001, PG13MD_010, 0,
1841 PG13MD_100, 0, 0, 0,
1842 0, 0, 0, 0, 0, 0, 0, 0,
1843 PG12MD_000, PG12MD_001, PG12MD_010, 0,
1844 PG12MD_100, 0, 0, 0,
1845 0, 0, 0, 0, 0, 0, 0, 0 }
1847 { PINMUX_CFG_REG("PGCR2", 0xfffe38ca, 16, 4) {
1848 PG11MD_000, PG11MD_001, PG11MD_010, PG11MD_011,
1849 PG11MD_100, PG11MD_101, 0, 0,
1850 0, 0, 0, 0, 0, 0, 0, 0,
1851 PG10MD_000, PG10MD_001, PG10MD_010, PG10MD_011,
1852 PG10MD_100, PG10MD_101, 0, 0,
1853 0, 0, 0, 0, 0, 0, 0, 0,
1854 PG9MD_000, PG9MD_001, PG9MD_010, PG9MD_011,
1855 PG9MD_100, PG9MD_101, 0, 0,
1856 0, 0, 0, 0, 0, 0, 0, 0,
1857 PG8MD_000, PG8MD_001, PG8MD_010, PG8MD_011,
1858 PG8MD_100, PG8MD_101, 0, 0,
1859 0, 0, 0, 0, 0, 0, 0, 0 }
1862 { PINMUX_CFG_REG("PGCR1", 0xfffe38cc, 16, 4) {
1863 PG7MD_00, PG7MD_01, PG7MD_10, PG7MD_11, 0, 0, 0, 0,
1864 0, 0, 0, 0, 0, 0, 0, 0,
1865 PG6MD_00, PG6MD_01, PG6MD_10, PG6MD_11, 0, 0, 0, 0,
1866 0, 0, 0, 0, 0, 0, 0, 0,
1867 PG5MD_00, PG5MD_01, PG5MD_10, PG5MD_11, 0, 0, 0, 0,
1868 0, 0, 0, 0, 0, 0, 0, 0,
1869 PG4MD_00, PG4MD_01, PG4MD_10, PG4MD_11, 0, 0, 0, 0,
1870 0, 0, 0, 0, 0, 0, 0, 0 }
1872 { PINMUX_CFG_REG("PGCR0", 0xfffe38ce, 16, 4) {
1873 PG3MD_00, PG3MD_01, PG3MD_10, PG3MD_11, 0, 0, 0, 0,
1874 0, 0, 0, 0, 0, 0, 0, 0,
1875 PG2MD_00, PG2MD_01, PG2MD_10, PG2MD_11, 0, 0, 0, 0,
1876 0, 0, 0, 0, 0, 0, 0, 0,
1877 PG1MD_00, PG1MD_01, PG1MD_10, PG1MD_11, 0, 0, 0, 0,
1878 0, 0, 0, 0, 0, 0, 0, 0,
1879 0, 0, 0, 0, 0, 0, 0, 0,
1880 0, 0, 0, 0, 0, 0, 0, 0 }
1882 { PINMUX_CFG_REG("PGIOR1", 0xfffe38d0, 16, 1) {
1883 0, 0, 0, 0, 0, 0, 0, 0,
1884 0, 0, 0, 0, 0, 0,
1885 PG24_IN, PG24_OUT,
1886 PG23_IN, PG23_OUT,
1887 PG22_IN, PG22_OUT,
1888 PG21_IN, PG21_OUT,
1889 PG20_IN, PG20_OUT,
1890 PG19_IN, PG19_OUT,
1891 PG18_IN, PG18_OUT,
1892 PG17_IN, PG17_OUT,
1893 PG16_IN, PG16_OUT }
1896 { PINMUX_CFG_REG("PGIOR0", 0xfffe38d2, 16, 1) {
1897 PG15_IN, PG15_OUT,
1898 PG14_IN, PG14_OUT,
1899 PG13_IN, PG13_OUT,
1900 PG12_IN, PG12_OUT,
1901 PG11_IN, PG11_OUT,
1902 PG10_IN, PG10_OUT,
1903 PG9_IN, PG9_OUT,
1904 PG8_IN, PG8_OUT,
1905 PG7_IN, PG7_OUT,
1906 PG6_IN, PG6_OUT,
1907 PG5_IN, PG5_OUT,
1908 PG4_IN, PG4_OUT,
1909 PG3_IN, PG3_OUT,
1910 PG2_IN, PG2_OUT,
1911 PG1_IN, PG1_OUT,
1912 PG0_IN, PG0_OUT
1916 { PINMUX_CFG_REG("PHCR1", 0xfffe38ec, 16, 4) {
1917 PH7MD_0, PH7MD_1, 0, 0, 0, 0, 0, 0,
1918 0, 0, 0, 0, 0, 0, 0, 0,
1919 PH6MD_0, PH6MD_1, 0, 0, 0, 0, 0, 0,
1920 0, 0, 0, 0, 0, 0, 0, 0,
1921 PH5MD_0, PH5MD_1, 0, 0, 0, 0, 0, 0,
1922 0, 0, 0, 0, 0, 0, 0, 0,
1923 PH4MD_0, PH4MD_1, 0, 0, 0, 0, 0, 0,
1924 0, 0, 0, 0, 0, 0, 0, 0 }
1927 { PINMUX_CFG_REG("PHCR0", 0xfffe38ee, 16, 4) {
1928 PH3MD_0, PH3MD_1, 0, 0, 0, 0, 0, 0,
1929 0, 0, 0, 0, 0, 0, 0, 0,
1930 PH2MD_0, PH2MD_1, 0, 0, 0, 0, 0, 0,
1931 0, 0, 0, 0, 0, 0, 0, 0,
1932 PH1MD_0, PH1MD_1, 0, 0, 0, 0, 0, 0,
1933 0, 0, 0, 0, 0, 0, 0, 0,
1934 PH0MD_0, PH0MD_1, 0, 0, 0, 0, 0, 0,
1935 0, 0, 0, 0, 0, 0, 0, 0 }
1938 { PINMUX_CFG_REG("PJCR2", 0xfffe390a, 16, 4) {
1939 PJ11MD_00, PJ11MD_01, PJ11MD_10, 0, 0, 0, 0, 0,
1940 0, 0, 0, 0, 0, 0, 0, 0,
1941 PJ10MD_00, PJ10MD_01, PJ10MD_10, 0, 0, 0, 0, 0,
1942 0, 0, 0, 0, 0, 0, 0, 0,
1943 PJ9MD_00, PJ9MD_01, PJ9MD_10, 0, 0, 0, 0, 0,
1944 0, 0, 0, 0, 0, 0, 0, 0,
1945 PJ8MD_00, PJ8MD_01, PJ8MD_10, 0, 0, 0, 0, 0,
1946 0, 0, 0, 0, 0, 0, 0, 0 }
1948 { PINMUX_CFG_REG("PJCR1", 0xfffe390c, 16, 4) {
1949 PJ7MD_00, PJ7MD_01, PJ7MD_10, 0, 0, 0, 0, 0,
1950 0, 0, 0, 0, 0, 0, 0, 0,
1951 PJ6MD_00, PJ6MD_01, PJ6MD_10, 0, 0, 0, 0, 0,
1952 0, 0, 0, 0, 0, 0, 0, 0,
1953 PJ5MD_00, PJ5MD_01, PJ5MD_10, 0, 0, 0, 0, 0,
1954 0, 0, 0, 0, 0, 0, 0, 0,
1955 PJ4MD_00, PJ4MD_01, PJ4MD_10, 0, 0, 0, 0, 0,
1956 0, 0, 0, 0, 0, 0, 0, 0 }
1958 { PINMUX_CFG_REG("PJCR0", 0xfffe390e, 16, 4) {
1959 PJ3MD_00, PJ3MD_01, PJ3MD_10, PJ3MD_11, 0, 0, 0, 0,
1960 0, 0, 0, 0, 0, 0, 0, 0,
1961 PJ2MD_000, PJ2MD_001, PJ2MD_010, PJ2MD_011,
1962 PJ2MD_100, PJ2MD_101, 0, 0,
1963 0, 0, 0, 0, 0, 0, 0, 0,
1964 PJ1MD_000, PJ1MD_001, PJ1MD_010, PJ1MD_011,
1965 PJ1MD_100, 0, 0, 0,
1966 0, 0, 0, 0, 0, 0, 0, 0,
1967 PJ0MD_000, PJ0MD_001, PJ0MD_010, PJ0MD_011,
1968 PJ0MD_100, PJ0MD_101, 0, 0,
1969 0, 0, 0, 0, 0, 0, 0, 0, }
1971 { PINMUX_CFG_REG("PJIOR0", 0xfffe3912, 16, 1) {
1972 0, 0, 0, 0, 0, 0, 0, 0,
1973 PJ11_IN, PJ11_OUT,
1974 PJ10_IN, PJ10_OUT,
1975 PJ9_IN, PJ9_OUT,
1976 PJ8_IN, PJ8_OUT,
1977 PJ7_IN, PJ7_OUT,
1978 PJ6_IN, PJ6_OUT,
1979 PJ5_IN, PJ5_OUT,
1980 PJ4_IN, PJ4_OUT,
1981 PJ3_IN, PJ3_OUT,
1982 PJ2_IN, PJ2_OUT,
1983 PJ1_IN, PJ1_OUT,
1984 PJ0_IN, PJ0_OUT }
1987 { PINMUX_CFG_REG("PKCR2", 0xfffe392a, 16, 4) {
1988 PK11MD_00, PK11MD_01, PK11MD_10, 0, 0, 0, 0, 0,
1989 0, 0, 0, 0, 0, 0, 0, 0,
1990 PK10MD_00, PK10MD_01, PK10MD_10, 0, 0, 0, 0, 0,
1991 0, 0, 0, 0, 0, 0, 0, 0,
1992 PK9MD_00, PK9MD_01, PK9MD_10, 0, 0, 0, 0, 0,
1993 0, 0, 0, 0, 0, 0, 0, 0,
1994 PK8MD_00, PK8MD_01, PK8MD_10, 0, 0, 0, 0, 0,
1995 0, 0, 0, 0, 0, 0, 0, 0 }
1998 { PINMUX_CFG_REG("PKCR1", 0xfffe392c, 16, 4) {
1999 PK7MD_00, PK7MD_01, PK7MD_10, 0, 0, 0, 0, 0,
2000 0, 0, 0, 0, 0, 0, 0, 0,
2001 PK6MD_00, PK6MD_01, PK6MD_10, 0, 0, 0, 0, 0,
2002 0, 0, 0, 0, 0, 0, 0, 0,
2003 PK5MD_00, PK5MD_01, PK5MD_10, 0, 0, 0, 0, 0,
2004 0, 0, 0, 0, 0, 0, 0, 0,
2005 PK4MD_00, PK4MD_01, PK4MD_10, 0, 0, 0, 0, 0,
2006 0, 0, 0, 0, 0, 0, 0, 0 }
2008 { PINMUX_CFG_REG("PKCR0", 0xfffe392e, 16, 4) {
2009 PK3MD_00, PK3MD_01, PK3MD_10, 0, 0, 0, 0, 0,
2010 0, 0, 0, 0, 0, 0, 0, 0,
2011 PK2MD_00, PK2MD_01, PK2MD_10, 0, 0, 0, 0, 0,
2012 0, 0, 0, 0, 0, 0, 0, 0,
2013 PK1MD_00, PK1MD_01, PK1MD_10, 0, 0, 0, 0, 0,
2014 0, 0, 0, 0, 0, 0, 0, 0,
2015 PK0MD_00, PK0MD_01, PK0MD_10, 0, 0, 0, 0, 0,
2016 0, 0, 0, 0, 0, 0, 0, 0 }
2019 { PINMUX_CFG_REG("PKIOR0", 0xfffe3932, 16, 1) {
2020 0, 0, 0, 0, 0, 0, 0, 0,
2021 PJ11_IN, PJ11_OUT,
2022 PJ10_IN, PJ10_OUT,
2023 PJ9_IN, PJ9_OUT,
2024 PJ8_IN, PJ8_OUT,
2025 PJ7_IN, PJ7_OUT,
2026 PJ6_IN, PJ6_OUT,
2027 PJ5_IN, PJ5_OUT,
2028 PJ4_IN, PJ4_OUT,
2029 PJ3_IN, PJ3_OUT,
2030 PJ2_IN, PJ2_OUT,
2031 PJ1_IN, PJ1_OUT,
2032 PJ0_IN, PJ0_OUT }
2037 static const struct pinmux_data_reg pinmux_data_regs[] = {
2038 { PINMUX_DATA_REG("PADR1", 0xfffe3814, 16) {
2039 0, 0, 0, 0, 0, 0, 0, PA3_DATA,
2040 0, 0, 0, 0, 0, 0, 0, PA2_DATA }
2043 { PINMUX_DATA_REG("PADR0", 0xfffe3816, 16) {
2044 0, 0, 0, 0, 0, 0, 0, PA1_DATA,
2045 0, 0, 0, 0, 0, 0, 0, PA0_DATA }
2048 { PINMUX_DATA_REG("PBDR1", 0xfffe3834, 16) {
2049 0, 0, 0, 0, 0, 0, 0, 0,
2050 0, PB22_DATA, PB21_DATA, PB20_DATA,
2051 PB19_DATA, PB18_DATA, PB17_DATA, PB16_DATA }
2054 { PINMUX_DATA_REG("PBDR0", 0xfffe3836, 16) {
2055 PB15_DATA, PB14_DATA, PB13_DATA, PB12_DATA,
2056 PB11_DATA, PB10_DATA, PB9_DATA, PB8_DATA,
2057 PB7_DATA, PB6_DATA, PB5_DATA, PB4_DATA,
2058 PB3_DATA, PB2_DATA, PB1_DATA, 0 }
2061 { PINMUX_DATA_REG("PCDR0", 0xfffe3856, 16) {
2062 0, 0, 0, 0,
2063 0, PC10_DATA, PC9_DATA, PC8_DATA,
2064 PC7_DATA, PC6_DATA, PC5_DATA, PC4_DATA,
2065 PC3_DATA, PC2_DATA, PC1_DATA, PC0_DATA }
2068 { PINMUX_DATA_REG("PDDR0", 0xfffe3876, 16) {
2069 PD15_DATA, PD14_DATA, PD13_DATA, PD12_DATA,
2070 PD11_DATA, PD10_DATA, PD9_DATA, PD8_DATA,
2071 PD7_DATA, PD6_DATA, PD5_DATA, PD4_DATA,
2072 PD3_DATA, PD2_DATA, PD1_DATA, PD0_DATA }
2075 { PINMUX_DATA_REG("PEDR0", 0xfffe3896, 16) {
2076 0, 0, 0, 0, 0, 0, 0, 0,
2077 0, 0, PE5_DATA, PE4_DATA,
2078 PE3_DATA, PE2_DATA, PE1_DATA, PE0_DATA }
2081 { PINMUX_DATA_REG("PFDR0", 0xfffe38b6, 16) {
2082 0, 0, 0, PF12_DATA,
2083 PF11_DATA, PF10_DATA, PF9_DATA, PF8_DATA,
2084 PF7_DATA, PF6_DATA, PF5_DATA, PF4_DATA,
2085 PF3_DATA, PF2_DATA, PF1_DATA, PF0_DATA }
2088 { PINMUX_DATA_REG("PGDR1", 0xfffe38d4, 16) {
2089 0, 0, 0, 0, 0, 0, 0, PG24_DATA,
2090 PG23_DATA, PG22_DATA, PG21_DATA, PG20_DATA,
2091 PG19_DATA, PG18_DATA, PG17_DATA, PG16_DATA }
2094 { PINMUX_DATA_REG("PGDR0", 0xfffe38d6, 16) {
2095 PG15_DATA, PG14_DATA, PG13_DATA, PG12_DATA,
2096 PG11_DATA, PG10_DATA, PG9_DATA, PG8_DATA,
2097 PG7_DATA, PG6_DATA, PG5_DATA, PG4_DATA,
2098 PG3_DATA, PG2_DATA, PG1_DATA, PG0_DATA }
2100 { PINMUX_DATA_REG("PJDR0", 0xfffe3916, 16) {
2101 0, 0, 0, PJ12_DATA,
2102 PJ11_DATA, PJ10_DATA, PJ9_DATA, PJ8_DATA,
2103 PJ7_DATA, PJ6_DATA, PJ5_DATA, PJ4_DATA,
2104 PJ3_DATA, PJ2_DATA, PJ1_DATA, PJ0_DATA }
2106 { PINMUX_DATA_REG("PKDR0", 0xfffe3936, 16) {
2107 0, 0, 0, PK12_DATA,
2108 PK11_DATA, PK10_DATA, PK9_DATA, PK8_DATA,
2109 PK7_DATA, PK6_DATA, PK5_DATA, PK4_DATA,
2110 PK3_DATA, PK2_DATA, PK1_DATA, PK0_DATA }
2115 const struct sh_pfc_soc_info sh7264_pinmux_info = {
2116 .name = "sh7264_pfc",
2117 .input = { PINMUX_INPUT_BEGIN, PINMUX_INPUT_END, FORCE_IN },
2118 .output = { PINMUX_OUTPUT_BEGIN, PINMUX_OUTPUT_END, FORCE_OUT },
2119 .function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END },
2121 .pins = pinmux_pins,
2122 .nr_pins = ARRAY_SIZE(pinmux_pins),
2123 .func_gpios = pinmux_func_gpios,
2124 .nr_func_gpios = ARRAY_SIZE(pinmux_func_gpios),
2126 .cfg_regs = pinmux_config_regs,
2127 .data_regs = pinmux_data_regs,
2129 .pinmux_data = pinmux_data,
2130 .pinmux_data_size = ARRAY_SIZE(pinmux_data),