3986802b448a265c8061cb11ff26fabe7cdb90c0
[platform/kernel/linux-starfive.git] / drivers / pinctrl / renesas / pfc-sh7203.c
1 // SPDX-License-Identifier: GPL-2.0
2 /*
3  * SH7203 Pinmux
4  *
5  *  Copyright (C) 2008  Magnus Damm
6  */
7
8 #include <linux/kernel.h>
9 #include <cpu/sh7203.h>
10
11 #include "sh_pfc.h"
12
13 enum {
14         PINMUX_RESERVED = 0,
15
16         PINMUX_DATA_BEGIN,
17         PA7_DATA, PA6_DATA, PA5_DATA, PA4_DATA,
18         PA3_DATA, PA2_DATA, PA1_DATA, PA0_DATA,
19         PB12_DATA,
20         PB11_DATA, PB10_DATA, PB9_DATA, PB8_DATA,
21         PB7_DATA, PB6_DATA, PB5_DATA, PB4_DATA,
22         PB3_DATA, PB2_DATA, PB1_DATA, PB0_DATA,
23         PC14_DATA, PC13_DATA, PC12_DATA,
24         PC11_DATA, PC10_DATA, PC9_DATA, PC8_DATA,
25         PC7_DATA, PC6_DATA, PC5_DATA, PC4_DATA,
26         PC3_DATA, PC2_DATA, PC1_DATA, PC0_DATA,
27         PD15_DATA, PD14_DATA, PD13_DATA, PD12_DATA,
28         PD11_DATA, PD10_DATA, PD9_DATA, PD8_DATA,
29         PD7_DATA, PD6_DATA, PD5_DATA, PD4_DATA,
30         PD3_DATA, PD2_DATA, PD1_DATA, PD0_DATA,
31         PE15_DATA, PE14_DATA, PE13_DATA, PE12_DATA,
32         PE11_DATA, PE10_DATA, PE9_DATA, PE8_DATA,
33         PE7_DATA, PE6_DATA, PE5_DATA, PE4_DATA,
34         PE3_DATA, PE2_DATA, PE1_DATA, PE0_DATA,
35         PF30_DATA, PF29_DATA, PF28_DATA,
36         PF27_DATA, PF26_DATA, PF25_DATA, PF24_DATA,
37         PF23_DATA, PF22_DATA, PF21_DATA, PF20_DATA,
38         PF19_DATA, PF18_DATA, PF17_DATA, PF16_DATA,
39         PF15_DATA, PF14_DATA, PF13_DATA, PF12_DATA,
40         PF11_DATA, PF10_DATA, PF9_DATA, PF8_DATA,
41         PF7_DATA, PF6_DATA, PF5_DATA, PF4_DATA,
42         PF3_DATA, PF2_DATA, PF1_DATA, PF0_DATA,
43         PINMUX_DATA_END,
44
45         PINMUX_INPUT_BEGIN,
46         FORCE_IN,
47         PA7_IN, PA6_IN, PA5_IN, PA4_IN,
48         PA3_IN, PA2_IN, PA1_IN, PA0_IN,
49         PB11_IN, PB10_IN, PB9_IN, PB8_IN,
50         PC14_IN, PC13_IN, PC12_IN,
51         PC11_IN, PC10_IN, PC9_IN, PC8_IN,
52         PC7_IN, PC6_IN, PC5_IN, PC4_IN,
53         PC3_IN, PC2_IN, PC1_IN, PC0_IN,
54         PD15_IN, PD14_IN, PD13_IN, PD12_IN,
55         PD11_IN, PD10_IN, PD9_IN, PD8_IN,
56         PD7_IN, PD6_IN, PD5_IN, PD4_IN,
57         PD3_IN, PD2_IN, PD1_IN, PD0_IN,
58         PE15_IN, PE14_IN, PE13_IN, PE12_IN,
59         PE11_IN, PE10_IN, PE9_IN, PE8_IN,
60         PE7_IN, PE6_IN, PE5_IN, PE4_IN,
61         PE3_IN, PE2_IN, PE1_IN, PE0_IN,
62         PF30_IN, PF29_IN, PF28_IN,
63         PF27_IN, PF26_IN, PF25_IN, PF24_IN,
64         PF23_IN, PF22_IN, PF21_IN, PF20_IN,
65         PF19_IN, PF18_IN, PF17_IN, PF16_IN,
66         PF15_IN, PF14_IN, PF13_IN, PF12_IN,
67         PF11_IN, PF10_IN, PF9_IN, PF8_IN,
68         PF7_IN, PF6_IN, PF5_IN, PF4_IN,
69         PF3_IN, PF2_IN, PF1_IN, PF0_IN,
70         PINMUX_INPUT_END,
71
72         PINMUX_OUTPUT_BEGIN,
73         FORCE_OUT,
74         PB11_OUT, PB10_OUT, PB9_OUT, PB8_OUT,
75         PC14_OUT, PC13_OUT, PC12_OUT,
76         PC11_OUT, PC10_OUT, PC9_OUT, PC8_OUT,
77         PC7_OUT, PC6_OUT, PC5_OUT, PC4_OUT,
78         PC3_OUT, PC2_OUT, PC1_OUT, PC0_OUT,
79         PD15_OUT, PD14_OUT, PD13_OUT, PD12_OUT,
80         PD11_OUT, PD10_OUT, PD9_OUT, PD8_OUT,
81         PD7_OUT, PD6_OUT, PD5_OUT, PD4_OUT,
82         PD3_OUT, PD2_OUT, PD1_OUT, PD0_OUT,
83         PE15_OUT, PE14_OUT, PE13_OUT, PE12_OUT,
84         PE11_OUT, PE10_OUT, PE9_OUT, PE8_OUT,
85         PE7_OUT, PE6_OUT, PE5_OUT, PE4_OUT,
86         PE3_OUT, PE2_OUT, PE1_OUT, PE0_OUT,
87         PF30_OUT, PF29_OUT, PF28_OUT,
88         PF27_OUT, PF26_OUT, PF25_OUT, PF24_OUT,
89         PF23_OUT, PF22_OUT, PF21_OUT, PF20_OUT,
90         PF19_OUT, PF18_OUT, PF17_OUT, PF16_OUT,
91         PF15_OUT, PF14_OUT, PF13_OUT, PF12_OUT,
92         PF11_OUT, PF10_OUT, PF9_OUT, PF8_OUT,
93         PF7_OUT, PF6_OUT, PF5_OUT, PF4_OUT,
94         PF3_OUT, PF2_OUT, PF1_OUT, PF0_OUT,
95         PINMUX_OUTPUT_END,
96
97         PINMUX_FUNCTION_BEGIN,
98         PB11_IOR_IN, PB11_IOR_OUT,
99         PB10_IOR_IN, PB10_IOR_OUT,
100         PB9_IOR_IN, PB9_IOR_OUT,
101         PB8_IOR_IN, PB8_IOR_OUT,
102         PB12MD_00, PB12MD_01, PB12MD_10, PB12MD_11,
103         PB11MD_0, PB11MD_1,
104         PB10MD_0, PB10MD_1,
105         PB9MD_00, PB9MD_01, PB9MD_10,
106         PB8MD_00, PB8MD_01, PB8MD_10,
107         PB7MD_00, PB7MD_01, PB7MD_10, PB7MD_11,
108         PB6MD_00, PB6MD_01, PB6MD_10, PB6MD_11,
109         PB5MD_00, PB5MD_01, PB5MD_10, PB5MD_11,
110         PB4MD_00, PB4MD_01, PB4MD_10, PB4MD_11,
111         PB3MD_00, PB3MD_01, PB3MD_10, PB3MD_11,
112         PB2MD_00, PB2MD_01, PB2MD_10, PB2MD_11,
113         PB1MD_00, PB1MD_01, PB1MD_10, PB1MD_11,
114         PB0MD_00, PB0MD_01, PB0MD_10, PB0MD_11,
115
116         PB12IRQ_00, PB12IRQ_01, PB12IRQ_10,
117
118         PC14MD_0, PC14MD_1,
119         PC13MD_0, PC13MD_1,
120         PC12MD_0, PC12MD_1,
121         PC11MD_00, PC11MD_01, PC11MD_10,
122         PC10MD_00, PC10MD_01, PC10MD_10,
123         PC9MD_0, PC9MD_1,
124         PC8MD_0, PC8MD_1,
125         PC7MD_0, PC7MD_1,
126         PC6MD_0, PC6MD_1,
127         PC5MD_0, PC5MD_1,
128         PC4MD_0, PC4MD_1,
129         PC3MD_0, PC3MD_1,
130         PC2MD_0, PC2MD_1,
131         PC1MD_0, PC1MD_1,
132         PC0MD_00, PC0MD_01, PC0MD_10,
133
134         PD15MD_000, PD15MD_001, PD15MD_010, PD15MD_100, PD15MD_101,
135         PD14MD_000, PD14MD_001, PD14MD_010, PD14MD_101,
136         PD13MD_000, PD13MD_001, PD13MD_010, PD13MD_100, PD13MD_101,
137         PD12MD_000, PD12MD_001, PD12MD_010, PD12MD_100, PD12MD_101,
138         PD11MD_000, PD11MD_001, PD11MD_010, PD11MD_100, PD11MD_101,
139         PD10MD_000, PD10MD_001, PD10MD_010, PD10MD_100, PD10MD_101,
140         PD9MD_000, PD9MD_001, PD9MD_010, PD9MD_100, PD9MD_101,
141         PD8MD_000, PD8MD_001, PD8MD_010, PD8MD_100, PD8MD_101,
142         PD7MD_000, PD7MD_001, PD7MD_010, PD7MD_011, PD7MD_100, PD7MD_101,
143         PD6MD_000, PD6MD_001, PD6MD_010, PD6MD_011, PD6MD_100, PD6MD_101,
144         PD5MD_000, PD5MD_001, PD5MD_010, PD5MD_011, PD5MD_100, PD5MD_101,
145         PD4MD_000, PD4MD_001, PD4MD_010, PD4MD_011, PD4MD_100, PD4MD_101,
146         PD3MD_000, PD3MD_001, PD3MD_010, PD3MD_011, PD3MD_100, PD3MD_101,
147         PD2MD_000, PD2MD_001, PD2MD_010, PD2MD_011, PD2MD_100, PD2MD_101,
148         PD1MD_000, PD1MD_001, PD1MD_010, PD1MD_011, PD1MD_100, PD1MD_101,
149         PD0MD_000, PD0MD_001, PD0MD_010, PD0MD_011, PD0MD_100, PD0MD_101,
150
151         PE15MD_00, PE15MD_01, PE15MD_11,
152         PE14MD_00, PE14MD_01, PE14MD_11,
153         PE13MD_00, PE13MD_11,
154         PE12MD_00, PE12MD_11,
155         PE11MD_000, PE11MD_001, PE11MD_010, PE11MD_100,
156         PE10MD_000, PE10MD_001, PE10MD_010, PE10MD_100,
157         PE9MD_00, PE9MD_01, PE9MD_10, PE9MD_11,
158         PE8MD_00, PE8MD_01, PE8MD_10, PE8MD_11,
159         PE7MD_000, PE7MD_001, PE7MD_010, PE7MD_011, PE7MD_100,
160         PE6MD_000, PE6MD_001, PE6MD_010, PE6MD_011, PE6MD_100,
161         PE5MD_000, PE5MD_001, PE5MD_010, PE5MD_011, PE5MD_100,
162         PE4MD_000, PE4MD_001, PE4MD_010, PE4MD_011, PE4MD_100,
163         PE3MD_00, PE3MD_01, PE3MD_11,
164         PE2MD_00, PE2MD_01, PE2MD_11,
165         PE1MD_00, PE1MD_01, PE1MD_10, PE1MD_11,
166         PE0MD_000, PE0MD_001, PE0MD_011, PE0MD_100,
167
168         PF30MD_0, PF30MD_1,
169         PF29MD_0, PF29MD_1,
170         PF28MD_0, PF28MD_1,
171         PF27MD_0, PF27MD_1,
172         PF26MD_0, PF26MD_1,
173         PF25MD_0, PF25MD_1,
174         PF24MD_0, PF24MD_1,
175         PF23MD_00, PF23MD_01, PF23MD_10,
176         PF22MD_00, PF22MD_01, PF22MD_10,
177         PF21MD_00, PF21MD_01, PF21MD_10,
178         PF20MD_00, PF20MD_01, PF20MD_10,
179         PF19MD_00, PF19MD_01, PF19MD_10,
180         PF18MD_00, PF18MD_01, PF18MD_10,
181         PF17MD_00, PF17MD_01, PF17MD_10,
182         PF16MD_00, PF16MD_01, PF16MD_10,
183         PF15MD_00, PF15MD_01, PF15MD_10,
184         PF14MD_00, PF14MD_01, PF14MD_10,
185         PF13MD_00, PF13MD_01, PF13MD_10,
186         PF12MD_00, PF12MD_01, PF12MD_10,
187         PF11MD_00, PF11MD_01, PF11MD_10,
188         PF10MD_00, PF10MD_01, PF10MD_10,
189         PF9MD_00, PF9MD_01, PF9MD_10,
190         PF8MD_00, PF8MD_01, PF8MD_10,
191         PF7MD_00, PF7MD_01, PF7MD_10, PF7MD_11,
192         PF6MD_00, PF6MD_01, PF6MD_10, PF6MD_11,
193         PF5MD_00, PF5MD_01, PF5MD_10, PF5MD_11,
194         PF4MD_00, PF4MD_01, PF4MD_10, PF4MD_11,
195         PF3MD_00, PF3MD_01, PF3MD_10, PF3MD_11,
196         PF2MD_00, PF2MD_01, PF2MD_10, PF2MD_11,
197         PF1MD_00, PF1MD_01, PF1MD_10, PF1MD_11,
198         PF0MD_00, PF0MD_01, PF0MD_10, PF0MD_11,
199         PINMUX_FUNCTION_END,
200
201         PINMUX_MARK_BEGIN,
202         PINT7_PB_MARK, PINT6_PB_MARK, PINT5_PB_MARK, PINT4_PB_MARK,
203         PINT3_PB_MARK, PINT2_PB_MARK, PINT1_PB_MARK, PINT0_PB_MARK,
204         PINT7_PD_MARK, PINT6_PD_MARK, PINT5_PD_MARK, PINT4_PD_MARK,
205         PINT3_PD_MARK, PINT2_PD_MARK, PINT1_PD_MARK, PINT0_PD_MARK,
206         IRQ7_PB_MARK, IRQ6_PB_MARK, IRQ5_PB_MARK, IRQ4_PB_MARK,
207         IRQ3_PB_MARK, IRQ2_PB_MARK, IRQ1_PB_MARK, IRQ0_PB_MARK,
208         IRQ7_PD_MARK, IRQ6_PD_MARK, IRQ5_PD_MARK, IRQ4_PD_MARK,
209         IRQ3_PD_MARK, IRQ2_PD_MARK, IRQ1_PD_MARK, IRQ0_PD_MARK,
210         IRQ7_PE_MARK, IRQ6_PE_MARK, IRQ5_PE_MARK, IRQ4_PE_MARK,
211         IRQ3_PE_MARK, IRQ2_PE_MARK, IRQ1_PE_MARK, IRQ0_PE_MARK,
212         WDTOVF_MARK, IRQOUT_MARK, REFOUT_MARK, IRQOUT_REFOUT_MARK,
213         UBCTRG_MARK,
214         CTX1_MARK, CRX1_MARK, CTX0_MARK, CTX0_CTX1_MARK,
215         CRX0_MARK, CRX0_CRX1_MARK,
216         SDA3_MARK, SCL3_MARK,
217         SDA2_MARK, SCL2_MARK,
218         SDA1_MARK, SCL1_MARK,
219         SDA0_MARK, SCL0_MARK,
220         TEND0_PD_MARK, TEND0_PE_MARK, DACK0_PD_MARK, DACK0_PE_MARK,
221         DREQ0_PD_MARK, DREQ0_PE_MARK, TEND1_PD_MARK, TEND1_PE_MARK,
222         DACK1_PD_MARK, DACK1_PE_MARK, DREQ1_PD_MARK, DREQ1_PE_MARK,
223         DACK2_MARK, DREQ2_MARK, DACK3_MARK, DREQ3_MARK,
224         ADTRG_PD_MARK, ADTRG_PE_MARK,
225         D31_MARK, D30_MARK, D29_MARK, D28_MARK,
226         D27_MARK, D26_MARK, D25_MARK, D24_MARK,
227         D23_MARK, D22_MARK, D21_MARK, D20_MARK,
228         D19_MARK, D18_MARK, D17_MARK, D16_MARK,
229         A25_MARK, A24_MARK, A23_MARK, A22_MARK,
230         A21_MARK, CS4_MARK, MRES_MARK, BS_MARK,
231         IOIS16_MARK, CS1_MARK, CS6_CE1B_MARK, CE2B_MARK,
232         CS5_CE1A_MARK, CE2A_MARK, FRAME_MARK, WAIT_MARK,
233         RDWR_MARK, CKE_MARK, CASU_MARK, BREQ_MARK,
234         RASU_MARK, BACK_MARK, CASL_MARK, RASL_MARK,
235         WE3_DQMUU_AH_ICIO_WR_MARK, WE2_DQMUL_ICIORD_MARK,
236         WE1_DQMLU_WE_MARK, WE0_DQMLL_MARK,
237         CS3_MARK, CS2_MARK, A1_MARK, A0_MARK, CS7_MARK,
238         TIOC4D_MARK, TIOC4C_MARK, TIOC4B_MARK, TIOC4A_MARK,
239         TIOC3D_MARK, TIOC3C_MARK, TIOC3B_MARK, TIOC3A_MARK,
240         TIOC2B_MARK, TIOC1B_MARK, TIOC2A_MARK, TIOC1A_MARK,
241         TIOC0D_MARK, TIOC0C_MARK, TIOC0B_MARK, TIOC0A_MARK,
242         TCLKD_PD_MARK, TCLKC_PD_MARK, TCLKB_PD_MARK, TCLKA_PD_MARK,
243         TCLKD_PF_MARK, TCLKC_PF_MARK, TCLKB_PF_MARK, TCLKA_PF_MARK,
244         SCS0_PD_MARK, SSO0_PD_MARK, SSI0_PD_MARK, SSCK0_PD_MARK,
245         SCS0_PF_MARK, SSO0_PF_MARK, SSI0_PF_MARK, SSCK0_PF_MARK,
246         SCS1_PD_MARK, SSO1_PD_MARK, SSI1_PD_MARK, SSCK1_PD_MARK,
247         SCS1_PF_MARK, SSO1_PF_MARK, SSI1_PF_MARK, SSCK1_PF_MARK,
248         TXD0_MARK, RXD0_MARK, SCK0_MARK,
249         TXD1_MARK, RXD1_MARK, SCK1_MARK,
250         TXD2_MARK, RXD2_MARK, SCK2_MARK,
251         RTS3_MARK, CTS3_MARK, TXD3_MARK,
252         RXD3_MARK, SCK3_MARK,
253         AUDIO_CLK_MARK,
254         SSIDATA3_MARK, SSIWS3_MARK, SSISCK3_MARK,
255         SSIDATA2_MARK, SSIWS2_MARK, SSISCK2_MARK,
256         SSIDATA1_MARK, SSIWS1_MARK, SSISCK1_MARK,
257         SSIDATA0_MARK, SSIWS0_MARK, SSISCK0_MARK,
258         FCE_MARK, FRB_MARK,
259         NAF7_MARK, NAF6_MARK, NAF5_MARK, NAF4_MARK,
260         NAF3_MARK, NAF2_MARK, NAF1_MARK, NAF0_MARK,
261         FSC_MARK, FOE_MARK, FCDE_MARK, FWE_MARK,
262         LCD_VEPWC_MARK, LCD_VCPWC_MARK, LCD_CLK_MARK, LCD_FLM_MARK,
263         LCD_M_DISP_MARK, LCD_CL2_MARK, LCD_CL1_MARK, LCD_DON_MARK,
264         LCD_DATA15_MARK, LCD_DATA14_MARK, LCD_DATA13_MARK, LCD_DATA12_MARK,
265         LCD_DATA11_MARK, LCD_DATA10_MARK, LCD_DATA9_MARK, LCD_DATA8_MARK,
266         LCD_DATA7_MARK, LCD_DATA6_MARK, LCD_DATA5_MARK, LCD_DATA4_MARK,
267         LCD_DATA3_MARK, LCD_DATA2_MARK, LCD_DATA1_MARK, LCD_DATA0_MARK,
268         PINMUX_MARK_END,
269 };
270
271 static const u16 pinmux_data[] = {
272         /* PA */
273         PINMUX_DATA(PA7_DATA, PA7_IN),
274         PINMUX_DATA(PA6_DATA, PA6_IN),
275         PINMUX_DATA(PA5_DATA, PA5_IN),
276         PINMUX_DATA(PA4_DATA, PA4_IN),
277         PINMUX_DATA(PA3_DATA, PA3_IN),
278         PINMUX_DATA(PA2_DATA, PA2_IN),
279         PINMUX_DATA(PA1_DATA, PA1_IN),
280         PINMUX_DATA(PA0_DATA, PA0_IN),
281
282         /* PB */
283         PINMUX_DATA(PB12_DATA, PB12MD_00, FORCE_OUT),
284         PINMUX_DATA(WDTOVF_MARK, PB12MD_01),
285         PINMUX_DATA(IRQOUT_MARK, PB12MD_10, PB12IRQ_00),
286         PINMUX_DATA(REFOUT_MARK, PB12MD_10, PB12IRQ_01),
287         PINMUX_DATA(IRQOUT_REFOUT_MARK, PB12MD_10, PB12IRQ_10),
288         PINMUX_DATA(UBCTRG_MARK, PB12MD_11),
289
290         PINMUX_DATA(PB11_DATA, PB11MD_0, PB11_IN, PB11_OUT),
291         PINMUX_DATA(CTX1_MARK, PB11MD_1),
292
293         PINMUX_DATA(PB10_DATA, PB10MD_0, PB10_IN, PB10_OUT),
294         PINMUX_DATA(CRX1_MARK, PB10MD_1),
295
296         PINMUX_DATA(PB9_DATA, PB9MD_00, PB9_IN, PB9_OUT),
297         PINMUX_DATA(CTX0_MARK, PB9MD_01),
298         PINMUX_DATA(CTX0_CTX1_MARK, PB9MD_10),
299
300         PINMUX_DATA(PB8_DATA, PB8MD_00, PB8_IN, PB8_OUT),
301         PINMUX_DATA(CRX0_MARK, PB8MD_01),
302         PINMUX_DATA(CRX0_CRX1_MARK, PB8MD_10),
303
304         PINMUX_DATA(PB7_DATA, PB7MD_00, FORCE_IN),
305         PINMUX_DATA(SDA3_MARK, PB7MD_01),
306         PINMUX_DATA(PINT7_PB_MARK, PB7MD_10),
307         PINMUX_DATA(IRQ7_PB_MARK, PB7MD_11),
308
309         PINMUX_DATA(PB6_DATA, PB6MD_00, FORCE_IN),
310         PINMUX_DATA(SCL3_MARK, PB6MD_01),
311         PINMUX_DATA(PINT6_PB_MARK, PB6MD_10),
312         PINMUX_DATA(IRQ6_PB_MARK, PB6MD_11),
313
314         PINMUX_DATA(PB5_DATA, PB5MD_00, FORCE_IN),
315         PINMUX_DATA(SDA2_MARK, PB6MD_01),
316         PINMUX_DATA(PINT5_PB_MARK, PB6MD_10),
317         PINMUX_DATA(IRQ5_PB_MARK, PB6MD_11),
318
319         PINMUX_DATA(PB4_DATA, PB4MD_00, FORCE_IN),
320         PINMUX_DATA(SCL2_MARK, PB4MD_01),
321         PINMUX_DATA(PINT4_PB_MARK, PB4MD_10),
322         PINMUX_DATA(IRQ4_PB_MARK, PB4MD_11),
323
324         PINMUX_DATA(PB3_DATA, PB3MD_00, FORCE_IN),
325         PINMUX_DATA(SDA1_MARK, PB3MD_01),
326         PINMUX_DATA(PINT3_PB_MARK, PB3MD_10),
327         PINMUX_DATA(IRQ3_PB_MARK, PB3MD_11),
328
329         PINMUX_DATA(PB2_DATA, PB2MD_00, FORCE_IN),
330         PINMUX_DATA(SCL1_MARK, PB2MD_01),
331         PINMUX_DATA(PINT2_PB_MARK, PB2MD_10),
332         PINMUX_DATA(IRQ2_PB_MARK, PB2MD_11),
333
334         PINMUX_DATA(PB1_DATA, PB1MD_00, FORCE_IN),
335         PINMUX_DATA(SDA0_MARK, PB1MD_01),
336         PINMUX_DATA(PINT1_PB_MARK, PB1MD_10),
337         PINMUX_DATA(IRQ1_PB_MARK, PB1MD_11),
338
339         PINMUX_DATA(PB0_DATA, PB0MD_00, FORCE_IN),
340         PINMUX_DATA(SCL0_MARK, PB0MD_01),
341         PINMUX_DATA(PINT0_PB_MARK, PB0MD_10),
342         PINMUX_DATA(IRQ0_PB_MARK, PB0MD_11),
343
344         /* PC */
345         PINMUX_DATA(PC14_DATA, PC14MD_0, PC14_IN, PC14_OUT),
346         PINMUX_DATA(WAIT_MARK, PC14MD_1),
347
348         PINMUX_DATA(PC13_DATA, PC13MD_0, PC13_IN, PC13_OUT),
349         PINMUX_DATA(RDWR_MARK, PC13MD_1),
350
351         PINMUX_DATA(PC12_DATA, PC12MD_0, PC12_IN, PC12_OUT),
352         PINMUX_DATA(CKE_MARK, PC12MD_1),
353
354         PINMUX_DATA(PC11_DATA, PC11MD_00, PC11_IN, PC11_OUT),
355         PINMUX_DATA(CASU_MARK, PC11MD_01),
356         PINMUX_DATA(BREQ_MARK, PC11MD_10),
357
358         PINMUX_DATA(PC10_DATA, PC10MD_00, PC10_IN, PC10_OUT),
359         PINMUX_DATA(RASU_MARK, PC10MD_01),
360         PINMUX_DATA(BACK_MARK, PC10MD_10),
361
362         PINMUX_DATA(PC9_DATA, PC9MD_0, PC9_IN, PC9_OUT),
363         PINMUX_DATA(CASL_MARK, PC9MD_1),
364
365         PINMUX_DATA(PC8_DATA, PC8MD_0, PC8_IN, PC8_OUT),
366         PINMUX_DATA(RASL_MARK, PC8MD_1),
367
368         PINMUX_DATA(PC7_DATA, PC7MD_0, PC7_IN, PC7_OUT),
369         PINMUX_DATA(WE3_DQMUU_AH_ICIO_WR_MARK, PC7MD_1),
370
371         PINMUX_DATA(PC6_DATA, PC6MD_0, PC6_IN, PC6_OUT),
372         PINMUX_DATA(WE2_DQMUL_ICIORD_MARK, PC6MD_1),
373
374         PINMUX_DATA(PC5_DATA, PC5MD_0, PC5_IN, PC5_OUT),
375         PINMUX_DATA(WE1_DQMLU_WE_MARK, PC5MD_1),
376
377         PINMUX_DATA(PC4_DATA, PC4MD_0, PC4_IN, PC4_OUT),
378         PINMUX_DATA(WE0_DQMLL_MARK, PC4MD_1),
379
380         PINMUX_DATA(PC3_DATA, PC3MD_0, PC3_IN, PC3_OUT),
381         PINMUX_DATA(CS3_MARK, PC3MD_1),
382
383         PINMUX_DATA(PC2_DATA, PC2MD_0, PC2_IN, PC2_OUT),
384         PINMUX_DATA(CS2_MARK, PC2MD_1),
385
386         PINMUX_DATA(PC1_DATA, PC1MD_0, PC1_IN, PC1_OUT),
387         PINMUX_DATA(A1_MARK, PC1MD_1),
388
389         PINMUX_DATA(PC0_DATA, PC0MD_00, PC0_IN, PC0_OUT),
390         PINMUX_DATA(A0_MARK, PC0MD_01),
391         PINMUX_DATA(CS7_MARK, PC0MD_10),
392
393         /* PD */
394         PINMUX_DATA(PD15_DATA, PD15MD_000, PD15_IN, PD15_OUT),
395         PINMUX_DATA(D31_MARK, PD15MD_001),
396         PINMUX_DATA(PINT7_PD_MARK, PD15MD_010),
397         PINMUX_DATA(ADTRG_PD_MARK, PD15MD_100),
398         PINMUX_DATA(TIOC4D_MARK, PD15MD_101),
399
400         PINMUX_DATA(PD14_DATA, PD14MD_000, PD14_IN, PD14_OUT),
401         PINMUX_DATA(D30_MARK, PD14MD_001),
402         PINMUX_DATA(PINT6_PD_MARK, PD14MD_010),
403         PINMUX_DATA(TIOC4C_MARK, PD14MD_101),
404
405         PINMUX_DATA(PD13_DATA, PD13MD_000, PD13_IN, PD13_OUT),
406         PINMUX_DATA(D29_MARK, PD13MD_001),
407         PINMUX_DATA(PINT5_PD_MARK, PD13MD_010),
408         PINMUX_DATA(TEND1_PD_MARK, PD13MD_100),
409         PINMUX_DATA(TIOC4B_MARK, PD13MD_101),
410
411         PINMUX_DATA(PD12_DATA, PD12MD_000, PD12_IN, PD12_OUT),
412         PINMUX_DATA(D28_MARK, PD12MD_001),
413         PINMUX_DATA(PINT4_PD_MARK, PD12MD_010),
414         PINMUX_DATA(DACK1_PD_MARK, PD12MD_100),
415         PINMUX_DATA(TIOC4A_MARK, PD12MD_101),
416
417         PINMUX_DATA(PD11_DATA, PD11MD_000, PD11_IN, PD11_OUT),
418         PINMUX_DATA(D27_MARK, PD11MD_001),
419         PINMUX_DATA(PINT3_PD_MARK, PD11MD_010),
420         PINMUX_DATA(DREQ1_PD_MARK, PD11MD_100),
421         PINMUX_DATA(TIOC3D_MARK, PD11MD_101),
422
423         PINMUX_DATA(PD10_DATA, PD10MD_000, PD10_IN, PD10_OUT),
424         PINMUX_DATA(D26_MARK, PD10MD_001),
425         PINMUX_DATA(PINT2_PD_MARK, PD10MD_010),
426         PINMUX_DATA(TEND0_PD_MARK, PD10MD_100),
427         PINMUX_DATA(TIOC3C_MARK, PD10MD_101),
428
429         PINMUX_DATA(PD9_DATA, PD9MD_000, PD9_IN, PD9_OUT),
430         PINMUX_DATA(D25_MARK, PD9MD_001),
431         PINMUX_DATA(PINT1_PD_MARK, PD9MD_010),
432         PINMUX_DATA(DACK0_PD_MARK, PD9MD_100),
433         PINMUX_DATA(TIOC3B_MARK, PD9MD_101),
434
435         PINMUX_DATA(PD8_DATA, PD8MD_000, PD8_IN, PD8_OUT),
436         PINMUX_DATA(D24_MARK, PD8MD_001),
437         PINMUX_DATA(PINT0_PD_MARK, PD8MD_010),
438         PINMUX_DATA(DREQ0_PD_MARK, PD8MD_100),
439         PINMUX_DATA(TIOC3A_MARK, PD8MD_101),
440
441         PINMUX_DATA(PD7_DATA, PD7MD_000, PD7_IN, PD7_OUT),
442         PINMUX_DATA(D23_MARK, PD7MD_001),
443         PINMUX_DATA(IRQ7_PD_MARK, PD7MD_010),
444         PINMUX_DATA(SCS1_PD_MARK, PD7MD_011),
445         PINMUX_DATA(TCLKD_PD_MARK, PD7MD_100),
446         PINMUX_DATA(TIOC2B_MARK, PD7MD_101),
447
448         PINMUX_DATA(PD6_DATA, PD6MD_000, PD6_IN, PD6_OUT),
449         PINMUX_DATA(D22_MARK, PD6MD_001),
450         PINMUX_DATA(IRQ6_PD_MARK, PD6MD_010),
451         PINMUX_DATA(SSO1_PD_MARK, PD6MD_011),
452         PINMUX_DATA(TCLKC_PD_MARK, PD6MD_100),
453         PINMUX_DATA(TIOC2A_MARK, PD6MD_101),
454
455         PINMUX_DATA(PD5_DATA, PD5MD_000, PD5_IN, PD5_OUT),
456         PINMUX_DATA(D21_MARK, PD5MD_001),
457         PINMUX_DATA(IRQ5_PD_MARK, PD5MD_010),
458         PINMUX_DATA(SSI1_PD_MARK, PD5MD_011),
459         PINMUX_DATA(TCLKB_PD_MARK, PD5MD_100),
460         PINMUX_DATA(TIOC1B_MARK, PD5MD_101),
461
462         PINMUX_DATA(PD4_DATA, PD4MD_000, PD4_IN, PD4_OUT),
463         PINMUX_DATA(D20_MARK, PD4MD_001),
464         PINMUX_DATA(IRQ4_PD_MARK, PD4MD_010),
465         PINMUX_DATA(SSCK1_PD_MARK, PD4MD_011),
466         PINMUX_DATA(TCLKA_PD_MARK, PD4MD_100),
467         PINMUX_DATA(TIOC1A_MARK, PD4MD_101),
468
469         PINMUX_DATA(PD3_DATA, PD3MD_000, PD3_IN, PD3_OUT),
470         PINMUX_DATA(D19_MARK, PD3MD_001),
471         PINMUX_DATA(IRQ3_PD_MARK, PD3MD_010),
472         PINMUX_DATA(SCS0_PD_MARK, PD3MD_011),
473         PINMUX_DATA(DACK3_MARK, PD3MD_100),
474         PINMUX_DATA(TIOC0D_MARK, PD3MD_101),
475
476         PINMUX_DATA(PD2_DATA, PD2MD_000, PD2_IN, PD2_OUT),
477         PINMUX_DATA(D18_MARK, PD2MD_001),
478         PINMUX_DATA(IRQ2_PD_MARK, PD2MD_010),
479         PINMUX_DATA(SSO0_PD_MARK, PD2MD_011),
480         PINMUX_DATA(DREQ3_MARK, PD2MD_100),
481         PINMUX_DATA(TIOC0C_MARK, PD2MD_101),
482
483         PINMUX_DATA(PD1_DATA, PD1MD_000, PD1_IN, PD1_OUT),
484         PINMUX_DATA(D17_MARK, PD1MD_001),
485         PINMUX_DATA(IRQ1_PD_MARK, PD1MD_010),
486         PINMUX_DATA(SSI0_PD_MARK, PD1MD_011),
487         PINMUX_DATA(DACK2_MARK, PD1MD_100),
488         PINMUX_DATA(TIOC0B_MARK, PD1MD_101),
489
490         PINMUX_DATA(PD0_DATA, PD0MD_000, PD0_IN, PD0_OUT),
491         PINMUX_DATA(D16_MARK, PD0MD_001),
492         PINMUX_DATA(IRQ0_PD_MARK, PD0MD_010),
493         PINMUX_DATA(SSCK0_PD_MARK, PD0MD_011),
494         PINMUX_DATA(DREQ2_MARK, PD0MD_100),
495         PINMUX_DATA(TIOC0A_MARK, PD0MD_101),
496
497         /* PE */
498         PINMUX_DATA(PE15_DATA, PE15MD_00, PE15_IN, PE15_OUT),
499         PINMUX_DATA(IOIS16_MARK, PE15MD_01),
500         PINMUX_DATA(RTS3_MARK, PE15MD_11),
501
502         PINMUX_DATA(PE14_DATA, PE14MD_00, PE14_IN, PE14_OUT),
503         PINMUX_DATA(CS1_MARK, PE14MD_01),
504         PINMUX_DATA(CTS3_MARK, PE14MD_11),
505
506         PINMUX_DATA(PE13_DATA, PE13MD_00, PE13_IN, PE13_OUT),
507         PINMUX_DATA(TXD3_MARK, PE13MD_11),
508
509         PINMUX_DATA(PE12_DATA, PE12MD_00, PE12_IN, PE12_OUT),
510         PINMUX_DATA(RXD3_MARK, PE12MD_11),
511
512         PINMUX_DATA(PE11_DATA, PE11MD_000, PE11_IN, PE11_OUT),
513         PINMUX_DATA(CS6_CE1B_MARK, PE11MD_001),
514         PINMUX_DATA(IRQ7_PE_MARK, PE11MD_010),
515         PINMUX_DATA(TEND1_PE_MARK, PE11MD_100),
516
517         PINMUX_DATA(PE10_DATA, PE10MD_000, PE10_IN, PE10_OUT),
518         PINMUX_DATA(CE2B_MARK, PE10MD_001),
519         PINMUX_DATA(IRQ6_PE_MARK, PE10MD_010),
520         PINMUX_DATA(TEND0_PE_MARK, PE10MD_100),
521
522         PINMUX_DATA(PE9_DATA, PE9MD_00, PE9_IN, PE9_OUT),
523         PINMUX_DATA(CS5_CE1A_MARK, PE9MD_01),
524         PINMUX_DATA(IRQ5_PE_MARK, PE9MD_10),
525         PINMUX_DATA(SCK3_MARK, PE9MD_11),
526
527         PINMUX_DATA(PE8_DATA, PE8MD_00, PE8_IN, PE8_OUT),
528         PINMUX_DATA(CE2A_MARK, PE8MD_01),
529         PINMUX_DATA(IRQ4_PE_MARK, PE8MD_10),
530         PINMUX_DATA(SCK2_MARK, PE8MD_11),
531
532         PINMUX_DATA(PE7_DATA, PE7MD_000, PE7_IN, PE7_OUT),
533         PINMUX_DATA(FRAME_MARK, PE7MD_001),
534         PINMUX_DATA(IRQ3_PE_MARK, PE7MD_010),
535         PINMUX_DATA(TXD2_MARK, PE7MD_011),
536         PINMUX_DATA(DACK1_PE_MARK, PE7MD_100),
537
538         PINMUX_DATA(PE6_DATA, PE6MD_000, PE6_IN, PE6_OUT),
539         PINMUX_DATA(A25_MARK, PE6MD_001),
540         PINMUX_DATA(IRQ2_PE_MARK, PE6MD_010),
541         PINMUX_DATA(RXD2_MARK, PE6MD_011),
542         PINMUX_DATA(DREQ1_PE_MARK, PE6MD_100),
543
544         PINMUX_DATA(PE5_DATA, PE5MD_000, PE5_IN, PE5_OUT),
545         PINMUX_DATA(A24_MARK, PE5MD_001),
546         PINMUX_DATA(IRQ1_PE_MARK, PE5MD_010),
547         PINMUX_DATA(TXD1_MARK, PE5MD_011),
548         PINMUX_DATA(DACK0_PE_MARK, PE5MD_100),
549
550         PINMUX_DATA(PE4_DATA, PE4MD_000, PE4_IN, PE4_OUT),
551         PINMUX_DATA(A23_MARK, PE4MD_001),
552         PINMUX_DATA(IRQ0_PE_MARK, PE4MD_010),
553         PINMUX_DATA(RXD1_MARK, PE4MD_011),
554         PINMUX_DATA(DREQ0_PE_MARK, PE4MD_100),
555
556         PINMUX_DATA(PE3_DATA, PE3MD_00, PE3_IN, PE3_OUT),
557         PINMUX_DATA(A22_MARK, PE3MD_01),
558         PINMUX_DATA(SCK1_MARK, PE3MD_11),
559
560         PINMUX_DATA(PE2_DATA, PE2MD_00, PE2_IN, PE2_OUT),
561         PINMUX_DATA(A21_MARK, PE2MD_01),
562         PINMUX_DATA(SCK0_MARK, PE2MD_11),
563
564         PINMUX_DATA(PE1_DATA, PE1MD_00, PE1_IN, PE1_OUT),
565         PINMUX_DATA(CS4_MARK, PE1MD_01),
566         PINMUX_DATA(MRES_MARK, PE1MD_10),
567         PINMUX_DATA(TXD0_MARK, PE1MD_11),
568
569         PINMUX_DATA(PE0_DATA, PE0MD_000, PE0_IN, PE0_OUT),
570         PINMUX_DATA(BS_MARK, PE0MD_001),
571         PINMUX_DATA(RXD0_MARK, PE0MD_011),
572         PINMUX_DATA(ADTRG_PE_MARK, PE0MD_100),
573
574         /* PF */
575         PINMUX_DATA(PF30_DATA, PF30MD_0, PF30_IN, PF30_OUT),
576         PINMUX_DATA(AUDIO_CLK_MARK, PF30MD_1),
577
578         PINMUX_DATA(PF29_DATA, PF29MD_0, PF29_IN, PF29_OUT),
579         PINMUX_DATA(SSIDATA3_MARK, PF29MD_1),
580
581         PINMUX_DATA(PF28_DATA, PF28MD_0, PF28_IN, PF28_OUT),
582         PINMUX_DATA(SSIWS3_MARK, PF28MD_1),
583
584         PINMUX_DATA(PF27_DATA, PF27MD_0, PF27_IN, PF27_OUT),
585         PINMUX_DATA(SSISCK3_MARK, PF27MD_1),
586
587         PINMUX_DATA(PF26_DATA, PF26MD_0, PF26_IN, PF26_OUT),
588         PINMUX_DATA(SSIDATA2_MARK, PF26MD_1),
589
590         PINMUX_DATA(PF25_DATA, PF25MD_0, PF25_IN, PF25_OUT),
591         PINMUX_DATA(SSIWS2_MARK, PF25MD_1),
592
593         PINMUX_DATA(PF24_DATA, PF24MD_0, PF24_IN, PF24_OUT),
594         PINMUX_DATA(SSISCK2_MARK, PF24MD_1),
595
596         PINMUX_DATA(PF23_DATA, PF23MD_00, PF23_IN, PF23_OUT),
597         PINMUX_DATA(SSIDATA1_MARK, PF23MD_01),
598         PINMUX_DATA(LCD_VEPWC_MARK, PF23MD_10),
599
600         PINMUX_DATA(PF22_DATA, PF22MD_00, PF22_IN, PF22_OUT),
601         PINMUX_DATA(SSIWS1_MARK, PF22MD_01),
602         PINMUX_DATA(LCD_VCPWC_MARK, PF22MD_10),
603
604         PINMUX_DATA(PF21_DATA, PF21MD_00, PF21_IN, PF21_OUT),
605         PINMUX_DATA(SSISCK1_MARK, PF21MD_01),
606         PINMUX_DATA(LCD_CLK_MARK, PF21MD_10),
607
608         PINMUX_DATA(PF20_DATA, PF20MD_00, PF20_IN, PF20_OUT),
609         PINMUX_DATA(SSIDATA0_MARK, PF20MD_01),
610         PINMUX_DATA(LCD_FLM_MARK, PF20MD_10),
611
612         PINMUX_DATA(PF19_DATA, PF19MD_00, PF19_IN, PF19_OUT),
613         PINMUX_DATA(SSIWS0_MARK, PF19MD_01),
614         PINMUX_DATA(LCD_M_DISP_MARK, PF19MD_10),
615
616         PINMUX_DATA(PF18_DATA, PF18MD_00, PF18_IN, PF18_OUT),
617         PINMUX_DATA(SSISCK0_MARK, PF18MD_01),
618         PINMUX_DATA(LCD_CL2_MARK, PF18MD_10),
619
620         PINMUX_DATA(PF17_DATA, PF17MD_00, PF17_IN, PF17_OUT),
621         PINMUX_DATA(FCE_MARK, PF17MD_01),
622         PINMUX_DATA(LCD_CL1_MARK, PF17MD_10),
623
624         PINMUX_DATA(PF16_DATA, PF16MD_00, PF16_IN, PF16_OUT),
625         PINMUX_DATA(FRB_MARK, PF16MD_01),
626         PINMUX_DATA(LCD_DON_MARK, PF16MD_10),
627
628         PINMUX_DATA(PF15_DATA, PF15MD_00, PF15_IN, PF15_OUT),
629         PINMUX_DATA(NAF7_MARK, PF15MD_01),
630         PINMUX_DATA(LCD_DATA15_MARK, PF15MD_10),
631
632         PINMUX_DATA(PF14_DATA, PF14MD_00, PF14_IN, PF14_OUT),
633         PINMUX_DATA(NAF6_MARK, PF14MD_01),
634         PINMUX_DATA(LCD_DATA14_MARK, PF14MD_10),
635
636         PINMUX_DATA(PF13_DATA, PF13MD_00, PF13_IN, PF13_OUT),
637         PINMUX_DATA(NAF5_MARK, PF13MD_01),
638         PINMUX_DATA(LCD_DATA13_MARK, PF13MD_10),
639
640         PINMUX_DATA(PF12_DATA, PF12MD_00, PF12_IN, PF12_OUT),
641         PINMUX_DATA(NAF4_MARK, PF12MD_01),
642         PINMUX_DATA(LCD_DATA12_MARK, PF12MD_10),
643
644         PINMUX_DATA(PF11_DATA, PF11MD_00, PF11_IN, PF11_OUT),
645         PINMUX_DATA(NAF3_MARK, PF11MD_01),
646         PINMUX_DATA(LCD_DATA11_MARK, PF11MD_10),
647
648         PINMUX_DATA(PF10_DATA, PF10MD_00, PF10_IN, PF10_OUT),
649         PINMUX_DATA(NAF2_MARK, PF10MD_01),
650         PINMUX_DATA(LCD_DATA10_MARK, PF10MD_10),
651
652         PINMUX_DATA(PF9_DATA, PF9MD_00, PF9_IN, PF9_OUT),
653         PINMUX_DATA(NAF1_MARK, PF9MD_01),
654         PINMUX_DATA(LCD_DATA9_MARK, PF9MD_10),
655
656         PINMUX_DATA(PF8_DATA, PF8MD_00, PF8_IN, PF8_OUT),
657         PINMUX_DATA(NAF0_MARK, PF8MD_01),
658         PINMUX_DATA(LCD_DATA8_MARK, PF8MD_10),
659
660         PINMUX_DATA(PF7_DATA, PF7MD_00, PF7_IN, PF7_OUT),
661         PINMUX_DATA(FSC_MARK, PF7MD_01),
662         PINMUX_DATA(LCD_DATA7_MARK, PF7MD_10),
663         PINMUX_DATA(SCS1_PF_MARK, PF7MD_11),
664
665         PINMUX_DATA(PF6_DATA, PF6MD_00, PF6_IN, PF6_OUT),
666         PINMUX_DATA(FOE_MARK, PF6MD_01),
667         PINMUX_DATA(LCD_DATA6_MARK, PF6MD_10),
668         PINMUX_DATA(SSO1_PF_MARK, PF6MD_11),
669
670         PINMUX_DATA(PF5_DATA, PF5MD_00, PF5_IN, PF5_OUT),
671         PINMUX_DATA(FCDE_MARK, PF5MD_01),
672         PINMUX_DATA(LCD_DATA5_MARK, PF5MD_10),
673         PINMUX_DATA(SSI1_PF_MARK, PF5MD_11),
674
675         PINMUX_DATA(PF4_DATA, PF4MD_00, PF4_IN, PF4_OUT),
676         PINMUX_DATA(FWE_MARK, PF4MD_01),
677         PINMUX_DATA(LCD_DATA4_MARK, PF4MD_10),
678         PINMUX_DATA(SSCK1_PF_MARK, PF4MD_11),
679
680         PINMUX_DATA(PF3_DATA, PF3MD_00, PF3_IN, PF3_OUT),
681         PINMUX_DATA(TCLKD_PF_MARK, PF3MD_01),
682         PINMUX_DATA(LCD_DATA3_MARK, PF3MD_10),
683         PINMUX_DATA(SCS0_PF_MARK, PF3MD_11),
684
685         PINMUX_DATA(PF2_DATA, PF2MD_00, PF2_IN, PF2_OUT),
686         PINMUX_DATA(TCLKC_PF_MARK, PF2MD_01),
687         PINMUX_DATA(LCD_DATA2_MARK, PF2MD_10),
688         PINMUX_DATA(SSO0_PF_MARK, PF2MD_11),
689
690         PINMUX_DATA(PF1_DATA, PF1MD_00, PF1_IN, PF1_OUT),
691         PINMUX_DATA(TCLKB_PF_MARK, PF1MD_01),
692         PINMUX_DATA(LCD_DATA1_MARK, PF1MD_10),
693         PINMUX_DATA(SSI0_PF_MARK, PF1MD_11),
694
695         PINMUX_DATA(PF0_DATA, PF0MD_00, PF0_IN, PF0_OUT),
696         PINMUX_DATA(TCLKA_PF_MARK, PF0MD_01),
697         PINMUX_DATA(LCD_DATA0_MARK, PF0MD_10),
698         PINMUX_DATA(SSCK0_PF_MARK, PF0MD_11),
699 };
700
701 static const struct sh_pfc_pin pinmux_pins[] = {
702         /* PA */
703         PINMUX_GPIO(PA7),
704         PINMUX_GPIO(PA6),
705         PINMUX_GPIO(PA5),
706         PINMUX_GPIO(PA4),
707         PINMUX_GPIO(PA3),
708         PINMUX_GPIO(PA2),
709         PINMUX_GPIO(PA1),
710         PINMUX_GPIO(PA0),
711
712         /* PB */
713         PINMUX_GPIO(PB12),
714         PINMUX_GPIO(PB11),
715         PINMUX_GPIO(PB10),
716         PINMUX_GPIO(PB9),
717         PINMUX_GPIO(PB8),
718         PINMUX_GPIO(PB7),
719         PINMUX_GPIO(PB6),
720         PINMUX_GPIO(PB5),
721         PINMUX_GPIO(PB4),
722         PINMUX_GPIO(PB3),
723         PINMUX_GPIO(PB2),
724         PINMUX_GPIO(PB1),
725         PINMUX_GPIO(PB0),
726
727         /* PC */
728         PINMUX_GPIO(PC14),
729         PINMUX_GPIO(PC13),
730         PINMUX_GPIO(PC12),
731         PINMUX_GPIO(PC11),
732         PINMUX_GPIO(PC10),
733         PINMUX_GPIO(PC9),
734         PINMUX_GPIO(PC8),
735         PINMUX_GPIO(PC7),
736         PINMUX_GPIO(PC6),
737         PINMUX_GPIO(PC5),
738         PINMUX_GPIO(PC4),
739         PINMUX_GPIO(PC3),
740         PINMUX_GPIO(PC2),
741         PINMUX_GPIO(PC1),
742         PINMUX_GPIO(PC0),
743
744         /* PD */
745         PINMUX_GPIO(PD15),
746         PINMUX_GPIO(PD14),
747         PINMUX_GPIO(PD13),
748         PINMUX_GPIO(PD12),
749         PINMUX_GPIO(PD11),
750         PINMUX_GPIO(PD10),
751         PINMUX_GPIO(PD9),
752         PINMUX_GPIO(PD8),
753         PINMUX_GPIO(PD7),
754         PINMUX_GPIO(PD6),
755         PINMUX_GPIO(PD5),
756         PINMUX_GPIO(PD4),
757         PINMUX_GPIO(PD3),
758         PINMUX_GPIO(PD2),
759         PINMUX_GPIO(PD1),
760         PINMUX_GPIO(PD0),
761
762         /* PE */
763         PINMUX_GPIO(PE15),
764         PINMUX_GPIO(PE14),
765         PINMUX_GPIO(PE13),
766         PINMUX_GPIO(PE12),
767         PINMUX_GPIO(PE11),
768         PINMUX_GPIO(PE10),
769         PINMUX_GPIO(PE9),
770         PINMUX_GPIO(PE8),
771         PINMUX_GPIO(PE7),
772         PINMUX_GPIO(PE6),
773         PINMUX_GPIO(PE5),
774         PINMUX_GPIO(PE4),
775         PINMUX_GPIO(PE3),
776         PINMUX_GPIO(PE2),
777         PINMUX_GPIO(PE1),
778         PINMUX_GPIO(PE0),
779
780         /* PF */
781         PINMUX_GPIO(PF30),
782         PINMUX_GPIO(PF29),
783         PINMUX_GPIO(PF28),
784         PINMUX_GPIO(PF27),
785         PINMUX_GPIO(PF26),
786         PINMUX_GPIO(PF25),
787         PINMUX_GPIO(PF24),
788         PINMUX_GPIO(PF23),
789         PINMUX_GPIO(PF22),
790         PINMUX_GPIO(PF21),
791         PINMUX_GPIO(PF20),
792         PINMUX_GPIO(PF19),
793         PINMUX_GPIO(PF18),
794         PINMUX_GPIO(PF17),
795         PINMUX_GPIO(PF16),
796         PINMUX_GPIO(PF15),
797         PINMUX_GPIO(PF14),
798         PINMUX_GPIO(PF13),
799         PINMUX_GPIO(PF12),
800         PINMUX_GPIO(PF11),
801         PINMUX_GPIO(PF10),
802         PINMUX_GPIO(PF9),
803         PINMUX_GPIO(PF8),
804         PINMUX_GPIO(PF7),
805         PINMUX_GPIO(PF6),
806         PINMUX_GPIO(PF5),
807         PINMUX_GPIO(PF4),
808         PINMUX_GPIO(PF3),
809         PINMUX_GPIO(PF2),
810         PINMUX_GPIO(PF1),
811         PINMUX_GPIO(PF0),
812 };
813
814 #define PINMUX_FN_BASE  ARRAY_SIZE(pinmux_pins)
815
816 static const struct pinmux_func pinmux_func_gpios[] = {
817         /* INTC */
818         GPIO_FN(PINT7_PB),
819         GPIO_FN(PINT6_PB),
820         GPIO_FN(PINT5_PB),
821         GPIO_FN(PINT4_PB),
822         GPIO_FN(PINT3_PB),
823         GPIO_FN(PINT2_PB),
824         GPIO_FN(PINT1_PB),
825         GPIO_FN(PINT0_PB),
826         GPIO_FN(PINT7_PD),
827         GPIO_FN(PINT6_PD),
828         GPIO_FN(PINT5_PD),
829         GPIO_FN(PINT4_PD),
830         GPIO_FN(PINT3_PD),
831         GPIO_FN(PINT2_PD),
832         GPIO_FN(PINT1_PD),
833         GPIO_FN(PINT0_PD),
834         GPIO_FN(IRQ7_PB),
835         GPIO_FN(IRQ6_PB),
836         GPIO_FN(IRQ5_PB),
837         GPIO_FN(IRQ4_PB),
838         GPIO_FN(IRQ3_PB),
839         GPIO_FN(IRQ2_PB),
840         GPIO_FN(IRQ1_PB),
841         GPIO_FN(IRQ0_PB),
842         GPIO_FN(IRQ7_PD),
843         GPIO_FN(IRQ6_PD),
844         GPIO_FN(IRQ5_PD),
845         GPIO_FN(IRQ4_PD),
846         GPIO_FN(IRQ3_PD),
847         GPIO_FN(IRQ2_PD),
848         GPIO_FN(IRQ1_PD),
849         GPIO_FN(IRQ0_PD),
850         GPIO_FN(IRQ7_PE),
851         GPIO_FN(IRQ6_PE),
852         GPIO_FN(IRQ5_PE),
853         GPIO_FN(IRQ4_PE),
854         GPIO_FN(IRQ3_PE),
855         GPIO_FN(IRQ2_PE),
856         GPIO_FN(IRQ1_PE),
857         GPIO_FN(IRQ0_PE),
858
859         GPIO_FN(WDTOVF),
860         GPIO_FN(IRQOUT),
861         GPIO_FN(REFOUT),
862         GPIO_FN(IRQOUT_REFOUT),
863         GPIO_FN(UBCTRG),
864
865         /* CAN */
866         GPIO_FN(CTX1),
867         GPIO_FN(CRX1),
868         GPIO_FN(CTX0),
869         GPIO_FN(CTX0_CTX1),
870         GPIO_FN(CRX0),
871         GPIO_FN(CRX0_CRX1),
872
873         /* IIC3 */
874         GPIO_FN(SDA3),
875         GPIO_FN(SCL3),
876         GPIO_FN(SDA2),
877         GPIO_FN(SCL2),
878         GPIO_FN(SDA1),
879         GPIO_FN(SCL1),
880         GPIO_FN(SDA0),
881         GPIO_FN(SCL0),
882
883         /* DMAC */
884         GPIO_FN(TEND0_PD),
885         GPIO_FN(TEND0_PE),
886         GPIO_FN(DACK0_PD),
887         GPIO_FN(DACK0_PE),
888         GPIO_FN(DREQ0_PD),
889         GPIO_FN(DREQ0_PE),
890         GPIO_FN(TEND1_PD),
891         GPIO_FN(TEND1_PE),
892         GPIO_FN(DACK1_PD),
893         GPIO_FN(DACK1_PE),
894         GPIO_FN(DREQ1_PD),
895         GPIO_FN(DREQ1_PE),
896         GPIO_FN(DACK2),
897         GPIO_FN(DREQ2),
898         GPIO_FN(DACK3),
899         GPIO_FN(DREQ3),
900
901         /* ADC */
902         GPIO_FN(ADTRG_PD),
903         GPIO_FN(ADTRG_PE),
904
905         /* BSC */
906         GPIO_FN(D31),
907         GPIO_FN(D30),
908         GPIO_FN(D29),
909         GPIO_FN(D28),
910         GPIO_FN(D27),
911         GPIO_FN(D26),
912         GPIO_FN(D25),
913         GPIO_FN(D24),
914         GPIO_FN(D23),
915         GPIO_FN(D22),
916         GPIO_FN(D21),
917         GPIO_FN(D20),
918         GPIO_FN(D19),
919         GPIO_FN(D18),
920         GPIO_FN(D17),
921         GPIO_FN(D16),
922         GPIO_FN(A25),
923         GPIO_FN(A24),
924         GPIO_FN(A23),
925         GPIO_FN(A22),
926         GPIO_FN(A21),
927         GPIO_FN(CS4),
928         GPIO_FN(MRES),
929         GPIO_FN(BS),
930         GPIO_FN(IOIS16),
931         GPIO_FN(CS1),
932         GPIO_FN(CS6_CE1B),
933         GPIO_FN(CE2B),
934         GPIO_FN(CS5_CE1A),
935         GPIO_FN(CE2A),
936         GPIO_FN(FRAME),
937         GPIO_FN(WAIT),
938         GPIO_FN(RDWR),
939         GPIO_FN(CKE),
940         GPIO_FN(CASU),
941         GPIO_FN(BREQ),
942         GPIO_FN(RASU),
943         GPIO_FN(BACK),
944         GPIO_FN(CASL),
945         GPIO_FN(RASL),
946         GPIO_FN(WE3_DQMUU_AH_ICIO_WR),
947         GPIO_FN(WE2_DQMUL_ICIORD),
948         GPIO_FN(WE1_DQMLU_WE),
949         GPIO_FN(WE0_DQMLL),
950         GPIO_FN(CS3),
951         GPIO_FN(CS2),
952         GPIO_FN(A1),
953         GPIO_FN(A0),
954         GPIO_FN(CS7),
955
956         /* TMU */
957         GPIO_FN(TIOC4D),
958         GPIO_FN(TIOC4C),
959         GPIO_FN(TIOC4B),
960         GPIO_FN(TIOC4A),
961         GPIO_FN(TIOC3D),
962         GPIO_FN(TIOC3C),
963         GPIO_FN(TIOC3B),
964         GPIO_FN(TIOC3A),
965         GPIO_FN(TIOC2B),
966         GPIO_FN(TIOC1B),
967         GPIO_FN(TIOC2A),
968         GPIO_FN(TIOC1A),
969         GPIO_FN(TIOC0D),
970         GPIO_FN(TIOC0C),
971         GPIO_FN(TIOC0B),
972         GPIO_FN(TIOC0A),
973         GPIO_FN(TCLKD_PD),
974         GPIO_FN(TCLKC_PD),
975         GPIO_FN(TCLKB_PD),
976         GPIO_FN(TCLKA_PD),
977         GPIO_FN(TCLKD_PF),
978         GPIO_FN(TCLKC_PF),
979         GPIO_FN(TCLKB_PF),
980         GPIO_FN(TCLKA_PF),
981
982         /* SSU */
983         GPIO_FN(SCS0_PD),
984         GPIO_FN(SSO0_PD),
985         GPIO_FN(SSI0_PD),
986         GPIO_FN(SSCK0_PD),
987         GPIO_FN(SCS0_PF),
988         GPIO_FN(SSO0_PF),
989         GPIO_FN(SSI0_PF),
990         GPIO_FN(SSCK0_PF),
991         GPIO_FN(SCS1_PD),
992         GPIO_FN(SSO1_PD),
993         GPIO_FN(SSI1_PD),
994         GPIO_FN(SSCK1_PD),
995         GPIO_FN(SCS1_PF),
996         GPIO_FN(SSO1_PF),
997         GPIO_FN(SSI1_PF),
998         GPIO_FN(SSCK1_PF),
999
1000         /* SCIF */
1001         GPIO_FN(TXD0),
1002         GPIO_FN(RXD0),
1003         GPIO_FN(SCK0),
1004         GPIO_FN(TXD1),
1005         GPIO_FN(RXD1),
1006         GPIO_FN(SCK1),
1007         GPIO_FN(TXD2),
1008         GPIO_FN(RXD2),
1009         GPIO_FN(SCK2),
1010         GPIO_FN(RTS3),
1011         GPIO_FN(CTS3),
1012         GPIO_FN(TXD3),
1013         GPIO_FN(RXD3),
1014         GPIO_FN(SCK3),
1015
1016         /* SSI */
1017         GPIO_FN(AUDIO_CLK),
1018         GPIO_FN(SSIDATA3),
1019         GPIO_FN(SSIWS3),
1020         GPIO_FN(SSISCK3),
1021         GPIO_FN(SSIDATA2),
1022         GPIO_FN(SSIWS2),
1023         GPIO_FN(SSISCK2),
1024         GPIO_FN(SSIDATA1),
1025         GPIO_FN(SSIWS1),
1026         GPIO_FN(SSISCK1),
1027         GPIO_FN(SSIDATA0),
1028         GPIO_FN(SSIWS0),
1029         GPIO_FN(SSISCK0),
1030
1031         /* FLCTL */
1032         GPIO_FN(FCE),
1033         GPIO_FN(FRB),
1034         GPIO_FN(NAF7),
1035         GPIO_FN(NAF6),
1036         GPIO_FN(NAF5),
1037         GPIO_FN(NAF4),
1038         GPIO_FN(NAF3),
1039         GPIO_FN(NAF2),
1040         GPIO_FN(NAF1),
1041         GPIO_FN(NAF0),
1042         GPIO_FN(FSC),
1043         GPIO_FN(FOE),
1044         GPIO_FN(FCDE),
1045         GPIO_FN(FWE),
1046
1047         /* LCDC */
1048         GPIO_FN(LCD_VEPWC),
1049         GPIO_FN(LCD_VCPWC),
1050         GPIO_FN(LCD_CLK),
1051         GPIO_FN(LCD_FLM),
1052         GPIO_FN(LCD_M_DISP),
1053         GPIO_FN(LCD_CL2),
1054         GPIO_FN(LCD_CL1),
1055         GPIO_FN(LCD_DON),
1056         GPIO_FN(LCD_DATA15),
1057         GPIO_FN(LCD_DATA14),
1058         GPIO_FN(LCD_DATA13),
1059         GPIO_FN(LCD_DATA12),
1060         GPIO_FN(LCD_DATA11),
1061         GPIO_FN(LCD_DATA10),
1062         GPIO_FN(LCD_DATA9),
1063         GPIO_FN(LCD_DATA8),
1064         GPIO_FN(LCD_DATA7),
1065         GPIO_FN(LCD_DATA6),
1066         GPIO_FN(LCD_DATA5),
1067         GPIO_FN(LCD_DATA4),
1068         GPIO_FN(LCD_DATA3),
1069         GPIO_FN(LCD_DATA2),
1070         GPIO_FN(LCD_DATA1),
1071         GPIO_FN(LCD_DATA0),
1072 };
1073
1074 static const struct pinmux_cfg_reg pinmux_config_regs[] = {
1075         { PINMUX_CFG_REG("PBIORL", 0xfffe3886, 16, 1, GROUP(
1076                 0, 0,
1077                 0, 0,
1078                 0, 0,
1079                 0, 0,
1080                 PB11_IN, PB11_OUT,
1081                 PB10_IN, PB10_OUT,
1082                 PB9_IN, PB9_OUT,
1083                 PB8_IN, PB8_OUT,
1084                 0, 0,
1085                 0, 0,
1086                 0, 0,
1087                 0, 0,
1088                 0, 0,
1089                 0, 0,
1090                 0, 0,
1091                 0, 0 ))
1092         },
1093         { PINMUX_CFG_REG("PBCRL4", 0xfffe3890, 16, 4, GROUP(
1094                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1095
1096                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1097
1098                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1099
1100                 PB12MD_00, PB12MD_01, PB12MD_10, PB12MD_11,
1101                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ))
1102         },
1103         { PINMUX_CFG_REG("PBCRL3", 0xfffe3892, 16, 4, GROUP(
1104                 PB11MD_0, PB11MD_1,
1105                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1106
1107                 PB10MD_0, PB10MD_1,
1108                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1109
1110                 PB9MD_00, PB9MD_01, PB9MD_10, 0,
1111                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1112
1113                 PB8MD_00, PB8MD_01, PB8MD_10, 0,
1114                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ))
1115         },
1116         { PINMUX_CFG_REG("PBCRL2", 0xfffe3894, 16, 4, GROUP(
1117                 PB7MD_00, PB7MD_01, PB7MD_10, PB7MD_11,
1118                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1119
1120                 PB6MD_00, PB6MD_01, PB6MD_10, PB6MD_11,
1121                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1122
1123                 PB5MD_00, PB5MD_01, PB5MD_10, PB5MD_11,
1124                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1125
1126                 PB4MD_00, PB4MD_01, PB4MD_10, PB4MD_11,
1127                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ))
1128         },
1129         { PINMUX_CFG_REG("PBCRL1", 0xfffe3896, 16, 4, GROUP(
1130                 PB3MD_00, PB3MD_01, PB3MD_10, PB3MD_11,
1131                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1132
1133                 PB2MD_00, PB2MD_01, PB2MD_10, PB2MD_11,
1134                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1135
1136                 PB1MD_00, PB1MD_01, PB1MD_10, PB1MD_11,
1137                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1138
1139                 PB0MD_00, PB0MD_01, PB0MD_10, PB0MD_11,
1140                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ))
1141         },
1142         { PINMUX_CFG_REG("IFCR", 0xfffe38a2, 16, 4, GROUP(
1143                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1144
1145                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1146
1147                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1148
1149                 PB12IRQ_00, PB12IRQ_01, PB12IRQ_10, 0,
1150                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ))
1151         },
1152         { PINMUX_CFG_REG("PCIORL", 0xfffe3906, 16, 1, GROUP(
1153                 0, 0,
1154                 PC14_IN, PC14_OUT,
1155                 PC13_IN, PC13_OUT,
1156                 PC12_IN, PC12_OUT,
1157                 PC11_IN, PC11_OUT,
1158                 PC10_IN, PC10_OUT,
1159                 PC9_IN, PC9_OUT,
1160                 PC8_IN, PC8_OUT,
1161                 PC7_IN, PC7_OUT,
1162                 PC6_IN, PC6_OUT,
1163                 PC5_IN, PC5_OUT,
1164                 PC4_IN, PC4_OUT,
1165                 PC3_IN, PC3_OUT,
1166                 PC2_IN, PC2_OUT,
1167                 PC1_IN, PC1_OUT,
1168                 PC0_IN, PC0_OUT ))
1169         },
1170         { PINMUX_CFG_REG("PCCRL4", 0xfffe3910, 16, 4, GROUP(
1171                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1172
1173                 PC14MD_0, PC14MD_1,
1174                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1175
1176                 PC13MD_0, PC13MD_1,
1177                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1178
1179                 PC12MD_0, PC12MD_1,
1180                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ))
1181         },
1182         { PINMUX_CFG_REG("PCCRL3", 0xfffe3912, 16, 4, GROUP(
1183                 PC11MD_00, PC11MD_01, PC11MD_10, 0,
1184                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1185
1186                 PC10MD_00, PC10MD_01, PC10MD_10, 0,
1187                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1188
1189                 PC9MD_0, PC9MD_1,
1190                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1191
1192                 PC8MD_0, PC8MD_1,
1193                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ))
1194         },
1195         { PINMUX_CFG_REG("PCCRL2", 0xfffe3914, 16, 4, GROUP(
1196                 PC7MD_0, PC7MD_1,
1197                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1198
1199                 PC6MD_0, PC6MD_1,
1200                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1201
1202                 PC5MD_0, PC5MD_1,
1203                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1204
1205                 PC4MD_0, PC4MD_1,
1206                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ))
1207         },
1208         { PINMUX_CFG_REG("PCCRL1", 0xfffe3916, 16, 4, GROUP(
1209                 PC3MD_0, PC3MD_1,
1210                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1211
1212                 PC2MD_0, PC2MD_1,
1213                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1214
1215                 PC1MD_0, PC1MD_1,
1216                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1217
1218                 PC0MD_00, PC0MD_01, PC0MD_10, 0,
1219                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ))
1220         },
1221         { PINMUX_CFG_REG("PDIORL", 0xfffe3986, 16, 1, GROUP(
1222                 PD15_IN, PD15_OUT,
1223                 PD14_IN, PD14_OUT,
1224                 PD13_IN, PD13_OUT,
1225                 PD12_IN, PD12_OUT,
1226                 PD11_IN, PD11_OUT,
1227                 PD10_IN, PD10_OUT,
1228                 PD9_IN, PD9_OUT,
1229                 PD8_IN, PD8_OUT,
1230                 PD7_IN, PD7_OUT,
1231                 PD6_IN, PD6_OUT,
1232                 PD5_IN, PD5_OUT,
1233                 PD4_IN, PD4_OUT,
1234                 PD3_IN, PD3_OUT,
1235                 PD2_IN, PD2_OUT,
1236                 PD1_IN, PD1_OUT,
1237                 PD0_IN, PD0_OUT ))
1238         },
1239         { PINMUX_CFG_REG("PDCRL4", 0xfffe3990, 16, 4, GROUP(
1240                 PD15MD_000, PD15MD_001, PD15MD_010, 0,
1241                 PD15MD_100, PD15MD_101, 0, 0,
1242                 0, 0, 0, 0, 0, 0, 0, 0,
1243
1244                 PD14MD_000, PD14MD_001, PD14MD_010, 0,
1245                 0, PD14MD_101, 0, 0,
1246                 0, 0, 0, 0, 0, 0, 0, 0,
1247
1248                 PD13MD_000, PD13MD_001, PD13MD_010, 0,
1249                 PD13MD_100, PD13MD_101, 0, 0,
1250                 0, 0, 0, 0, 0, 0, 0, 0,
1251
1252                 PD12MD_000, PD12MD_001, PD12MD_010, 0,
1253                 PD12MD_100, PD12MD_101, 0, 0,
1254                 0, 0, 0, 0, 0, 0, 0, 0 ))
1255         },
1256         { PINMUX_CFG_REG("PDCRL3", 0xfffe3992, 16, 4, GROUP(
1257                 PD11MD_000, PD11MD_001, PD11MD_010, 0,
1258                 PD11MD_100, PD11MD_101, 0, 0,
1259                 0, 0, 0, 0, 0, 0, 0, 0,
1260
1261                 PD10MD_000, PD10MD_001, PD10MD_010, 0,
1262                 PD10MD_100, PD10MD_101, 0, 0,
1263                 0, 0, 0, 0, 0, 0, 0, 0,
1264
1265                 PD9MD_000, PD9MD_001, PD9MD_010, 0,
1266                 PD9MD_100, PD9MD_101, 0, 0,
1267                 0, 0, 0, 0, 0, 0, 0, 0,
1268
1269                 PD8MD_000, PD8MD_001, PD8MD_010, 0,
1270                 PD8MD_100, PD8MD_101, 0, 0,
1271                 0, 0, 0, 0, 0, 0, 0, 0 ))
1272         },
1273         { PINMUX_CFG_REG("PDCRL2", 0xfffe3994, 16, 4, GROUP(
1274                 PD7MD_000, PD7MD_001, PD7MD_010, PD7MD_011,
1275                 PD7MD_100, PD7MD_101, 0, 0,
1276                 0, 0, 0, 0, 0, 0, 0, 0,
1277
1278                 PD6MD_000, PD6MD_001, PD6MD_010, PD6MD_011,
1279                 PD6MD_100, PD6MD_101, 0, 0,
1280                 0, 0, 0, 0, 0, 0, 0, 0,
1281
1282                 PD5MD_000, PD5MD_001, PD5MD_010, PD5MD_011,
1283                 PD5MD_100, PD5MD_101, 0, 0,
1284                 0, 0, 0, 0, 0, 0, 0, 0,
1285
1286                 PD4MD_000, PD4MD_001, PD4MD_010, PD4MD_011,
1287                 PD4MD_100, PD4MD_101, 0, 0,
1288                 0, 0, 0, 0, 0, 0, 0, 0 ))
1289         },
1290         { PINMUX_CFG_REG("PDCRL1", 0xfffe3996, 16, 4, GROUP(
1291                 PD3MD_000, PD3MD_001, PD3MD_010, PD3MD_011,
1292                 PD3MD_100, PD3MD_101, 0, 0,
1293                 0, 0, 0, 0, 0, 0, 0, 0,
1294
1295                 PD2MD_000, PD2MD_001, PD2MD_010, PD2MD_011,
1296                 PD2MD_100, PD2MD_101, 0, 0,
1297                 0, 0, 0, 0, 0, 0, 0, 0,
1298
1299                 PD1MD_000, PD1MD_001, PD1MD_010, PD1MD_011,
1300                 PD1MD_100, PD1MD_101, 0, 0,
1301                 0, 0, 0, 0, 0, 0, 0, 0,
1302
1303                 PD0MD_000, PD0MD_001, PD0MD_010, PD0MD_011,
1304                 PD0MD_100, PD0MD_101, 0, 0,
1305                 0, 0, 0, 0, 0, 0, 0, 0 ))
1306         },
1307         { PINMUX_CFG_REG("PEIORL", 0xfffe3a06, 16, 1, GROUP(
1308                 PE15_IN, PE15_OUT,
1309                 PE14_IN, PE14_OUT,
1310                 PE13_IN, PE13_OUT,
1311                 PE12_IN, PE12_OUT,
1312                 PE11_IN, PE11_OUT,
1313                 PE10_IN, PE10_OUT,
1314                 PE9_IN, PE9_OUT,
1315                 PE8_IN, PE8_OUT,
1316                 PE7_IN, PE7_OUT,
1317                 PE6_IN, PE6_OUT,
1318                 PE5_IN, PE5_OUT,
1319                 PE4_IN, PE4_OUT,
1320                 PE3_IN, PE3_OUT,
1321                 PE2_IN, PE2_OUT,
1322                 PE1_IN, PE1_OUT,
1323                 PE0_IN, PE0_OUT ))
1324         },
1325         { PINMUX_CFG_REG("PECRL4", 0xfffe3a10, 16, 4, GROUP(
1326                 PE15MD_00, PE15MD_01, 0, PE15MD_11,
1327                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1328
1329                 PE14MD_00, PE14MD_01, 0, PE14MD_11,
1330                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1331
1332                 PE13MD_00, 0, 0, PE13MD_11,
1333                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1334
1335                 PE12MD_00, 0, 0, PE12MD_11,
1336                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ))
1337         },
1338         { PINMUX_CFG_REG("PECRL3", 0xfffe3a12, 16, 4, GROUP(
1339                 PE11MD_000, PE11MD_001, PE11MD_010, 0,
1340                 PE11MD_100, 0, 0, 0,
1341                 0, 0, 0, 0, 0, 0, 0, 0,
1342
1343                 PE10MD_000, PE10MD_001, PE10MD_010, 0,
1344                 PE10MD_100, 0, 0, 0,
1345                 0, 0, 0, 0, 0, 0, 0, 0,
1346
1347                 PE9MD_00, PE9MD_01, PE9MD_10, PE9MD_11,
1348                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1349
1350                 PE8MD_00, PE8MD_01, PE8MD_10, PE8MD_11,
1351                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ))
1352         },
1353         { PINMUX_CFG_REG("PECRL2", 0xfffe3a14, 16, 4, GROUP(
1354                 PE7MD_000, PE7MD_001, PE7MD_010, PE7MD_011,
1355                 PE7MD_100, 0, 0, 0,
1356                 0, 0, 0, 0, 0, 0, 0, 0,
1357
1358                 PE6MD_000, PE6MD_001, PE6MD_010, PE6MD_011,
1359                 PE6MD_100, 0, 0, 0,
1360                 0, 0, 0, 0, 0, 0, 0, 0,
1361
1362                 PE5MD_000, PE5MD_001, PE5MD_010, PE5MD_011,
1363                 PE5MD_100, 0, 0, 0,
1364                 0, 0, 0, 0, 0, 0, 0, 0,
1365
1366                 PE4MD_000, PE4MD_001, PE4MD_010, PE4MD_011,
1367                 PE4MD_100, 0, 0, 0,
1368                 0, 0, 0, 0, 0, 0, 0, 0 ))
1369         },
1370         { PINMUX_CFG_REG("PECRL1", 0xfffe3a16, 16, 4, GROUP(
1371                 PE3MD_00, PE3MD_01, 0, PE3MD_11,
1372                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1373
1374                 PE2MD_00, PE2MD_01, 0, PE2MD_11,
1375                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1376
1377                 PE1MD_00, PE1MD_01, PE1MD_10, PE1MD_11,
1378                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1379
1380                 PE0MD_000, PE0MD_001, 0, PE0MD_011,
1381                 PE0MD_100, 0, 0, 0,
1382                 0, 0, 0, 0, 0, 0, 0, 0 ))
1383         },
1384         { PINMUX_CFG_REG("PFIORH", 0xfffe3a84, 16, 1, GROUP(
1385                 0, 0,
1386                 PF30_IN, PF30_OUT,
1387                 PF29_IN, PF29_OUT,
1388                 PF28_IN, PF28_OUT,
1389                 PF27_IN, PF27_OUT,
1390                 PF26_IN, PF26_OUT,
1391                 PF25_IN, PF25_OUT,
1392                 PF24_IN, PF24_OUT,
1393                 PF23_IN, PF23_OUT,
1394                 PF22_IN, PF22_OUT,
1395                 PF21_IN, PF21_OUT,
1396                 PF20_IN, PF20_OUT,
1397                 PF19_IN, PF19_OUT,
1398                 PF18_IN, PF18_OUT,
1399                 PF17_IN, PF17_OUT,
1400                 PF16_IN, PF16_OUT ))
1401         },
1402         { PINMUX_CFG_REG("PFIORL", 0xfffe3a86, 16, 1, GROUP(
1403                 PF15_IN, PF15_OUT,
1404                 PF14_IN, PF14_OUT,
1405                 PF13_IN, PF13_OUT,
1406                 PF12_IN, PF12_OUT,
1407                 PF11_IN, PF11_OUT,
1408                 PF10_IN, PF10_OUT,
1409                 PF9_IN, PF9_OUT,
1410                 PF8_IN, PF8_OUT,
1411                 PF7_IN, PF7_OUT,
1412                 PF6_IN, PF6_OUT,
1413                 PF5_IN, PF5_OUT,
1414                 PF4_IN, PF4_OUT,
1415                 PF3_IN, PF3_OUT,
1416                 PF2_IN, PF2_OUT,
1417                 PF1_IN, PF1_OUT,
1418                 PF0_IN, PF0_OUT ))
1419         },
1420         { PINMUX_CFG_REG("PFCRH4", 0xfffe3a88, 16, 4, GROUP(
1421                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1422
1423                 PF30MD_0, PF30MD_1,
1424                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1425
1426                 PF29MD_0, PF29MD_1,
1427                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1428
1429                 PF28MD_0, PF28MD_1,
1430                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ))
1431         },
1432         { PINMUX_CFG_REG("PFCRH3", 0xfffe3a8a, 16, 4, GROUP(
1433                 PF27MD_0, PF27MD_1,
1434                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1435
1436                 PF26MD_0, PF26MD_1,
1437                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1438
1439                 PF25MD_0, PF25MD_1,
1440                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1441
1442                 PF24MD_0, PF24MD_1,
1443                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ))
1444         },
1445         { PINMUX_CFG_REG("PFCRH2", 0xfffe3a8c, 16, 4, GROUP(
1446                 PF23MD_00, PF23MD_01, PF23MD_10, 0,
1447                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1448
1449                 PF22MD_00, PF22MD_01, PF22MD_10, 0,
1450                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1451
1452                 PF21MD_00, PF21MD_01, PF21MD_10, 0,
1453                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1454
1455                 PF20MD_00, PF20MD_01, PF20MD_10, 0,
1456                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ))
1457         },
1458         { PINMUX_CFG_REG("PFCRH1", 0xfffe3a8e, 16, 4, GROUP(
1459                 PF19MD_00, PF19MD_01, PF19MD_10, 0,
1460                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1461
1462                 PF18MD_00, PF18MD_01, PF18MD_10, 0,
1463                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1464
1465                 PF17MD_00, PF17MD_01, PF17MD_10, 0,
1466                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1467
1468                 PF16MD_00, PF16MD_01, PF16MD_10, 0,
1469                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ))
1470         },
1471         { PINMUX_CFG_REG("PFCRL4", 0xfffe3a90, 16, 4, GROUP(
1472                 PF15MD_00, PF15MD_01, PF15MD_10, 0,
1473                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1474
1475                 PF14MD_00, PF14MD_01, PF14MD_10, 0,
1476                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1477
1478                 PF13MD_00, PF13MD_01, PF13MD_10, 0,
1479                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1480
1481                 PF12MD_00, PF12MD_01, PF12MD_10, 0,
1482                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ))
1483         },
1484         { PINMUX_CFG_REG("PFCRL3", 0xfffe3a92, 16, 4, GROUP(
1485                 PF11MD_00, PF11MD_01, PF11MD_10, 0,
1486                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1487
1488                 PF10MD_00, PF10MD_01, PF10MD_10, 0,
1489                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1490
1491                 PF9MD_00, PF9MD_01, PF9MD_10, 0,
1492                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1493
1494                 PF8MD_00, PF8MD_01, PF8MD_10, 0,
1495                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ))
1496         },
1497         { PINMUX_CFG_REG("PFCRL2", 0xfffe3a94, 16, 4, GROUP(
1498                 PF7MD_00, PF7MD_01, PF7MD_10, PF7MD_11,
1499                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1500
1501                 PF6MD_00, PF6MD_01, PF6MD_10, PF6MD_11,
1502                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1503
1504                 PF5MD_00, PF5MD_01, PF5MD_10, PF5MD_11,
1505                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1506
1507                 PF4MD_00, PF4MD_01, PF4MD_10, PF4MD_11,
1508                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ))
1509         },
1510         { PINMUX_CFG_REG("PFCRL1", 0xfffe3a96, 16, 4, GROUP(
1511                 PF3MD_00, PF3MD_01, PF3MD_10, PF3MD_11,
1512                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1513
1514                 PF2MD_00, PF2MD_01, PF2MD_10, PF2MD_11,
1515                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1516
1517                 PF1MD_00, PF1MD_01, PF1MD_10, PF1MD_11,
1518                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1519
1520                 PF0MD_00, PF0MD_01, PF0MD_10, PF0MD_11,
1521                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ))
1522         },
1523         {}
1524 };
1525
1526 static const struct pinmux_data_reg pinmux_data_regs[] = {
1527         { PINMUX_DATA_REG("PADRL", 0xfffe3802, 16, GROUP(
1528                 0, 0, 0, 0,
1529                 0, 0, 0, 0,
1530                 PA7_DATA, PA6_DATA, PA5_DATA, PA4_DATA,
1531                 PA3_DATA, PA2_DATA, PA1_DATA, PA0_DATA ))
1532         },
1533         { PINMUX_DATA_REG("PBDRL", 0xfffe3882, 16, GROUP(
1534                 0, 0, 0, PB12_DATA,
1535                 PB11_DATA, PB10_DATA, PB9_DATA, PB8_DATA,
1536                 PB7_DATA, PB6_DATA, PB5_DATA, PB4_DATA,
1537                 PB3_DATA, PB2_DATA, PB1_DATA, PB0_DATA ))
1538         },
1539         { PINMUX_DATA_REG("PCDRL", 0xfffe3902, 16, GROUP(
1540                 0, PC14_DATA, PC13_DATA, PC12_DATA,
1541                 PC11_DATA, PC10_DATA, PC9_DATA, PC8_DATA,
1542                 PC7_DATA, PC6_DATA, PC5_DATA, PC4_DATA,
1543                 PC3_DATA, PC2_DATA, PC1_DATA, PC0_DATA ))
1544         },
1545         { PINMUX_DATA_REG("PDDRL", 0xfffe3982, 16, GROUP(
1546                 PD15_DATA, PD14_DATA, PD13_DATA, PD12_DATA,
1547                 PD11_DATA, PD10_DATA, PD9_DATA, PD8_DATA,
1548                 PD7_DATA, PD6_DATA, PD5_DATA, PD4_DATA,
1549                 PD3_DATA, PD2_DATA, PD1_DATA, PD0_DATA ))
1550         },
1551         { PINMUX_DATA_REG("PEDRL", 0xfffe3a02, 16, GROUP(
1552                 PE15_DATA, PE14_DATA, PE13_DATA, PE12_DATA,
1553                 PE11_DATA, PE10_DATA, PE9_DATA, PE8_DATA,
1554                 PE7_DATA, PE6_DATA, PE5_DATA, PE4_DATA,
1555                 PE3_DATA, PE2_DATA, PE1_DATA, PE0_DATA ))
1556         },
1557         { PINMUX_DATA_REG("PFDRH", 0xfffe3a80, 16, GROUP(
1558                 0, PF30_DATA, PF29_DATA, PF28_DATA,
1559                 PF27_DATA, PF26_DATA, PF25_DATA, PF24_DATA,
1560                 PF23_DATA, PF22_DATA, PF21_DATA, PF20_DATA,
1561                 PF19_DATA, PF18_DATA, PF17_DATA, PF16_DATA ))
1562         },
1563         { PINMUX_DATA_REG("PFDRL", 0xfffe3a82, 16, GROUP(
1564                 PF15_DATA, PF14_DATA, PF13_DATA, PF12_DATA,
1565                 PF11_DATA, PF10_DATA, PF9_DATA, PF8_DATA,
1566                 PF7_DATA, PF6_DATA, PF5_DATA, PF4_DATA,
1567                 PF3_DATA, PF2_DATA, PF1_DATA, PF0_DATA ))
1568         },
1569         { },
1570 };
1571
1572 const struct sh_pfc_soc_info sh7203_pinmux_info = {
1573         .name = "sh7203_pfc",
1574         .input = { PINMUX_INPUT_BEGIN, PINMUX_INPUT_END, FORCE_IN },
1575         .output = { PINMUX_OUTPUT_BEGIN, PINMUX_OUTPUT_END, FORCE_OUT },
1576         .function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END },
1577
1578         .pins = pinmux_pins,
1579         .nr_pins = ARRAY_SIZE(pinmux_pins),
1580         .func_gpios = pinmux_func_gpios,
1581         .nr_func_gpios = ARRAY_SIZE(pinmux_func_gpios),
1582
1583         .cfg_regs = pinmux_config_regs,
1584         .data_regs = pinmux_data_regs,
1585
1586         .pinmux_data = pinmux_data,
1587         .pinmux_data_size = ARRAY_SIZE(pinmux_data),
1588 };