]> git.kernelconcepts.de Git - karo-tx-linux.git/blob - drivers/pinctrl/sh-pfc/pfc-sh7264.c
Merge branch 'ras-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git...
[karo-tx-linux.git] / drivers / pinctrl / sh-pfc / pfc-sh7264.c
1 /*
2  * SH7264 Pinmux
3  *
4  *  Copyright (C) 2012  Renesas Electronics Europe Ltd
5  *
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  */
10
11 #include <linux/kernel.h>
12 #include <linux/gpio.h>
13 #include <cpu/sh7264.h>
14
15 #include "sh_pfc.h"
16
17 enum {
18         PINMUX_RESERVED = 0,
19
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,
72
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,
122
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,
172
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,
179
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,
185
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,
208
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,
225
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,
237
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,
255
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,
272
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,
280
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,
288
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,
303
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,
329
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,
356
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,
396
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,
406
407         /* Port I - not on device */
408
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,
422
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,
438
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,
452
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,
466
467         PINMUX_MARK_BEGIN,
468         /* Port A */
469
470         /* Port B */
471
472         /* Port C */
473
474         /* Port D */
475
476         /* Port E */
477
478         /* Port F */
479
480         /* Port G */
481
482         /* Port H */
483         PHAN7_MARK, PHAN6_MARK, PHAN5_MARK, PHAN4_MARK,
484         PHAN3_MARK, PHAN2_MARK, PHAN1_MARK, PHAN0_MARK,
485
486         /* Port I - not on device */
487
488         /* Port J */
489
490         /* Port K */
491
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,
495
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,
498
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,
503
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,
511
512         CRX0X1_MARK,
513
514         /* DMAC */
515         TEND0_MARK, DACK0_MARK, DREQ0_MARK,
516         TEND1_MARK, DACK1_MARK, DREQ1_MARK,
517
518         /* ADC */
519         ADTRG_MARK,
520
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,
544
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,
552
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,
561
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,
567
568         /* IIC3 */
569         SCL0_MARK, SCL1_MARK, SCL2_MARK,
570         SDA0_MARK, SDA1_MARK, SDA2_MARK,
571
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,
581
582         /* SIOF */ /* NOTE Shares AUDIO_CLK with SSI */
583         SIOFTXD_MARK, SIOFRXD_MARK, SIOFSYNC_MARK, SIOFSCK_MARK,
584
585         /* SPDIF */ /* NOTE Shares AUDIO_CLK with SSI */
586         SPDIF_IN_MARK, SPDIF_OUT_MARK,
587
588         /* NANDFMC */ /* NOTE Controller is not available in boot mode 0 */
589         FCE_MARK,
590         FRB_MARK,
591
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,
605 };
606
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),
613
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),
618
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),
641
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),
673
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),
691
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),
696
697         PINMUX_DATA(PE4_DATA, PE4MD_00),
698         PINMUX_DATA(SCL2_MARK, PE4MD_01),
699         PINMUX_DATA(DV_VSYNC_MARK, PE4MD_11),
700
701         PINMUX_DATA(PE3_DATA, PE3MD_00),
702         PINMUX_DATA(SDA1_MARK, PE3MD_01),
703         PINMUX_DATA(IRQ3_PE_MARK, PE3MD_11),
704
705         PINMUX_DATA(PE2_DATA, PE2MD_00),
706         PINMUX_DATA(SCL1_MARK, PE2MD_01),
707         PINMUX_DATA(IRQ2_PE_MARK, PE2MD_11),
708
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),
715
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),
720
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),
727
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),
734
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),
741
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),
748
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),
753
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),
759
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),
765
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),
771
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),
777
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),
783
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),
790
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),
797
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),
804
805         /* Port G */
806         PINMUX_DATA(PG24_DATA, PG24MD_00),
807         PINMUX_DATA(MOSI0_MARK, PG24MD_01),
808         PINMUX_DATA(TIOC0D_MARK, PG24MD_10),
809
810         PINMUX_DATA(PG23_DATA, PG23MD_00),
811         PINMUX_DATA(MOSI1_MARK, PG23MD_01),
812         PINMUX_DATA(TIOC0C_MARK, PG23MD_10),
813
814         PINMUX_DATA(PG22_DATA, PG22MD_00),
815         PINMUX_DATA(SSL10_MARK, PG22MD_01),
816         PINMUX_DATA(TIOC0B_MARK, PG22MD_10),
817
818         PINMUX_DATA(PG21_DATA, PG21MD_00),
819         PINMUX_DATA(RSPCK1_MARK, PG21MD_01),
820         PINMUX_DATA(TIOC0A_MARK, PG21MD_10),
821
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),
826
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),
832
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),
838
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),
844
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),
850
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),
856
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),
861
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),
866
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),
871
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),
878
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),
885
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),
891
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),
897
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),
902
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),
907
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),
912
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),
917
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),
922
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),
927
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),
932
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),
938
939         /* Port H */
940         PINMUX_DATA(PH7_DATA, PH7MD_0),
941         PINMUX_DATA(PHAN7_MARK, PH7MD_1),
942
943         PINMUX_DATA(PH6_DATA, PH6MD_0),
944         PINMUX_DATA(PHAN6_MARK, PH6MD_1),
945
946         PINMUX_DATA(PH5_DATA, PH5MD_0),
947         PINMUX_DATA(PHAN5_MARK, PH5MD_1),
948
949         PINMUX_DATA(PH4_DATA, PH4MD_0),
950         PINMUX_DATA(PHAN4_MARK, PH4MD_1),
951
952         PINMUX_DATA(PH3_DATA, PH3MD_0),
953         PINMUX_DATA(PHAN3_MARK, PH3MD_1),
954
955         PINMUX_DATA(PH2_DATA, PH2MD_0),
956         PINMUX_DATA(PHAN2_MARK, PH2MD_1),
957
958         PINMUX_DATA(PH1_DATA, PH1MD_0),
959         PINMUX_DATA(PHAN1_MARK, PH1MD_1),
960
961         PINMUX_DATA(PH0_DATA, PH0MD_0),
962         PINMUX_DATA(PHAN0_MARK, PH0MD_1),
963
964         /* Port I - not on device */
965
966         /* Port J */
967         PINMUX_DATA(PJ11_DATA, PJ11MD_00),
968         PINMUX_DATA(PWM2H_MARK, PJ11MD_01),
969         PINMUX_DATA(DACK1_MARK, PJ11MD_10),
970
971         PINMUX_DATA(PJ10_DATA, PJ10MD_00),
972         PINMUX_DATA(PWM2G_MARK, PJ10MD_01),
973         PINMUX_DATA(DREQ1_MARK, PJ10MD_10),
974
975         PINMUX_DATA(PJ9_DATA, PJ9MD_00),
976         PINMUX_DATA(PWM2F_MARK, PJ9MD_01),
977         PINMUX_DATA(TEND1_MARK, PJ9MD_10),
978
979         PINMUX_DATA(PJ8_DATA, PJ8MD_00),
980         PINMUX_DATA(PWM2E_MARK, PJ8MD_01),
981         PINMUX_DATA(RTS3_MARK, PJ8MD_10),
982
983         PINMUX_DATA(PJ7_DATA, PJ7MD_00),
984         PINMUX_DATA(TIOC1B_MARK, PJ7MD_01),
985         PINMUX_DATA(CTS3_MARK, PJ7MD_10),
986
987         PINMUX_DATA(PJ6_DATA, PJ6MD_00),
988         PINMUX_DATA(TIOC1A_MARK, PJ6MD_01),
989         PINMUX_DATA(SCK3_MARK, PJ6MD_10),
990
991         PINMUX_DATA(PJ5_DATA, PJ5MD_00),
992         PINMUX_DATA(IERXD_MARK, PJ5MD_01),
993         PINMUX_DATA(TXD3_MARK, PJ5MD_10),
994
995         PINMUX_DATA(PJ4_DATA, PJ4MD_00),
996         PINMUX_DATA(IETXD_MARK, PJ4MD_01),
997         PINMUX_DATA(RXD3_MARK, PJ4MD_10),
998
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),
1003
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),
1010
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),
1016
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),
1023
1024         /* Port K */
1025         PINMUX_DATA(PK11_DATA, PK11MD_00),
1026         PINMUX_DATA(PWM2D_MARK, PK11MD_01),
1027         PINMUX_DATA(SSITXD0_MARK, PK11MD_10),
1028
1029         PINMUX_DATA(PK10_DATA, PK10MD_00),
1030         PINMUX_DATA(PWM2C_MARK, PK10MD_01),
1031         PINMUX_DATA(SSIRXD0_MARK, PK10MD_10),
1032
1033         PINMUX_DATA(PK9_DATA, PK9MD_00),
1034         PINMUX_DATA(PWM2B_MARK, PK9MD_01),
1035         PINMUX_DATA(SSIWS0_MARK, PK9MD_10),
1036
1037         PINMUX_DATA(PK8_DATA, PK8MD_00),
1038         PINMUX_DATA(PWM2A_MARK, PK8MD_01),
1039         PINMUX_DATA(SSISCK0_MARK, PK8MD_10),
1040
1041         PINMUX_DATA(PK7_DATA, PK7MD_00),
1042         PINMUX_DATA(PWM1H_MARK, PK7MD_01),
1043         PINMUX_DATA(SD_CD_MARK, PK7MD_10),
1044
1045         PINMUX_DATA(PK6_DATA, PK6MD_00),
1046         PINMUX_DATA(PWM1G_MARK, PK6MD_01),
1047         PINMUX_DATA(SD_WP_MARK, PK6MD_10),
1048
1049         PINMUX_DATA(PK5_DATA, PK5MD_00),
1050         PINMUX_DATA(PWM1F_MARK, PK5MD_01),
1051         PINMUX_DATA(SD_D1_MARK, PK5MD_10),
1052
1053         PINMUX_DATA(PK4_DATA, PK4MD_00),
1054         PINMUX_DATA(PWM1E_MARK, PK4MD_01),
1055         PINMUX_DATA(SD_D0_MARK, PK4MD_10),
1056
1057         PINMUX_DATA(PK3_DATA, PK3MD_00),
1058         PINMUX_DATA(PWM1D_MARK, PK3MD_01),
1059         PINMUX_DATA(SD_CLK_MARK, PK3MD_10),
1060
1061         PINMUX_DATA(PK2_DATA, PK2MD_00),
1062         PINMUX_DATA(PWM1C_MARK, PK2MD_01),
1063         PINMUX_DATA(SD_CMD_MARK, PK2MD_10),
1064
1065         PINMUX_DATA(PK1_DATA, PK1MD_00),
1066         PINMUX_DATA(PWM1B_MARK, PK1MD_01),
1067         PINMUX_DATA(SD_D3_MARK, PK1MD_10),
1068
1069         PINMUX_DATA(PK0_DATA, PK0MD_00),
1070         PINMUX_DATA(PWM1A_MARK, PK0MD_01),
1071         PINMUX_DATA(SD_D2_MARK, PK0MD_10),
1072 };
1073
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),
1080
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),
1104
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),
1117
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),
1135
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),
1143
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),
1158
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),
1185
1186         /* Port H - Port H does not have a Data Register */
1187
1188         /* Port I - not on device */
1189
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),
1203
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),
1217 };
1218
1219 #define PINMUX_FN_BASE  ARRAY_SIZE(pinmux_pins)
1220
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),
1230
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),
1243
1244         /* WDT */
1245         GPIO_FN(WDTOVF),
1246
1247         /* CAN */
1248         GPIO_FN(CTX1),
1249         GPIO_FN(CRX1),
1250         GPIO_FN(CTX0),
1251         GPIO_FN(CRX0),
1252         GPIO_FN(CRX0_CRX1),
1253
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),
1261
1262         /* ADC */
1263         GPIO_FN(ADTRG),
1264
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),
1292
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),
1309
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),
1333
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),
1355
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),
1381
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),
1392
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),
1400
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),
1416
1417         /* SIOF */ /* NOTE Shares AUDIO_CLK with SSI */
1418         GPIO_FN(SIOFTXD),
1419         GPIO_FN(SIOFRXD),
1420         GPIO_FN(SIOFSYNC),
1421         GPIO_FN(SIOFSCK),
1422
1423         /* SPDIF */ /* NOTE Shares AUDIO_CLK with SSI */
1424         GPIO_FN(SPDIF_IN),
1425         GPIO_FN(SPDIF_OUT),
1426
1427         /* NANDFMC */ /* NOTE Controller is not available in boot mode 0 */
1428         GPIO_FN(FCE),
1429         GPIO_FN(FRB),
1430
1431         /* VDC3 */
1432         GPIO_FN(DV_CLK),
1433         GPIO_FN(DV_VSYNC),
1434         GPIO_FN(DV_HSYNC),
1435
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),
1444
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),
1450
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),
1467
1468         GPIO_FN(LCD_M_DISP),
1469 };
1470
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 }
1480         },
1481
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 }
1491
1492         },
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 }
1502         },
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 }
1512         },
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 }
1522         },
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 }
1532         },
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 }
1542         },
1543
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 }
1555         },
1556
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 }
1574         },
1575
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 }
1585         },
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 }
1595         },
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 }
1605         },
1606
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
1620          }
1621         },
1622
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 }
1632         },
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 }
1642         },
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 }
1652         },
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 }
1662         },
1663
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 }
1681         },
1682
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 }
1692         },
1693
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 }
1704         },
1705
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 }
1716         },
1717
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 }
1722         },
1723
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 }
1736         },
1737
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 }
1751         },
1752
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
1763          }
1764         },
1765
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 }
1781         },
1782
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 }
1793         },
1794
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 }
1804         },
1805
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 }
1816         },
1817
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 }
1831         },
1832
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 }
1846         },
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 }
1860         },
1861
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 }
1871         },
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 }
1881         },
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 }
1894         },
1895
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
1913          }
1914         },
1915
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 }
1925         },
1926
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 }
1936         },
1937
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 }
1947         },
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 }
1957         },
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, }
1970         },
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 }
1985         },
1986
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 }
1996         },
1997
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 }
2007         },
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 }
2017         },
2018
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 }
2033         },
2034         {}
2035 };
2036
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 }
2041         },
2042
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 }
2046         },
2047
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 }
2052         },
2053
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 }
2059         },
2060
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 }
2066         },
2067
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 }
2073         },
2074
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 }
2079         },
2080
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 }
2086         },
2087
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 }
2092         },
2093
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 }
2099         },
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 }
2105         },
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 }
2111         },
2112         { }
2113 };
2114
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 },
2120
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),
2125
2126         .cfg_regs = pinmux_config_regs,
2127         .data_regs = pinmux_data_regs,
2128
2129         .pinmux_data = pinmux_data,
2130         .pinmux_data_size = ARRAY_SIZE(pinmux_data),
2131 };