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