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