GNU Linux-libre 6.7.9-gnu
[releases.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_VAR("PBIORL", 0xfffe3886, 16,
1076                              GROUP(-4, 1, 1, 1, 1, -8),
1077                              GROUP(
1078                 /* RESERVED [4] */
1079                 PB11_IN, PB11_OUT,
1080                 PB10_IN, PB10_OUT,
1081                 PB9_IN, PB9_OUT,
1082                 PB8_IN, PB8_OUT,
1083                 /* RESERVED [8] */ ))
1084         },
1085         { PINMUX_CFG_REG_VAR("PBCRL4", 0xfffe3890, 16,
1086                              GROUP(-12, 4),
1087                              GROUP(
1088                 /* RESERVED [12] */
1089                 PB12MD_00, PB12MD_01, PB12MD_10, PB12MD_11,
1090                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ))
1091         },
1092         { PINMUX_CFG_REG("PBCRL3", 0xfffe3892, 16, 4, GROUP(
1093                 PB11MD_0, PB11MD_1,
1094                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1095
1096                 PB10MD_0, PB10MD_1,
1097                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1098
1099                 PB9MD_00, PB9MD_01, PB9MD_10, 0,
1100                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1101
1102                 PB8MD_00, PB8MD_01, PB8MD_10, 0,
1103                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ))
1104         },
1105         { PINMUX_CFG_REG("PBCRL2", 0xfffe3894, 16, 4, GROUP(
1106                 PB7MD_00, PB7MD_01, PB7MD_10, PB7MD_11,
1107                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1108
1109                 PB6MD_00, PB6MD_01, PB6MD_10, PB6MD_11,
1110                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1111
1112                 PB5MD_00, PB5MD_01, PB5MD_10, PB5MD_11,
1113                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1114
1115                 PB4MD_00, PB4MD_01, PB4MD_10, PB4MD_11,
1116                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ))
1117         },
1118         { PINMUX_CFG_REG("PBCRL1", 0xfffe3896, 16, 4, GROUP(
1119                 PB3MD_00, PB3MD_01, PB3MD_10, PB3MD_11,
1120                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1121
1122                 PB2MD_00, PB2MD_01, PB2MD_10, PB2MD_11,
1123                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1124
1125                 PB1MD_00, PB1MD_01, PB1MD_10, PB1MD_11,
1126                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1127
1128                 PB0MD_00, PB0MD_01, PB0MD_10, PB0MD_11,
1129                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ))
1130         },
1131         { PINMUX_CFG_REG_VAR("IFCR", 0xfffe38a2, 16,
1132                              GROUP(-12, 4),
1133                              GROUP(
1134                 /* RESERVED [12] */
1135                 PB12IRQ_00, PB12IRQ_01, PB12IRQ_10, 0,
1136                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ))
1137         },
1138         { PINMUX_CFG_REG("PCIORL", 0xfffe3906, 16, 1, GROUP(
1139                 0, 0,
1140                 PC14_IN, PC14_OUT,
1141                 PC13_IN, PC13_OUT,
1142                 PC12_IN, PC12_OUT,
1143                 PC11_IN, PC11_OUT,
1144                 PC10_IN, PC10_OUT,
1145                 PC9_IN, PC9_OUT,
1146                 PC8_IN, PC8_OUT,
1147                 PC7_IN, PC7_OUT,
1148                 PC6_IN, PC6_OUT,
1149                 PC5_IN, PC5_OUT,
1150                 PC4_IN, PC4_OUT,
1151                 PC3_IN, PC3_OUT,
1152                 PC2_IN, PC2_OUT,
1153                 PC1_IN, PC1_OUT,
1154                 PC0_IN, PC0_OUT ))
1155         },
1156         { PINMUX_CFG_REG_VAR("PCCRL4", 0xfffe3910, 16,
1157                              GROUP(-4, 4, 4, 4),
1158                              GROUP(
1159                 /* RESERVED [4] */
1160                 PC14MD_0, PC14MD_1,
1161                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1162
1163                 PC13MD_0, PC13MD_1,
1164                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1165
1166                 PC12MD_0, PC12MD_1,
1167                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ))
1168         },
1169         { PINMUX_CFG_REG("PCCRL3", 0xfffe3912, 16, 4, GROUP(
1170                 PC11MD_00, PC11MD_01, PC11MD_10, 0,
1171                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1172
1173                 PC10MD_00, PC10MD_01, PC10MD_10, 0,
1174                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1175
1176                 PC9MD_0, PC9MD_1,
1177                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1178
1179                 PC8MD_0, PC8MD_1,
1180                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ))
1181         },
1182         { PINMUX_CFG_REG("PCCRL2", 0xfffe3914, 16, 4, GROUP(
1183                 PC7MD_0, PC7MD_1,
1184                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1185
1186                 PC6MD_0, PC6MD_1,
1187                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1188
1189                 PC5MD_0, PC5MD_1,
1190                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1191
1192                 PC4MD_0, PC4MD_1,
1193                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ))
1194         },
1195         { PINMUX_CFG_REG("PCCRL1", 0xfffe3916, 16, 4, GROUP(
1196                 PC3MD_0, PC3MD_1,
1197                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1198
1199                 PC2MD_0, PC2MD_1,
1200                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1201
1202                 PC1MD_0, PC1MD_1,
1203                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1204
1205                 PC0MD_00, PC0MD_01, PC0MD_10, 0,
1206                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ))
1207         },
1208         { PINMUX_CFG_REG("PDIORL", 0xfffe3986, 16, 1, GROUP(
1209                 PD15_IN, PD15_OUT,
1210                 PD14_IN, PD14_OUT,
1211                 PD13_IN, PD13_OUT,
1212                 PD12_IN, PD12_OUT,
1213                 PD11_IN, PD11_OUT,
1214                 PD10_IN, PD10_OUT,
1215                 PD9_IN, PD9_OUT,
1216                 PD8_IN, PD8_OUT,
1217                 PD7_IN, PD7_OUT,
1218                 PD6_IN, PD6_OUT,
1219                 PD5_IN, PD5_OUT,
1220                 PD4_IN, PD4_OUT,
1221                 PD3_IN, PD3_OUT,
1222                 PD2_IN, PD2_OUT,
1223                 PD1_IN, PD1_OUT,
1224                 PD0_IN, PD0_OUT ))
1225         },
1226         { PINMUX_CFG_REG("PDCRL4", 0xfffe3990, 16, 4, GROUP(
1227                 PD15MD_000, PD15MD_001, PD15MD_010, 0,
1228                 PD15MD_100, PD15MD_101, 0, 0,
1229                 0, 0, 0, 0, 0, 0, 0, 0,
1230
1231                 PD14MD_000, PD14MD_001, PD14MD_010, 0,
1232                 0, PD14MD_101, 0, 0,
1233                 0, 0, 0, 0, 0, 0, 0, 0,
1234
1235                 PD13MD_000, PD13MD_001, PD13MD_010, 0,
1236                 PD13MD_100, PD13MD_101, 0, 0,
1237                 0, 0, 0, 0, 0, 0, 0, 0,
1238
1239                 PD12MD_000, PD12MD_001, PD12MD_010, 0,
1240                 PD12MD_100, PD12MD_101, 0, 0,
1241                 0, 0, 0, 0, 0, 0, 0, 0 ))
1242         },
1243         { PINMUX_CFG_REG("PDCRL3", 0xfffe3992, 16, 4, GROUP(
1244                 PD11MD_000, PD11MD_001, PD11MD_010, 0,
1245                 PD11MD_100, PD11MD_101, 0, 0,
1246                 0, 0, 0, 0, 0, 0, 0, 0,
1247
1248                 PD10MD_000, PD10MD_001, PD10MD_010, 0,
1249                 PD10MD_100, PD10MD_101, 0, 0,
1250                 0, 0, 0, 0, 0, 0, 0, 0,
1251
1252                 PD9MD_000, PD9MD_001, PD9MD_010, 0,
1253                 PD9MD_100, PD9MD_101, 0, 0,
1254                 0, 0, 0, 0, 0, 0, 0, 0,
1255
1256                 PD8MD_000, PD8MD_001, PD8MD_010, 0,
1257                 PD8MD_100, PD8MD_101, 0, 0,
1258                 0, 0, 0, 0, 0, 0, 0, 0 ))
1259         },
1260         { PINMUX_CFG_REG("PDCRL2", 0xfffe3994, 16, 4, GROUP(
1261                 PD7MD_000, PD7MD_001, PD7MD_010, PD7MD_011,
1262                 PD7MD_100, PD7MD_101, 0, 0,
1263                 0, 0, 0, 0, 0, 0, 0, 0,
1264
1265                 PD6MD_000, PD6MD_001, PD6MD_010, PD6MD_011,
1266                 PD6MD_100, PD6MD_101, 0, 0,
1267                 0, 0, 0, 0, 0, 0, 0, 0,
1268
1269                 PD5MD_000, PD5MD_001, PD5MD_010, PD5MD_011,
1270                 PD5MD_100, PD5MD_101, 0, 0,
1271                 0, 0, 0, 0, 0, 0, 0, 0,
1272
1273                 PD4MD_000, PD4MD_001, PD4MD_010, PD4MD_011,
1274                 PD4MD_100, PD4MD_101, 0, 0,
1275                 0, 0, 0, 0, 0, 0, 0, 0 ))
1276         },
1277         { PINMUX_CFG_REG("PDCRL1", 0xfffe3996, 16, 4, GROUP(
1278                 PD3MD_000, PD3MD_001, PD3MD_010, PD3MD_011,
1279                 PD3MD_100, PD3MD_101, 0, 0,
1280                 0, 0, 0, 0, 0, 0, 0, 0,
1281
1282                 PD2MD_000, PD2MD_001, PD2MD_010, PD2MD_011,
1283                 PD2MD_100, PD2MD_101, 0, 0,
1284                 0, 0, 0, 0, 0, 0, 0, 0,
1285
1286                 PD1MD_000, PD1MD_001, PD1MD_010, PD1MD_011,
1287                 PD1MD_100, PD1MD_101, 0, 0,
1288                 0, 0, 0, 0, 0, 0, 0, 0,
1289
1290                 PD0MD_000, PD0MD_001, PD0MD_010, PD0MD_011,
1291                 PD0MD_100, PD0MD_101, 0, 0,
1292                 0, 0, 0, 0, 0, 0, 0, 0 ))
1293         },
1294         { PINMUX_CFG_REG("PEIORL", 0xfffe3a06, 16, 1, GROUP(
1295                 PE15_IN, PE15_OUT,
1296                 PE14_IN, PE14_OUT,
1297                 PE13_IN, PE13_OUT,
1298                 PE12_IN, PE12_OUT,
1299                 PE11_IN, PE11_OUT,
1300                 PE10_IN, PE10_OUT,
1301                 PE9_IN, PE9_OUT,
1302                 PE8_IN, PE8_OUT,
1303                 PE7_IN, PE7_OUT,
1304                 PE6_IN, PE6_OUT,
1305                 PE5_IN, PE5_OUT,
1306                 PE4_IN, PE4_OUT,
1307                 PE3_IN, PE3_OUT,
1308                 PE2_IN, PE2_OUT,
1309                 PE1_IN, PE1_OUT,
1310                 PE0_IN, PE0_OUT ))
1311         },
1312         { PINMUX_CFG_REG("PECRL4", 0xfffe3a10, 16, 4, GROUP(
1313                 PE15MD_00, PE15MD_01, 0, PE15MD_11,
1314                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1315
1316                 PE14MD_00, PE14MD_01, 0, PE14MD_11,
1317                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1318
1319                 PE13MD_00, 0, 0, PE13MD_11,
1320                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1321
1322                 PE12MD_00, 0, 0, PE12MD_11,
1323                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ))
1324         },
1325         { PINMUX_CFG_REG("PECRL3", 0xfffe3a12, 16, 4, GROUP(
1326                 PE11MD_000, PE11MD_001, PE11MD_010, 0,
1327                 PE11MD_100, 0, 0, 0,
1328                 0, 0, 0, 0, 0, 0, 0, 0,
1329
1330                 PE10MD_000, PE10MD_001, PE10MD_010, 0,
1331                 PE10MD_100, 0, 0, 0,
1332                 0, 0, 0, 0, 0, 0, 0, 0,
1333
1334                 PE9MD_00, PE9MD_01, PE9MD_10, PE9MD_11,
1335                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1336
1337                 PE8MD_00, PE8MD_01, PE8MD_10, PE8MD_11,
1338                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ))
1339         },
1340         { PINMUX_CFG_REG("PECRL2", 0xfffe3a14, 16, 4, GROUP(
1341                 PE7MD_000, PE7MD_001, PE7MD_010, PE7MD_011,
1342                 PE7MD_100, 0, 0, 0,
1343                 0, 0, 0, 0, 0, 0, 0, 0,
1344
1345                 PE6MD_000, PE6MD_001, PE6MD_010, PE6MD_011,
1346                 PE6MD_100, 0, 0, 0,
1347                 0, 0, 0, 0, 0, 0, 0, 0,
1348
1349                 PE5MD_000, PE5MD_001, PE5MD_010, PE5MD_011,
1350                 PE5MD_100, 0, 0, 0,
1351                 0, 0, 0, 0, 0, 0, 0, 0,
1352
1353                 PE4MD_000, PE4MD_001, PE4MD_010, PE4MD_011,
1354                 PE4MD_100, 0, 0, 0,
1355                 0, 0, 0, 0, 0, 0, 0, 0 ))
1356         },
1357         { PINMUX_CFG_REG("PECRL1", 0xfffe3a16, 16, 4, GROUP(
1358                 PE3MD_00, PE3MD_01, 0, PE3MD_11,
1359                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1360
1361                 PE2MD_00, PE2MD_01, 0, PE2MD_11,
1362                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1363
1364                 PE1MD_00, PE1MD_01, PE1MD_10, PE1MD_11,
1365                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1366
1367                 PE0MD_000, PE0MD_001, 0, PE0MD_011,
1368                 PE0MD_100, 0, 0, 0,
1369                 0, 0, 0, 0, 0, 0, 0, 0 ))
1370         },
1371         { PINMUX_CFG_REG("PFIORH", 0xfffe3a84, 16, 1, GROUP(
1372                 0, 0,
1373                 PF30_IN, PF30_OUT,
1374                 PF29_IN, PF29_OUT,
1375                 PF28_IN, PF28_OUT,
1376                 PF27_IN, PF27_OUT,
1377                 PF26_IN, PF26_OUT,
1378                 PF25_IN, PF25_OUT,
1379                 PF24_IN, PF24_OUT,
1380                 PF23_IN, PF23_OUT,
1381                 PF22_IN, PF22_OUT,
1382                 PF21_IN, PF21_OUT,
1383                 PF20_IN, PF20_OUT,
1384                 PF19_IN, PF19_OUT,
1385                 PF18_IN, PF18_OUT,
1386                 PF17_IN, PF17_OUT,
1387                 PF16_IN, PF16_OUT ))
1388         },
1389         { PINMUX_CFG_REG("PFIORL", 0xfffe3a86, 16, 1, GROUP(
1390                 PF15_IN, PF15_OUT,
1391                 PF14_IN, PF14_OUT,
1392                 PF13_IN, PF13_OUT,
1393                 PF12_IN, PF12_OUT,
1394                 PF11_IN, PF11_OUT,
1395                 PF10_IN, PF10_OUT,
1396                 PF9_IN, PF9_OUT,
1397                 PF8_IN, PF8_OUT,
1398                 PF7_IN, PF7_OUT,
1399                 PF6_IN, PF6_OUT,
1400                 PF5_IN, PF5_OUT,
1401                 PF4_IN, PF4_OUT,
1402                 PF3_IN, PF3_OUT,
1403                 PF2_IN, PF2_OUT,
1404                 PF1_IN, PF1_OUT,
1405                 PF0_IN, PF0_OUT ))
1406         },
1407         { PINMUX_CFG_REG_VAR("PFCRH4", 0xfffe3a88, 16,
1408                              GROUP(-4, 4, 4, 4),
1409                              GROUP(
1410                 /* RESERVED [4] */
1411
1412                 PF30MD_0, PF30MD_1,
1413                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1414
1415                 PF29MD_0, PF29MD_1,
1416                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1417
1418                 PF28MD_0, PF28MD_1,
1419                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ))
1420         },
1421         { PINMUX_CFG_REG("PFCRH3", 0xfffe3a8a, 16, 4, GROUP(
1422                 PF27MD_0, PF27MD_1,
1423                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1424
1425                 PF26MD_0, PF26MD_1,
1426                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1427
1428                 PF25MD_0, PF25MD_1,
1429                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1430
1431                 PF24MD_0, PF24MD_1,
1432                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ))
1433         },
1434         { PINMUX_CFG_REG("PFCRH2", 0xfffe3a8c, 16, 4, GROUP(
1435                 PF23MD_00, PF23MD_01, PF23MD_10, 0,
1436                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1437
1438                 PF22MD_00, PF22MD_01, PF22MD_10, 0,
1439                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1440
1441                 PF21MD_00, PF21MD_01, PF21MD_10, 0,
1442                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1443
1444                 PF20MD_00, PF20MD_01, PF20MD_10, 0,
1445                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ))
1446         },
1447         { PINMUX_CFG_REG("PFCRH1", 0xfffe3a8e, 16, 4, GROUP(
1448                 PF19MD_00, PF19MD_01, PF19MD_10, 0,
1449                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1450
1451                 PF18MD_00, PF18MD_01, PF18MD_10, 0,
1452                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1453
1454                 PF17MD_00, PF17MD_01, PF17MD_10, 0,
1455                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1456
1457                 PF16MD_00, PF16MD_01, PF16MD_10, 0,
1458                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ))
1459         },
1460         { PINMUX_CFG_REG("PFCRL4", 0xfffe3a90, 16, 4, GROUP(
1461                 PF15MD_00, PF15MD_01, PF15MD_10, 0,
1462                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1463
1464                 PF14MD_00, PF14MD_01, PF14MD_10, 0,
1465                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1466
1467                 PF13MD_00, PF13MD_01, PF13MD_10, 0,
1468                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1469
1470                 PF12MD_00, PF12MD_01, PF12MD_10, 0,
1471                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ))
1472         },
1473         { PINMUX_CFG_REG("PFCRL3", 0xfffe3a92, 16, 4, GROUP(
1474                 PF11MD_00, PF11MD_01, PF11MD_10, 0,
1475                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1476
1477                 PF10MD_00, PF10MD_01, PF10MD_10, 0,
1478                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1479
1480                 PF9MD_00, PF9MD_01, PF9MD_10, 0,
1481                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1482
1483                 PF8MD_00, PF8MD_01, PF8MD_10, 0,
1484                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ))
1485         },
1486         { PINMUX_CFG_REG("PFCRL2", 0xfffe3a94, 16, 4, GROUP(
1487                 PF7MD_00, PF7MD_01, PF7MD_10, PF7MD_11,
1488                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1489
1490                 PF6MD_00, PF6MD_01, PF6MD_10, PF6MD_11,
1491                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1492
1493                 PF5MD_00, PF5MD_01, PF5MD_10, PF5MD_11,
1494                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1495
1496                 PF4MD_00, PF4MD_01, PF4MD_10, PF4MD_11,
1497                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ))
1498         },
1499         { PINMUX_CFG_REG("PFCRL1", 0xfffe3a96, 16, 4, GROUP(
1500                 PF3MD_00, PF3MD_01, PF3MD_10, PF3MD_11,
1501                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1502
1503                 PF2MD_00, PF2MD_01, PF2MD_10, PF2MD_11,
1504                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1505
1506                 PF1MD_00, PF1MD_01, PF1MD_10, PF1MD_11,
1507                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1508
1509                 PF0MD_00, PF0MD_01, PF0MD_10, PF0MD_11,
1510                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ))
1511         },
1512         { /* sentinel */ }
1513 };
1514
1515 static const struct pinmux_data_reg pinmux_data_regs[] = {
1516         { PINMUX_DATA_REG("PADRL", 0xfffe3802, 16, GROUP(
1517                 0, 0, 0, 0,
1518                 0, 0, 0, 0,
1519                 PA7_DATA, PA6_DATA, PA5_DATA, PA4_DATA,
1520                 PA3_DATA, PA2_DATA, PA1_DATA, PA0_DATA ))
1521         },
1522         { PINMUX_DATA_REG("PBDRL", 0xfffe3882, 16, GROUP(
1523                 0, 0, 0, PB12_DATA,
1524                 PB11_DATA, PB10_DATA, PB9_DATA, PB8_DATA,
1525                 PB7_DATA, PB6_DATA, PB5_DATA, PB4_DATA,
1526                 PB3_DATA, PB2_DATA, PB1_DATA, PB0_DATA ))
1527         },
1528         { PINMUX_DATA_REG("PCDRL", 0xfffe3902, 16, GROUP(
1529                 0, PC14_DATA, PC13_DATA, PC12_DATA,
1530                 PC11_DATA, PC10_DATA, PC9_DATA, PC8_DATA,
1531                 PC7_DATA, PC6_DATA, PC5_DATA, PC4_DATA,
1532                 PC3_DATA, PC2_DATA, PC1_DATA, PC0_DATA ))
1533         },
1534         { PINMUX_DATA_REG("PDDRL", 0xfffe3982, 16, GROUP(
1535                 PD15_DATA, PD14_DATA, PD13_DATA, PD12_DATA,
1536                 PD11_DATA, PD10_DATA, PD9_DATA, PD8_DATA,
1537                 PD7_DATA, PD6_DATA, PD5_DATA, PD4_DATA,
1538                 PD3_DATA, PD2_DATA, PD1_DATA, PD0_DATA ))
1539         },
1540         { PINMUX_DATA_REG("PEDRL", 0xfffe3a02, 16, GROUP(
1541                 PE15_DATA, PE14_DATA, PE13_DATA, PE12_DATA,
1542                 PE11_DATA, PE10_DATA, PE9_DATA, PE8_DATA,
1543                 PE7_DATA, PE6_DATA, PE5_DATA, PE4_DATA,
1544                 PE3_DATA, PE2_DATA, PE1_DATA, PE0_DATA ))
1545         },
1546         { PINMUX_DATA_REG("PFDRH", 0xfffe3a80, 16, GROUP(
1547                 0, PF30_DATA, PF29_DATA, PF28_DATA,
1548                 PF27_DATA, PF26_DATA, PF25_DATA, PF24_DATA,
1549                 PF23_DATA, PF22_DATA, PF21_DATA, PF20_DATA,
1550                 PF19_DATA, PF18_DATA, PF17_DATA, PF16_DATA ))
1551         },
1552         { PINMUX_DATA_REG("PFDRL", 0xfffe3a82, 16, GROUP(
1553                 PF15_DATA, PF14_DATA, PF13_DATA, PF12_DATA,
1554                 PF11_DATA, PF10_DATA, PF9_DATA, PF8_DATA,
1555                 PF7_DATA, PF6_DATA, PF5_DATA, PF4_DATA,
1556                 PF3_DATA, PF2_DATA, PF1_DATA, PF0_DATA ))
1557         },
1558         { /* sentinel */ }
1559 };
1560
1561 const struct sh_pfc_soc_info sh7203_pinmux_info = {
1562         .name = "sh7203_pfc",
1563         .input = { PINMUX_INPUT_BEGIN, PINMUX_INPUT_END, FORCE_IN },
1564         .output = { PINMUX_OUTPUT_BEGIN, PINMUX_OUTPUT_END, FORCE_OUT },
1565         .function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END },
1566
1567         .pins = pinmux_pins,
1568         .nr_pins = ARRAY_SIZE(pinmux_pins),
1569         .func_gpios = pinmux_func_gpios,
1570         .nr_func_gpios = ARRAY_SIZE(pinmux_func_gpios),
1571
1572         .cfg_regs = pinmux_config_regs,
1573         .data_regs = pinmux_data_regs,
1574
1575         .pinmux_data = pinmux_data,
1576         .pinmux_data_size = ARRAY_SIZE(pinmux_data),
1577 };