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