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