GNU Linux-libre 6.7.9-gnu
[releases.git] / drivers / pinctrl / renesas / pfc-sh73a0.c
1 // SPDX-License-Identifier: GPL-2.0
2 /*
3  * sh73a0 processor support - PFC hardware block
4  *
5  * Copyright (C) 2010 Renesas Solutions Corp.
6  * Copyright (C) 2010 NISHIMOTO Hiroki
7  */
8 #include <linux/io.h>
9 #include <linux/kernel.h>
10 #include <linux/module.h>
11 #include <linux/pinctrl/pinconf-generic.h>
12 #include <linux/regulator/driver.h>
13 #include <linux/regulator/machine.h>
14 #include <linux/slab.h>
15
16 #include "sh_pfc.h"
17
18 #define CPU_ALL_PORT(fn, pfx, sfx)                                      \
19         PORT_10(0,  fn, pfx, sfx), PORT_90(0, fn, pfx, sfx),            \
20         PORT_10(100, fn, pfx##10, sfx),                                 \
21         PORT_1(110, fn, pfx##110, sfx), PORT_1(111, fn, pfx##111, sfx), \
22         PORT_1(112, fn, pfx##112, sfx), PORT_1(113, fn, pfx##113, sfx), \
23         PORT_1(114, fn, pfx##114, sfx), PORT_1(115, fn, pfx##115, sfx), \
24         PORT_1(116, fn, pfx##116, sfx), PORT_1(117, fn, pfx##117, sfx), \
25         PORT_1(118, fn, pfx##118, sfx),                                 \
26         PORT_1(128, fn, pfx##128, sfx), PORT_1(129, fn, pfx##129, sfx), \
27         PORT_10(130, fn, pfx##13, sfx), PORT_10(140, fn, pfx##14, sfx), \
28         PORT_10(150, fn, pfx##15, sfx),                                 \
29         PORT_1(160, fn, pfx##160, sfx), PORT_1(161, fn, pfx##161, sfx), \
30         PORT_1(162, fn, pfx##162, sfx), PORT_1(163, fn, pfx##163, sfx), \
31         PORT_1(164, fn, pfx##164, sfx),                                 \
32         PORT_1(192, fn, pfx##192, sfx), PORT_1(193, fn, pfx##193, sfx), \
33         PORT_1(194, fn, pfx##194, sfx), PORT_1(195, fn, pfx##195, sfx), \
34         PORT_1(196, fn, pfx##196, sfx), PORT_1(197, fn, pfx##197, sfx), \
35         PORT_1(198, fn, pfx##198, sfx), PORT_1(199, fn, pfx##199, sfx), \
36         PORT_10(200, fn, pfx##20, sfx), PORT_10(210, fn, pfx##21, sfx), \
37         PORT_10(220, fn, pfx##22, sfx), PORT_10(230, fn, pfx##23, sfx), \
38         PORT_10(240, fn, pfx##24, sfx), PORT_10(250, fn, pfx##25, sfx), \
39         PORT_10(260, fn, pfx##26, sfx), PORT_10(270, fn, pfx##27, sfx), \
40         PORT_1(280, fn, pfx##280, sfx), PORT_1(281, fn, pfx##281, sfx), \
41         PORT_1(282, fn, pfx##282, sfx),                                 \
42         PORT_1(288, fn, pfx##288, sfx), PORT_1(289, fn, pfx##289, sfx), \
43         PORT_10(290, fn, pfx##29, sfx), PORT_10(300, fn, pfx##30, sfx)
44
45 #define CPU_ALL_NOGP(fn)        \
46         PIN_NOGP(A11, "F26", fn)
47
48 enum {
49         PINMUX_RESERVED = 0,
50
51         PINMUX_DATA_BEGIN,
52         PORT_ALL(DATA),                 /* PORT0_DATA -> PORT309_DATA */
53         PINMUX_DATA_END,
54
55         PINMUX_INPUT_BEGIN,
56         PORT_ALL(IN),                   /* PORT0_IN -> PORT309_IN */
57         PINMUX_INPUT_END,
58
59         PINMUX_OUTPUT_BEGIN,
60         PORT_ALL(OUT),                  /* PORT0_OUT -> PORT309_OUT */
61         PINMUX_OUTPUT_END,
62
63         PINMUX_FUNCTION_BEGIN,
64         PORT_ALL(FN_IN),                /* PORT0_FN_IN -> PORT309_FN_IN */
65         PORT_ALL(FN_OUT),               /* PORT0_FN_OUT -> PORT309_FN_OUT */
66         PORT_ALL(FN0),                  /* PORT0_FN0 -> PORT309_FN0 */
67         PORT_ALL(FN1),                  /* PORT0_FN1 -> PORT309_FN1 */
68         PORT_ALL(FN2),                  /* PORT0_FN2 -> PORT309_FN2 */
69         PORT_ALL(FN3),                  /* PORT0_FN3 -> PORT309_FN3 */
70         PORT_ALL(FN4),                  /* PORT0_FN4 -> PORT309_FN4 */
71         PORT_ALL(FN5),                  /* PORT0_FN5 -> PORT309_FN5 */
72         PORT_ALL(FN6),                  /* PORT0_FN6 -> PORT309_FN6 */
73         PORT_ALL(FN7),                  /* PORT0_FN7 -> PORT309_FN7 */
74
75         MSEL2CR_MSEL19_0, MSEL2CR_MSEL19_1,
76         MSEL2CR_MSEL18_0, MSEL2CR_MSEL18_1,
77         MSEL2CR_MSEL17_0, MSEL2CR_MSEL17_1,
78         MSEL2CR_MSEL16_0, MSEL2CR_MSEL16_1,
79         MSEL2CR_MSEL14_0, MSEL2CR_MSEL14_1,
80         MSEL2CR_MSEL13_0, MSEL2CR_MSEL13_1,
81         MSEL2CR_MSEL12_0, MSEL2CR_MSEL12_1,
82         MSEL2CR_MSEL11_0, MSEL2CR_MSEL11_1,
83         MSEL2CR_MSEL10_0, MSEL2CR_MSEL10_1,
84         MSEL2CR_MSEL9_0, MSEL2CR_MSEL9_1,
85         MSEL2CR_MSEL8_0, MSEL2CR_MSEL8_1,
86         MSEL2CR_MSEL7_0, MSEL2CR_MSEL7_1,
87         MSEL2CR_MSEL6_0, MSEL2CR_MSEL6_1,
88         MSEL2CR_MSEL4_0, MSEL2CR_MSEL4_1,
89         MSEL2CR_MSEL5_0, MSEL2CR_MSEL5_1,
90         MSEL2CR_MSEL3_0, MSEL2CR_MSEL3_1,
91         MSEL2CR_MSEL2_0, MSEL2CR_MSEL2_1,
92         MSEL2CR_MSEL1_0, MSEL2CR_MSEL1_1,
93         MSEL2CR_MSEL0_0, MSEL2CR_MSEL0_1,
94         MSEL3CR_MSEL28_0, MSEL3CR_MSEL28_1,
95         MSEL3CR_MSEL15_0, MSEL3CR_MSEL15_1,
96         MSEL3CR_MSEL11_0, MSEL3CR_MSEL11_1,
97         MSEL3CR_MSEL9_0, MSEL3CR_MSEL9_1,
98         MSEL3CR_MSEL6_0, MSEL3CR_MSEL6_1,
99         MSEL3CR_MSEL2_0, MSEL3CR_MSEL2_1,
100         MSEL4CR_MSEL29_0, MSEL4CR_MSEL29_1,
101         MSEL4CR_MSEL27_0, MSEL4CR_MSEL27_1,
102         MSEL4CR_MSEL26_0, MSEL4CR_MSEL26_1,
103         MSEL4CR_MSEL22_0, MSEL4CR_MSEL22_1,
104         MSEL4CR_MSEL21_0, MSEL4CR_MSEL21_1,
105         MSEL4CR_MSEL20_0, MSEL4CR_MSEL20_1,
106         MSEL4CR_MSEL19_0, MSEL4CR_MSEL19_1,
107         MSEL4CR_MSEL15_0, MSEL4CR_MSEL15_1,
108         MSEL4CR_MSEL13_0, MSEL4CR_MSEL13_1,
109         MSEL4CR_MSEL12_0, MSEL4CR_MSEL12_1,
110         MSEL4CR_MSEL11_0, MSEL4CR_MSEL11_1,
111         MSEL4CR_MSEL10_0, MSEL4CR_MSEL10_1,
112         MSEL4CR_MSEL9_0, MSEL4CR_MSEL9_1,
113         MSEL4CR_MSEL8_0, MSEL4CR_MSEL8_1,
114         MSEL4CR_MSEL7_0, MSEL4CR_MSEL7_1,
115         MSEL4CR_MSEL4_0, MSEL4CR_MSEL4_1,
116         MSEL4CR_MSEL1_0, MSEL4CR_MSEL1_1,
117         PINMUX_FUNCTION_END,
118
119         PINMUX_MARK_BEGIN,
120         /* Hardware manual Table 25-1 (Function 0-7) */
121         VBUS_0_MARK,
122         GPI0_MARK,
123         GPI1_MARK,
124         GPI2_MARK,
125         GPI3_MARK,
126         GPI4_MARK,
127         GPI5_MARK,
128         GPI6_MARK,
129         GPI7_MARK,
130         SCIFA7_RXD_MARK,
131         SCIFA7_CTS__MARK,
132         GPO7_MARK, MFG0_OUT2_MARK,
133         GPO6_MARK, MFG1_OUT2_MARK,
134         GPO5_MARK, SCIFA0_SCK_MARK, FSICOSLDT3_MARK, PORT16_VIO_CKOR_MARK,
135         SCIFA0_TXD_MARK,
136         SCIFA7_TXD_MARK,
137         SCIFA7_RTS__MARK, PORT19_VIO_CKO2_MARK,
138         GPO0_MARK,
139         GPO1_MARK,
140         GPO2_MARK, STATUS0_MARK,
141         GPO3_MARK, STATUS1_MARK,
142         GPO4_MARK, STATUS2_MARK,
143         VINT_MARK,
144         TCKON_MARK,
145         XDVFS1_MARK, PORT27_I2C_SCL2_MARK, PORT27_I2C_SCL3_MARK, \
146         MFG0_OUT1_MARK, PORT27_IROUT_MARK,
147         XDVFS2_MARK, PORT28_I2C_SDA2_MARK, PORT28_I2C_SDA3_MARK, \
148         PORT28_TPU1TO1_MARK,
149         SIM_RST_MARK, PORT29_TPU1TO1_MARK,
150         SIM_CLK_MARK, PORT30_VIO_CKOR_MARK,
151         SIM_D_MARK, PORT31_IROUT_MARK,
152         SCIFA4_TXD_MARK,
153         SCIFA4_RXD_MARK, XWUP_MARK,
154         SCIFA4_RTS__MARK,
155         SCIFA4_CTS__MARK,
156         FSIBOBT_MARK, FSIBIBT_MARK,
157         FSIBOLR_MARK, FSIBILR_MARK,
158         FSIBOSLD_MARK,
159         FSIBISLD_MARK,
160         VACK_MARK,
161         XTAL1L_MARK,
162         SCIFA0_RTS__MARK, FSICOSLDT2_MARK,
163         SCIFA0_RXD_MARK,
164         SCIFA0_CTS__MARK, FSICOSLDT1_MARK,
165         FSICOBT_MARK, FSICIBT_MARK, FSIDOBT_MARK, FSIDIBT_MARK,
166         FSICOLR_MARK, FSICILR_MARK, FSIDOLR_MARK, FSIDILR_MARK,
167         FSICOSLD_MARK, PORT47_FSICSPDIF_MARK,
168         FSICISLD_MARK, FSIDISLD_MARK,
169         FSIACK_MARK, PORT49_IRDA_OUT_MARK, PORT49_IROUT_MARK, FSIAOMC_MARK,
170         FSIAOLR_MARK, BBIF2_TSYNC2_MARK, TPU2TO2_MARK, FSIAILR_MARK,
171
172         FSIAOBT_MARK, BBIF2_TSCK2_MARK, TPU2TO3_MARK, FSIAIBT_MARK,
173         FSIAOSLD_MARK, BBIF2_TXD2_MARK,
174         FSIASPDIF_MARK, PORT53_IRDA_IN_MARK, TPU3TO3_MARK, FSIBSPDIF_MARK, \
175         PORT53_FSICSPDIF_MARK,
176         FSIBCK_MARK, PORT54_IRDA_FIRSEL_MARK, TPU3TO2_MARK, FSIBOMC_MARK, \
177         FSICCK_MARK, FSICOMC_MARK,
178         FSIAISLD_MARK, TPU0TO0_MARK,
179         A0_MARK, BS__MARK,
180         A12_MARK, PORT58_KEYOUT7_MARK, TPU4TO2_MARK,
181         A13_MARK, PORT59_KEYOUT6_MARK, TPU0TO1_MARK,
182         A14_MARK, KEYOUT5_MARK,
183         A15_MARK, KEYOUT4_MARK,
184         A16_MARK, KEYOUT3_MARK, MSIOF0_SS1_MARK,
185         A17_MARK, KEYOUT2_MARK, MSIOF0_TSYNC_MARK,
186         A18_MARK, KEYOUT1_MARK, MSIOF0_TSCK_MARK,
187         A19_MARK, KEYOUT0_MARK, MSIOF0_TXD_MARK,
188         A20_MARK, KEYIN0_MARK, MSIOF0_RSCK_MARK,
189         A21_MARK, KEYIN1_MARK, MSIOF0_RSYNC_MARK,
190         A22_MARK, KEYIN2_MARK, MSIOF0_MCK0_MARK,
191         A23_MARK, KEYIN3_MARK, MSIOF0_MCK1_MARK,
192         A24_MARK, KEYIN4_MARK, MSIOF0_RXD_MARK,
193         A25_MARK, KEYIN5_MARK, MSIOF0_SS2_MARK,
194         A26_MARK, KEYIN6_MARK,
195         KEYIN7_MARK,
196         D0_NAF0_MARK,
197         D1_NAF1_MARK,
198         D2_NAF2_MARK,
199         D3_NAF3_MARK,
200         D4_NAF4_MARK,
201         D5_NAF5_MARK,
202         D6_NAF6_MARK,
203         D7_NAF7_MARK,
204         D8_NAF8_MARK,
205         D9_NAF9_MARK,
206         D10_NAF10_MARK,
207         D11_NAF11_MARK,
208         D12_NAF12_MARK,
209         D13_NAF13_MARK,
210         D14_NAF14_MARK,
211         D15_NAF15_MARK,
212         CS4__MARK,
213         CS5A__MARK, PORT91_RDWR_MARK,
214         CS5B__MARK, FCE1__MARK,
215         CS6B__MARK, DACK0_MARK,
216         FCE0__MARK, CS6A__MARK,
217         WAIT__MARK, DREQ0_MARK,
218         RD__FSC_MARK,
219         WE0__FWE_MARK, RDWR_FWE_MARK,
220         WE1__MARK,
221         FRB_MARK,
222         CKO_MARK,
223         NBRSTOUT__MARK,
224         NBRST__MARK,
225         BBIF2_TXD_MARK,
226         BBIF2_RXD_MARK,
227         BBIF2_SYNC_MARK,
228         BBIF2_SCK_MARK,
229         SCIFA3_CTS__MARK, MFG3_IN2_MARK,
230         SCIFA3_RXD_MARK, MFG3_IN1_MARK,
231         BBIF1_SS2_MARK, SCIFA3_RTS__MARK, MFG3_OUT1_MARK,
232         SCIFA3_TXD_MARK,
233         HSI_RX_DATA_MARK, BBIF1_RXD_MARK,
234         HSI_TX_WAKE_MARK, BBIF1_TSCK_MARK,
235         HSI_TX_DATA_MARK, BBIF1_TSYNC_MARK,
236         HSI_TX_READY_MARK, BBIF1_TXD_MARK,
237         HSI_RX_READY_MARK, BBIF1_RSCK_MARK, PORT115_I2C_SCL2_MARK, \
238         PORT115_I2C_SCL3_MARK,
239         HSI_RX_WAKE_MARK, BBIF1_RSYNC_MARK, PORT116_I2C_SDA2_MARK, \
240         PORT116_I2C_SDA3_MARK,
241         HSI_RX_FLAG_MARK, BBIF1_SS1_MARK, BBIF1_FLOW_MARK,
242         HSI_TX_FLAG_MARK,
243         VIO_VD_MARK, PORT128_LCD2VSYN_MARK, VIO2_VD_MARK, LCD2D0_MARK,
244
245         VIO_HD_MARK, PORT129_LCD2HSYN_MARK, PORT129_LCD2CS__MARK, \
246         VIO2_HD_MARK, LCD2D1_MARK,
247         VIO_D0_MARK, PORT130_MSIOF2_RXD_MARK, LCD2D10_MARK,
248         VIO_D1_MARK, PORT131_KEYOUT6_MARK, PORT131_MSIOF2_SS1_MARK, \
249         PORT131_KEYOUT11_MARK, LCD2D11_MARK,
250         VIO_D2_MARK, PORT132_KEYOUT7_MARK, PORT132_MSIOF2_SS2_MARK, \
251         PORT132_KEYOUT10_MARK, LCD2D12_MARK,
252         VIO_D3_MARK, MSIOF2_TSYNC_MARK, LCD2D13_MARK,
253         VIO_D4_MARK, MSIOF2_TXD_MARK, LCD2D14_MARK,
254         VIO_D5_MARK, MSIOF2_TSCK_MARK, LCD2D15_MARK,
255         VIO_D6_MARK, PORT136_KEYOUT8_MARK, LCD2D16_MARK,
256         VIO_D7_MARK, PORT137_KEYOUT9_MARK, LCD2D17_MARK,
257         VIO_D8_MARK, PORT138_KEYOUT8_MARK, VIO2_D0_MARK, LCD2D6_MARK,
258         VIO_D9_MARK, PORT139_KEYOUT9_MARK, VIO2_D1_MARK, LCD2D7_MARK,
259         VIO_D10_MARK, TPU0TO2_MARK, VIO2_D2_MARK, LCD2D8_MARK,
260         VIO_D11_MARK, TPU0TO3_MARK, VIO2_D3_MARK, LCD2D9_MARK,
261         VIO_D12_MARK, PORT142_KEYOUT10_MARK, VIO2_D4_MARK, LCD2D2_MARK,
262         VIO_D13_MARK, PORT143_KEYOUT11_MARK, PORT143_KEYOUT6_MARK, \
263         VIO2_D5_MARK, LCD2D3_MARK,
264         VIO_D14_MARK, PORT144_KEYOUT7_MARK, VIO2_D6_MARK, LCD2D4_MARK,
265         VIO_D15_MARK, TPU1TO3_MARK, PORT145_LCD2DISP_MARK, \
266         PORT145_LCD2RS_MARK, VIO2_D7_MARK, LCD2D5_MARK,
267         VIO_CLK_MARK, LCD2DCK_MARK, PORT146_LCD2WR__MARK, VIO2_CLK_MARK, \
268         LCD2D18_MARK,
269         VIO_FIELD_MARK, LCD2RD__MARK, VIO2_FIELD_MARK, LCD2D19_MARK,
270         VIO_CKO_MARK,
271         A27_MARK, PORT149_RDWR_MARK, MFG0_IN1_MARK, PORT149_KEYOUT9_MARK,
272         MFG0_IN2_MARK,
273         TS_SPSYNC3_MARK, MSIOF2_RSCK_MARK,
274         TS_SDAT3_MARK, MSIOF2_RSYNC_MARK,
275         TPU1TO2_MARK, TS_SDEN3_MARK, PORT153_MSIOF2_SS1_MARK,
276         SCIFA2_TXD1_MARK, MSIOF2_MCK0_MARK,
277         SCIFA2_RXD1_MARK, MSIOF2_MCK1_MARK,
278         SCIFA2_RTS1__MARK, PORT156_MSIOF2_SS2_MARK,
279         SCIFA2_CTS1__MARK, PORT157_MSIOF2_RXD_MARK,
280         DINT__MARK, SCIFA2_SCK1_MARK, TS_SCK3_MARK,
281         PORT159_SCIFB_SCK_MARK, PORT159_SCIFA5_SCK_MARK, NMI_MARK,
282         PORT160_SCIFB_TXD_MARK, PORT160_SCIFA5_TXD_MARK,
283         PORT161_SCIFB_CTS__MARK, PORT161_SCIFA5_CTS__MARK,
284         PORT162_SCIFB_RXD_MARK, PORT162_SCIFA5_RXD_MARK,
285         PORT163_SCIFB_RTS__MARK, PORT163_SCIFA5_RTS__MARK, TPU3TO0_MARK,
286         LCDD0_MARK,
287         LCDD1_MARK, PORT193_SCIFA5_CTS__MARK, BBIF2_TSYNC1_MARK,
288         LCDD2_MARK, PORT194_SCIFA5_RTS__MARK, BBIF2_TSCK1_MARK,
289         LCDD3_MARK, PORT195_SCIFA5_RXD_MARK, BBIF2_TXD1_MARK,
290         LCDD4_MARK, PORT196_SCIFA5_TXD_MARK,
291         LCDD5_MARK, PORT197_SCIFA5_SCK_MARK, MFG2_OUT2_MARK, TPU2TO1_MARK,
292         LCDD6_MARK,
293         LCDD7_MARK, TPU4TO1_MARK, MFG4_OUT2_MARK,
294         LCDD8_MARK, D16_MARK,
295         LCDD9_MARK, D17_MARK,
296         LCDD10_MARK, D18_MARK,
297         LCDD11_MARK, D19_MARK,
298         LCDD12_MARK, D20_MARK,
299         LCDD13_MARK, D21_MARK,
300         LCDD14_MARK, D22_MARK,
301         LCDD15_MARK, PORT207_MSIOF0L_SS1_MARK, D23_MARK,
302         LCDD16_MARK, PORT208_MSIOF0L_SS2_MARK, D24_MARK,
303         LCDD17_MARK, D25_MARK,
304         LCDD18_MARK, DREQ2_MARK, PORT210_MSIOF0L_SS1_MARK, D26_MARK,
305         LCDD19_MARK, PORT211_MSIOF0L_SS2_MARK, D27_MARK,
306         LCDD20_MARK, TS_SPSYNC1_MARK, MSIOF0L_MCK0_MARK, D28_MARK,
307         LCDD21_MARK, TS_SDAT1_MARK, MSIOF0L_MCK1_MARK, D29_MARK,
308         LCDD22_MARK, TS_SDEN1_MARK, MSIOF0L_RSCK_MARK, D30_MARK,
309         LCDD23_MARK, TS_SCK1_MARK, MSIOF0L_RSYNC_MARK, D31_MARK,
310         LCDDCK_MARK, LCDWR__MARK,
311         LCDRD__MARK, DACK2_MARK, PORT217_LCD2RS_MARK, MSIOF0L_TSYNC_MARK, \
312         VIO2_FIELD3_MARK, PORT217_LCD2DISP_MARK,
313         LCDHSYN_MARK, LCDCS__MARK, LCDCS2__MARK, DACK3_MARK, \
314         PORT218_VIO_CKOR_MARK,
315         LCDDISP_MARK, LCDRS_MARK, PORT219_LCD2WR__MARK, DREQ3_MARK, \
316         MSIOF0L_TSCK_MARK, VIO2_CLK3_MARK, LCD2DCK_2_MARK,
317         LCDVSYN_MARK, LCDVSYN2_MARK,
318         LCDLCLK_MARK, DREQ1_MARK, PORT221_LCD2CS__MARK, PWEN_MARK, \
319         MSIOF0L_RXD_MARK, VIO2_HD3_MARK, PORT221_LCD2HSYN_MARK,
320         LCDDON_MARK, LCDDON2_MARK, DACK1_MARK, OVCN_MARK, MSIOF0L_TXD_MARK, \
321         VIO2_VD3_MARK, PORT222_LCD2VSYN_MARK,
322
323         SCIFA1_TXD_MARK, OVCN2_MARK,
324         EXTLP_MARK, SCIFA1_SCK_MARK, PORT226_VIO_CKO2_MARK,
325         SCIFA1_RTS__MARK, IDIN_MARK,
326         SCIFA1_RXD_MARK,
327         SCIFA1_CTS__MARK, MFG1_IN1_MARK,
328         MSIOF1_TXD_MARK, SCIFA2_TXD2_MARK,
329         MSIOF1_TSYNC_MARK, SCIFA2_CTS2__MARK,
330         MSIOF1_TSCK_MARK, SCIFA2_SCK2_MARK,
331         MSIOF1_RXD_MARK, SCIFA2_RXD2_MARK,
332         MSIOF1_RSCK_MARK, SCIFA2_RTS2__MARK, VIO2_CLK2_MARK, LCD2D20_MARK,
333         MSIOF1_RSYNC_MARK, MFG1_IN2_MARK, VIO2_VD2_MARK, LCD2D21_MARK,
334         MSIOF1_MCK0_MARK, PORT236_I2C_SDA2_MARK,
335         MSIOF1_MCK1_MARK, PORT237_I2C_SCL2_MARK,
336         MSIOF1_SS1_MARK, VIO2_FIELD2_MARK, LCD2D22_MARK,
337         MSIOF1_SS2_MARK, VIO2_HD2_MARK, LCD2D23_MARK,
338         SCIFA6_TXD_MARK,
339         PORT241_IRDA_OUT_MARK, PORT241_IROUT_MARK, MFG4_OUT1_MARK, TPU4TO0_MARK,
340         PORT242_IRDA_IN_MARK, MFG4_IN2_MARK,
341         PORT243_IRDA_FIRSEL_MARK, PORT243_VIO_CKO2_MARK,
342         PORT244_SCIFA5_CTS__MARK, MFG2_IN1_MARK, PORT244_SCIFB_CTS__MARK, \
343         MSIOF2R_RXD_MARK,
344         PORT245_SCIFA5_RTS__MARK, MFG2_IN2_MARK, PORT245_SCIFB_RTS__MARK, \
345         MSIOF2R_TXD_MARK,
346         PORT246_SCIFA5_RXD_MARK, MFG1_OUT1_MARK, PORT246_SCIFB_RXD_MARK, \
347         TPU1TO0_MARK,
348         PORT247_SCIFA5_TXD_MARK, MFG3_OUT2_MARK, PORT247_SCIFB_TXD_MARK, \
349         TPU3TO1_MARK,
350         PORT248_SCIFA5_SCK_MARK, MFG2_OUT1_MARK, PORT248_SCIFB_SCK_MARK, \
351         TPU2TO0_MARK, PORT248_I2C_SCL3_MARK, MSIOF2R_TSCK_MARK,
352         PORT249_IROUT_MARK, MFG4_IN1_MARK, PORT249_I2C_SDA3_MARK, \
353         MSIOF2R_TSYNC_MARK,
354         SDHICLK0_MARK,
355         SDHICD0_MARK,
356         SDHID0_0_MARK,
357         SDHID0_1_MARK,
358         SDHID0_2_MARK,
359         SDHID0_3_MARK,
360         SDHICMD0_MARK,
361         SDHIWP0_MARK,
362         SDHICLK1_MARK,
363         SDHID1_0_MARK, TS_SPSYNC2_MARK,
364         SDHID1_1_MARK, TS_SDAT2_MARK,
365         SDHID1_2_MARK, TS_SDEN2_MARK,
366         SDHID1_3_MARK, TS_SCK2_MARK,
367         SDHICMD1_MARK,
368         SDHICLK2_MARK,
369         SDHID2_0_MARK, TS_SPSYNC4_MARK,
370         SDHID2_1_MARK, TS_SDAT4_MARK,
371         SDHID2_2_MARK, TS_SDEN4_MARK,
372         SDHID2_3_MARK, TS_SCK4_MARK,
373         SDHICMD2_MARK,
374         MMCCLK0_MARK,
375         MMCD0_0_MARK,
376         MMCD0_1_MARK,
377         MMCD0_2_MARK,
378         MMCD0_3_MARK,
379         MMCD0_4_MARK, TS_SPSYNC5_MARK,
380         MMCD0_5_MARK, TS_SDAT5_MARK,
381         MMCD0_6_MARK, TS_SDEN5_MARK,
382         MMCD0_7_MARK, TS_SCK5_MARK,
383         MMCCMD0_MARK,
384         RESETOUTS__MARK, EXTAL2OUT_MARK,
385         MCP_WAIT__MCP_FRB_MARK,
386         MCP_CKO_MARK, MMCCLK1_MARK,
387         MCP_D15_MCP_NAF15_MARK,
388         MCP_D14_MCP_NAF14_MARK,
389         MCP_D13_MCP_NAF13_MARK,
390         MCP_D12_MCP_NAF12_MARK,
391         MCP_D11_MCP_NAF11_MARK,
392         MCP_D10_MCP_NAF10_MARK,
393         MCP_D9_MCP_NAF9_MARK,
394         MCP_D8_MCP_NAF8_MARK, MMCCMD1_MARK,
395         MCP_D7_MCP_NAF7_MARK, MMCD1_7_MARK,
396
397         MCP_D6_MCP_NAF6_MARK, MMCD1_6_MARK,
398         MCP_D5_MCP_NAF5_MARK, MMCD1_5_MARK,
399         MCP_D4_MCP_NAF4_MARK, MMCD1_4_MARK,
400         MCP_D3_MCP_NAF3_MARK, MMCD1_3_MARK,
401         MCP_D2_MCP_NAF2_MARK, MMCD1_2_MARK,
402         MCP_D1_MCP_NAF1_MARK, MMCD1_1_MARK,
403         MCP_D0_MCP_NAF0_MARK, MMCD1_0_MARK,
404         MCP_NBRSTOUT__MARK,
405         MCP_WE0__MCP_FWE_MARK, MCP_RDWR_MCP_FWE_MARK,
406
407         /* MSEL2 special cases */
408         TSIF2_TS_XX1_MARK,
409         TSIF2_TS_XX2_MARK,
410         TSIF2_TS_XX3_MARK,
411         TSIF2_TS_XX4_MARK,
412         TSIF2_TS_XX5_MARK,
413         TSIF1_TS_XX1_MARK,
414         TSIF1_TS_XX2_MARK,
415         TSIF1_TS_XX3_MARK,
416         TSIF1_TS_XX4_MARK,
417         TSIF1_TS_XX5_MARK,
418         TSIF0_TS_XX1_MARK,
419         TSIF0_TS_XX2_MARK,
420         TSIF0_TS_XX3_MARK,
421         TSIF0_TS_XX4_MARK,
422         TSIF0_TS_XX5_MARK,
423         MST1_TS_XX1_MARK,
424         MST1_TS_XX2_MARK,
425         MST1_TS_XX3_MARK,
426         MST1_TS_XX4_MARK,
427         MST1_TS_XX5_MARK,
428         MST0_TS_XX1_MARK,
429         MST0_TS_XX2_MARK,
430         MST0_TS_XX3_MARK,
431         MST0_TS_XX4_MARK,
432         MST0_TS_XX5_MARK,
433
434         /* MSEL3 special cases */
435         SDHI0_VCCQ_MC0_ON_MARK,
436         SDHI0_VCCQ_MC0_OFF_MARK,
437         DEBUG_MON_VIO_MARK,
438         DEBUG_MON_LCDD_MARK,
439         LCDC_LCDC0_MARK,
440         LCDC_LCDC1_MARK,
441
442         /* MSEL4 special cases */
443         IRQ9_MEM_INT_MARK,
444         IRQ9_MCP_INT_MARK,
445         A11_MARK,
446         KEYOUT8_MARK,
447         TPU4TO3_MARK,
448         RESETA_N_PU_ON_MARK,
449         RESETA_N_PU_OFF_MARK,
450         EDBGREQ_PD_MARK,
451         EDBGREQ_PU_MARK,
452
453         PINMUX_MARK_END,
454 };
455
456 static const u16 pinmux_data[] = {
457         /* specify valid pin states for each pin in GPIO mode */
458         PINMUX_DATA_ALL(),
459
460         /* Table 25-1 (Function 0-7) */
461         PINMUX_DATA(VBUS_0_MARK, PORT0_FN1),
462         PINMUX_DATA(GPI0_MARK, PORT1_FN1),
463         PINMUX_DATA(GPI1_MARK, PORT2_FN1),
464         PINMUX_DATA(GPI2_MARK, PORT3_FN1),
465         PINMUX_DATA(GPI3_MARK, PORT4_FN1),
466         PINMUX_DATA(GPI4_MARK, PORT5_FN1),
467         PINMUX_DATA(GPI5_MARK, PORT6_FN1),
468         PINMUX_DATA(GPI6_MARK, PORT7_FN1),
469         PINMUX_DATA(GPI7_MARK, PORT8_FN1),
470         PINMUX_DATA(SCIFA7_RXD_MARK, PORT12_FN2),
471         PINMUX_DATA(SCIFA7_CTS__MARK, PORT13_FN2),
472         PINMUX_DATA(GPO7_MARK, PORT14_FN1), \
473         PINMUX_DATA(MFG0_OUT2_MARK, PORT14_FN4),
474         PINMUX_DATA(GPO6_MARK, PORT15_FN1), \
475         PINMUX_DATA(MFG1_OUT2_MARK, PORT15_FN4),
476         PINMUX_DATA(GPO5_MARK, PORT16_FN1), \
477         PINMUX_DATA(SCIFA0_SCK_MARK, PORT16_FN2), \
478         PINMUX_DATA(FSICOSLDT3_MARK, PORT16_FN3), \
479         PINMUX_DATA(PORT16_VIO_CKOR_MARK, PORT16_FN4),
480         PINMUX_DATA(SCIFA0_TXD_MARK, PORT17_FN2),
481         PINMUX_DATA(SCIFA7_TXD_MARK, PORT18_FN2),
482         PINMUX_DATA(SCIFA7_RTS__MARK, PORT19_FN2), \
483         PINMUX_DATA(PORT19_VIO_CKO2_MARK, PORT19_FN3),
484         PINMUX_DATA(GPO0_MARK, PORT20_FN1),
485         PINMUX_DATA(GPO1_MARK, PORT21_FN1),
486         PINMUX_DATA(GPO2_MARK, PORT22_FN1), \
487         PINMUX_DATA(STATUS0_MARK, PORT22_FN2),
488         PINMUX_DATA(GPO3_MARK, PORT23_FN1), \
489         PINMUX_DATA(STATUS1_MARK, PORT23_FN2),
490         PINMUX_DATA(GPO4_MARK, PORT24_FN1), \
491         PINMUX_DATA(STATUS2_MARK, PORT24_FN2),
492         PINMUX_DATA(VINT_MARK, PORT25_FN1),
493         PINMUX_DATA(TCKON_MARK, PORT26_FN1),
494         PINMUX_DATA(XDVFS1_MARK, PORT27_FN1), \
495         PINMUX_DATA(PORT27_I2C_SCL2_MARK, PORT27_FN2, MSEL2CR_MSEL17_0,
496                 MSEL2CR_MSEL16_1), \
497         PINMUX_DATA(PORT27_I2C_SCL3_MARK, PORT27_FN3, MSEL2CR_MSEL19_0,
498                 MSEL2CR_MSEL18_1), \
499         PINMUX_DATA(MFG0_OUT1_MARK, PORT27_FN4), \
500         PINMUX_DATA(PORT27_IROUT_MARK, PORT27_FN7),
501         PINMUX_DATA(XDVFS2_MARK, PORT28_FN1), \
502         PINMUX_DATA(PORT28_I2C_SDA2_MARK, PORT28_FN2, MSEL2CR_MSEL17_0,
503                 MSEL2CR_MSEL16_1), \
504         PINMUX_DATA(PORT28_I2C_SDA3_MARK, PORT28_FN3, MSEL2CR_MSEL19_0,
505                 MSEL2CR_MSEL18_1), \
506         PINMUX_DATA(PORT28_TPU1TO1_MARK, PORT28_FN7),
507         PINMUX_DATA(SIM_RST_MARK, PORT29_FN1), \
508         PINMUX_DATA(PORT29_TPU1TO1_MARK, PORT29_FN4),
509         PINMUX_DATA(SIM_CLK_MARK, PORT30_FN1), \
510         PINMUX_DATA(PORT30_VIO_CKOR_MARK, PORT30_FN4),
511         PINMUX_DATA(SIM_D_MARK, PORT31_FN1), \
512         PINMUX_DATA(PORT31_IROUT_MARK, PORT31_FN4),
513         PINMUX_DATA(SCIFA4_TXD_MARK, PORT32_FN2),
514         PINMUX_DATA(SCIFA4_RXD_MARK, PORT33_FN2), \
515         PINMUX_DATA(XWUP_MARK, PORT33_FN3),
516         PINMUX_DATA(SCIFA4_RTS__MARK, PORT34_FN2),
517         PINMUX_DATA(SCIFA4_CTS__MARK, PORT35_FN2),
518         PINMUX_DATA(FSIBOBT_MARK, PORT36_FN1), \
519         PINMUX_DATA(FSIBIBT_MARK, PORT36_FN2),
520         PINMUX_DATA(FSIBOLR_MARK, PORT37_FN1), \
521         PINMUX_DATA(FSIBILR_MARK, PORT37_FN2),
522         PINMUX_DATA(FSIBOSLD_MARK, PORT38_FN1),
523         PINMUX_DATA(FSIBISLD_MARK, PORT39_FN1),
524         PINMUX_DATA(VACK_MARK, PORT40_FN1),
525         PINMUX_DATA(XTAL1L_MARK, PORT41_FN1),
526         PINMUX_DATA(SCIFA0_RTS__MARK, PORT42_FN2), \
527         PINMUX_DATA(FSICOSLDT2_MARK, PORT42_FN3),
528         PINMUX_DATA(SCIFA0_RXD_MARK, PORT43_FN2),
529         PINMUX_DATA(SCIFA0_CTS__MARK, PORT44_FN2), \
530         PINMUX_DATA(FSICOSLDT1_MARK, PORT44_FN3),
531         PINMUX_DATA(FSICOBT_MARK, PORT45_FN1), \
532         PINMUX_DATA(FSICIBT_MARK, PORT45_FN2), \
533         PINMUX_DATA(FSIDOBT_MARK, PORT45_FN3), \
534         PINMUX_DATA(FSIDIBT_MARK, PORT45_FN4),
535         PINMUX_DATA(FSICOLR_MARK, PORT46_FN1), \
536         PINMUX_DATA(FSICILR_MARK, PORT46_FN2), \
537         PINMUX_DATA(FSIDOLR_MARK, PORT46_FN3), \
538         PINMUX_DATA(FSIDILR_MARK, PORT46_FN4),
539         PINMUX_DATA(FSICOSLD_MARK, PORT47_FN1), \
540         PINMUX_DATA(PORT47_FSICSPDIF_MARK, PORT47_FN2),
541         PINMUX_DATA(FSICISLD_MARK, PORT48_FN1), \
542         PINMUX_DATA(FSIDISLD_MARK, PORT48_FN3),
543         PINMUX_DATA(FSIACK_MARK, PORT49_FN1), \
544         PINMUX_DATA(PORT49_IRDA_OUT_MARK, PORT49_FN2, MSEL4CR_MSEL19_1), \
545         PINMUX_DATA(PORT49_IROUT_MARK, PORT49_FN4), \
546         PINMUX_DATA(FSIAOMC_MARK, PORT49_FN5),
547         PINMUX_DATA(FSIAOLR_MARK, PORT50_FN1), \
548         PINMUX_DATA(BBIF2_TSYNC2_MARK, PORT50_FN2), \
549         PINMUX_DATA(TPU2TO2_MARK, PORT50_FN3), \
550         PINMUX_DATA(FSIAILR_MARK, PORT50_FN5),
551
552         PINMUX_DATA(FSIAOBT_MARK, PORT51_FN1), \
553         PINMUX_DATA(BBIF2_TSCK2_MARK, PORT51_FN2), \
554         PINMUX_DATA(TPU2TO3_MARK, PORT51_FN3), \
555         PINMUX_DATA(FSIAIBT_MARK, PORT51_FN5),
556         PINMUX_DATA(FSIAOSLD_MARK, PORT52_FN1), \
557         PINMUX_DATA(BBIF2_TXD2_MARK, PORT52_FN2),
558         PINMUX_DATA(FSIASPDIF_MARK, PORT53_FN1), \
559         PINMUX_DATA(PORT53_IRDA_IN_MARK, PORT53_FN2, MSEL4CR_MSEL19_1), \
560         PINMUX_DATA(TPU3TO3_MARK, PORT53_FN3), \
561         PINMUX_DATA(FSIBSPDIF_MARK, PORT53_FN5), \
562         PINMUX_DATA(PORT53_FSICSPDIF_MARK, PORT53_FN6),
563         PINMUX_DATA(FSIBCK_MARK, PORT54_FN1), \
564         PINMUX_DATA(PORT54_IRDA_FIRSEL_MARK, PORT54_FN2, MSEL4CR_MSEL19_1), \
565         PINMUX_DATA(TPU3TO2_MARK, PORT54_FN3), \
566         PINMUX_DATA(FSIBOMC_MARK, PORT54_FN5), \
567         PINMUX_DATA(FSICCK_MARK, PORT54_FN6), \
568         PINMUX_DATA(FSICOMC_MARK, PORT54_FN7),
569         PINMUX_DATA(FSIAISLD_MARK, PORT55_FN1), \
570         PINMUX_DATA(TPU0TO0_MARK, PORT55_FN3),
571         PINMUX_DATA(A0_MARK, PORT57_FN1), \
572         PINMUX_DATA(BS__MARK, PORT57_FN2),
573         PINMUX_DATA(A12_MARK, PORT58_FN1), \
574         PINMUX_DATA(PORT58_KEYOUT7_MARK, PORT58_FN2), \
575         PINMUX_DATA(TPU4TO2_MARK, PORT58_FN4),
576         PINMUX_DATA(A13_MARK, PORT59_FN1), \
577         PINMUX_DATA(PORT59_KEYOUT6_MARK, PORT59_FN2), \
578         PINMUX_DATA(TPU0TO1_MARK, PORT59_FN4),
579         PINMUX_DATA(A14_MARK, PORT60_FN1), \
580         PINMUX_DATA(KEYOUT5_MARK, PORT60_FN2),
581         PINMUX_DATA(A15_MARK, PORT61_FN1), \
582         PINMUX_DATA(KEYOUT4_MARK, PORT61_FN2),
583         PINMUX_DATA(A16_MARK, PORT62_FN1), \
584         PINMUX_DATA(KEYOUT3_MARK, PORT62_FN2), \
585         PINMUX_DATA(MSIOF0_SS1_MARK, PORT62_FN4, MSEL3CR_MSEL11_0),
586         PINMUX_DATA(A17_MARK, PORT63_FN1), \
587         PINMUX_DATA(KEYOUT2_MARK, PORT63_FN2), \
588         PINMUX_DATA(MSIOF0_TSYNC_MARK, PORT63_FN4, MSEL3CR_MSEL11_0),
589         PINMUX_DATA(A18_MARK, PORT64_FN1), \
590         PINMUX_DATA(KEYOUT1_MARK, PORT64_FN2), \
591         PINMUX_DATA(MSIOF0_TSCK_MARK, PORT64_FN4, MSEL3CR_MSEL11_0),
592         PINMUX_DATA(A19_MARK, PORT65_FN1), \
593         PINMUX_DATA(KEYOUT0_MARK, PORT65_FN2), \
594         PINMUX_DATA(MSIOF0_TXD_MARK, PORT65_FN4, MSEL3CR_MSEL11_0),
595         PINMUX_DATA(A20_MARK, PORT66_FN1), \
596         PINMUX_DATA(KEYIN0_MARK, PORT66_FN2), \
597         PINMUX_DATA(MSIOF0_RSCK_MARK, PORT66_FN4, MSEL3CR_MSEL11_0),
598         PINMUX_DATA(A21_MARK, PORT67_FN1), \
599         PINMUX_DATA(KEYIN1_MARK, PORT67_FN2), \
600         PINMUX_DATA(MSIOF0_RSYNC_MARK, PORT67_FN4, MSEL3CR_MSEL11_0),
601         PINMUX_DATA(A22_MARK, PORT68_FN1), \
602         PINMUX_DATA(KEYIN2_MARK, PORT68_FN2), \
603         PINMUX_DATA(MSIOF0_MCK0_MARK, PORT68_FN4, MSEL3CR_MSEL11_0),
604         PINMUX_DATA(A23_MARK, PORT69_FN1), \
605         PINMUX_DATA(KEYIN3_MARK, PORT69_FN2), \
606         PINMUX_DATA(MSIOF0_MCK1_MARK, PORT69_FN4, MSEL3CR_MSEL11_0),
607         PINMUX_DATA(A24_MARK, PORT70_FN1), \
608         PINMUX_DATA(KEYIN4_MARK, PORT70_FN2), \
609         PINMUX_DATA(MSIOF0_RXD_MARK, PORT70_FN4, MSEL3CR_MSEL11_0),
610         PINMUX_DATA(A25_MARK, PORT71_FN1), \
611         PINMUX_DATA(KEYIN5_MARK, PORT71_FN2), \
612         PINMUX_DATA(MSIOF0_SS2_MARK, PORT71_FN4, MSEL3CR_MSEL11_0),
613         PINMUX_DATA(A26_MARK, PORT72_FN1), \
614         PINMUX_DATA(KEYIN6_MARK, PORT72_FN2),
615         PINMUX_DATA(KEYIN7_MARK, PORT73_FN2),
616         PINMUX_DATA(D0_NAF0_MARK, PORT74_FN1),
617         PINMUX_DATA(D1_NAF1_MARK, PORT75_FN1),
618         PINMUX_DATA(D2_NAF2_MARK, PORT76_FN1),
619         PINMUX_DATA(D3_NAF3_MARK, PORT77_FN1),
620         PINMUX_DATA(D4_NAF4_MARK, PORT78_FN1),
621         PINMUX_DATA(D5_NAF5_MARK, PORT79_FN1),
622         PINMUX_DATA(D6_NAF6_MARK, PORT80_FN1),
623         PINMUX_DATA(D7_NAF7_MARK, PORT81_FN1),
624         PINMUX_DATA(D8_NAF8_MARK, PORT82_FN1),
625         PINMUX_DATA(D9_NAF9_MARK, PORT83_FN1),
626         PINMUX_DATA(D10_NAF10_MARK, PORT84_FN1),
627         PINMUX_DATA(D11_NAF11_MARK, PORT85_FN1),
628         PINMUX_DATA(D12_NAF12_MARK, PORT86_FN1),
629         PINMUX_DATA(D13_NAF13_MARK, PORT87_FN1),
630         PINMUX_DATA(D14_NAF14_MARK, PORT88_FN1),
631         PINMUX_DATA(D15_NAF15_MARK, PORT89_FN1),
632         PINMUX_DATA(CS4__MARK, PORT90_FN1),
633         PINMUX_DATA(CS5A__MARK, PORT91_FN1), \
634         PINMUX_DATA(PORT91_RDWR_MARK, PORT91_FN2),
635         PINMUX_DATA(CS5B__MARK, PORT92_FN1), \
636         PINMUX_DATA(FCE1__MARK, PORT92_FN2),
637         PINMUX_DATA(CS6B__MARK, PORT93_FN1), \
638         PINMUX_DATA(DACK0_MARK, PORT93_FN4),
639         PINMUX_DATA(FCE0__MARK, PORT94_FN1), \
640         PINMUX_DATA(CS6A__MARK, PORT94_FN2),
641         PINMUX_DATA(WAIT__MARK, PORT95_FN1), \
642         PINMUX_DATA(DREQ0_MARK, PORT95_FN2),
643         PINMUX_DATA(RD__FSC_MARK, PORT96_FN1),
644         PINMUX_DATA(WE0__FWE_MARK, PORT97_FN1), \
645         PINMUX_DATA(RDWR_FWE_MARK, PORT97_FN2),
646         PINMUX_DATA(WE1__MARK, PORT98_FN1),
647         PINMUX_DATA(FRB_MARK, PORT99_FN1),
648         PINMUX_DATA(CKO_MARK, PORT100_FN1),
649         PINMUX_DATA(NBRSTOUT__MARK, PORT101_FN1),
650         PINMUX_DATA(NBRST__MARK, PORT102_FN1),
651         PINMUX_DATA(BBIF2_TXD_MARK, PORT103_FN3),
652         PINMUX_DATA(BBIF2_RXD_MARK, PORT104_FN3),
653         PINMUX_DATA(BBIF2_SYNC_MARK, PORT105_FN3),
654         PINMUX_DATA(BBIF2_SCK_MARK, PORT106_FN3),
655         PINMUX_DATA(SCIFA3_CTS__MARK, PORT107_FN3), \
656         PINMUX_DATA(MFG3_IN2_MARK, PORT107_FN4),
657         PINMUX_DATA(SCIFA3_RXD_MARK, PORT108_FN3), \
658         PINMUX_DATA(MFG3_IN1_MARK, PORT108_FN4),
659         PINMUX_DATA(BBIF1_SS2_MARK, PORT109_FN2), \
660         PINMUX_DATA(SCIFA3_RTS__MARK, PORT109_FN3), \
661         PINMUX_DATA(MFG3_OUT1_MARK, PORT109_FN4),
662         PINMUX_DATA(SCIFA3_TXD_MARK, PORT110_FN3),
663         PINMUX_DATA(HSI_RX_DATA_MARK, PORT111_FN1), \
664         PINMUX_DATA(BBIF1_RXD_MARK, PORT111_FN3),
665         PINMUX_DATA(HSI_TX_WAKE_MARK, PORT112_FN1), \
666         PINMUX_DATA(BBIF1_TSCK_MARK, PORT112_FN3),
667         PINMUX_DATA(HSI_TX_DATA_MARK, PORT113_FN1), \
668         PINMUX_DATA(BBIF1_TSYNC_MARK, PORT113_FN3),
669         PINMUX_DATA(HSI_TX_READY_MARK, PORT114_FN1), \
670         PINMUX_DATA(BBIF1_TXD_MARK, PORT114_FN3),
671         PINMUX_DATA(HSI_RX_READY_MARK, PORT115_FN1), \
672         PINMUX_DATA(BBIF1_RSCK_MARK, PORT115_FN3), \
673         PINMUX_DATA(PORT115_I2C_SCL2_MARK, PORT115_FN5, MSEL2CR_MSEL17_1), \
674         PINMUX_DATA(PORT115_I2C_SCL3_MARK, PORT115_FN6, MSEL2CR_MSEL19_1),
675         PINMUX_DATA(HSI_RX_WAKE_MARK, PORT116_FN1), \
676         PINMUX_DATA(BBIF1_RSYNC_MARK, PORT116_FN3), \
677         PINMUX_DATA(PORT116_I2C_SDA2_MARK, PORT116_FN5, MSEL2CR_MSEL17_1), \
678         PINMUX_DATA(PORT116_I2C_SDA3_MARK, PORT116_FN6, MSEL2CR_MSEL19_1),
679         PINMUX_DATA(HSI_RX_FLAG_MARK, PORT117_FN1), \
680         PINMUX_DATA(BBIF1_SS1_MARK, PORT117_FN2), \
681         PINMUX_DATA(BBIF1_FLOW_MARK, PORT117_FN3),
682         PINMUX_DATA(HSI_TX_FLAG_MARK, PORT118_FN1),
683         PINMUX_DATA(VIO_VD_MARK, PORT128_FN1), \
684         PINMUX_DATA(PORT128_LCD2VSYN_MARK, PORT128_FN4, MSEL3CR_MSEL2_0), \
685         PINMUX_DATA(VIO2_VD_MARK, PORT128_FN6, MSEL4CR_MSEL27_0), \
686         PINMUX_DATA(LCD2D0_MARK, PORT128_FN7),
687
688         PINMUX_DATA(VIO_HD_MARK, PORT129_FN1), \
689         PINMUX_DATA(PORT129_LCD2HSYN_MARK, PORT129_FN4), \
690         PINMUX_DATA(PORT129_LCD2CS__MARK, PORT129_FN5), \
691         PINMUX_DATA(VIO2_HD_MARK, PORT129_FN6, MSEL4CR_MSEL27_0), \
692         PINMUX_DATA(LCD2D1_MARK, PORT129_FN7),
693         PINMUX_DATA(VIO_D0_MARK, PORT130_FN1), \
694         PINMUX_DATA(PORT130_MSIOF2_RXD_MARK, PORT130_FN3, MSEL4CR_MSEL11_0,
695                 MSEL4CR_MSEL10_1), \
696         PINMUX_DATA(LCD2D10_MARK, PORT130_FN7),
697         PINMUX_DATA(VIO_D1_MARK, PORT131_FN1), \
698         PINMUX_DATA(PORT131_KEYOUT6_MARK, PORT131_FN2), \
699         PINMUX_DATA(PORT131_MSIOF2_SS1_MARK, PORT131_FN3), \
700         PINMUX_DATA(PORT131_KEYOUT11_MARK, PORT131_FN4), \
701         PINMUX_DATA(LCD2D11_MARK, PORT131_FN7),
702         PINMUX_DATA(VIO_D2_MARK, PORT132_FN1), \
703         PINMUX_DATA(PORT132_KEYOUT7_MARK, PORT132_FN2), \
704         PINMUX_DATA(PORT132_MSIOF2_SS2_MARK, PORT132_FN3), \
705         PINMUX_DATA(PORT132_KEYOUT10_MARK, PORT132_FN4), \
706         PINMUX_DATA(LCD2D12_MARK, PORT132_FN7),
707         PINMUX_DATA(VIO_D3_MARK, PORT133_FN1), \
708         PINMUX_DATA(MSIOF2_TSYNC_MARK, PORT133_FN3, MSEL4CR_MSEL11_0), \
709         PINMUX_DATA(LCD2D13_MARK, PORT133_FN7),
710         PINMUX_DATA(VIO_D4_MARK, PORT134_FN1), \
711         PINMUX_DATA(MSIOF2_TXD_MARK, PORT134_FN3, MSEL4CR_MSEL11_0), \
712         PINMUX_DATA(LCD2D14_MARK, PORT134_FN7),
713         PINMUX_DATA(VIO_D5_MARK, PORT135_FN1), \
714         PINMUX_DATA(MSIOF2_TSCK_MARK, PORT135_FN3, MSEL4CR_MSEL11_0), \
715         PINMUX_DATA(LCD2D15_MARK, PORT135_FN7),
716         PINMUX_DATA(VIO_D6_MARK, PORT136_FN1), \
717         PINMUX_DATA(PORT136_KEYOUT8_MARK, PORT136_FN2), \
718         PINMUX_DATA(LCD2D16_MARK, PORT136_FN7),
719         PINMUX_DATA(VIO_D7_MARK, PORT137_FN1), \
720         PINMUX_DATA(PORT137_KEYOUT9_MARK, PORT137_FN2), \
721         PINMUX_DATA(LCD2D17_MARK, PORT137_FN7),
722         PINMUX_DATA(VIO_D8_MARK, PORT138_FN1), \
723         PINMUX_DATA(PORT138_KEYOUT8_MARK, PORT138_FN2), \
724         PINMUX_DATA(VIO2_D0_MARK, PORT138_FN6), \
725         PINMUX_DATA(LCD2D6_MARK, PORT138_FN7),
726         PINMUX_DATA(VIO_D9_MARK, PORT139_FN1), \
727         PINMUX_DATA(PORT139_KEYOUT9_MARK, PORT139_FN2), \
728         PINMUX_DATA(VIO2_D1_MARK, PORT139_FN6), \
729         PINMUX_DATA(LCD2D7_MARK, PORT139_FN7),
730         PINMUX_DATA(VIO_D10_MARK, PORT140_FN1), \
731         PINMUX_DATA(TPU0TO2_MARK, PORT140_FN4), \
732         PINMUX_DATA(VIO2_D2_MARK, PORT140_FN6), \
733         PINMUX_DATA(LCD2D8_MARK, PORT140_FN7),
734         PINMUX_DATA(VIO_D11_MARK, PORT141_FN1), \
735         PINMUX_DATA(TPU0TO3_MARK, PORT141_FN4), \
736         PINMUX_DATA(VIO2_D3_MARK, PORT141_FN6), \
737         PINMUX_DATA(LCD2D9_MARK, PORT141_FN7),
738         PINMUX_DATA(VIO_D12_MARK, PORT142_FN1), \
739         PINMUX_DATA(PORT142_KEYOUT10_MARK, PORT142_FN2), \
740         PINMUX_DATA(VIO2_D4_MARK, PORT142_FN6), \
741         PINMUX_DATA(LCD2D2_MARK, PORT142_FN7),
742         PINMUX_DATA(VIO_D13_MARK, PORT143_FN1), \
743         PINMUX_DATA(PORT143_KEYOUT11_MARK, PORT143_FN2), \
744         PINMUX_DATA(PORT143_KEYOUT6_MARK, PORT143_FN3), \
745         PINMUX_DATA(VIO2_D5_MARK, PORT143_FN6), \
746         PINMUX_DATA(LCD2D3_MARK, PORT143_FN7),
747         PINMUX_DATA(VIO_D14_MARK, PORT144_FN1), \
748         PINMUX_DATA(PORT144_KEYOUT7_MARK, PORT144_FN2), \
749         PINMUX_DATA(VIO2_D6_MARK, PORT144_FN6), \
750         PINMUX_DATA(LCD2D4_MARK, PORT144_FN7),
751         PINMUX_DATA(VIO_D15_MARK, PORT145_FN1), \
752         PINMUX_DATA(TPU1TO3_MARK, PORT145_FN3), \
753         PINMUX_DATA(PORT145_LCD2DISP_MARK, PORT145_FN4), \
754         PINMUX_DATA(PORT145_LCD2RS_MARK, PORT145_FN5), \
755         PINMUX_DATA(VIO2_D7_MARK, PORT145_FN6), \
756         PINMUX_DATA(LCD2D5_MARK, PORT145_FN7),
757         PINMUX_DATA(VIO_CLK_MARK, PORT146_FN1), \
758         PINMUX_DATA(LCD2DCK_MARK, PORT146_FN4), \
759         PINMUX_DATA(PORT146_LCD2WR__MARK, PORT146_FN5), \
760         PINMUX_DATA(VIO2_CLK_MARK, PORT146_FN6, MSEL4CR_MSEL27_0), \
761         PINMUX_DATA(LCD2D18_MARK, PORT146_FN7),
762         PINMUX_DATA(VIO_FIELD_MARK, PORT147_FN1), \
763         PINMUX_DATA(LCD2RD__MARK, PORT147_FN4), \
764         PINMUX_DATA(VIO2_FIELD_MARK, PORT147_FN6, MSEL4CR_MSEL27_0), \
765         PINMUX_DATA(LCD2D19_MARK, PORT147_FN7),
766         PINMUX_DATA(VIO_CKO_MARK, PORT148_FN1),
767         PINMUX_DATA(A27_MARK, PORT149_FN1), \
768         PINMUX_DATA(PORT149_RDWR_MARK, PORT149_FN2), \
769         PINMUX_DATA(MFG0_IN1_MARK, PORT149_FN3), \
770         PINMUX_DATA(PORT149_KEYOUT9_MARK, PORT149_FN4),
771         PINMUX_DATA(MFG0_IN2_MARK, PORT150_FN3),
772         PINMUX_DATA(TS_SPSYNC3_MARK, PORT151_FN4), \
773         PINMUX_DATA(MSIOF2_RSCK_MARK, PORT151_FN5),
774         PINMUX_DATA(TS_SDAT3_MARK, PORT152_FN4), \
775         PINMUX_DATA(MSIOF2_RSYNC_MARK, PORT152_FN5),
776         PINMUX_DATA(TPU1TO2_MARK, PORT153_FN3), \
777         PINMUX_DATA(TS_SDEN3_MARK, PORT153_FN4), \
778         PINMUX_DATA(PORT153_MSIOF2_SS1_MARK, PORT153_FN5),
779         PINMUX_DATA(SCIFA2_TXD1_MARK, PORT154_FN2, MSEL3CR_MSEL9_0), \
780         PINMUX_DATA(MSIOF2_MCK0_MARK, PORT154_FN5),
781         PINMUX_DATA(SCIFA2_RXD1_MARK, PORT155_FN2, MSEL3CR_MSEL9_0), \
782         PINMUX_DATA(MSIOF2_MCK1_MARK, PORT155_FN5),
783         PINMUX_DATA(SCIFA2_RTS1__MARK, PORT156_FN2, MSEL3CR_MSEL9_0), \
784         PINMUX_DATA(PORT156_MSIOF2_SS2_MARK, PORT156_FN5),
785         PINMUX_DATA(SCIFA2_CTS1__MARK, PORT157_FN2, MSEL3CR_MSEL9_0), \
786         PINMUX_DATA(PORT157_MSIOF2_RXD_MARK, PORT157_FN5, MSEL4CR_MSEL11_0,
787                 MSEL4CR_MSEL10_0),
788         PINMUX_DATA(DINT__MARK, PORT158_FN1), \
789         PINMUX_DATA(SCIFA2_SCK1_MARK, PORT158_FN2, MSEL3CR_MSEL9_0), \
790         PINMUX_DATA(TS_SCK3_MARK, PORT158_FN4),
791         PINMUX_DATA(PORT159_SCIFB_SCK_MARK, PORT159_FN1, MSEL4CR_MSEL22_0), \
792         PINMUX_DATA(PORT159_SCIFA5_SCK_MARK, PORT159_FN2, MSEL4CR_MSEL21_1), \
793         PINMUX_DATA(NMI_MARK, PORT159_FN3),
794         PINMUX_DATA(PORT160_SCIFB_TXD_MARK, PORT160_FN1, MSEL4CR_MSEL22_0), \
795         PINMUX_DATA(PORT160_SCIFA5_TXD_MARK, PORT160_FN2, MSEL4CR_MSEL21_1),
796         PINMUX_DATA(PORT161_SCIFB_CTS__MARK, PORT161_FN1, MSEL4CR_MSEL22_0), \
797         PINMUX_DATA(PORT161_SCIFA5_CTS__MARK, PORT161_FN2, MSEL4CR_MSEL21_1),
798         PINMUX_DATA(PORT162_SCIFB_RXD_MARK, PORT162_FN1, MSEL4CR_MSEL22_0), \
799         PINMUX_DATA(PORT162_SCIFA5_RXD_MARK, PORT162_FN2, MSEL4CR_MSEL21_1),
800         PINMUX_DATA(PORT163_SCIFB_RTS__MARK, PORT163_FN1, MSEL4CR_MSEL22_0), \
801         PINMUX_DATA(PORT163_SCIFA5_RTS__MARK, PORT163_FN2, MSEL4CR_MSEL21_1), \
802         PINMUX_DATA(TPU3TO0_MARK, PORT163_FN5),
803         PINMUX_DATA(LCDD0_MARK, PORT192_FN1),
804         PINMUX_DATA(LCDD1_MARK, PORT193_FN1), \
805         PINMUX_DATA(PORT193_SCIFA5_CTS__MARK, PORT193_FN3, MSEL4CR_MSEL21_0,
806                 MSEL4CR_MSEL20_1), \
807         PINMUX_DATA(BBIF2_TSYNC1_MARK, PORT193_FN5),
808         PINMUX_DATA(LCDD2_MARK, PORT194_FN1), \
809         PINMUX_DATA(PORT194_SCIFA5_RTS__MARK, PORT194_FN3, MSEL4CR_MSEL21_0,
810                 MSEL4CR_MSEL20_1), \
811         PINMUX_DATA(BBIF2_TSCK1_MARK, PORT194_FN5),
812         PINMUX_DATA(LCDD3_MARK, PORT195_FN1), \
813         PINMUX_DATA(PORT195_SCIFA5_RXD_MARK, PORT195_FN3, MSEL4CR_MSEL21_0,
814                 MSEL4CR_MSEL20_1), \
815         PINMUX_DATA(BBIF2_TXD1_MARK, PORT195_FN5),
816         PINMUX_DATA(LCDD4_MARK, PORT196_FN1), \
817         PINMUX_DATA(PORT196_SCIFA5_TXD_MARK, PORT196_FN3, MSEL4CR_MSEL21_0,
818                 MSEL4CR_MSEL20_1),
819         PINMUX_DATA(LCDD5_MARK, PORT197_FN1), \
820         PINMUX_DATA(PORT197_SCIFA5_SCK_MARK, PORT197_FN3, MSEL4CR_MSEL21_0,
821                 MSEL4CR_MSEL20_1), \
822         PINMUX_DATA(MFG2_OUT2_MARK, PORT197_FN5), \
823         PINMUX_DATA(TPU2TO1_MARK, PORT197_FN7),
824         PINMUX_DATA(LCDD6_MARK, PORT198_FN1),
825         PINMUX_DATA(LCDD7_MARK, PORT199_FN1), \
826         PINMUX_DATA(TPU4TO1_MARK, PORT199_FN2), \
827         PINMUX_DATA(MFG4_OUT2_MARK, PORT199_FN5),
828         PINMUX_DATA(LCDD8_MARK, PORT200_FN1), \
829         PINMUX_DATA(D16_MARK, PORT200_FN6),
830         PINMUX_DATA(LCDD9_MARK, PORT201_FN1), \
831         PINMUX_DATA(D17_MARK, PORT201_FN6),
832         PINMUX_DATA(LCDD10_MARK, PORT202_FN1), \
833         PINMUX_DATA(D18_MARK, PORT202_FN6),
834         PINMUX_DATA(LCDD11_MARK, PORT203_FN1), \
835         PINMUX_DATA(D19_MARK, PORT203_FN6),
836         PINMUX_DATA(LCDD12_MARK, PORT204_FN1), \
837         PINMUX_DATA(D20_MARK, PORT204_FN6),
838         PINMUX_DATA(LCDD13_MARK, PORT205_FN1), \
839         PINMUX_DATA(D21_MARK, PORT205_FN6),
840         PINMUX_DATA(LCDD14_MARK, PORT206_FN1), \
841         PINMUX_DATA(D22_MARK, PORT206_FN6),
842         PINMUX_DATA(LCDD15_MARK, PORT207_FN1), \
843         PINMUX_DATA(PORT207_MSIOF0L_SS1_MARK, PORT207_FN2, MSEL3CR_MSEL11_1), \
844         PINMUX_DATA(D23_MARK, PORT207_FN6),
845         PINMUX_DATA(LCDD16_MARK, PORT208_FN1), \
846         PINMUX_DATA(PORT208_MSIOF0L_SS2_MARK, PORT208_FN2, MSEL3CR_MSEL11_1), \
847         PINMUX_DATA(D24_MARK, PORT208_FN6),
848         PINMUX_DATA(LCDD17_MARK, PORT209_FN1), \
849         PINMUX_DATA(D25_MARK, PORT209_FN6),
850         PINMUX_DATA(LCDD18_MARK, PORT210_FN1), \
851         PINMUX_DATA(DREQ2_MARK, PORT210_FN2), \
852         PINMUX_DATA(PORT210_MSIOF0L_SS1_MARK, PORT210_FN5, MSEL3CR_MSEL11_1), \
853         PINMUX_DATA(D26_MARK, PORT210_FN6),
854         PINMUX_DATA(LCDD19_MARK, PORT211_FN1), \
855         PINMUX_DATA(PORT211_MSIOF0L_SS2_MARK, PORT211_FN5, MSEL3CR_MSEL11_1), \
856         PINMUX_DATA(D27_MARK, PORT211_FN6),
857         PINMUX_DATA(LCDD20_MARK, PORT212_FN1), \
858         PINMUX_DATA(TS_SPSYNC1_MARK, PORT212_FN2), \
859         PINMUX_DATA(MSIOF0L_MCK0_MARK, PORT212_FN5, MSEL3CR_MSEL11_1), \
860         PINMUX_DATA(D28_MARK, PORT212_FN6),
861         PINMUX_DATA(LCDD21_MARK, PORT213_FN1), \
862         PINMUX_DATA(TS_SDAT1_MARK, PORT213_FN2), \
863         PINMUX_DATA(MSIOF0L_MCK1_MARK, PORT213_FN5, MSEL3CR_MSEL11_1), \
864         PINMUX_DATA(D29_MARK, PORT213_FN6),
865         PINMUX_DATA(LCDD22_MARK, PORT214_FN1), \
866         PINMUX_DATA(TS_SDEN1_MARK, PORT214_FN2), \
867         PINMUX_DATA(MSIOF0L_RSCK_MARK, PORT214_FN5, MSEL3CR_MSEL11_1), \
868         PINMUX_DATA(D30_MARK, PORT214_FN6),
869         PINMUX_DATA(LCDD23_MARK, PORT215_FN1), \
870         PINMUX_DATA(TS_SCK1_MARK, PORT215_FN2), \
871         PINMUX_DATA(MSIOF0L_RSYNC_MARK, PORT215_FN5, MSEL3CR_MSEL11_1), \
872         PINMUX_DATA(D31_MARK, PORT215_FN6),
873         PINMUX_DATA(LCDDCK_MARK, PORT216_FN1), \
874         PINMUX_DATA(LCDWR__MARK, PORT216_FN2),
875         PINMUX_DATA(LCDRD__MARK, PORT217_FN1), \
876         PINMUX_DATA(DACK2_MARK, PORT217_FN2), \
877         PINMUX_DATA(PORT217_LCD2RS_MARK, PORT217_FN3), \
878         PINMUX_DATA(MSIOF0L_TSYNC_MARK, PORT217_FN5, MSEL3CR_MSEL11_1), \
879         PINMUX_DATA(VIO2_FIELD3_MARK, PORT217_FN6, MSEL4CR_MSEL27_1,
880                 MSEL4CR_MSEL26_1), \
881         PINMUX_DATA(PORT217_LCD2DISP_MARK, PORT217_FN7),
882         PINMUX_DATA(LCDHSYN_MARK, PORT218_FN1), \
883         PINMUX_DATA(LCDCS__MARK, PORT218_FN2), \
884         PINMUX_DATA(LCDCS2__MARK, PORT218_FN3), \
885         PINMUX_DATA(DACK3_MARK, PORT218_FN4), \
886         PINMUX_DATA(PORT218_VIO_CKOR_MARK, PORT218_FN5),
887         PINMUX_DATA(LCDDISP_MARK, PORT219_FN1), \
888         PINMUX_DATA(LCDRS_MARK, PORT219_FN2), \
889         PINMUX_DATA(PORT219_LCD2WR__MARK, PORT219_FN3), \
890         PINMUX_DATA(DREQ3_MARK, PORT219_FN4), \
891         PINMUX_DATA(MSIOF0L_TSCK_MARK, PORT219_FN5, MSEL3CR_MSEL11_1), \
892         PINMUX_DATA(VIO2_CLK3_MARK, PORT219_FN6, MSEL4CR_MSEL27_1,
893                 MSEL4CR_MSEL26_1), \
894         PINMUX_DATA(LCD2DCK_2_MARK, PORT219_FN7),
895         PINMUX_DATA(LCDVSYN_MARK, PORT220_FN1), \
896         PINMUX_DATA(LCDVSYN2_MARK, PORT220_FN2),
897         PINMUX_DATA(LCDLCLK_MARK, PORT221_FN1), \
898         PINMUX_DATA(DREQ1_MARK, PORT221_FN2), \
899         PINMUX_DATA(PORT221_LCD2CS__MARK, PORT221_FN3), \
900         PINMUX_DATA(PWEN_MARK, PORT221_FN4), \
901         PINMUX_DATA(MSIOF0L_RXD_MARK, PORT221_FN5, MSEL3CR_MSEL11_1), \
902         PINMUX_DATA(VIO2_HD3_MARK, PORT221_FN6, MSEL4CR_MSEL27_1,
903                 MSEL4CR_MSEL26_1), \
904         PINMUX_DATA(PORT221_LCD2HSYN_MARK, PORT221_FN7),
905         PINMUX_DATA(LCDDON_MARK, PORT222_FN1), \
906         PINMUX_DATA(LCDDON2_MARK, PORT222_FN2), \
907         PINMUX_DATA(DACK1_MARK, PORT222_FN3), \
908         PINMUX_DATA(OVCN_MARK, PORT222_FN4), \
909         PINMUX_DATA(MSIOF0L_TXD_MARK, PORT222_FN5, MSEL3CR_MSEL11_1), \
910         PINMUX_DATA(VIO2_VD3_MARK, PORT222_FN6, MSEL4CR_MSEL27_1,
911                 MSEL4CR_MSEL26_1), \
912         PINMUX_DATA(PORT222_LCD2VSYN_MARK, PORT222_FN7, MSEL3CR_MSEL2_1),
913
914         PINMUX_DATA(SCIFA1_TXD_MARK, PORT225_FN2), \
915         PINMUX_DATA(OVCN2_MARK, PORT225_FN4),
916         PINMUX_DATA(EXTLP_MARK, PORT226_FN1), \
917         PINMUX_DATA(SCIFA1_SCK_MARK, PORT226_FN2), \
918         PINMUX_DATA(PORT226_VIO_CKO2_MARK, PORT226_FN5),
919         PINMUX_DATA(SCIFA1_RTS__MARK, PORT227_FN2), \
920         PINMUX_DATA(IDIN_MARK, PORT227_FN4),
921         PINMUX_DATA(SCIFA1_RXD_MARK, PORT228_FN2),
922         PINMUX_DATA(SCIFA1_CTS__MARK, PORT229_FN2), \
923         PINMUX_DATA(MFG1_IN1_MARK, PORT229_FN3),
924         PINMUX_DATA(MSIOF1_TXD_MARK, PORT230_FN1), \
925         PINMUX_DATA(SCIFA2_TXD2_MARK, PORT230_FN2, MSEL3CR_MSEL9_1),
926         PINMUX_DATA(MSIOF1_TSYNC_MARK, PORT231_FN1), \
927         PINMUX_DATA(SCIFA2_CTS2__MARK, PORT231_FN2, MSEL3CR_MSEL9_1),
928         PINMUX_DATA(MSIOF1_TSCK_MARK, PORT232_FN1), \
929         PINMUX_DATA(SCIFA2_SCK2_MARK, PORT232_FN2, MSEL3CR_MSEL9_1),
930         PINMUX_DATA(MSIOF1_RXD_MARK, PORT233_FN1), \
931         PINMUX_DATA(SCIFA2_RXD2_MARK, PORT233_FN2, MSEL3CR_MSEL9_1),
932         PINMUX_DATA(MSIOF1_RSCK_MARK, PORT234_FN1), \
933         PINMUX_DATA(SCIFA2_RTS2__MARK, PORT234_FN2, MSEL3CR_MSEL9_1), \
934         PINMUX_DATA(VIO2_CLK2_MARK, PORT234_FN6, MSEL4CR_MSEL27_1,
935                 MSEL4CR_MSEL26_0), \
936         PINMUX_DATA(LCD2D20_MARK, PORT234_FN7),
937         PINMUX_DATA(MSIOF1_RSYNC_MARK, PORT235_FN1), \
938         PINMUX_DATA(MFG1_IN2_MARK, PORT235_FN3), \
939         PINMUX_DATA(VIO2_VD2_MARK, PORT235_FN6, MSEL4CR_MSEL27_1,
940                 MSEL4CR_MSEL26_0), \
941         PINMUX_DATA(LCD2D21_MARK, PORT235_FN7),
942         PINMUX_DATA(MSIOF1_MCK0_MARK, PORT236_FN1), \
943         PINMUX_DATA(PORT236_I2C_SDA2_MARK, PORT236_FN2, MSEL2CR_MSEL17_0,
944                 MSEL2CR_MSEL16_0),
945         PINMUX_DATA(MSIOF1_MCK1_MARK, PORT237_FN1), \
946         PINMUX_DATA(PORT237_I2C_SCL2_MARK, PORT237_FN2, MSEL2CR_MSEL17_0,
947                 MSEL2CR_MSEL16_0),
948         PINMUX_DATA(MSIOF1_SS1_MARK, PORT238_FN1), \
949         PINMUX_DATA(VIO2_FIELD2_MARK, PORT238_FN6, MSEL4CR_MSEL27_1,
950                 MSEL4CR_MSEL26_0), \
951         PINMUX_DATA(LCD2D22_MARK, PORT238_FN7),
952         PINMUX_DATA(MSIOF1_SS2_MARK, PORT239_FN1), \
953         PINMUX_DATA(VIO2_HD2_MARK, PORT239_FN6, MSEL4CR_MSEL27_1,
954                 MSEL4CR_MSEL26_0), \
955         PINMUX_DATA(LCD2D23_MARK, PORT239_FN7),
956         PINMUX_DATA(SCIFA6_TXD_MARK, PORT240_FN1),
957         PINMUX_DATA(PORT241_IRDA_OUT_MARK, PORT241_FN1, MSEL4CR_MSEL19_0), \
958         PINMUX_DATA(PORT241_IROUT_MARK, PORT241_FN2), \
959         PINMUX_DATA(MFG4_OUT1_MARK, PORT241_FN3), \
960         PINMUX_DATA(TPU4TO0_MARK, PORT241_FN4),
961         PINMUX_DATA(PORT242_IRDA_IN_MARK, PORT242_FN1, MSEL4CR_MSEL19_0), \
962         PINMUX_DATA(MFG4_IN2_MARK, PORT242_FN3),
963         PINMUX_DATA(PORT243_IRDA_FIRSEL_MARK, PORT243_FN1, MSEL4CR_MSEL19_0), \
964         PINMUX_DATA(PORT243_VIO_CKO2_MARK, PORT243_FN2),
965         PINMUX_DATA(PORT244_SCIFA5_CTS__MARK, PORT244_FN1, MSEL4CR_MSEL21_0,
966                 MSEL4CR_MSEL20_0), \
967         PINMUX_DATA(MFG2_IN1_MARK, PORT244_FN2), \
968         PINMUX_DATA(PORT244_SCIFB_CTS__MARK, PORT244_FN3, MSEL4CR_MSEL22_1), \
969         PINMUX_DATA(MSIOF2R_RXD_MARK, PORT244_FN7, MSEL4CR_MSEL11_1),
970         PINMUX_DATA(PORT245_SCIFA5_RTS__MARK, PORT245_FN1, MSEL4CR_MSEL21_0,
971                 MSEL4CR_MSEL20_0), \
972         PINMUX_DATA(MFG2_IN2_MARK, PORT245_FN2), \
973         PINMUX_DATA(PORT245_SCIFB_RTS__MARK, PORT245_FN3, MSEL4CR_MSEL22_1), \
974         PINMUX_DATA(MSIOF2R_TXD_MARK, PORT245_FN7, MSEL4CR_MSEL11_1),
975         PINMUX_DATA(PORT246_SCIFA5_RXD_MARK, PORT246_FN1, MSEL4CR_MSEL21_0,
976                 MSEL4CR_MSEL20_0), \
977         PINMUX_DATA(MFG1_OUT1_MARK, PORT246_FN2), \
978         PINMUX_DATA(PORT246_SCIFB_RXD_MARK, PORT246_FN3, MSEL4CR_MSEL22_1), \
979         PINMUX_DATA(TPU1TO0_MARK, PORT246_FN4),
980         PINMUX_DATA(PORT247_SCIFA5_TXD_MARK, PORT247_FN1, MSEL4CR_MSEL21_0,
981                 MSEL4CR_MSEL20_0), \
982         PINMUX_DATA(MFG3_OUT2_MARK, PORT247_FN2), \
983         PINMUX_DATA(PORT247_SCIFB_TXD_MARK, PORT247_FN3, MSEL4CR_MSEL22_1), \
984         PINMUX_DATA(TPU3TO1_MARK, PORT247_FN4),
985         PINMUX_DATA(PORT248_SCIFA5_SCK_MARK, PORT248_FN1, MSEL4CR_MSEL21_0,
986                 MSEL4CR_MSEL20_0), \
987         PINMUX_DATA(MFG2_OUT1_MARK, PORT248_FN2), \
988         PINMUX_DATA(PORT248_SCIFB_SCK_MARK, PORT248_FN3, MSEL4CR_MSEL22_1), \
989         PINMUX_DATA(TPU2TO0_MARK, PORT248_FN4), \
990         PINMUX_DATA(PORT248_I2C_SCL3_MARK, PORT248_FN5, MSEL2CR_MSEL19_0,
991                 MSEL2CR_MSEL18_0), \
992         PINMUX_DATA(MSIOF2R_TSCK_MARK, PORT248_FN7, MSEL4CR_MSEL11_1),
993         PINMUX_DATA(PORT249_IROUT_MARK, PORT249_FN1), \
994         PINMUX_DATA(MFG4_IN1_MARK, PORT249_FN2), \
995         PINMUX_DATA(PORT249_I2C_SDA3_MARK, PORT249_FN5, MSEL2CR_MSEL19_0,
996                 MSEL2CR_MSEL18_0), \
997         PINMUX_DATA(MSIOF2R_TSYNC_MARK, PORT249_FN7, MSEL4CR_MSEL11_1),
998         PINMUX_DATA(SDHICLK0_MARK, PORT250_FN1),
999         PINMUX_DATA(SDHICD0_MARK, PORT251_FN1),
1000         PINMUX_DATA(SDHID0_0_MARK, PORT252_FN1),
1001         PINMUX_DATA(SDHID0_1_MARK, PORT253_FN1),
1002         PINMUX_DATA(SDHID0_2_MARK, PORT254_FN1),
1003         PINMUX_DATA(SDHID0_3_MARK, PORT255_FN1),
1004         PINMUX_DATA(SDHICMD0_MARK, PORT256_FN1),
1005         PINMUX_DATA(SDHIWP0_MARK, PORT257_FN1),
1006         PINMUX_DATA(SDHICLK1_MARK, PORT258_FN1),
1007         PINMUX_DATA(SDHID1_0_MARK, PORT259_FN1), \
1008         PINMUX_DATA(TS_SPSYNC2_MARK, PORT259_FN3),
1009         PINMUX_DATA(SDHID1_1_MARK, PORT260_FN1), \
1010         PINMUX_DATA(TS_SDAT2_MARK, PORT260_FN3),
1011         PINMUX_DATA(SDHID1_2_MARK, PORT261_FN1), \
1012         PINMUX_DATA(TS_SDEN2_MARK, PORT261_FN3),
1013         PINMUX_DATA(SDHID1_3_MARK, PORT262_FN1), \
1014         PINMUX_DATA(TS_SCK2_MARK, PORT262_FN3),
1015         PINMUX_DATA(SDHICMD1_MARK, PORT263_FN1),
1016         PINMUX_DATA(SDHICLK2_MARK, PORT264_FN1),
1017         PINMUX_DATA(SDHID2_0_MARK, PORT265_FN1), \
1018         PINMUX_DATA(TS_SPSYNC4_MARK, PORT265_FN3),
1019         PINMUX_DATA(SDHID2_1_MARK, PORT266_FN1), \
1020         PINMUX_DATA(TS_SDAT4_MARK, PORT266_FN3),
1021         PINMUX_DATA(SDHID2_2_MARK, PORT267_FN1), \
1022         PINMUX_DATA(TS_SDEN4_MARK, PORT267_FN3),
1023         PINMUX_DATA(SDHID2_3_MARK, PORT268_FN1), \
1024         PINMUX_DATA(TS_SCK4_MARK, PORT268_FN3),
1025         PINMUX_DATA(SDHICMD2_MARK, PORT269_FN1),
1026         PINMUX_DATA(MMCCLK0_MARK, PORT270_FN1, MSEL4CR_MSEL15_0),
1027         PINMUX_DATA(MMCD0_0_MARK, PORT271_FN1, MSEL4CR_MSEL15_0),
1028         PINMUX_DATA(MMCD0_1_MARK, PORT272_FN1, MSEL4CR_MSEL15_0),
1029         PINMUX_DATA(MMCD0_2_MARK, PORT273_FN1, MSEL4CR_MSEL15_0),
1030         PINMUX_DATA(MMCD0_3_MARK, PORT274_FN1, MSEL4CR_MSEL15_0),
1031         PINMUX_DATA(MMCD0_4_MARK, PORT275_FN1, MSEL4CR_MSEL15_0),
1032         PINMUX_DATA(TS_SPSYNC5_MARK, PORT275_FN3),
1033         PINMUX_DATA(MMCD0_5_MARK, PORT276_FN1, MSEL4CR_MSEL15_0),
1034         PINMUX_DATA(TS_SDAT5_MARK, PORT276_FN3),
1035         PINMUX_DATA(MMCD0_6_MARK, PORT277_FN1, MSEL4CR_MSEL15_0),
1036         PINMUX_DATA(TS_SDEN5_MARK, PORT277_FN3),
1037         PINMUX_DATA(MMCD0_7_MARK, PORT278_FN1, MSEL4CR_MSEL15_0),
1038         PINMUX_DATA(TS_SCK5_MARK, PORT278_FN3),
1039         PINMUX_DATA(MMCCMD0_MARK, PORT279_FN1, MSEL4CR_MSEL15_0),
1040         PINMUX_DATA(RESETOUTS__MARK, PORT281_FN1), \
1041         PINMUX_DATA(EXTAL2OUT_MARK, PORT281_FN2),
1042         PINMUX_DATA(MCP_WAIT__MCP_FRB_MARK, PORT288_FN1),
1043         PINMUX_DATA(MCP_CKO_MARK, PORT289_FN1), \
1044         PINMUX_DATA(MMCCLK1_MARK, PORT289_FN2, MSEL4CR_MSEL15_1),
1045         PINMUX_DATA(MCP_D15_MCP_NAF15_MARK, PORT290_FN1),
1046         PINMUX_DATA(MCP_D14_MCP_NAF14_MARK, PORT291_FN1),
1047         PINMUX_DATA(MCP_D13_MCP_NAF13_MARK, PORT292_FN1),
1048         PINMUX_DATA(MCP_D12_MCP_NAF12_MARK, PORT293_FN1),
1049         PINMUX_DATA(MCP_D11_MCP_NAF11_MARK, PORT294_FN1),
1050         PINMUX_DATA(MCP_D10_MCP_NAF10_MARK, PORT295_FN1),
1051         PINMUX_DATA(MCP_D9_MCP_NAF9_MARK, PORT296_FN1),
1052         PINMUX_DATA(MCP_D8_MCP_NAF8_MARK, PORT297_FN1), \
1053         PINMUX_DATA(MMCCMD1_MARK, PORT297_FN2, MSEL4CR_MSEL15_1),
1054         PINMUX_DATA(MCP_D7_MCP_NAF7_MARK, PORT298_FN1), \
1055         PINMUX_DATA(MMCD1_7_MARK, PORT298_FN2, MSEL4CR_MSEL15_1),
1056
1057         PINMUX_DATA(MCP_D6_MCP_NAF6_MARK, PORT299_FN1), \
1058         PINMUX_DATA(MMCD1_6_MARK, PORT299_FN2, MSEL4CR_MSEL15_1),
1059         PINMUX_DATA(MCP_D5_MCP_NAF5_MARK, PORT300_FN1), \
1060         PINMUX_DATA(MMCD1_5_MARK, PORT300_FN2, MSEL4CR_MSEL15_1),
1061         PINMUX_DATA(MCP_D4_MCP_NAF4_MARK, PORT301_FN1), \
1062         PINMUX_DATA(MMCD1_4_MARK, PORT301_FN2, MSEL4CR_MSEL15_1),
1063         PINMUX_DATA(MCP_D3_MCP_NAF3_MARK, PORT302_FN1), \
1064         PINMUX_DATA(MMCD1_3_MARK, PORT302_FN2, MSEL4CR_MSEL15_1),
1065         PINMUX_DATA(MCP_D2_MCP_NAF2_MARK, PORT303_FN1), \
1066         PINMUX_DATA(MMCD1_2_MARK, PORT303_FN2, MSEL4CR_MSEL15_1),
1067         PINMUX_DATA(MCP_D1_MCP_NAF1_MARK, PORT304_FN1), \
1068         PINMUX_DATA(MMCD1_1_MARK, PORT304_FN2, MSEL4CR_MSEL15_1),
1069         PINMUX_DATA(MCP_D0_MCP_NAF0_MARK, PORT305_FN1), \
1070         PINMUX_DATA(MMCD1_0_MARK, PORT305_FN2, MSEL4CR_MSEL15_1),
1071         PINMUX_DATA(MCP_NBRSTOUT__MARK, PORT306_FN1),
1072         PINMUX_DATA(MCP_WE0__MCP_FWE_MARK, PORT309_FN1), \
1073         PINMUX_DATA(MCP_RDWR_MCP_FWE_MARK, PORT309_FN2),
1074
1075         /* MSEL2 special cases */
1076         PINMUX_DATA(TSIF2_TS_XX1_MARK, MSEL2CR_MSEL14_0, MSEL2CR_MSEL13_0,
1077                 MSEL2CR_MSEL12_0),
1078         PINMUX_DATA(TSIF2_TS_XX2_MARK, MSEL2CR_MSEL14_0, MSEL2CR_MSEL13_0,
1079                 MSEL2CR_MSEL12_1),
1080         PINMUX_DATA(TSIF2_TS_XX3_MARK, MSEL2CR_MSEL14_0, MSEL2CR_MSEL13_1,
1081                 MSEL2CR_MSEL12_0),
1082         PINMUX_DATA(TSIF2_TS_XX4_MARK, MSEL2CR_MSEL14_0, MSEL2CR_MSEL13_1,
1083                 MSEL2CR_MSEL12_1),
1084         PINMUX_DATA(TSIF2_TS_XX5_MARK, MSEL2CR_MSEL14_1, MSEL2CR_MSEL13_0,
1085                 MSEL2CR_MSEL12_0),
1086         PINMUX_DATA(TSIF1_TS_XX1_MARK, MSEL2CR_MSEL11_0, MSEL2CR_MSEL10_0,
1087                 MSEL2CR_MSEL9_0),
1088         PINMUX_DATA(TSIF1_TS_XX2_MARK, MSEL2CR_MSEL11_0, MSEL2CR_MSEL10_0,
1089                 MSEL2CR_MSEL9_1),
1090         PINMUX_DATA(TSIF1_TS_XX3_MARK, MSEL2CR_MSEL11_0, MSEL2CR_MSEL10_1,
1091                 MSEL2CR_MSEL9_0),
1092         PINMUX_DATA(TSIF1_TS_XX4_MARK, MSEL2CR_MSEL11_0, MSEL2CR_MSEL10_1,
1093                 MSEL2CR_MSEL9_1),
1094         PINMUX_DATA(TSIF1_TS_XX5_MARK, MSEL2CR_MSEL11_1, MSEL2CR_MSEL10_0,
1095                 MSEL2CR_MSEL9_0),
1096         PINMUX_DATA(TSIF0_TS_XX1_MARK, MSEL2CR_MSEL8_0, MSEL2CR_MSEL7_0,
1097                 MSEL2CR_MSEL6_0),
1098         PINMUX_DATA(TSIF0_TS_XX2_MARK, MSEL2CR_MSEL8_0, MSEL2CR_MSEL7_0,
1099                 MSEL2CR_MSEL6_1),
1100         PINMUX_DATA(TSIF0_TS_XX3_MARK, MSEL2CR_MSEL8_0, MSEL2CR_MSEL7_1,
1101                 MSEL2CR_MSEL6_0),
1102         PINMUX_DATA(TSIF0_TS_XX4_MARK, MSEL2CR_MSEL8_0, MSEL2CR_MSEL7_1,
1103                 MSEL2CR_MSEL6_1),
1104         PINMUX_DATA(TSIF0_TS_XX5_MARK, MSEL2CR_MSEL8_1, MSEL2CR_MSEL7_0,
1105                 MSEL2CR_MSEL6_0),
1106         PINMUX_DATA(MST1_TS_XX1_MARK, MSEL2CR_MSEL5_0, MSEL2CR_MSEL4_0,
1107                 MSEL2CR_MSEL3_0),
1108         PINMUX_DATA(MST1_TS_XX2_MARK, MSEL2CR_MSEL5_0, MSEL2CR_MSEL4_0,
1109                 MSEL2CR_MSEL3_1),
1110         PINMUX_DATA(MST1_TS_XX3_MARK, MSEL2CR_MSEL5_0, MSEL2CR_MSEL4_1,
1111                 MSEL2CR_MSEL3_0),
1112         PINMUX_DATA(MST1_TS_XX4_MARK, MSEL2CR_MSEL5_0, MSEL2CR_MSEL4_1,
1113                 MSEL2CR_MSEL3_1),
1114         PINMUX_DATA(MST1_TS_XX5_MARK, MSEL2CR_MSEL5_1, MSEL2CR_MSEL4_0,
1115                 MSEL2CR_MSEL3_0),
1116         PINMUX_DATA(MST0_TS_XX1_MARK, MSEL2CR_MSEL2_0, MSEL2CR_MSEL1_0,
1117                 MSEL2CR_MSEL0_0),
1118         PINMUX_DATA(MST0_TS_XX2_MARK, MSEL2CR_MSEL2_0, MSEL2CR_MSEL1_0,
1119                 MSEL2CR_MSEL0_1),
1120         PINMUX_DATA(MST0_TS_XX3_MARK, MSEL2CR_MSEL2_0, MSEL2CR_MSEL1_1,
1121                 MSEL2CR_MSEL0_0),
1122         PINMUX_DATA(MST0_TS_XX4_MARK, MSEL2CR_MSEL2_0, MSEL2CR_MSEL1_1,
1123                 MSEL2CR_MSEL0_1),
1124         PINMUX_DATA(MST0_TS_XX5_MARK, MSEL2CR_MSEL2_1, MSEL2CR_MSEL1_0,
1125                 MSEL2CR_MSEL0_0),
1126
1127         /* MSEL3 special cases */
1128         PINMUX_DATA(SDHI0_VCCQ_MC0_ON_MARK, MSEL3CR_MSEL28_1),
1129         PINMUX_DATA(SDHI0_VCCQ_MC0_OFF_MARK, MSEL3CR_MSEL28_0),
1130         PINMUX_DATA(DEBUG_MON_VIO_MARK, MSEL3CR_MSEL15_0),
1131         PINMUX_DATA(DEBUG_MON_LCDD_MARK, MSEL3CR_MSEL15_1),
1132         PINMUX_DATA(LCDC_LCDC0_MARK, MSEL3CR_MSEL6_0),
1133         PINMUX_DATA(LCDC_LCDC1_MARK, MSEL3CR_MSEL6_1),
1134
1135         /* MSEL4 special cases */
1136         PINMUX_DATA(IRQ9_MEM_INT_MARK, MSEL4CR_MSEL29_0),
1137         PINMUX_DATA(IRQ9_MCP_INT_MARK, MSEL4CR_MSEL29_1),
1138         PINMUX_DATA(A11_MARK, MSEL4CR_MSEL13_0, MSEL4CR_MSEL12_0),
1139         PINMUX_DATA(KEYOUT8_MARK, MSEL4CR_MSEL13_0, MSEL4CR_MSEL12_1),
1140         PINMUX_DATA(TPU4TO3_MARK, MSEL4CR_MSEL13_1, MSEL4CR_MSEL12_0),
1141         PINMUX_DATA(RESETA_N_PU_ON_MARK, MSEL4CR_MSEL4_0),
1142         PINMUX_DATA(RESETA_N_PU_OFF_MARK, MSEL4CR_MSEL4_1),
1143         PINMUX_DATA(EDBGREQ_PD_MARK, MSEL4CR_MSEL1_0),
1144         PINMUX_DATA(EDBGREQ_PU_MARK, MSEL4CR_MSEL1_1),
1145 };
1146
1147 #define __I             (SH_PFC_PIN_CFG_INPUT)
1148 #define __O             (SH_PFC_PIN_CFG_OUTPUT)
1149 #define __IO            (SH_PFC_PIN_CFG_INPUT | SH_PFC_PIN_CFG_OUTPUT)
1150 #define __PD            (SH_PFC_PIN_CFG_PULL_DOWN)
1151 #define __PU            (SH_PFC_PIN_CFG_PULL_UP)
1152 #define __PUD           (SH_PFC_PIN_CFG_PULL_UP_DOWN)
1153
1154 #define SH73A0_PIN_I_PD(pin)            SH_PFC_PIN_CFG(pin, __I | __PD)
1155 #define SH73A0_PIN_I_PU(pin)            SH_PFC_PIN_CFG(pin, __I | __PU)
1156 #define SH73A0_PIN_I_PU_PD(pin)         SH_PFC_PIN_CFG(pin, __I | __PUD)
1157 #define SH73A0_PIN_IO(pin)              SH_PFC_PIN_CFG(pin, __IO)
1158 #define SH73A0_PIN_IO_PD(pin)           SH_PFC_PIN_CFG(pin, __IO | __PD)
1159 #define SH73A0_PIN_IO_PU(pin)           SH_PFC_PIN_CFG(pin, __IO | __PU)
1160 #define SH73A0_PIN_IO_PU_PD(pin)        SH_PFC_PIN_CFG(pin, __IO | __PUD)
1161 #define SH73A0_PIN_O(pin)               SH_PFC_PIN_CFG(pin, __O)
1162
1163 /*
1164  * Pins not associated with a GPIO port.
1165  */
1166 enum {
1167         PORT_ASSIGN_LAST(),
1168         NOGP_ALL(),
1169 };
1170
1171 static const struct sh_pfc_pin pinmux_pins[] = {
1172         /* Table 25-1 (I/O and Pull U/D) */
1173         SH73A0_PIN_I_PD(0),
1174         SH73A0_PIN_I_PU(1),
1175         SH73A0_PIN_I_PU(2),
1176         SH73A0_PIN_I_PU(3),
1177         SH73A0_PIN_I_PU(4),
1178         SH73A0_PIN_I_PU(5),
1179         SH73A0_PIN_I_PU(6),
1180         SH73A0_PIN_I_PU(7),
1181         SH73A0_PIN_I_PU(8),
1182         SH73A0_PIN_I_PD(9),
1183         SH73A0_PIN_I_PD(10),
1184         SH73A0_PIN_I_PU_PD(11),
1185         SH73A0_PIN_IO_PU_PD(12),
1186         SH73A0_PIN_IO_PU_PD(13),
1187         SH73A0_PIN_IO_PU_PD(14),
1188         SH73A0_PIN_IO_PU_PD(15),
1189         SH73A0_PIN_IO_PD(16),
1190         SH73A0_PIN_IO_PD(17),
1191         SH73A0_PIN_IO_PU(18),
1192         SH73A0_PIN_IO_PU(19),
1193         SH73A0_PIN_O(20),
1194         SH73A0_PIN_O(21),
1195         SH73A0_PIN_O(22),
1196         SH73A0_PIN_O(23),
1197         SH73A0_PIN_O(24),
1198         SH73A0_PIN_I_PD(25),
1199         SH73A0_PIN_I_PD(26),
1200         SH73A0_PIN_IO_PU(27),
1201         SH73A0_PIN_IO_PU(28),
1202         SH73A0_PIN_IO_PD(29),
1203         SH73A0_PIN_IO_PD(30),
1204         SH73A0_PIN_IO_PU(31),
1205         SH73A0_PIN_IO_PD(32),
1206         SH73A0_PIN_I_PU_PD(33),
1207         SH73A0_PIN_IO_PD(34),
1208         SH73A0_PIN_I_PU_PD(35),
1209         SH73A0_PIN_IO_PD(36),
1210         SH73A0_PIN_IO(37),
1211         SH73A0_PIN_O(38),
1212         SH73A0_PIN_I_PU(39),
1213         SH73A0_PIN_I_PU_PD(40),
1214         SH73A0_PIN_O(41),
1215         SH73A0_PIN_IO_PD(42),
1216         SH73A0_PIN_IO_PU_PD(43),
1217         SH73A0_PIN_IO_PU_PD(44),
1218         SH73A0_PIN_IO_PD(45),
1219         SH73A0_PIN_IO_PD(46),
1220         SH73A0_PIN_IO_PD(47),
1221         SH73A0_PIN_I_PD(48),
1222         SH73A0_PIN_IO_PU_PD(49),
1223         SH73A0_PIN_IO_PD(50),
1224         SH73A0_PIN_IO_PD(51),
1225         SH73A0_PIN_O(52),
1226         SH73A0_PIN_IO_PU_PD(53),
1227         SH73A0_PIN_IO_PU_PD(54),
1228         SH73A0_PIN_IO_PD(55),
1229         SH73A0_PIN_I_PU_PD(56),
1230         SH73A0_PIN_IO(57),
1231         SH73A0_PIN_IO(58),
1232         SH73A0_PIN_IO(59),
1233         SH73A0_PIN_IO(60),
1234         SH73A0_PIN_IO(61),
1235         SH73A0_PIN_IO_PD(62),
1236         SH73A0_PIN_IO_PD(63),
1237         SH73A0_PIN_IO_PU_PD(64),
1238         SH73A0_PIN_IO_PD(65),
1239         SH73A0_PIN_IO_PU_PD(66),
1240         SH73A0_PIN_IO_PU_PD(67),
1241         SH73A0_PIN_IO_PU_PD(68),
1242         SH73A0_PIN_IO_PU_PD(69),
1243         SH73A0_PIN_IO_PU_PD(70),
1244         SH73A0_PIN_IO_PU_PD(71),
1245         SH73A0_PIN_IO_PU_PD(72),
1246         SH73A0_PIN_I_PU_PD(73),
1247         SH73A0_PIN_IO_PU(74),
1248         SH73A0_PIN_IO_PU(75),
1249         SH73A0_PIN_IO_PU(76),
1250         SH73A0_PIN_IO_PU(77),
1251         SH73A0_PIN_IO_PU(78),
1252         SH73A0_PIN_IO_PU(79),
1253         SH73A0_PIN_IO_PU(80),
1254         SH73A0_PIN_IO_PU(81),
1255         SH73A0_PIN_IO_PU(82),
1256         SH73A0_PIN_IO_PU(83),
1257         SH73A0_PIN_IO_PU(84),
1258         SH73A0_PIN_IO_PU(85),
1259         SH73A0_PIN_IO_PU(86),
1260         SH73A0_PIN_IO_PU(87),
1261         SH73A0_PIN_IO_PU(88),
1262         SH73A0_PIN_IO_PU(89),
1263         SH73A0_PIN_O(90),
1264         SH73A0_PIN_IO_PU(91),
1265         SH73A0_PIN_O(92),
1266         SH73A0_PIN_IO_PU(93),
1267         SH73A0_PIN_O(94),
1268         SH73A0_PIN_I_PU_PD(95),
1269         SH73A0_PIN_IO(96),
1270         SH73A0_PIN_IO(97),
1271         SH73A0_PIN_IO(98),
1272         SH73A0_PIN_I_PU(99),
1273         SH73A0_PIN_O(100),
1274         SH73A0_PIN_O(101),
1275         SH73A0_PIN_I_PU(102),
1276         SH73A0_PIN_IO_PD(103),
1277         SH73A0_PIN_I_PU_PD(104),
1278         SH73A0_PIN_I_PD(105),
1279         SH73A0_PIN_I_PD(106),
1280         SH73A0_PIN_I_PU_PD(107),
1281         SH73A0_PIN_I_PU_PD(108),
1282         SH73A0_PIN_IO_PD(109),
1283         SH73A0_PIN_IO_PD(110),
1284         SH73A0_PIN_IO_PU_PD(111),
1285         SH73A0_PIN_IO_PU_PD(112),
1286         SH73A0_PIN_IO_PU_PD(113),
1287         SH73A0_PIN_IO_PD(114),
1288         SH73A0_PIN_IO_PU(115),
1289         SH73A0_PIN_IO_PU(116),
1290         SH73A0_PIN_IO_PU_PD(117),
1291         SH73A0_PIN_IO_PU_PD(118),
1292         SH73A0_PIN_IO_PD(128),
1293         SH73A0_PIN_IO_PD(129),
1294         SH73A0_PIN_IO_PU_PD(130),
1295         SH73A0_PIN_IO_PD(131),
1296         SH73A0_PIN_IO_PD(132),
1297         SH73A0_PIN_IO_PD(133),
1298         SH73A0_PIN_IO_PU_PD(134),
1299         SH73A0_PIN_IO_PU_PD(135),
1300         SH73A0_PIN_IO_PU_PD(136),
1301         SH73A0_PIN_IO_PU_PD(137),
1302         SH73A0_PIN_IO_PD(138),
1303         SH73A0_PIN_IO_PD(139),
1304         SH73A0_PIN_IO_PD(140),
1305         SH73A0_PIN_IO_PD(141),
1306         SH73A0_PIN_IO_PD(142),
1307         SH73A0_PIN_IO_PD(143),
1308         SH73A0_PIN_IO_PU_PD(144),
1309         SH73A0_PIN_IO_PD(145),
1310         SH73A0_PIN_IO_PU_PD(146),
1311         SH73A0_PIN_IO_PU_PD(147),
1312         SH73A0_PIN_IO_PU_PD(148),
1313         SH73A0_PIN_IO_PU_PD(149),
1314         SH73A0_PIN_I_PU_PD(150),
1315         SH73A0_PIN_IO_PU_PD(151),
1316         SH73A0_PIN_IO_PU_PD(152),
1317         SH73A0_PIN_IO_PD(153),
1318         SH73A0_PIN_IO_PD(154),
1319         SH73A0_PIN_I_PU_PD(155),
1320         SH73A0_PIN_IO_PU_PD(156),
1321         SH73A0_PIN_I_PD(157),
1322         SH73A0_PIN_IO_PD(158),
1323         SH73A0_PIN_IO_PU_PD(159),
1324         SH73A0_PIN_IO_PU_PD(160),
1325         SH73A0_PIN_I_PU_PD(161),
1326         SH73A0_PIN_I_PU_PD(162),
1327         SH73A0_PIN_IO_PU_PD(163),
1328         SH73A0_PIN_I_PU_PD(164),
1329         SH73A0_PIN_IO_PD(192),
1330         SH73A0_PIN_IO_PU_PD(193),
1331         SH73A0_PIN_IO_PD(194),
1332         SH73A0_PIN_IO_PU_PD(195),
1333         SH73A0_PIN_IO_PD(196),
1334         SH73A0_PIN_IO_PD(197),
1335         SH73A0_PIN_IO_PD(198),
1336         SH73A0_PIN_IO_PD(199),
1337         SH73A0_PIN_IO_PU_PD(200),
1338         SH73A0_PIN_IO_PU_PD(201),
1339         SH73A0_PIN_IO_PU_PD(202),
1340         SH73A0_PIN_IO_PU_PD(203),
1341         SH73A0_PIN_IO_PU_PD(204),
1342         SH73A0_PIN_IO_PU_PD(205),
1343         SH73A0_PIN_IO_PU_PD(206),
1344         SH73A0_PIN_IO_PD(207),
1345         SH73A0_PIN_IO_PD(208),
1346         SH73A0_PIN_IO_PD(209),
1347         SH73A0_PIN_IO_PD(210),
1348         SH73A0_PIN_IO_PD(211),
1349         SH73A0_PIN_IO_PD(212),
1350         SH73A0_PIN_IO_PD(213),
1351         SH73A0_PIN_IO_PU_PD(214),
1352         SH73A0_PIN_IO_PU_PD(215),
1353         SH73A0_PIN_IO_PD(216),
1354         SH73A0_PIN_IO_PD(217),
1355         SH73A0_PIN_O(218),
1356         SH73A0_PIN_IO_PD(219),
1357         SH73A0_PIN_IO_PD(220),
1358         SH73A0_PIN_IO_PU_PD(221),
1359         SH73A0_PIN_IO_PU_PD(222),
1360         SH73A0_PIN_I_PU_PD(223),
1361         SH73A0_PIN_I_PU_PD(224),
1362         SH73A0_PIN_IO_PU_PD(225),
1363         SH73A0_PIN_O(226),
1364         SH73A0_PIN_IO_PU_PD(227),
1365         SH73A0_PIN_I_PU_PD(228),
1366         SH73A0_PIN_I_PD(229),
1367         SH73A0_PIN_IO(230),
1368         SH73A0_PIN_IO_PU_PD(231),
1369         SH73A0_PIN_IO_PU_PD(232),
1370         SH73A0_PIN_I_PU_PD(233),
1371         SH73A0_PIN_IO_PU_PD(234),
1372         SH73A0_PIN_IO_PU_PD(235),
1373         SH73A0_PIN_IO_PU_PD(236),
1374         SH73A0_PIN_IO_PD(237),
1375         SH73A0_PIN_IO_PU_PD(238),
1376         SH73A0_PIN_IO_PU_PD(239),
1377         SH73A0_PIN_IO_PU_PD(240),
1378         SH73A0_PIN_O(241),
1379         SH73A0_PIN_I_PD(242),
1380         SH73A0_PIN_IO_PU_PD(243),
1381         SH73A0_PIN_IO_PU_PD(244),
1382         SH73A0_PIN_IO_PU_PD(245),
1383         SH73A0_PIN_IO_PU_PD(246),
1384         SH73A0_PIN_IO_PU_PD(247),
1385         SH73A0_PIN_IO_PU_PD(248),
1386         SH73A0_PIN_IO_PU_PD(249),
1387         SH73A0_PIN_IO_PU_PD(250),
1388         SH73A0_PIN_IO_PU_PD(251),
1389         SH73A0_PIN_IO_PU_PD(252),
1390         SH73A0_PIN_IO_PU_PD(253),
1391         SH73A0_PIN_IO_PU_PD(254),
1392         SH73A0_PIN_IO_PU_PD(255),
1393         SH73A0_PIN_IO_PU_PD(256),
1394         SH73A0_PIN_IO_PU_PD(257),
1395         SH73A0_PIN_IO_PU_PD(258),
1396         SH73A0_PIN_IO_PU_PD(259),
1397         SH73A0_PIN_IO_PU_PD(260),
1398         SH73A0_PIN_IO_PU_PD(261),
1399         SH73A0_PIN_IO_PU_PD(262),
1400         SH73A0_PIN_IO_PU_PD(263),
1401         SH73A0_PIN_IO_PU_PD(264),
1402         SH73A0_PIN_IO_PU_PD(265),
1403         SH73A0_PIN_IO_PU_PD(266),
1404         SH73A0_PIN_IO_PU_PD(267),
1405         SH73A0_PIN_IO_PU_PD(268),
1406         SH73A0_PIN_IO_PU_PD(269),
1407         SH73A0_PIN_IO_PU_PD(270),
1408         SH73A0_PIN_IO_PU_PD(271),
1409         SH73A0_PIN_IO_PU_PD(272),
1410         SH73A0_PIN_IO_PU_PD(273),
1411         SH73A0_PIN_IO_PU_PD(274),
1412         SH73A0_PIN_IO_PU_PD(275),
1413         SH73A0_PIN_IO_PU_PD(276),
1414         SH73A0_PIN_IO_PU_PD(277),
1415         SH73A0_PIN_IO_PU_PD(278),
1416         SH73A0_PIN_IO_PU_PD(279),
1417         SH73A0_PIN_IO_PU_PD(280),
1418         SH73A0_PIN_O(281),
1419         SH73A0_PIN_O(282),
1420         SH73A0_PIN_I_PU(288),
1421         SH73A0_PIN_IO_PU_PD(289),
1422         SH73A0_PIN_IO_PU_PD(290),
1423         SH73A0_PIN_IO_PU_PD(291),
1424         SH73A0_PIN_IO_PU_PD(292),
1425         SH73A0_PIN_IO_PU_PD(293),
1426         SH73A0_PIN_IO_PU_PD(294),
1427         SH73A0_PIN_IO_PU_PD(295),
1428         SH73A0_PIN_IO_PU_PD(296),
1429         SH73A0_PIN_IO_PU_PD(297),
1430         SH73A0_PIN_IO_PU_PD(298),
1431         SH73A0_PIN_IO_PU_PD(299),
1432         SH73A0_PIN_IO_PU_PD(300),
1433         SH73A0_PIN_IO_PU_PD(301),
1434         SH73A0_PIN_IO_PU_PD(302),
1435         SH73A0_PIN_IO_PU_PD(303),
1436         SH73A0_PIN_IO_PU_PD(304),
1437         SH73A0_PIN_IO_PU_PD(305),
1438         SH73A0_PIN_O(306),
1439         SH73A0_PIN_O(307),
1440         SH73A0_PIN_I_PU(308),
1441         SH73A0_PIN_O(309),
1442
1443         /* Pins not associated with a GPIO port */
1444         PINMUX_NOGP_ALL(),
1445 };
1446
1447 /* - BSC -------------------------------------------------------------------- */
1448 static const unsigned int bsc_data_0_7_pins[] = {
1449         /* D[0:7] */
1450         74, 75, 76, 77, 78, 79, 80, 81,
1451 };
1452 static const unsigned int bsc_data_0_7_mux[] = {
1453         D0_NAF0_MARK, D1_NAF1_MARK, D2_NAF2_MARK, D3_NAF3_MARK,
1454         D4_NAF4_MARK, D5_NAF5_MARK, D6_NAF6_MARK, D7_NAF7_MARK,
1455 };
1456 static const unsigned int bsc_data_8_15_pins[] = {
1457         /* D[8:15] */
1458         82, 83, 84, 85, 86, 87, 88, 89,
1459 };
1460 static const unsigned int bsc_data_8_15_mux[] = {
1461         D8_NAF8_MARK, D9_NAF9_MARK, D10_NAF10_MARK, D11_NAF11_MARK,
1462         D12_NAF12_MARK, D13_NAF13_MARK, D14_NAF14_MARK, D15_NAF15_MARK,
1463 };
1464 static const unsigned int bsc_cs4_pins[] = {
1465         /* CS */
1466         90,
1467 };
1468 static const unsigned int bsc_cs4_mux[] = {
1469         CS4__MARK,
1470 };
1471 static const unsigned int bsc_cs5_a_pins[] = {
1472         /* CS */
1473         91,
1474 };
1475 static const unsigned int bsc_cs5_a_mux[] = {
1476         CS5A__MARK,
1477 };
1478 static const unsigned int bsc_cs5_b_pins[] = {
1479         /* CS */
1480         92,
1481 };
1482 static const unsigned int bsc_cs5_b_mux[] = {
1483         CS5B__MARK,
1484 };
1485 static const unsigned int bsc_cs6_a_pins[] = {
1486         /* CS */
1487         94,
1488 };
1489 static const unsigned int bsc_cs6_a_mux[] = {
1490         CS6A__MARK,
1491 };
1492 static const unsigned int bsc_cs6_b_pins[] = {
1493         /* CS */
1494         93,
1495 };
1496 static const unsigned int bsc_cs6_b_mux[] = {
1497         CS6B__MARK,
1498 };
1499 static const unsigned int bsc_rd_pins[] = {
1500         /* RD */
1501         96,
1502 };
1503 static const unsigned int bsc_rd_mux[] = {
1504         RD__FSC_MARK,
1505 };
1506 static const unsigned int bsc_rdwr_0_pins[] = {
1507         /* RDWR */
1508         91,
1509 };
1510 static const unsigned int bsc_rdwr_0_mux[] = {
1511         PORT91_RDWR_MARK,
1512 };
1513 static const unsigned int bsc_rdwr_1_pins[] = {
1514         /* RDWR */
1515         97,
1516 };
1517 static const unsigned int bsc_rdwr_1_mux[] = {
1518         RDWR_FWE_MARK,
1519 };
1520 static const unsigned int bsc_rdwr_2_pins[] = {
1521         /* RDWR */
1522         149,
1523 };
1524 static const unsigned int bsc_rdwr_2_mux[] = {
1525         PORT149_RDWR_MARK,
1526 };
1527 static const unsigned int bsc_we0_pins[] = {
1528         /* WE0 */
1529         97,
1530 };
1531 static const unsigned int bsc_we0_mux[] = {
1532         WE0__FWE_MARK,
1533 };
1534 static const unsigned int bsc_we1_pins[] = {
1535         /* WE1 */
1536         98,
1537 };
1538 static const unsigned int bsc_we1_mux[] = {
1539         WE1__MARK,
1540 };
1541 /* - FSIA ------------------------------------------------------------------- */
1542 static const unsigned int fsia_mclk_in_pins[] = {
1543         /* CK */
1544         49,
1545 };
1546 static const unsigned int fsia_mclk_in_mux[] = {
1547         FSIACK_MARK,
1548 };
1549 static const unsigned int fsia_mclk_out_pins[] = {
1550         /* OMC */
1551         49,
1552 };
1553 static const unsigned int fsia_mclk_out_mux[] = {
1554         FSIAOMC_MARK,
1555 };
1556 static const unsigned int fsia_sclk_in_pins[] = {
1557         /* ILR, IBT */
1558         50, 51,
1559 };
1560 static const unsigned int fsia_sclk_in_mux[] = {
1561         FSIAILR_MARK, FSIAIBT_MARK,
1562 };
1563 static const unsigned int fsia_sclk_out_pins[] = {
1564         /* OLR, OBT */
1565         50, 51,
1566 };
1567 static const unsigned int fsia_sclk_out_mux[] = {
1568         FSIAOLR_MARK, FSIAOBT_MARK,
1569 };
1570 static const unsigned int fsia_data_in_pins[] = {
1571         /* ISLD */
1572         55,
1573 };
1574 static const unsigned int fsia_data_in_mux[] = {
1575         FSIAISLD_MARK,
1576 };
1577 static const unsigned int fsia_data_out_pins[] = {
1578         /* OSLD */
1579         52,
1580 };
1581 static const unsigned int fsia_data_out_mux[] = {
1582         FSIAOSLD_MARK,
1583 };
1584 static const unsigned int fsia_spdif_pins[] = {
1585         /* SPDIF */
1586         53,
1587 };
1588 static const unsigned int fsia_spdif_mux[] = {
1589         FSIASPDIF_MARK,
1590 };
1591 /* - FSIB ------------------------------------------------------------------- */
1592 static const unsigned int fsib_mclk_in_pins[] = {
1593         /* CK */
1594         54,
1595 };
1596 static const unsigned int fsib_mclk_in_mux[] = {
1597         FSIBCK_MARK,
1598 };
1599 static const unsigned int fsib_mclk_out_pins[] = {
1600         /* OMC */
1601         54,
1602 };
1603 static const unsigned int fsib_mclk_out_mux[] = {
1604         FSIBOMC_MARK,
1605 };
1606 static const unsigned int fsib_sclk_in_pins[] = {
1607         /* ILR, IBT */
1608         37, 36,
1609 };
1610 static const unsigned int fsib_sclk_in_mux[] = {
1611         FSIBILR_MARK, FSIBIBT_MARK,
1612 };
1613 static const unsigned int fsib_sclk_out_pins[] = {
1614         /* OLR, OBT */
1615         37, 36,
1616 };
1617 static const unsigned int fsib_sclk_out_mux[] = {
1618         FSIBOLR_MARK, FSIBOBT_MARK,
1619 };
1620 static const unsigned int fsib_data_in_pins[] = {
1621         /* ISLD */
1622         39,
1623 };
1624 static const unsigned int fsib_data_in_mux[] = {
1625         FSIBISLD_MARK,
1626 };
1627 static const unsigned int fsib_data_out_pins[] = {
1628         /* OSLD */
1629         38,
1630 };
1631 static const unsigned int fsib_data_out_mux[] = {
1632         FSIBOSLD_MARK,
1633 };
1634 static const unsigned int fsib_spdif_pins[] = {
1635         /* SPDIF */
1636         53,
1637 };
1638 static const unsigned int fsib_spdif_mux[] = {
1639         FSIBSPDIF_MARK,
1640 };
1641 /* - FSIC ------------------------------------------------------------------- */
1642 static const unsigned int fsic_mclk_in_pins[] = {
1643         /* CK */
1644         54,
1645 };
1646 static const unsigned int fsic_mclk_in_mux[] = {
1647         FSICCK_MARK,
1648 };
1649 static const unsigned int fsic_mclk_out_pins[] = {
1650         /* OMC */
1651         54,
1652 };
1653 static const unsigned int fsic_mclk_out_mux[] = {
1654         FSICOMC_MARK,
1655 };
1656 static const unsigned int fsic_sclk_in_pins[] = {
1657         /* ILR, IBT */
1658         46, 45,
1659 };
1660 static const unsigned int fsic_sclk_in_mux[] = {
1661         FSICILR_MARK, FSICIBT_MARK,
1662 };
1663 static const unsigned int fsic_sclk_out_pins[] = {
1664         /* OLR, OBT */
1665         46, 45,
1666 };
1667 static const unsigned int fsic_sclk_out_mux[] = {
1668         FSICOLR_MARK, FSICOBT_MARK,
1669 };
1670 static const unsigned int fsic_data_in_pins[] = {
1671         /* ISLD */
1672         48,
1673 };
1674 static const unsigned int fsic_data_in_mux[] = {
1675         FSICISLD_MARK,
1676 };
1677 static const unsigned int fsic_data_out_pins[] = {
1678         /* OSLD, OSLDT1, OSLDT2, OSLDT3 */
1679         47, 44, 42, 16,
1680 };
1681 static const unsigned int fsic_data_out_mux[] = {
1682         FSICOSLD_MARK, FSICOSLDT1_MARK, FSICOSLDT2_MARK, FSICOSLDT3_MARK,
1683 };
1684 static const unsigned int fsic_spdif_0_pins[] = {
1685         /* SPDIF */
1686         53,
1687 };
1688 static const unsigned int fsic_spdif_0_mux[] = {
1689         PORT53_FSICSPDIF_MARK,
1690 };
1691 static const unsigned int fsic_spdif_1_pins[] = {
1692         /* SPDIF */
1693         47,
1694 };
1695 static const unsigned int fsic_spdif_1_mux[] = {
1696         PORT47_FSICSPDIF_MARK,
1697 };
1698 /* - FSID ------------------------------------------------------------------- */
1699 static const unsigned int fsid_sclk_in_pins[] = {
1700         /* ILR, IBT */
1701         46, 45,
1702 };
1703 static const unsigned int fsid_sclk_in_mux[] = {
1704         FSIDILR_MARK, FSIDIBT_MARK,
1705 };
1706 static const unsigned int fsid_sclk_out_pins[] = {
1707         /* OLR, OBT */
1708         46, 45,
1709 };
1710 static const unsigned int fsid_sclk_out_mux[] = {
1711         FSIDOLR_MARK, FSIDOBT_MARK,
1712 };
1713 static const unsigned int fsid_data_in_pins[] = {
1714         /* ISLD */
1715         48,
1716 };
1717 static const unsigned int fsid_data_in_mux[] = {
1718         FSIDISLD_MARK,
1719 };
1720 /* - I2C2 ------------------------------------------------------------------- */
1721 static const unsigned int i2c2_0_pins[] = {
1722         /* SCL, SDA */
1723         237, 236,
1724 };
1725 static const unsigned int i2c2_0_mux[] = {
1726         PORT237_I2C_SCL2_MARK, PORT236_I2C_SDA2_MARK,
1727 };
1728 static const unsigned int i2c2_1_pins[] = {
1729         /* SCL, SDA */
1730         27, 28,
1731 };
1732 static const unsigned int i2c2_1_mux[] = {
1733         PORT27_I2C_SCL2_MARK, PORT28_I2C_SDA2_MARK,
1734 };
1735 static const unsigned int i2c2_2_pins[] = {
1736         /* SCL, SDA */
1737         115, 116,
1738 };
1739 static const unsigned int i2c2_2_mux[] = {
1740         PORT115_I2C_SCL2_MARK, PORT116_I2C_SDA2_MARK,
1741 };
1742 /* - I2C3 ------------------------------------------------------------------- */
1743 static const unsigned int i2c3_0_pins[] = {
1744         /* SCL, SDA */
1745         248, 249,
1746 };
1747 static const unsigned int i2c3_0_mux[] = {
1748         PORT248_I2C_SCL3_MARK, PORT249_I2C_SDA3_MARK,
1749 };
1750 static const unsigned int i2c3_1_pins[] = {
1751         /* SCL, SDA */
1752         27, 28,
1753 };
1754 static const unsigned int i2c3_1_mux[] = {
1755         PORT27_I2C_SCL3_MARK, PORT28_I2C_SDA3_MARK,
1756 };
1757 static const unsigned int i2c3_2_pins[] = {
1758         /* SCL, SDA */
1759         115, 116,
1760 };
1761 static const unsigned int i2c3_2_mux[] = {
1762         PORT115_I2C_SCL3_MARK, PORT116_I2C_SDA3_MARK,
1763 };
1764 /* - IrDA ------------------------------------------------------------------- */
1765 static const unsigned int irda_0_pins[] = {
1766         /* OUT, IN, FIRSEL */
1767         241, 242, 243,
1768 };
1769 static const unsigned int irda_0_mux[] = {
1770         PORT241_IRDA_OUT_MARK, PORT242_IRDA_IN_MARK, PORT243_IRDA_FIRSEL_MARK,
1771 };
1772 static const unsigned int irda_1_pins[] = {
1773         /* OUT, IN, FIRSEL */
1774         49, 53, 54,
1775 };
1776 static const unsigned int irda_1_mux[] = {
1777         PORT49_IRDA_OUT_MARK, PORT53_IRDA_IN_MARK, PORT54_IRDA_FIRSEL_MARK,
1778 };
1779 /* - KEYSC ------------------------------------------------------------------ */
1780 static const unsigned int keysc_in_pins[] = {
1781         /* KEYIN[0:7] */
1782         66, 67, 68, 69, 70, 71, 72, 73,
1783 };
1784 static const unsigned int keysc_in_mux[] = {
1785         KEYIN0_MARK, KEYIN1_MARK, KEYIN2_MARK, KEYIN3_MARK,
1786         KEYIN4_MARK, KEYIN5_MARK, KEYIN6_MARK, KEYIN7_MARK,
1787 };
1788 static const unsigned int keysc_out04_pins[] = {
1789         /* KEYOUT[0:4] */
1790         65, 64, 63, 62, 61,
1791 };
1792 static const unsigned int keysc_out04_mux[] = {
1793         KEYOUT0_MARK, KEYOUT1_MARK, KEYOUT2_MARK, KEYOUT3_MARK, KEYOUT4_MARK,
1794 };
1795 static const unsigned int keysc_out5_pins[] = {
1796         /* KEYOUT5 */
1797         60,
1798 };
1799 static const unsigned int keysc_out5_mux[] = {
1800         KEYOUT5_MARK,
1801 };
1802 static const unsigned int keysc_out6_0_pins[] = {
1803         /* KEYOUT6 */
1804         59,
1805 };
1806 static const unsigned int keysc_out6_0_mux[] = {
1807         PORT59_KEYOUT6_MARK,
1808 };
1809 static const unsigned int keysc_out6_1_pins[] = {
1810         /* KEYOUT6 */
1811         131,
1812 };
1813 static const unsigned int keysc_out6_1_mux[] = {
1814         PORT131_KEYOUT6_MARK,
1815 };
1816 static const unsigned int keysc_out6_2_pins[] = {
1817         /* KEYOUT6 */
1818         143,
1819 };
1820 static const unsigned int keysc_out6_2_mux[] = {
1821         PORT143_KEYOUT6_MARK,
1822 };
1823 static const unsigned int keysc_out7_0_pins[] = {
1824         /* KEYOUT7 */
1825         58,
1826 };
1827 static const unsigned int keysc_out7_0_mux[] = {
1828         PORT58_KEYOUT7_MARK,
1829 };
1830 static const unsigned int keysc_out7_1_pins[] = {
1831         /* KEYOUT7 */
1832         132,
1833 };
1834 static const unsigned int keysc_out7_1_mux[] = {
1835         PORT132_KEYOUT7_MARK,
1836 };
1837 static const unsigned int keysc_out7_2_pins[] = {
1838         /* KEYOUT7 */
1839         144,
1840 };
1841 static const unsigned int keysc_out7_2_mux[] = {
1842         PORT144_KEYOUT7_MARK,
1843 };
1844 static const unsigned int keysc_out8_0_pins[] = {
1845         /* KEYOUT8 */
1846         PIN_A11,
1847 };
1848 static const unsigned int keysc_out8_0_mux[] = {
1849         KEYOUT8_MARK,
1850 };
1851 static const unsigned int keysc_out8_1_pins[] = {
1852         /* KEYOUT8 */
1853         136,
1854 };
1855 static const unsigned int keysc_out8_1_mux[] = {
1856         PORT136_KEYOUT8_MARK,
1857 };
1858 static const unsigned int keysc_out8_2_pins[] = {
1859         /* KEYOUT8 */
1860         138,
1861 };
1862 static const unsigned int keysc_out8_2_mux[] = {
1863         PORT138_KEYOUT8_MARK,
1864 };
1865 static const unsigned int keysc_out9_0_pins[] = {
1866         /* KEYOUT9 */
1867         137,
1868 };
1869 static const unsigned int keysc_out9_0_mux[] = {
1870         PORT137_KEYOUT9_MARK,
1871 };
1872 static const unsigned int keysc_out9_1_pins[] = {
1873         /* KEYOUT9 */
1874         139,
1875 };
1876 static const unsigned int keysc_out9_1_mux[] = {
1877         PORT139_KEYOUT9_MARK,
1878 };
1879 static const unsigned int keysc_out9_2_pins[] = {
1880         /* KEYOUT9 */
1881         149,
1882 };
1883 static const unsigned int keysc_out9_2_mux[] = {
1884         PORT149_KEYOUT9_MARK,
1885 };
1886 static const unsigned int keysc_out10_0_pins[] = {
1887         /* KEYOUT10 */
1888         132,
1889 };
1890 static const unsigned int keysc_out10_0_mux[] = {
1891         PORT132_KEYOUT10_MARK,
1892 };
1893 static const unsigned int keysc_out10_1_pins[] = {
1894         /* KEYOUT10 */
1895         142,
1896 };
1897 static const unsigned int keysc_out10_1_mux[] = {
1898         PORT142_KEYOUT10_MARK,
1899 };
1900 static const unsigned int keysc_out11_0_pins[] = {
1901         /* KEYOUT11 */
1902         131,
1903 };
1904 static const unsigned int keysc_out11_0_mux[] = {
1905         PORT131_KEYOUT11_MARK,
1906 };
1907 static const unsigned int keysc_out11_1_pins[] = {
1908         /* KEYOUT11 */
1909         143,
1910 };
1911 static const unsigned int keysc_out11_1_mux[] = {
1912         PORT143_KEYOUT11_MARK,
1913 };
1914 /* - LCD -------------------------------------------------------------------- */
1915 static const unsigned int lcd_data_pins[] = {
1916         /* D[0:23] */
1917         192, 193, 194, 195, 196, 197, 198, 199,
1918         200, 201, 202, 203, 204, 205, 206, 207,
1919         208, 209, 210, 211, 212, 213, 214, 215
1920 };
1921 static const unsigned int lcd_data_mux[] = {
1922         LCDD0_MARK, LCDD1_MARK, LCDD2_MARK, LCDD3_MARK,
1923         LCDD4_MARK, LCDD5_MARK, LCDD6_MARK, LCDD7_MARK,
1924         LCDD8_MARK, LCDD9_MARK, LCDD10_MARK, LCDD11_MARK,
1925         LCDD12_MARK, LCDD13_MARK, LCDD14_MARK, LCDD15_MARK,
1926         LCDD16_MARK, LCDD17_MARK, LCDD18_MARK, LCDD19_MARK,
1927         LCDD20_MARK, LCDD21_MARK, LCDD22_MARK, LCDD23_MARK,
1928 };
1929 static const unsigned int lcd_display_pins[] = {
1930         /* DON */
1931         222,
1932 };
1933 static const unsigned int lcd_display_mux[] = {
1934         LCDDON_MARK,
1935 };
1936 static const unsigned int lcd_lclk_pins[] = {
1937         /* LCLK */
1938         221,
1939 };
1940 static const unsigned int lcd_lclk_mux[] = {
1941         LCDLCLK_MARK,
1942 };
1943 static const unsigned int lcd_sync_pins[] = {
1944         /* VSYN, HSYN, DCK, DISP */
1945         220, 218, 216, 219,
1946 };
1947 static const unsigned int lcd_sync_mux[] = {
1948         LCDVSYN_MARK, LCDHSYN_MARK, LCDDCK_MARK, LCDDISP_MARK,
1949 };
1950 static const unsigned int lcd_sys_pins[] = {
1951         /* CS, WR, RD, RS */
1952         218, 216, 217, 219,
1953 };
1954 static const unsigned int lcd_sys_mux[] = {
1955         LCDCS__MARK, LCDWR__MARK, LCDRD__MARK, LCDRS_MARK,
1956 };
1957 /* - LCD2 ------------------------------------------------------------------- */
1958 static const unsigned int lcd2_data_pins[] = {
1959         /* D[0:23] */
1960         128, 129, 142, 143, 144, 145, 138, 139,
1961         140, 141, 130, 131, 132, 133, 134, 135,
1962         136, 137, 146, 147, 234, 235, 238, 239
1963 };
1964 static const unsigned int lcd2_data_mux[] = {
1965         LCD2D0_MARK, LCD2D1_MARK, LCD2D2_MARK, LCD2D3_MARK,
1966         LCD2D4_MARK, LCD2D5_MARK, LCD2D6_MARK, LCD2D7_MARK,
1967         LCD2D8_MARK, LCD2D9_MARK, LCD2D10_MARK, LCD2D11_MARK,
1968         LCD2D12_MARK, LCD2D13_MARK, LCD2D14_MARK, LCD2D15_MARK,
1969         LCD2D16_MARK, LCD2D17_MARK, LCD2D18_MARK, LCD2D19_MARK,
1970         LCD2D20_MARK, LCD2D21_MARK, LCD2D22_MARK, LCD2D23_MARK,
1971 };
1972 static const unsigned int lcd2_sync_0_pins[] = {
1973         /* VSYN, HSYN, DCK, DISP */
1974         128, 129, 146, 145,
1975 };
1976 static const unsigned int lcd2_sync_0_mux[] = {
1977         PORT128_LCD2VSYN_MARK, PORT129_LCD2HSYN_MARK,
1978         LCD2DCK_MARK, PORT145_LCD2DISP_MARK,
1979 };
1980 static const unsigned int lcd2_sync_1_pins[] = {
1981         /* VSYN, HSYN, DCK, DISP */
1982         222, 221, 219, 217,
1983 };
1984 static const unsigned int lcd2_sync_1_mux[] = {
1985         PORT222_LCD2VSYN_MARK, PORT221_LCD2HSYN_MARK,
1986         LCD2DCK_2_MARK, PORT217_LCD2DISP_MARK,
1987 };
1988 static const unsigned int lcd2_sys_0_pins[] = {
1989         /* CS, WR, RD, RS */
1990         129, 146, 147, 145,
1991 };
1992 static const unsigned int lcd2_sys_0_mux[] = {
1993         PORT129_LCD2CS__MARK, PORT146_LCD2WR__MARK,
1994         LCD2RD__MARK, PORT145_LCD2RS_MARK,
1995 };
1996 static const unsigned int lcd2_sys_1_pins[] = {
1997         /* CS, WR, RD, RS */
1998         221, 219, 147, 217,
1999 };
2000 static const unsigned int lcd2_sys_1_mux[] = {
2001         PORT221_LCD2CS__MARK, PORT219_LCD2WR__MARK,
2002         LCD2RD__MARK, PORT217_LCD2RS_MARK,
2003 };
2004 /* - MMCIF ------------------------------------------------------------------ */
2005 static const unsigned int mmc0_data_0_pins[] = {
2006         /* D[0:7] */
2007         271, 272, 273, 274, 275, 276, 277, 278,
2008 };
2009 static const unsigned int mmc0_data_0_mux[] = {
2010         MMCD0_0_MARK, MMCD0_1_MARK, MMCD0_2_MARK, MMCD0_3_MARK,
2011         MMCD0_4_MARK, MMCD0_5_MARK, MMCD0_6_MARK, MMCD0_7_MARK,
2012 };
2013 static const unsigned int mmc0_ctrl_0_pins[] = {
2014         /* CMD, CLK */
2015         279, 270,
2016 };
2017 static const unsigned int mmc0_ctrl_0_mux[] = {
2018         MMCCMD0_MARK, MMCCLK0_MARK,
2019 };
2020
2021 static const unsigned int mmc0_data_1_pins[] = {
2022         /* D[0:7] */
2023         305, 304, 303, 302, 301, 300, 299, 298,
2024 };
2025 static const unsigned int mmc0_data_1_mux[] = {
2026         MMCD1_0_MARK, MMCD1_1_MARK, MMCD1_2_MARK, MMCD1_3_MARK,
2027         MMCD1_4_MARK, MMCD1_5_MARK, MMCD1_6_MARK, MMCD1_7_MARK,
2028 };
2029 static const unsigned int mmc0_ctrl_1_pins[] = {
2030         /* CMD, CLK */
2031         297, 289,
2032 };
2033 static const unsigned int mmc0_ctrl_1_mux[] = {
2034         MMCCMD1_MARK, MMCCLK1_MARK,
2035 };
2036 /* - MSIOF0 ----------------------------------------------------------------- */
2037 static const unsigned int msiof0_rsck_pins[] = {
2038         /* RSCK */
2039         66,
2040 };
2041 static const unsigned int msiof0_rsck_mux[] = {
2042         MSIOF0_RSCK_MARK,
2043 };
2044 static const unsigned int msiof0_tsck_pins[] = {
2045         /* TSCK */
2046         64,
2047 };
2048 static const unsigned int msiof0_tsck_mux[] = {
2049         MSIOF0_TSCK_MARK,
2050 };
2051 static const unsigned int msiof0_rsync_pins[] = {
2052         /* RSYNC */
2053         67,
2054 };
2055 static const unsigned int msiof0_rsync_mux[] = {
2056         MSIOF0_RSYNC_MARK,
2057 };
2058 static const unsigned int msiof0_tsync_pins[] = {
2059         /* TSYNC */
2060         63,
2061 };
2062 static const unsigned int msiof0_tsync_mux[] = {
2063         MSIOF0_TSYNC_MARK,
2064 };
2065 static const unsigned int msiof0_ss1_pins[] = {
2066         /* SS1 */
2067         62,
2068 };
2069 static const unsigned int msiof0_ss1_mux[] = {
2070         MSIOF0_SS1_MARK,
2071 };
2072 static const unsigned int msiof0_ss2_pins[] = {
2073         /* SS2 */
2074         71,
2075 };
2076 static const unsigned int msiof0_ss2_mux[] = {
2077         MSIOF0_SS2_MARK,
2078 };
2079 static const unsigned int msiof0_rxd_pins[] = {
2080         /* RXD */
2081         70,
2082 };
2083 static const unsigned int msiof0_rxd_mux[] = {
2084         MSIOF0_RXD_MARK,
2085 };
2086 static const unsigned int msiof0_txd_pins[] = {
2087         /* TXD */
2088         65,
2089 };
2090 static const unsigned int msiof0_txd_mux[] = {
2091         MSIOF0_TXD_MARK,
2092 };
2093 static const unsigned int msiof0_mck0_pins[] = {
2094         /* MSCK0 */
2095         68,
2096 };
2097 static const unsigned int msiof0_mck0_mux[] = {
2098         MSIOF0_MCK0_MARK,
2099 };
2100
2101 static const unsigned int msiof0_mck1_pins[] = {
2102         /* MSCK1 */
2103         69,
2104 };
2105 static const unsigned int msiof0_mck1_mux[] = {
2106         MSIOF0_MCK1_MARK,
2107 };
2108
2109 static const unsigned int msiof0l_rsck_pins[] = {
2110         /* RSCK */
2111         214,
2112 };
2113 static const unsigned int msiof0l_rsck_mux[] = {
2114         MSIOF0L_RSCK_MARK,
2115 };
2116 static const unsigned int msiof0l_tsck_pins[] = {
2117         /* TSCK */
2118         219,
2119 };
2120 static const unsigned int msiof0l_tsck_mux[] = {
2121         MSIOF0L_TSCK_MARK,
2122 };
2123 static const unsigned int msiof0l_rsync_pins[] = {
2124         /* RSYNC */
2125         215,
2126 };
2127 static const unsigned int msiof0l_rsync_mux[] = {
2128         MSIOF0L_RSYNC_MARK,
2129 };
2130 static const unsigned int msiof0l_tsync_pins[] = {
2131         /* TSYNC */
2132         217,
2133 };
2134 static const unsigned int msiof0l_tsync_mux[] = {
2135         MSIOF0L_TSYNC_MARK,
2136 };
2137 static const unsigned int msiof0l_ss1_a_pins[] = {
2138         /* SS1 */
2139         207,
2140 };
2141 static const unsigned int msiof0l_ss1_a_mux[] = {
2142         PORT207_MSIOF0L_SS1_MARK,
2143 };
2144 static const unsigned int msiof0l_ss1_b_pins[] = {
2145         /* SS1 */
2146         210,
2147 };
2148 static const unsigned int msiof0l_ss1_b_mux[] = {
2149         PORT210_MSIOF0L_SS1_MARK,
2150 };
2151 static const unsigned int msiof0l_ss2_a_pins[] = {
2152         /* SS2 */
2153         208,
2154 };
2155 static const unsigned int msiof0l_ss2_a_mux[] = {
2156         PORT208_MSIOF0L_SS2_MARK,
2157 };
2158 static const unsigned int msiof0l_ss2_b_pins[] = {
2159         /* SS2 */
2160         211,
2161 };
2162 static const unsigned int msiof0l_ss2_b_mux[] = {
2163         PORT211_MSIOF0L_SS2_MARK,
2164 };
2165 static const unsigned int msiof0l_rxd_pins[] = {
2166         /* RXD */
2167         221,
2168 };
2169 static const unsigned int msiof0l_rxd_mux[] = {
2170         MSIOF0L_RXD_MARK,
2171 };
2172 static const unsigned int msiof0l_txd_pins[] = {
2173         /* TXD */
2174         222,
2175 };
2176 static const unsigned int msiof0l_txd_mux[] = {
2177         MSIOF0L_TXD_MARK,
2178 };
2179 static const unsigned int msiof0l_mck0_pins[] = {
2180         /* MSCK0 */
2181         212,
2182 };
2183 static const unsigned int msiof0l_mck0_mux[] = {
2184         MSIOF0L_MCK0_MARK,
2185 };
2186 static const unsigned int msiof0l_mck1_pins[] = {
2187         /* MSCK1 */
2188         213,
2189 };
2190 static const unsigned int msiof0l_mck1_mux[] = {
2191         MSIOF0L_MCK1_MARK,
2192 };
2193 /* - MSIOF1 ----------------------------------------------------------------- */
2194 static const unsigned int msiof1_rsck_pins[] = {
2195         /* RSCK */
2196         234,
2197 };
2198 static const unsigned int msiof1_rsck_mux[] = {
2199         MSIOF1_RSCK_MARK,
2200 };
2201 static const unsigned int msiof1_tsck_pins[] = {
2202         /* TSCK */
2203         232,
2204 };
2205 static const unsigned int msiof1_tsck_mux[] = {
2206         MSIOF1_TSCK_MARK,
2207 };
2208 static const unsigned int msiof1_rsync_pins[] = {
2209         /* RSYNC */
2210         235,
2211 };
2212 static const unsigned int msiof1_rsync_mux[] = {
2213         MSIOF1_RSYNC_MARK,
2214 };
2215 static const unsigned int msiof1_tsync_pins[] = {
2216         /* TSYNC */
2217         231,
2218 };
2219 static const unsigned int msiof1_tsync_mux[] = {
2220         MSIOF1_TSYNC_MARK,
2221 };
2222 static const unsigned int msiof1_ss1_pins[] = {
2223         /* SS1 */
2224         238,
2225 };
2226 static const unsigned int msiof1_ss1_mux[] = {
2227         MSIOF1_SS1_MARK,
2228 };
2229 static const unsigned int msiof1_ss2_pins[] = {
2230         /* SS2 */
2231         239,
2232 };
2233 static const unsigned int msiof1_ss2_mux[] = {
2234         MSIOF1_SS2_MARK,
2235 };
2236 static const unsigned int msiof1_rxd_pins[] = {
2237         /* RXD */
2238         233,
2239 };
2240 static const unsigned int msiof1_rxd_mux[] = {
2241         MSIOF1_RXD_MARK,
2242 };
2243 static const unsigned int msiof1_txd_pins[] = {
2244         /* TXD */
2245         230,
2246 };
2247 static const unsigned int msiof1_txd_mux[] = {
2248         MSIOF1_TXD_MARK,
2249 };
2250 static const unsigned int msiof1_mck0_pins[] = {
2251         /* MSCK0 */
2252         236,
2253 };
2254 static const unsigned int msiof1_mck0_mux[] = {
2255         MSIOF1_MCK0_MARK,
2256 };
2257 static const unsigned int msiof1_mck1_pins[] = {
2258         /* MSCK1 */
2259         237,
2260 };
2261 static const unsigned int msiof1_mck1_mux[] = {
2262         MSIOF1_MCK1_MARK,
2263 };
2264 /* - MSIOF2 ----------------------------------------------------------------- */
2265 static const unsigned int msiof2_rsck_pins[] = {
2266         /* RSCK */
2267         151,
2268 };
2269 static const unsigned int msiof2_rsck_mux[] = {
2270         MSIOF2_RSCK_MARK,
2271 };
2272 static const unsigned int msiof2_tsck_pins[] = {
2273         /* TSCK */
2274         135,
2275 };
2276 static const unsigned int msiof2_tsck_mux[] = {
2277         MSIOF2_TSCK_MARK,
2278 };
2279 static const unsigned int msiof2_rsync_pins[] = {
2280         /* RSYNC */
2281         152,
2282 };
2283 static const unsigned int msiof2_rsync_mux[] = {
2284         MSIOF2_RSYNC_MARK,
2285 };
2286 static const unsigned int msiof2_tsync_pins[] = {
2287         /* TSYNC */
2288         133,
2289 };
2290 static const unsigned int msiof2_tsync_mux[] = {
2291         MSIOF2_TSYNC_MARK,
2292 };
2293 static const unsigned int msiof2_ss1_a_pins[] = {
2294         /* SS1 */
2295         131,
2296 };
2297 static const unsigned int msiof2_ss1_a_mux[] = {
2298         PORT131_MSIOF2_SS1_MARK,
2299 };
2300 static const unsigned int msiof2_ss1_b_pins[] = {
2301         /* SS1 */
2302         153,
2303 };
2304 static const unsigned int msiof2_ss1_b_mux[] = {
2305         PORT153_MSIOF2_SS1_MARK,
2306 };
2307 static const unsigned int msiof2_ss2_a_pins[] = {
2308         /* SS2 */
2309         132,
2310 };
2311 static const unsigned int msiof2_ss2_a_mux[] = {
2312         PORT132_MSIOF2_SS2_MARK,
2313 };
2314 static const unsigned int msiof2_ss2_b_pins[] = {
2315         /* SS2 */
2316         156,
2317 };
2318 static const unsigned int msiof2_ss2_b_mux[] = {
2319         PORT156_MSIOF2_SS2_MARK,
2320 };
2321 static const unsigned int msiof2_rxd_a_pins[] = {
2322         /* RXD */
2323         130,
2324 };
2325 static const unsigned int msiof2_rxd_a_mux[] = {
2326         PORT130_MSIOF2_RXD_MARK,
2327 };
2328 static const unsigned int msiof2_rxd_b_pins[] = {
2329         /* RXD */
2330         157,
2331 };
2332 static const unsigned int msiof2_rxd_b_mux[] = {
2333         PORT157_MSIOF2_RXD_MARK,
2334 };
2335 static const unsigned int msiof2_txd_pins[] = {
2336         /* TXD */
2337         134,
2338 };
2339 static const unsigned int msiof2_txd_mux[] = {
2340         MSIOF2_TXD_MARK,
2341 };
2342 static const unsigned int msiof2_mck0_pins[] = {
2343         /* MSCK0 */
2344         154,
2345 };
2346 static const unsigned int msiof2_mck0_mux[] = {
2347         MSIOF2_MCK0_MARK,
2348 };
2349 static const unsigned int msiof2_mck1_pins[] = {
2350         /* MSCK1 */
2351         155,
2352 };
2353 static const unsigned int msiof2_mck1_mux[] = {
2354         MSIOF2_MCK1_MARK,
2355 };
2356
2357 static const unsigned int msiof2r_tsck_pins[] = {
2358         /* TSCK */
2359         248,
2360 };
2361 static const unsigned int msiof2r_tsck_mux[] = {
2362         MSIOF2R_TSCK_MARK,
2363 };
2364 static const unsigned int msiof2r_tsync_pins[] = {
2365         /* TSYNC */
2366         249,
2367 };
2368 static const unsigned int msiof2r_tsync_mux[] = {
2369         MSIOF2R_TSYNC_MARK,
2370 };
2371 static const unsigned int msiof2r_rxd_pins[] = {
2372         /* RXD */
2373         244,
2374 };
2375 static const unsigned int msiof2r_rxd_mux[] = {
2376         MSIOF2R_RXD_MARK,
2377 };
2378 static const unsigned int msiof2r_txd_pins[] = {
2379         /* TXD */
2380         245,
2381 };
2382 static const unsigned int msiof2r_txd_mux[] = {
2383         MSIOF2R_TXD_MARK,
2384 };
2385 /* - MSIOF3 (Pin function name of MSIOF3 is named BBIF1) -------------------- */
2386 static const unsigned int msiof3_rsck_pins[] = {
2387         /* RSCK */
2388         115,
2389 };
2390 static const unsigned int msiof3_rsck_mux[] = {
2391         BBIF1_RSCK_MARK,
2392 };
2393 static const unsigned int msiof3_tsck_pins[] = {
2394         /* TSCK */
2395         112,
2396 };
2397 static const unsigned int msiof3_tsck_mux[] = {
2398         BBIF1_TSCK_MARK,
2399 };
2400 static const unsigned int msiof3_rsync_pins[] = {
2401         /* RSYNC */
2402         116,
2403 };
2404 static const unsigned int msiof3_rsync_mux[] = {
2405         BBIF1_RSYNC_MARK,
2406 };
2407 static const unsigned int msiof3_tsync_pins[] = {
2408         /* TSYNC */
2409         113,
2410 };
2411 static const unsigned int msiof3_tsync_mux[] = {
2412         BBIF1_TSYNC_MARK,
2413 };
2414 static const unsigned int msiof3_ss1_pins[] = {
2415         /* SS1 */
2416         117,
2417 };
2418 static const unsigned int msiof3_ss1_mux[] = {
2419         BBIF1_SS1_MARK,
2420 };
2421 static const unsigned int msiof3_ss2_pins[] = {
2422         /* SS2 */
2423         109,
2424 };
2425 static const unsigned int msiof3_ss2_mux[] = {
2426         BBIF1_SS2_MARK,
2427 };
2428 static const unsigned int msiof3_rxd_pins[] = {
2429         /* RXD */
2430         111,
2431 };
2432 static const unsigned int msiof3_rxd_mux[] = {
2433         BBIF1_RXD_MARK,
2434 };
2435 static const unsigned int msiof3_txd_pins[] = {
2436         /* TXD */
2437         114,
2438 };
2439 static const unsigned int msiof3_txd_mux[] = {
2440         BBIF1_TXD_MARK,
2441 };
2442 static const unsigned int msiof3_flow_pins[] = {
2443         /* FLOW */
2444         117,
2445 };
2446 static const unsigned int msiof3_flow_mux[] = {
2447         BBIF1_FLOW_MARK,
2448 };
2449
2450 /* - SCIFA0 ----------------------------------------------------------------- */
2451 static const unsigned int scifa0_data_pins[] = {
2452         /* RXD, TXD */
2453         43, 17,
2454 };
2455 static const unsigned int scifa0_data_mux[] = {
2456         SCIFA0_RXD_MARK, SCIFA0_TXD_MARK,
2457 };
2458 static const unsigned int scifa0_clk_pins[] = {
2459         /* SCK */
2460         16,
2461 };
2462 static const unsigned int scifa0_clk_mux[] = {
2463         SCIFA0_SCK_MARK,
2464 };
2465 static const unsigned int scifa0_ctrl_pins[] = {
2466         /* RTS, CTS */
2467         42, 44,
2468 };
2469 static const unsigned int scifa0_ctrl_mux[] = {
2470         SCIFA0_RTS__MARK, SCIFA0_CTS__MARK,
2471 };
2472 /* - SCIFA1 ----------------------------------------------------------------- */
2473 static const unsigned int scifa1_data_pins[] = {
2474         /* RXD, TXD */
2475         228, 225,
2476 };
2477 static const unsigned int scifa1_data_mux[] = {
2478         SCIFA1_RXD_MARK, SCIFA1_TXD_MARK,
2479 };
2480 static const unsigned int scifa1_clk_pins[] = {
2481         /* SCK */
2482         226,
2483 };
2484 static const unsigned int scifa1_clk_mux[] = {
2485         SCIFA1_SCK_MARK,
2486 };
2487 static const unsigned int scifa1_ctrl_pins[] = {
2488         /* RTS, CTS */
2489         227, 229,
2490 };
2491 static const unsigned int scifa1_ctrl_mux[] = {
2492         SCIFA1_RTS__MARK, SCIFA1_CTS__MARK,
2493 };
2494 /* - SCIFA2 ----------------------------------------------------------------- */
2495 static const unsigned int scifa2_data_0_pins[] = {
2496         /* RXD, TXD */
2497         155, 154,
2498 };
2499 static const unsigned int scifa2_data_0_mux[] = {
2500         SCIFA2_RXD1_MARK, SCIFA2_TXD1_MARK,
2501 };
2502 static const unsigned int scifa2_clk_0_pins[] = {
2503         /* SCK */
2504         158,
2505 };
2506 static const unsigned int scifa2_clk_0_mux[] = {
2507         SCIFA2_SCK1_MARK,
2508 };
2509 static const unsigned int scifa2_ctrl_0_pins[] = {
2510         /* RTS, CTS */
2511         156, 157,
2512 };
2513 static const unsigned int scifa2_ctrl_0_mux[] = {
2514         SCIFA2_RTS1__MARK, SCIFA2_CTS1__MARK,
2515 };
2516 static const unsigned int scifa2_data_1_pins[] = {
2517         /* RXD, TXD */
2518         233, 230,
2519 };
2520 static const unsigned int scifa2_data_1_mux[] = {
2521         SCIFA2_RXD2_MARK, SCIFA2_TXD2_MARK,
2522 };
2523 static const unsigned int scifa2_clk_1_pins[] = {
2524         /* SCK */
2525         232,
2526 };
2527 static const unsigned int scifa2_clk_1_mux[] = {
2528         SCIFA2_SCK2_MARK,
2529 };
2530 static const unsigned int scifa2_ctrl_1_pins[] = {
2531         /* RTS, CTS */
2532         234, 231,
2533 };
2534 static const unsigned int scifa2_ctrl_1_mux[] = {
2535         SCIFA2_RTS2__MARK, SCIFA2_CTS2__MARK,
2536 };
2537 /* - SCIFA3 ----------------------------------------------------------------- */
2538 static const unsigned int scifa3_data_pins[] = {
2539         /* RXD, TXD */
2540         108, 110,
2541 };
2542 static const unsigned int scifa3_data_mux[] = {
2543         SCIFA3_RXD_MARK, SCIFA3_TXD_MARK,
2544 };
2545 static const unsigned int scifa3_ctrl_pins[] = {
2546         /* RTS, CTS */
2547         109, 107,
2548 };
2549 static const unsigned int scifa3_ctrl_mux[] = {
2550         SCIFA3_RTS__MARK, SCIFA3_CTS__MARK,
2551 };
2552 /* - SCIFA4 ----------------------------------------------------------------- */
2553 static const unsigned int scifa4_data_pins[] = {
2554         /* RXD, TXD */
2555         33, 32,
2556 };
2557 static const unsigned int scifa4_data_mux[] = {
2558         SCIFA4_RXD_MARK, SCIFA4_TXD_MARK,
2559 };
2560 static const unsigned int scifa4_ctrl_pins[] = {
2561         /* RTS, CTS */
2562         34, 35,
2563 };
2564 static const unsigned int scifa4_ctrl_mux[] = {
2565         SCIFA4_RTS__MARK, SCIFA4_CTS__MARK,
2566 };
2567 /* - SCIFA5 ----------------------------------------------------------------- */
2568 static const unsigned int scifa5_data_0_pins[] = {
2569         /* RXD, TXD */
2570         246, 247,
2571 };
2572 static const unsigned int scifa5_data_0_mux[] = {
2573         PORT246_SCIFA5_RXD_MARK, PORT247_SCIFA5_TXD_MARK,
2574 };
2575 static const unsigned int scifa5_clk_0_pins[] = {
2576         /* SCK */
2577         248,
2578 };
2579 static const unsigned int scifa5_clk_0_mux[] = {
2580         PORT248_SCIFA5_SCK_MARK,
2581 };
2582 static const unsigned int scifa5_ctrl_0_pins[] = {
2583         /* RTS, CTS */
2584         245, 244,
2585 };
2586 static const unsigned int scifa5_ctrl_0_mux[] = {
2587         PORT245_SCIFA5_RTS__MARK, PORT244_SCIFA5_CTS__MARK,
2588 };
2589 static const unsigned int scifa5_data_1_pins[] = {
2590         /* RXD, TXD */
2591         195, 196,
2592 };
2593 static const unsigned int scifa5_data_1_mux[] = {
2594         PORT195_SCIFA5_RXD_MARK, PORT196_SCIFA5_TXD_MARK,
2595 };
2596 static const unsigned int scifa5_clk_1_pins[] = {
2597         /* SCK */
2598         197,
2599 };
2600 static const unsigned int scifa5_clk_1_mux[] = {
2601         PORT197_SCIFA5_SCK_MARK,
2602 };
2603 static const unsigned int scifa5_ctrl_1_pins[] = {
2604         /* RTS, CTS */
2605         194, 193,
2606 };
2607 static const unsigned int scifa5_ctrl_1_mux[] = {
2608         PORT194_SCIFA5_RTS__MARK, PORT193_SCIFA5_CTS__MARK,
2609 };
2610 static const unsigned int scifa5_data_2_pins[] = {
2611         /* RXD, TXD */
2612         162, 160,
2613 };
2614 static const unsigned int scifa5_data_2_mux[] = {
2615         PORT162_SCIFA5_RXD_MARK, PORT160_SCIFA5_TXD_MARK,
2616 };
2617 static const unsigned int scifa5_clk_2_pins[] = {
2618         /* SCK */
2619         159,
2620 };
2621 static const unsigned int scifa5_clk_2_mux[] = {
2622         PORT159_SCIFA5_SCK_MARK,
2623 };
2624 static const unsigned int scifa5_ctrl_2_pins[] = {
2625         /* RTS, CTS */
2626         163, 161,
2627 };
2628 static const unsigned int scifa5_ctrl_2_mux[] = {
2629         PORT163_SCIFA5_RTS__MARK, PORT161_SCIFA5_CTS__MARK,
2630 };
2631 /* - SCIFA6 ----------------------------------------------------------------- */
2632 static const unsigned int scifa6_pins[] = {
2633         /* TXD */
2634         240,
2635 };
2636 static const unsigned int scifa6_mux[] = {
2637         SCIFA6_TXD_MARK,
2638 };
2639 /* - SCIFA7 ----------------------------------------------------------------- */
2640 static const unsigned int scifa7_data_pins[] = {
2641         /* RXD, TXD */
2642         12, 18,
2643 };
2644 static const unsigned int scifa7_data_mux[] = {
2645         SCIFA7_RXD_MARK, SCIFA7_TXD_MARK,
2646 };
2647 static const unsigned int scifa7_ctrl_pins[] = {
2648         /* RTS, CTS */
2649         19, 13,
2650 };
2651 static const unsigned int scifa7_ctrl_mux[] = {
2652         SCIFA7_RTS__MARK, SCIFA7_CTS__MARK,
2653 };
2654 /* - SCIFB ------------------------------------------------------------------ */
2655 static const unsigned int scifb_data_0_pins[] = {
2656         /* RXD, TXD */
2657         162, 160,
2658 };
2659 static const unsigned int scifb_data_0_mux[] = {
2660         PORT162_SCIFB_RXD_MARK, PORT160_SCIFB_TXD_MARK,
2661 };
2662 static const unsigned int scifb_clk_0_pins[] = {
2663         /* SCK */
2664         159,
2665 };
2666 static const unsigned int scifb_clk_0_mux[] = {
2667         PORT159_SCIFB_SCK_MARK,
2668 };
2669 static const unsigned int scifb_ctrl_0_pins[] = {
2670         /* RTS, CTS */
2671         163, 161,
2672 };
2673 static const unsigned int scifb_ctrl_0_mux[] = {
2674         PORT163_SCIFB_RTS__MARK, PORT161_SCIFB_CTS__MARK,
2675 };
2676 static const unsigned int scifb_data_1_pins[] = {
2677         /* RXD, TXD */
2678         246, 247,
2679 };
2680 static const unsigned int scifb_data_1_mux[] = {
2681         PORT246_SCIFB_RXD_MARK, PORT247_SCIFB_TXD_MARK,
2682 };
2683 static const unsigned int scifb_clk_1_pins[] = {
2684         /* SCK */
2685         248,
2686 };
2687 static const unsigned int scifb_clk_1_mux[] = {
2688         PORT248_SCIFB_SCK_MARK,
2689 };
2690 static const unsigned int scifb_ctrl_1_pins[] = {
2691         /* RTS, CTS */
2692         245, 244,
2693 };
2694 static const unsigned int scifb_ctrl_1_mux[] = {
2695         PORT245_SCIFB_RTS__MARK, PORT244_SCIFB_CTS__MARK,
2696 };
2697 /* - SDHI0 ------------------------------------------------------------------ */
2698 static const unsigned int sdhi0_data_pins[] = {
2699         /* D[0:3] */
2700         252, 253, 254, 255,
2701 };
2702 static const unsigned int sdhi0_data_mux[] = {
2703         SDHID0_0_MARK, SDHID0_1_MARK, SDHID0_2_MARK, SDHID0_3_MARK,
2704 };
2705 static const unsigned int sdhi0_ctrl_pins[] = {
2706         /* CMD, CLK */
2707         256, 250,
2708 };
2709 static const unsigned int sdhi0_ctrl_mux[] = {
2710         SDHICMD0_MARK, SDHICLK0_MARK,
2711 };
2712 static const unsigned int sdhi0_cd_pins[] = {
2713         /* CD */
2714         251,
2715 };
2716 static const unsigned int sdhi0_cd_mux[] = {
2717         SDHICD0_MARK,
2718 };
2719 static const unsigned int sdhi0_wp_pins[] = {
2720         /* WP */
2721         257,
2722 };
2723 static const unsigned int sdhi0_wp_mux[] = {
2724         SDHIWP0_MARK,
2725 };
2726 /* - SDHI1 ------------------------------------------------------------------ */
2727 static const unsigned int sdhi1_data_pins[] = {
2728         /* D[0:3] */
2729         259, 260, 261, 262,
2730 };
2731 static const unsigned int sdhi1_data_mux[] = {
2732         SDHID1_0_MARK, SDHID1_1_MARK, SDHID1_2_MARK, SDHID1_3_MARK,
2733 };
2734 static const unsigned int sdhi1_ctrl_pins[] = {
2735         /* CMD, CLK */
2736         263, 258,
2737 };
2738 static const unsigned int sdhi1_ctrl_mux[] = {
2739         SDHICMD1_MARK, SDHICLK1_MARK,
2740 };
2741 /* - SDHI2 ------------------------------------------------------------------ */
2742 static const unsigned int sdhi2_data_pins[] = {
2743         /* D[0:3] */
2744         265, 266, 267, 268,
2745 };
2746 static const unsigned int sdhi2_data_mux[] = {
2747         SDHID2_0_MARK, SDHID2_1_MARK, SDHID2_2_MARK, SDHID2_3_MARK,
2748 };
2749 static const unsigned int sdhi2_ctrl_pins[] = {
2750         /* CMD, CLK */
2751         269, 264,
2752 };
2753 static const unsigned int sdhi2_ctrl_mux[] = {
2754         SDHICMD2_MARK, SDHICLK2_MARK,
2755 };
2756 /* - TPU0 ------------------------------------------------------------------- */
2757 static const unsigned int tpu0_to0_pins[] = {
2758         /* TO */
2759         55,
2760 };
2761 static const unsigned int tpu0_to0_mux[] = {
2762         TPU0TO0_MARK,
2763 };
2764 static const unsigned int tpu0_to1_pins[] = {
2765         /* TO */
2766         59,
2767 };
2768 static const unsigned int tpu0_to1_mux[] = {
2769         TPU0TO1_MARK,
2770 };
2771 static const unsigned int tpu0_to2_pins[] = {
2772         /* TO */
2773         140,
2774 };
2775 static const unsigned int tpu0_to2_mux[] = {
2776         TPU0TO2_MARK,
2777 };
2778 static const unsigned int tpu0_to3_pins[] = {
2779         /* TO */
2780         141,
2781 };
2782 static const unsigned int tpu0_to3_mux[] = {
2783         TPU0TO3_MARK,
2784 };
2785 /* - TPU1 ------------------------------------------------------------------- */
2786 static const unsigned int tpu1_to0_pins[] = {
2787         /* TO */
2788         246,
2789 };
2790 static const unsigned int tpu1_to0_mux[] = {
2791         TPU1TO0_MARK,
2792 };
2793 static const unsigned int tpu1_to1_0_pins[] = {
2794         /* TO */
2795         28,
2796 };
2797 static const unsigned int tpu1_to1_0_mux[] = {
2798         PORT28_TPU1TO1_MARK,
2799 };
2800 static const unsigned int tpu1_to1_1_pins[] = {
2801         /* TO */
2802         29,
2803 };
2804 static const unsigned int tpu1_to1_1_mux[] = {
2805         PORT29_TPU1TO1_MARK,
2806 };
2807 static const unsigned int tpu1_to2_pins[] = {
2808         /* TO */
2809         153,
2810 };
2811 static const unsigned int tpu1_to2_mux[] = {
2812         TPU1TO2_MARK,
2813 };
2814 static const unsigned int tpu1_to3_pins[] = {
2815         /* TO */
2816         145,
2817 };
2818 static const unsigned int tpu1_to3_mux[] = {
2819         TPU1TO3_MARK,
2820 };
2821 /* - TPU2 ------------------------------------------------------------------- */
2822 static const unsigned int tpu2_to0_pins[] = {
2823         /* TO */
2824         248,
2825 };
2826 static const unsigned int tpu2_to0_mux[] = {
2827         TPU2TO0_MARK,
2828 };
2829 static const unsigned int tpu2_to1_pins[] = {
2830         /* TO */
2831         197,
2832 };
2833 static const unsigned int tpu2_to1_mux[] = {
2834         TPU2TO1_MARK,
2835 };
2836 static const unsigned int tpu2_to2_pins[] = {
2837         /* TO */
2838         50,
2839 };
2840 static const unsigned int tpu2_to2_mux[] = {
2841         TPU2TO2_MARK,
2842 };
2843 static const unsigned int tpu2_to3_pins[] = {
2844         /* TO */
2845         51,
2846 };
2847 static const unsigned int tpu2_to3_mux[] = {
2848         TPU2TO3_MARK,
2849 };
2850 /* - TPU3 ------------------------------------------------------------------- */
2851 static const unsigned int tpu3_to0_pins[] = {
2852         /* TO */
2853         163,
2854 };
2855 static const unsigned int tpu3_to0_mux[] = {
2856         TPU3TO0_MARK,
2857 };
2858 static const unsigned int tpu3_to1_pins[] = {
2859         /* TO */
2860         247,
2861 };
2862 static const unsigned int tpu3_to1_mux[] = {
2863         TPU3TO1_MARK,
2864 };
2865 static const unsigned int tpu3_to2_pins[] = {
2866         /* TO */
2867         54,
2868 };
2869 static const unsigned int tpu3_to2_mux[] = {
2870         TPU3TO2_MARK,
2871 };
2872 static const unsigned int tpu3_to3_pins[] = {
2873         /* TO */
2874         53,
2875 };
2876 static const unsigned int tpu3_to3_mux[] = {
2877         TPU3TO3_MARK,
2878 };
2879 /* - TPU4 ------------------------------------------------------------------- */
2880 static const unsigned int tpu4_to0_pins[] = {
2881         /* TO */
2882         241,
2883 };
2884 static const unsigned int tpu4_to0_mux[] = {
2885         TPU4TO0_MARK,
2886 };
2887 static const unsigned int tpu4_to1_pins[] = {
2888         /* TO */
2889         199,
2890 };
2891 static const unsigned int tpu4_to1_mux[] = {
2892         TPU4TO1_MARK,
2893 };
2894 static const unsigned int tpu4_to2_pins[] = {
2895         /* TO */
2896         58,
2897 };
2898 static const unsigned int tpu4_to2_mux[] = {
2899         TPU4TO2_MARK,
2900 };
2901 static const unsigned int tpu4_to3_pins[] = {
2902         /* TO */
2903         PIN_A11,
2904 };
2905 static const unsigned int tpu4_to3_mux[] = {
2906         TPU4TO3_MARK,
2907 };
2908 /* - USB -------------------------------------------------------------------- */
2909 static const unsigned int usb_vbus_pins[] = {
2910         /* VBUS */
2911         0,
2912 };
2913 static const unsigned int usb_vbus_mux[] = {
2914         VBUS_0_MARK,
2915 };
2916
2917 static const struct sh_pfc_pin_group pinmux_groups[] = {
2918         SH_PFC_PIN_GROUP(bsc_data_0_7),
2919         SH_PFC_PIN_GROUP(bsc_data_8_15),
2920         SH_PFC_PIN_GROUP(bsc_cs4),
2921         SH_PFC_PIN_GROUP(bsc_cs5_a),
2922         SH_PFC_PIN_GROUP(bsc_cs5_b),
2923         SH_PFC_PIN_GROUP(bsc_cs6_a),
2924         SH_PFC_PIN_GROUP(bsc_cs6_b),
2925         SH_PFC_PIN_GROUP(bsc_rd),
2926         SH_PFC_PIN_GROUP(bsc_rdwr_0),
2927         SH_PFC_PIN_GROUP(bsc_rdwr_1),
2928         SH_PFC_PIN_GROUP(bsc_rdwr_2),
2929         SH_PFC_PIN_GROUP(bsc_we0),
2930         SH_PFC_PIN_GROUP(bsc_we1),
2931         SH_PFC_PIN_GROUP(fsia_mclk_in),
2932         SH_PFC_PIN_GROUP(fsia_mclk_out),
2933         SH_PFC_PIN_GROUP(fsia_sclk_in),
2934         SH_PFC_PIN_GROUP(fsia_sclk_out),
2935         SH_PFC_PIN_GROUP(fsia_data_in),
2936         SH_PFC_PIN_GROUP(fsia_data_out),
2937         SH_PFC_PIN_GROUP(fsia_spdif),
2938         SH_PFC_PIN_GROUP(fsib_mclk_in),
2939         SH_PFC_PIN_GROUP(fsib_mclk_out),
2940         SH_PFC_PIN_GROUP(fsib_sclk_in),
2941         SH_PFC_PIN_GROUP(fsib_sclk_out),
2942         SH_PFC_PIN_GROUP(fsib_data_in),
2943         SH_PFC_PIN_GROUP(fsib_data_out),
2944         SH_PFC_PIN_GROUP(fsib_spdif),
2945         SH_PFC_PIN_GROUP(fsic_mclk_in),
2946         SH_PFC_PIN_GROUP(fsic_mclk_out),
2947         SH_PFC_PIN_GROUP(fsic_sclk_in),
2948         SH_PFC_PIN_GROUP(fsic_sclk_out),
2949         SH_PFC_PIN_GROUP(fsic_data_in),
2950         SH_PFC_PIN_GROUP(fsic_data_out),
2951         SH_PFC_PIN_GROUP(fsic_spdif_0),
2952         SH_PFC_PIN_GROUP(fsic_spdif_1),
2953         SH_PFC_PIN_GROUP(fsid_sclk_in),
2954         SH_PFC_PIN_GROUP(fsid_sclk_out),
2955         SH_PFC_PIN_GROUP(fsid_data_in),
2956         SH_PFC_PIN_GROUP(i2c2_0),
2957         SH_PFC_PIN_GROUP(i2c2_1),
2958         SH_PFC_PIN_GROUP(i2c2_2),
2959         SH_PFC_PIN_GROUP(i2c3_0),
2960         SH_PFC_PIN_GROUP(i2c3_1),
2961         SH_PFC_PIN_GROUP(i2c3_2),
2962         SH_PFC_PIN_GROUP(irda_0),
2963         SH_PFC_PIN_GROUP(irda_1),
2964         BUS_DATA_PIN_GROUP(keysc_in, 5),
2965         BUS_DATA_PIN_GROUP(keysc_in, 6),
2966         BUS_DATA_PIN_GROUP(keysc_in, 7),
2967         BUS_DATA_PIN_GROUP(keysc_in, 8),
2968         SH_PFC_PIN_GROUP(keysc_out04),
2969         SH_PFC_PIN_GROUP(keysc_out5),
2970         SH_PFC_PIN_GROUP(keysc_out6_0),
2971         SH_PFC_PIN_GROUP(keysc_out6_1),
2972         SH_PFC_PIN_GROUP(keysc_out6_2),
2973         SH_PFC_PIN_GROUP(keysc_out7_0),
2974         SH_PFC_PIN_GROUP(keysc_out7_1),
2975         SH_PFC_PIN_GROUP(keysc_out7_2),
2976         SH_PFC_PIN_GROUP(keysc_out8_0),
2977         SH_PFC_PIN_GROUP(keysc_out8_1),
2978         SH_PFC_PIN_GROUP(keysc_out8_2),
2979         SH_PFC_PIN_GROUP(keysc_out9_0),
2980         SH_PFC_PIN_GROUP(keysc_out9_1),
2981         SH_PFC_PIN_GROUP(keysc_out9_2),
2982         SH_PFC_PIN_GROUP(keysc_out10_0),
2983         SH_PFC_PIN_GROUP(keysc_out10_1),
2984         SH_PFC_PIN_GROUP(keysc_out11_0),
2985         SH_PFC_PIN_GROUP(keysc_out11_1),
2986         BUS_DATA_PIN_GROUP(lcd_data, 8),
2987         BUS_DATA_PIN_GROUP(lcd_data, 9),
2988         BUS_DATA_PIN_GROUP(lcd_data, 12),
2989         BUS_DATA_PIN_GROUP(lcd_data, 16),
2990         BUS_DATA_PIN_GROUP(lcd_data, 18),
2991         BUS_DATA_PIN_GROUP(lcd_data, 24),
2992         SH_PFC_PIN_GROUP(lcd_display),
2993         SH_PFC_PIN_GROUP(lcd_lclk),
2994         SH_PFC_PIN_GROUP(lcd_sync),
2995         SH_PFC_PIN_GROUP(lcd_sys),
2996         BUS_DATA_PIN_GROUP(lcd2_data, 8),
2997         BUS_DATA_PIN_GROUP(lcd2_data, 9),
2998         BUS_DATA_PIN_GROUP(lcd2_data, 12),
2999         BUS_DATA_PIN_GROUP(lcd2_data, 16),
3000         BUS_DATA_PIN_GROUP(lcd2_data, 18),
3001         BUS_DATA_PIN_GROUP(lcd2_data, 24),
3002         SH_PFC_PIN_GROUP(lcd2_sync_0),
3003         SH_PFC_PIN_GROUP(lcd2_sync_1),
3004         SH_PFC_PIN_GROUP(lcd2_sys_0),
3005         SH_PFC_PIN_GROUP(lcd2_sys_1),
3006         BUS_DATA_PIN_GROUP(mmc0_data, 1, _0),
3007         BUS_DATA_PIN_GROUP(mmc0_data, 4, _0),
3008         BUS_DATA_PIN_GROUP(mmc0_data, 8, _0),
3009         SH_PFC_PIN_GROUP(mmc0_ctrl_0),
3010         BUS_DATA_PIN_GROUP(mmc0_data, 1, _1),
3011         BUS_DATA_PIN_GROUP(mmc0_data, 4, _1),
3012         BUS_DATA_PIN_GROUP(mmc0_data, 8, _1),
3013         SH_PFC_PIN_GROUP(mmc0_ctrl_1),
3014         SH_PFC_PIN_GROUP(msiof0_rsck),
3015         SH_PFC_PIN_GROUP(msiof0_tsck),
3016         SH_PFC_PIN_GROUP(msiof0_rsync),
3017         SH_PFC_PIN_GROUP(msiof0_tsync),
3018         SH_PFC_PIN_GROUP(msiof0_ss1),
3019         SH_PFC_PIN_GROUP(msiof0_ss2),
3020         SH_PFC_PIN_GROUP(msiof0_rxd),
3021         SH_PFC_PIN_GROUP(msiof0_txd),
3022         SH_PFC_PIN_GROUP(msiof0_mck0),
3023         SH_PFC_PIN_GROUP(msiof0_mck1),
3024         SH_PFC_PIN_GROUP(msiof0l_rsck),
3025         SH_PFC_PIN_GROUP(msiof0l_tsck),
3026         SH_PFC_PIN_GROUP(msiof0l_rsync),
3027         SH_PFC_PIN_GROUP(msiof0l_tsync),
3028         SH_PFC_PIN_GROUP(msiof0l_ss1_a),
3029         SH_PFC_PIN_GROUP(msiof0l_ss1_b),
3030         SH_PFC_PIN_GROUP(msiof0l_ss2_a),
3031         SH_PFC_PIN_GROUP(msiof0l_ss2_b),
3032         SH_PFC_PIN_GROUP(msiof0l_rxd),
3033         SH_PFC_PIN_GROUP(msiof0l_txd),
3034         SH_PFC_PIN_GROUP(msiof0l_mck0),
3035         SH_PFC_PIN_GROUP(msiof0l_mck1),
3036         SH_PFC_PIN_GROUP(msiof1_rsck),
3037         SH_PFC_PIN_GROUP(msiof1_tsck),
3038         SH_PFC_PIN_GROUP(msiof1_rsync),
3039         SH_PFC_PIN_GROUP(msiof1_tsync),
3040         SH_PFC_PIN_GROUP(msiof1_ss1),
3041         SH_PFC_PIN_GROUP(msiof1_ss2),
3042         SH_PFC_PIN_GROUP(msiof1_rxd),
3043         SH_PFC_PIN_GROUP(msiof1_txd),
3044         SH_PFC_PIN_GROUP(msiof1_mck0),
3045         SH_PFC_PIN_GROUP(msiof1_mck1),
3046         SH_PFC_PIN_GROUP(msiof2_rsck),
3047         SH_PFC_PIN_GROUP(msiof2_tsck),
3048         SH_PFC_PIN_GROUP(msiof2_rsync),
3049         SH_PFC_PIN_GROUP(msiof2_tsync),
3050         SH_PFC_PIN_GROUP(msiof2_ss1_a),
3051         SH_PFC_PIN_GROUP(msiof2_ss1_b),
3052         SH_PFC_PIN_GROUP(msiof2_ss2_a),
3053         SH_PFC_PIN_GROUP(msiof2_ss2_b),
3054         SH_PFC_PIN_GROUP(msiof2_rxd_a),
3055         SH_PFC_PIN_GROUP(msiof2_rxd_b),
3056         SH_PFC_PIN_GROUP(msiof2_txd),
3057         SH_PFC_PIN_GROUP(msiof2_mck0),
3058         SH_PFC_PIN_GROUP(msiof2_mck1),
3059         SH_PFC_PIN_GROUP(msiof2r_tsck),
3060         SH_PFC_PIN_GROUP(msiof2r_tsync),
3061         SH_PFC_PIN_GROUP(msiof2r_rxd),
3062         SH_PFC_PIN_GROUP(msiof2r_txd),
3063         SH_PFC_PIN_GROUP(msiof3_rsck),
3064         SH_PFC_PIN_GROUP(msiof3_tsck),
3065         SH_PFC_PIN_GROUP(msiof3_rsync),
3066         SH_PFC_PIN_GROUP(msiof3_tsync),
3067         SH_PFC_PIN_GROUP(msiof3_ss1),
3068         SH_PFC_PIN_GROUP(msiof3_ss2),
3069         SH_PFC_PIN_GROUP(msiof3_rxd),
3070         SH_PFC_PIN_GROUP(msiof3_txd),
3071         SH_PFC_PIN_GROUP(msiof3_flow),
3072         SH_PFC_PIN_GROUP(scifa0_data),
3073         SH_PFC_PIN_GROUP(scifa0_clk),
3074         SH_PFC_PIN_GROUP(scifa0_ctrl),
3075         SH_PFC_PIN_GROUP(scifa1_data),
3076         SH_PFC_PIN_GROUP(scifa1_clk),
3077         SH_PFC_PIN_GROUP(scifa1_ctrl),
3078         SH_PFC_PIN_GROUP(scifa2_data_0),
3079         SH_PFC_PIN_GROUP(scifa2_clk_0),
3080         SH_PFC_PIN_GROUP(scifa2_ctrl_0),
3081         SH_PFC_PIN_GROUP(scifa2_data_1),
3082         SH_PFC_PIN_GROUP(scifa2_clk_1),
3083         SH_PFC_PIN_GROUP(scifa2_ctrl_1),
3084         SH_PFC_PIN_GROUP(scifa3_data),
3085         SH_PFC_PIN_GROUP(scifa3_ctrl),
3086         SH_PFC_PIN_GROUP(scifa4_data),
3087         SH_PFC_PIN_GROUP(scifa4_ctrl),
3088         SH_PFC_PIN_GROUP(scifa5_data_0),
3089         SH_PFC_PIN_GROUP(scifa5_clk_0),
3090         SH_PFC_PIN_GROUP(scifa5_ctrl_0),
3091         SH_PFC_PIN_GROUP(scifa5_data_1),
3092         SH_PFC_PIN_GROUP(scifa5_clk_1),
3093         SH_PFC_PIN_GROUP(scifa5_ctrl_1),
3094         SH_PFC_PIN_GROUP(scifa5_data_2),
3095         SH_PFC_PIN_GROUP(scifa5_clk_2),
3096         SH_PFC_PIN_GROUP(scifa5_ctrl_2),
3097         SH_PFC_PIN_GROUP(scifa6),
3098         SH_PFC_PIN_GROUP(scifa7_data),
3099         SH_PFC_PIN_GROUP(scifa7_ctrl),
3100         SH_PFC_PIN_GROUP(scifb_data_0),
3101         SH_PFC_PIN_GROUP(scifb_clk_0),
3102         SH_PFC_PIN_GROUP(scifb_ctrl_0),
3103         SH_PFC_PIN_GROUP(scifb_data_1),
3104         SH_PFC_PIN_GROUP(scifb_clk_1),
3105         SH_PFC_PIN_GROUP(scifb_ctrl_1),
3106         BUS_DATA_PIN_GROUP(sdhi0_data, 1),
3107         BUS_DATA_PIN_GROUP(sdhi0_data, 4),
3108         SH_PFC_PIN_GROUP(sdhi0_ctrl),
3109         SH_PFC_PIN_GROUP(sdhi0_cd),
3110         SH_PFC_PIN_GROUP(sdhi0_wp),
3111         BUS_DATA_PIN_GROUP(sdhi1_data, 1),
3112         BUS_DATA_PIN_GROUP(sdhi1_data, 4),
3113         SH_PFC_PIN_GROUP(sdhi1_ctrl),
3114         BUS_DATA_PIN_GROUP(sdhi2_data, 1),
3115         BUS_DATA_PIN_GROUP(sdhi2_data, 4),
3116         SH_PFC_PIN_GROUP(sdhi2_ctrl),
3117         SH_PFC_PIN_GROUP(tpu0_to0),
3118         SH_PFC_PIN_GROUP(tpu0_to1),
3119         SH_PFC_PIN_GROUP(tpu0_to2),
3120         SH_PFC_PIN_GROUP(tpu0_to3),
3121         SH_PFC_PIN_GROUP(tpu1_to0),
3122         SH_PFC_PIN_GROUP(tpu1_to1_0),
3123         SH_PFC_PIN_GROUP(tpu1_to1_1),
3124         SH_PFC_PIN_GROUP(tpu1_to2),
3125         SH_PFC_PIN_GROUP(tpu1_to3),
3126         SH_PFC_PIN_GROUP(tpu2_to0),
3127         SH_PFC_PIN_GROUP(tpu2_to1),
3128         SH_PFC_PIN_GROUP(tpu2_to2),
3129         SH_PFC_PIN_GROUP(tpu2_to3),
3130         SH_PFC_PIN_GROUP(tpu3_to0),
3131         SH_PFC_PIN_GROUP(tpu3_to1),
3132         SH_PFC_PIN_GROUP(tpu3_to2),
3133         SH_PFC_PIN_GROUP(tpu3_to3),
3134         SH_PFC_PIN_GROUP(tpu4_to0),
3135         SH_PFC_PIN_GROUP(tpu4_to1),
3136         SH_PFC_PIN_GROUP(tpu4_to2),
3137         SH_PFC_PIN_GROUP(tpu4_to3),
3138         SH_PFC_PIN_GROUP(usb_vbus),
3139 };
3140
3141 static const char * const bsc_groups[] = {
3142         "bsc_data_0_7",
3143         "bsc_data_8_15",
3144         "bsc_cs4",
3145         "bsc_cs5_a",
3146         "bsc_cs5_b",
3147         "bsc_cs6_a",
3148         "bsc_cs6_b",
3149         "bsc_rd",
3150         "bsc_rdwr_0",
3151         "bsc_rdwr_1",
3152         "bsc_rdwr_2",
3153         "bsc_we0",
3154         "bsc_we1",
3155 };
3156
3157 static const char * const fsia_groups[] = {
3158         "fsia_mclk_in",
3159         "fsia_mclk_out",
3160         "fsia_sclk_in",
3161         "fsia_sclk_out",
3162         "fsia_data_in",
3163         "fsia_data_out",
3164         "fsia_spdif",
3165 };
3166
3167 static const char * const fsib_groups[] = {
3168         "fsib_mclk_in",
3169         "fsib_mclk_out",
3170         "fsib_sclk_in",
3171         "fsib_sclk_out",
3172         "fsib_data_in",
3173         "fsib_data_out",
3174         "fsib_spdif",
3175 };
3176
3177 static const char * const fsic_groups[] = {
3178         "fsic_mclk_in",
3179         "fsic_mclk_out",
3180         "fsic_sclk_in",
3181         "fsic_sclk_out",
3182         "fsic_data_in",
3183         "fsic_data_out",
3184         "fsic_spdif_0",
3185         "fsic_spdif_1",
3186 };
3187
3188 static const char * const fsid_groups[] = {
3189         "fsid_sclk_in",
3190         "fsid_sclk_out",
3191         "fsid_data_in",
3192 };
3193
3194 static const char * const i2c2_groups[] = {
3195         "i2c2_0",
3196         "i2c2_1",
3197         "i2c2_2",
3198 };
3199
3200 static const char * const i2c3_groups[] = {
3201         "i2c3_0",
3202         "i2c3_1",
3203         "i2c3_2",
3204 };
3205
3206 static const char * const irda_groups[] = {
3207         "irda_0",
3208         "irda_1",
3209 };
3210
3211 static const char * const keysc_groups[] = {
3212         "keysc_in5",
3213         "keysc_in6",
3214         "keysc_in7",
3215         "keysc_in8",
3216         "keysc_out04",
3217         "keysc_out5",
3218         "keysc_out6_0",
3219         "keysc_out6_1",
3220         "keysc_out6_2",
3221         "keysc_out7_0",
3222         "keysc_out7_1",
3223         "keysc_out7_2",
3224         "keysc_out8_0",
3225         "keysc_out8_1",
3226         "keysc_out8_2",
3227         "keysc_out9_0",
3228         "keysc_out9_1",
3229         "keysc_out9_2",
3230         "keysc_out10_0",
3231         "keysc_out10_1",
3232         "keysc_out11_0",
3233         "keysc_out11_1",
3234 };
3235
3236 static const char * const lcd_groups[] = {
3237         "lcd_data8",
3238         "lcd_data9",
3239         "lcd_data12",
3240         "lcd_data16",
3241         "lcd_data18",
3242         "lcd_data24",
3243         "lcd_display",
3244         "lcd_lclk",
3245         "lcd_sync",
3246         "lcd_sys",
3247 };
3248
3249 static const char * const lcd2_groups[] = {
3250         "lcd2_data8",
3251         "lcd2_data9",
3252         "lcd2_data12",
3253         "lcd2_data16",
3254         "lcd2_data18",
3255         "lcd2_data24",
3256         "lcd2_sync_0",
3257         "lcd2_sync_1",
3258         "lcd2_sys_0",
3259         "lcd2_sys_1",
3260 };
3261
3262 static const char * const mmc0_groups[] = {
3263         "mmc0_data1_0",
3264         "mmc0_data4_0",
3265         "mmc0_data8_0",
3266         "mmc0_ctrl_0",
3267         "mmc0_data1_1",
3268         "mmc0_data4_1",
3269         "mmc0_data8_1",
3270         "mmc0_ctrl_1",
3271 };
3272
3273 static const char * const msiof0_groups[] = {
3274         "msiof0_rsck",
3275         "msiof0_tsck",
3276         "msiof0_rsync",
3277         "msiof0_tsync",
3278         "msiof0_ss1",
3279         "msiof0_ss2",
3280         "msiof0_rxd",
3281         "msiof0_txd",
3282         "msiof0_mck0",
3283         "msiof0_mck1",
3284         "msiof0l_rsck",
3285         "msiof0l_tsck",
3286         "msiof0l_rsync",
3287         "msiof0l_tsync",
3288         "msiof0l_ss1_a",
3289         "msiof0l_ss1_b",
3290         "msiof0l_ss2_a",
3291         "msiof0l_ss2_b",
3292         "msiof0l_rxd",
3293         "msiof0l_txd",
3294         "msiof0l_mck0",
3295         "msiof0l_mck1",
3296 };
3297
3298 static const char * const msiof1_groups[] = {
3299         "msiof1_rsck",
3300         "msiof1_tsck",
3301         "msiof1_rsync",
3302         "msiof1_tsync",
3303         "msiof1_ss1",
3304         "msiof1_ss2",
3305         "msiof1_rxd",
3306         "msiof1_txd",
3307         "msiof1_mck0",
3308         "msiof1_mck1",
3309 };
3310
3311 static const char * const msiof2_groups[] = {
3312         "msiof2_rsck",
3313         "msiof2_tsck",
3314         "msiof2_rsync",
3315         "msiof2_tsync",
3316         "msiof2_ss1_a",
3317         "msiof2_ss1_b",
3318         "msiof2_ss2_a",
3319         "msiof2_ss2_b",
3320         "msiof2_rxd_a",
3321         "msiof2_rxd_b",
3322         "msiof2_txd",
3323         "msiof2_mck0",
3324         "msiof2_mck1",
3325         "msiof2r_tsck",
3326         "msiof2r_tsync",
3327         "msiof2r_rxd",
3328         "msiof2r_txd",
3329 };
3330
3331 static const char * const msiof3_groups[] = {
3332         "msiof3_rsck",
3333         "msiof3_tsck",
3334         "msiof3_rsync",
3335         "msiof3_tsync",
3336         "msiof3_ss1",
3337         "msiof3_ss2",
3338         "msiof3_rxd",
3339         "msiof3_txd",
3340         "msiof3_flow",
3341 };
3342
3343 static const char * const scifa0_groups[] = {
3344         "scifa0_data",
3345         "scifa0_clk",
3346         "scifa0_ctrl",
3347 };
3348
3349 static const char * const scifa1_groups[] = {
3350         "scifa1_data",
3351         "scifa1_clk",
3352         "scifa1_ctrl",
3353 };
3354
3355 static const char * const scifa2_groups[] = {
3356         "scifa2_data_0",
3357         "scifa2_clk_0",
3358         "scifa2_ctrl_0",
3359         "scifa2_data_1",
3360         "scifa2_clk_1",
3361         "scifa2_ctrl_1",
3362 };
3363
3364 static const char * const scifa3_groups[] = {
3365         "scifa3_data",
3366         "scifa3_ctrl",
3367 };
3368
3369 static const char * const scifa4_groups[] = {
3370         "scifa4_data",
3371         "scifa4_ctrl",
3372 };
3373
3374 static const char * const scifa5_groups[] = {
3375         "scifa5_data_0",
3376         "scifa5_clk_0",
3377         "scifa5_ctrl_0",
3378         "scifa5_data_1",
3379         "scifa5_clk_1",
3380         "scifa5_ctrl_1",
3381         "scifa5_data_2",
3382         "scifa5_clk_2",
3383         "scifa5_ctrl_2",
3384 };
3385
3386 static const char * const scifa6_groups[] = {
3387         "scifa6",
3388 };
3389
3390 static const char * const scifa7_groups[] = {
3391         "scifa7_data",
3392         "scifa7_ctrl",
3393 };
3394
3395 static const char * const scifb_groups[] = {
3396         "scifb_data_0",
3397         "scifb_clk_0",
3398         "scifb_ctrl_0",
3399         "scifb_data_1",
3400         "scifb_clk_1",
3401         "scifb_ctrl_1",
3402 };
3403
3404 static const char * const sdhi0_groups[] = {
3405         "sdhi0_data1",
3406         "sdhi0_data4",
3407         "sdhi0_ctrl",
3408         "sdhi0_cd",
3409         "sdhi0_wp",
3410 };
3411
3412 static const char * const sdhi1_groups[] = {
3413         "sdhi1_data1",
3414         "sdhi1_data4",
3415         "sdhi1_ctrl",
3416 };
3417
3418 static const char * const sdhi2_groups[] = {
3419         "sdhi2_data1",
3420         "sdhi2_data4",
3421         "sdhi2_ctrl",
3422 };
3423
3424 static const char * const usb_groups[] = {
3425         "usb_vbus",
3426 };
3427
3428 static const char * const tpu0_groups[] = {
3429         "tpu0_to0",
3430         "tpu0_to1",
3431         "tpu0_to2",
3432         "tpu0_to3",
3433 };
3434
3435 static const char * const tpu1_groups[] = {
3436         "tpu1_to0",
3437         "tpu1_to1_0",
3438         "tpu1_to1_1",
3439         "tpu1_to2",
3440         "tpu1_to3",
3441 };
3442
3443 static const char * const tpu2_groups[] = {
3444         "tpu2_to0",
3445         "tpu2_to1",
3446         "tpu2_to2",
3447         "tpu2_to3",
3448 };
3449
3450 static const char * const tpu3_groups[] = {
3451         "tpu3_to0",
3452         "tpu3_to1",
3453         "tpu3_to2",
3454         "tpu3_to3",
3455 };
3456
3457 static const char * const tpu4_groups[] = {
3458         "tpu4_to0",
3459         "tpu4_to1",
3460         "tpu4_to2",
3461         "tpu4_to3",
3462 };
3463
3464 static const struct sh_pfc_function pinmux_functions[] = {
3465         SH_PFC_FUNCTION(bsc),
3466         SH_PFC_FUNCTION(fsia),
3467         SH_PFC_FUNCTION(fsib),
3468         SH_PFC_FUNCTION(fsic),
3469         SH_PFC_FUNCTION(fsid),
3470         SH_PFC_FUNCTION(i2c2),
3471         SH_PFC_FUNCTION(i2c3),
3472         SH_PFC_FUNCTION(irda),
3473         SH_PFC_FUNCTION(keysc),
3474         SH_PFC_FUNCTION(lcd),
3475         SH_PFC_FUNCTION(lcd2),
3476         SH_PFC_FUNCTION(mmc0),
3477         SH_PFC_FUNCTION(msiof0),
3478         SH_PFC_FUNCTION(msiof1),
3479         SH_PFC_FUNCTION(msiof2),
3480         SH_PFC_FUNCTION(msiof3),
3481         SH_PFC_FUNCTION(scifa0),
3482         SH_PFC_FUNCTION(scifa1),
3483         SH_PFC_FUNCTION(scifa2),
3484         SH_PFC_FUNCTION(scifa3),
3485         SH_PFC_FUNCTION(scifa4),
3486         SH_PFC_FUNCTION(scifa5),
3487         SH_PFC_FUNCTION(scifa6),
3488         SH_PFC_FUNCTION(scifa7),
3489         SH_PFC_FUNCTION(scifb),
3490         SH_PFC_FUNCTION(sdhi0),
3491         SH_PFC_FUNCTION(sdhi1),
3492         SH_PFC_FUNCTION(sdhi2),
3493         SH_PFC_FUNCTION(tpu0),
3494         SH_PFC_FUNCTION(tpu1),
3495         SH_PFC_FUNCTION(tpu2),
3496         SH_PFC_FUNCTION(tpu3),
3497         SH_PFC_FUNCTION(tpu4),
3498         SH_PFC_FUNCTION(usb),
3499 };
3500
3501 static const struct pinmux_cfg_reg pinmux_config_regs[] = {
3502         PORTCR(0, 0xe6050000), /* PORT0CR */
3503         PORTCR(1, 0xe6050001), /* PORT1CR */
3504         PORTCR(2, 0xe6050002), /* PORT2CR */
3505         PORTCR(3, 0xe6050003), /* PORT3CR */
3506         PORTCR(4, 0xe6050004), /* PORT4CR */
3507         PORTCR(5, 0xe6050005), /* PORT5CR */
3508         PORTCR(6, 0xe6050006), /* PORT6CR */
3509         PORTCR(7, 0xe6050007), /* PORT7CR */
3510         PORTCR(8, 0xe6050008), /* PORT8CR */
3511         PORTCR(9, 0xe6050009), /* PORT9CR */
3512
3513         PORTCR(10, 0xe605000a), /* PORT10CR */
3514         PORTCR(11, 0xe605000b), /* PORT11CR */
3515         PORTCR(12, 0xe605000c), /* PORT12CR */
3516         PORTCR(13, 0xe605000d), /* PORT13CR */
3517         PORTCR(14, 0xe605000e), /* PORT14CR */
3518         PORTCR(15, 0xe605000f), /* PORT15CR */
3519         PORTCR(16, 0xe6050010), /* PORT16CR */
3520         PORTCR(17, 0xe6050011), /* PORT17CR */
3521         PORTCR(18, 0xe6050012), /* PORT18CR */
3522         PORTCR(19, 0xe6050013), /* PORT19CR */
3523
3524         PORTCR(20, 0xe6050014), /* PORT20CR */
3525         PORTCR(21, 0xe6050015), /* PORT21CR */
3526         PORTCR(22, 0xe6050016), /* PORT22CR */
3527         PORTCR(23, 0xe6050017), /* PORT23CR */
3528         PORTCR(24, 0xe6050018), /* PORT24CR */
3529         PORTCR(25, 0xe6050019), /* PORT25CR */
3530         PORTCR(26, 0xe605001a), /* PORT26CR */
3531         PORTCR(27, 0xe605001b), /* PORT27CR */
3532         PORTCR(28, 0xe605001c), /* PORT28CR */
3533         PORTCR(29, 0xe605001d), /* PORT29CR */
3534
3535         PORTCR(30, 0xe605001e), /* PORT30CR */
3536         PORTCR(31, 0xe605001f), /* PORT31CR */
3537         PORTCR(32, 0xe6051020), /* PORT32CR */
3538         PORTCR(33, 0xe6051021), /* PORT33CR */
3539         PORTCR(34, 0xe6051022), /* PORT34CR */
3540         PORTCR(35, 0xe6051023), /* PORT35CR */
3541         PORTCR(36, 0xe6051024), /* PORT36CR */
3542         PORTCR(37, 0xe6051025), /* PORT37CR */
3543         PORTCR(38, 0xe6051026), /* PORT38CR */
3544         PORTCR(39, 0xe6051027), /* PORT39CR */
3545
3546         PORTCR(40, 0xe6051028), /* PORT40CR */
3547         PORTCR(41, 0xe6051029), /* PORT41CR */
3548         PORTCR(42, 0xe605102a), /* PORT42CR */
3549         PORTCR(43, 0xe605102b), /* PORT43CR */
3550         PORTCR(44, 0xe605102c), /* PORT44CR */
3551         PORTCR(45, 0xe605102d), /* PORT45CR */
3552         PORTCR(46, 0xe605102e), /* PORT46CR */
3553         PORTCR(47, 0xe605102f), /* PORT47CR */
3554         PORTCR(48, 0xe6051030), /* PORT48CR */
3555         PORTCR(49, 0xe6051031), /* PORT49CR */
3556
3557         PORTCR(50, 0xe6051032), /* PORT50CR */
3558         PORTCR(51, 0xe6051033), /* PORT51CR */
3559         PORTCR(52, 0xe6051034), /* PORT52CR */
3560         PORTCR(53, 0xe6051035), /* PORT53CR */
3561         PORTCR(54, 0xe6051036), /* PORT54CR */
3562         PORTCR(55, 0xe6051037), /* PORT55CR */
3563         PORTCR(56, 0xe6051038), /* PORT56CR */
3564         PORTCR(57, 0xe6051039), /* PORT57CR */
3565         PORTCR(58, 0xe605103a), /* PORT58CR */
3566         PORTCR(59, 0xe605103b), /* PORT59CR */
3567
3568         PORTCR(60, 0xe605103c), /* PORT60CR */
3569         PORTCR(61, 0xe605103d), /* PORT61CR */
3570         PORTCR(62, 0xe605103e), /* PORT62CR */
3571         PORTCR(63, 0xe605103f), /* PORT63CR */
3572         PORTCR(64, 0xe6051040), /* PORT64CR */
3573         PORTCR(65, 0xe6051041), /* PORT65CR */
3574         PORTCR(66, 0xe6051042), /* PORT66CR */
3575         PORTCR(67, 0xe6051043), /* PORT67CR */
3576         PORTCR(68, 0xe6051044), /* PORT68CR */
3577         PORTCR(69, 0xe6051045), /* PORT69CR */
3578
3579         PORTCR(70, 0xe6051046), /* PORT70CR */
3580         PORTCR(71, 0xe6051047), /* PORT71CR */
3581         PORTCR(72, 0xe6051048), /* PORT72CR */
3582         PORTCR(73, 0xe6051049), /* PORT73CR */
3583         PORTCR(74, 0xe605104a), /* PORT74CR */
3584         PORTCR(75, 0xe605104b), /* PORT75CR */
3585         PORTCR(76, 0xe605104c), /* PORT76CR */
3586         PORTCR(77, 0xe605104d), /* PORT77CR */
3587         PORTCR(78, 0xe605104e), /* PORT78CR */
3588         PORTCR(79, 0xe605104f), /* PORT79CR */
3589
3590         PORTCR(80, 0xe6051050), /* PORT80CR */
3591         PORTCR(81, 0xe6051051), /* PORT81CR */
3592         PORTCR(82, 0xe6051052), /* PORT82CR */
3593         PORTCR(83, 0xe6051053), /* PORT83CR */
3594         PORTCR(84, 0xe6051054), /* PORT84CR */
3595         PORTCR(85, 0xe6051055), /* PORT85CR */
3596         PORTCR(86, 0xe6051056), /* PORT86CR */
3597         PORTCR(87, 0xe6051057), /* PORT87CR */
3598         PORTCR(88, 0xe6051058), /* PORT88CR */
3599         PORTCR(89, 0xe6051059), /* PORT89CR */
3600
3601         PORTCR(90, 0xe605105a), /* PORT90CR */
3602         PORTCR(91, 0xe605105b), /* PORT91CR */
3603         PORTCR(92, 0xe605105c), /* PORT92CR */
3604         PORTCR(93, 0xe605105d), /* PORT93CR */
3605         PORTCR(94, 0xe605105e), /* PORT94CR */
3606         PORTCR(95, 0xe605105f), /* PORT95CR */
3607         PORTCR(96, 0xe6052060), /* PORT96CR */
3608         PORTCR(97, 0xe6052061), /* PORT97CR */
3609         PORTCR(98, 0xe6052062), /* PORT98CR */
3610         PORTCR(99, 0xe6052063), /* PORT99CR */
3611
3612         PORTCR(100, 0xe6052064), /* PORT100CR */
3613         PORTCR(101, 0xe6052065), /* PORT101CR */
3614         PORTCR(102, 0xe6052066), /* PORT102CR */
3615         PORTCR(103, 0xe6052067), /* PORT103CR */
3616         PORTCR(104, 0xe6052068), /* PORT104CR */
3617         PORTCR(105, 0xe6052069), /* PORT105CR */
3618         PORTCR(106, 0xe605206a), /* PORT106CR */
3619         PORTCR(107, 0xe605206b), /* PORT107CR */
3620         PORTCR(108, 0xe605206c), /* PORT108CR */
3621         PORTCR(109, 0xe605206d), /* PORT109CR */
3622
3623         PORTCR(110, 0xe605206e), /* PORT110CR */
3624         PORTCR(111, 0xe605206f), /* PORT111CR */
3625         PORTCR(112, 0xe6052070), /* PORT112CR */
3626         PORTCR(113, 0xe6052071), /* PORT113CR */
3627         PORTCR(114, 0xe6052072), /* PORT114CR */
3628         PORTCR(115, 0xe6052073), /* PORT115CR */
3629         PORTCR(116, 0xe6052074), /* PORT116CR */
3630         PORTCR(117, 0xe6052075), /* PORT117CR */
3631         PORTCR(118, 0xe6052076), /* PORT118CR */
3632
3633         PORTCR(128, 0xe6052080), /* PORT128CR */
3634         PORTCR(129, 0xe6052081), /* PORT129CR */
3635
3636         PORTCR(130, 0xe6052082), /* PORT130CR */
3637         PORTCR(131, 0xe6052083), /* PORT131CR */
3638         PORTCR(132, 0xe6052084), /* PORT132CR */
3639         PORTCR(133, 0xe6052085), /* PORT133CR */
3640         PORTCR(134, 0xe6052086), /* PORT134CR */
3641         PORTCR(135, 0xe6052087), /* PORT135CR */
3642         PORTCR(136, 0xe6052088), /* PORT136CR */
3643         PORTCR(137, 0xe6052089), /* PORT137CR */
3644         PORTCR(138, 0xe605208a), /* PORT138CR */
3645         PORTCR(139, 0xe605208b), /* PORT139CR */
3646
3647         PORTCR(140, 0xe605208c), /* PORT140CR */
3648         PORTCR(141, 0xe605208d), /* PORT141CR */
3649         PORTCR(142, 0xe605208e), /* PORT142CR */
3650         PORTCR(143, 0xe605208f), /* PORT143CR */
3651         PORTCR(144, 0xe6052090), /* PORT144CR */
3652         PORTCR(145, 0xe6052091), /* PORT145CR */
3653         PORTCR(146, 0xe6052092), /* PORT146CR */
3654         PORTCR(147, 0xe6052093), /* PORT147CR */
3655         PORTCR(148, 0xe6052094), /* PORT148CR */
3656         PORTCR(149, 0xe6052095), /* PORT149CR */
3657
3658         PORTCR(150, 0xe6052096), /* PORT150CR */
3659         PORTCR(151, 0xe6052097), /* PORT151CR */
3660         PORTCR(152, 0xe6052098), /* PORT152CR */
3661         PORTCR(153, 0xe6052099), /* PORT153CR */
3662         PORTCR(154, 0xe605209a), /* PORT154CR */
3663         PORTCR(155, 0xe605209b), /* PORT155CR */
3664         PORTCR(156, 0xe605209c), /* PORT156CR */
3665         PORTCR(157, 0xe605209d), /* PORT157CR */
3666         PORTCR(158, 0xe605209e), /* PORT158CR */
3667         PORTCR(159, 0xe605209f), /* PORT159CR */
3668
3669         PORTCR(160, 0xe60520a0), /* PORT160CR */
3670         PORTCR(161, 0xe60520a1), /* PORT161CR */
3671         PORTCR(162, 0xe60520a2), /* PORT162CR */
3672         PORTCR(163, 0xe60520a3), /* PORT163CR */
3673         PORTCR(164, 0xe60520a4), /* PORT164CR */
3674
3675         PORTCR(192, 0xe60520c0), /* PORT192CR */
3676         PORTCR(193, 0xe60520c1), /* PORT193CR */
3677         PORTCR(194, 0xe60520c2), /* PORT194CR */
3678         PORTCR(195, 0xe60520c3), /* PORT195CR */
3679         PORTCR(196, 0xe60520c4), /* PORT196CR */
3680         PORTCR(197, 0xe60520c5), /* PORT197CR */
3681         PORTCR(198, 0xe60520c6), /* PORT198CR */
3682         PORTCR(199, 0xe60520c7), /* PORT199CR */
3683
3684         PORTCR(200, 0xe60520c8), /* PORT200CR */
3685         PORTCR(201, 0xe60520c9), /* PORT201CR */
3686         PORTCR(202, 0xe60520ca), /* PORT202CR */
3687         PORTCR(203, 0xe60520cb), /* PORT203CR */
3688         PORTCR(204, 0xe60520cc), /* PORT204CR */
3689         PORTCR(205, 0xe60520cd), /* PORT205CR */
3690         PORTCR(206, 0xe60520ce), /* PORT206CR */
3691         PORTCR(207, 0xe60520cf), /* PORT207CR */
3692         PORTCR(208, 0xe60520d0), /* PORT208CR */
3693         PORTCR(209, 0xe60520d1), /* PORT209CR */
3694
3695         PORTCR(210, 0xe60520d2), /* PORT210CR */
3696         PORTCR(211, 0xe60520d3), /* PORT211CR */
3697         PORTCR(212, 0xe60520d4), /* PORT212CR */
3698         PORTCR(213, 0xe60520d5), /* PORT213CR */
3699         PORTCR(214, 0xe60520d6), /* PORT214CR */
3700         PORTCR(215, 0xe60520d7), /* PORT215CR */
3701         PORTCR(216, 0xe60520d8), /* PORT216CR */
3702         PORTCR(217, 0xe60520d9), /* PORT217CR */
3703         PORTCR(218, 0xe60520da), /* PORT218CR */
3704         PORTCR(219, 0xe60520db), /* PORT219CR */
3705
3706         PORTCR(220, 0xe60520dc), /* PORT220CR */
3707         PORTCR(221, 0xe60520dd), /* PORT221CR */
3708         PORTCR(222, 0xe60520de), /* PORT222CR */
3709         PORTCR(223, 0xe60520df), /* PORT223CR */
3710         PORTCR(224, 0xe60530e0), /* PORT224CR */
3711         PORTCR(225, 0xe60530e1), /* PORT225CR */
3712         PORTCR(226, 0xe60530e2), /* PORT226CR */
3713         PORTCR(227, 0xe60530e3), /* PORT227CR */
3714         PORTCR(228, 0xe60530e4), /* PORT228CR */
3715         PORTCR(229, 0xe60530e5), /* PORT229CR */
3716
3717         PORTCR(230, 0xe60530e6), /* PORT230CR */
3718         PORTCR(231, 0xe60530e7), /* PORT231CR */
3719         PORTCR(232, 0xe60530e8), /* PORT232CR */
3720         PORTCR(233, 0xe60530e9), /* PORT233CR */
3721         PORTCR(234, 0xe60530ea), /* PORT234CR */
3722         PORTCR(235, 0xe60530eb), /* PORT235CR */
3723         PORTCR(236, 0xe60530ec), /* PORT236CR */
3724         PORTCR(237, 0xe60530ed), /* PORT237CR */
3725         PORTCR(238, 0xe60530ee), /* PORT238CR */
3726         PORTCR(239, 0xe60530ef), /* PORT239CR */
3727
3728         PORTCR(240, 0xe60530f0), /* PORT240CR */
3729         PORTCR(241, 0xe60530f1), /* PORT241CR */
3730         PORTCR(242, 0xe60530f2), /* PORT242CR */
3731         PORTCR(243, 0xe60530f3), /* PORT243CR */
3732         PORTCR(244, 0xe60530f4), /* PORT244CR */
3733         PORTCR(245, 0xe60530f5), /* PORT245CR */
3734         PORTCR(246, 0xe60530f6), /* PORT246CR */
3735         PORTCR(247, 0xe60530f7), /* PORT247CR */
3736         PORTCR(248, 0xe60530f8), /* PORT248CR */
3737         PORTCR(249, 0xe60530f9), /* PORT249CR */
3738
3739         PORTCR(250, 0xe60530fa), /* PORT250CR */
3740         PORTCR(251, 0xe60530fb), /* PORT251CR */
3741         PORTCR(252, 0xe60530fc), /* PORT252CR */
3742         PORTCR(253, 0xe60530fd), /* PORT253CR */
3743         PORTCR(254, 0xe60530fe), /* PORT254CR */
3744         PORTCR(255, 0xe60530ff), /* PORT255CR */
3745         PORTCR(256, 0xe6053100), /* PORT256CR */
3746         PORTCR(257, 0xe6053101), /* PORT257CR */
3747         PORTCR(258, 0xe6053102), /* PORT258CR */
3748         PORTCR(259, 0xe6053103), /* PORT259CR */
3749
3750         PORTCR(260, 0xe6053104), /* PORT260CR */
3751         PORTCR(261, 0xe6053105), /* PORT261CR */
3752         PORTCR(262, 0xe6053106), /* PORT262CR */
3753         PORTCR(263, 0xe6053107), /* PORT263CR */
3754         PORTCR(264, 0xe6053108), /* PORT264CR */
3755         PORTCR(265, 0xe6053109), /* PORT265CR */
3756         PORTCR(266, 0xe605310a), /* PORT266CR */
3757         PORTCR(267, 0xe605310b), /* PORT267CR */
3758         PORTCR(268, 0xe605310c), /* PORT268CR */
3759         PORTCR(269, 0xe605310d), /* PORT269CR */
3760
3761         PORTCR(270, 0xe605310e), /* PORT270CR */
3762         PORTCR(271, 0xe605310f), /* PORT271CR */
3763         PORTCR(272, 0xe6053110), /* PORT272CR */
3764         PORTCR(273, 0xe6053111), /* PORT273CR */
3765         PORTCR(274, 0xe6053112), /* PORT274CR */
3766         PORTCR(275, 0xe6053113), /* PORT275CR */
3767         PORTCR(276, 0xe6053114), /* PORT276CR */
3768         PORTCR(277, 0xe6053115), /* PORT277CR */
3769         PORTCR(278, 0xe6053116), /* PORT278CR */
3770         PORTCR(279, 0xe6053117), /* PORT279CR */
3771
3772         PORTCR(280, 0xe6053118), /* PORT280CR */
3773         PORTCR(281, 0xe6053119), /* PORT281CR */
3774         PORTCR(282, 0xe605311a), /* PORT282CR */
3775
3776         PORTCR(288, 0xe6052120), /* PORT288CR */
3777         PORTCR(289, 0xe6052121), /* PORT289CR */
3778
3779         PORTCR(290, 0xe6052122), /* PORT290CR */
3780         PORTCR(291, 0xe6052123), /* PORT291CR */
3781         PORTCR(292, 0xe6052124), /* PORT292CR */
3782         PORTCR(293, 0xe6052125), /* PORT293CR */
3783         PORTCR(294, 0xe6052126), /* PORT294CR */
3784         PORTCR(295, 0xe6052127), /* PORT295CR */
3785         PORTCR(296, 0xe6052128), /* PORT296CR */
3786         PORTCR(297, 0xe6052129), /* PORT297CR */
3787         PORTCR(298, 0xe605212a), /* PORT298CR */
3788         PORTCR(299, 0xe605212b), /* PORT299CR */
3789
3790         PORTCR(300, 0xe605212c), /* PORT300CR */
3791         PORTCR(301, 0xe605212d), /* PORT301CR */
3792         PORTCR(302, 0xe605212e), /* PORT302CR */
3793         PORTCR(303, 0xe605212f), /* PORT303CR */
3794         PORTCR(304, 0xe6052130), /* PORT304CR */
3795         PORTCR(305, 0xe6052131), /* PORT305CR */
3796         PORTCR(306, 0xe6052132), /* PORT306CR */
3797         PORTCR(307, 0xe6052133), /* PORT307CR */
3798         PORTCR(308, 0xe6052134), /* PORT308CR */
3799         PORTCR(309, 0xe6052135), /* PORT309CR */
3800
3801         { PINMUX_CFG_REG_VAR("MSEL2CR", 0xe605801c, 32,
3802                              GROUP(-12, 1, 1, 1, 1, -1, 1, 1, 1, 1, 1, 1,
3803                                    1, 1, 1, 1, 1, 1, 1, 1, 1),
3804                              GROUP(
3805                         /* RESERVED [12] */
3806                         MSEL2CR_MSEL19_0, MSEL2CR_MSEL19_1,
3807                         MSEL2CR_MSEL18_0, MSEL2CR_MSEL18_1,
3808                         MSEL2CR_MSEL17_0, MSEL2CR_MSEL17_1,
3809                         MSEL2CR_MSEL16_0, MSEL2CR_MSEL16_1,
3810                         /* RESERVED [1] */
3811                         MSEL2CR_MSEL14_0, MSEL2CR_MSEL14_1,
3812                         MSEL2CR_MSEL13_0, MSEL2CR_MSEL13_1,
3813                         MSEL2CR_MSEL12_0, MSEL2CR_MSEL12_1,
3814                         MSEL2CR_MSEL11_0, MSEL2CR_MSEL11_1,
3815                         MSEL2CR_MSEL10_0, MSEL2CR_MSEL10_1,
3816                         MSEL2CR_MSEL9_0, MSEL2CR_MSEL9_1,
3817                         MSEL2CR_MSEL8_0, MSEL2CR_MSEL8_1,
3818                         MSEL2CR_MSEL7_0, MSEL2CR_MSEL7_1,
3819                         MSEL2CR_MSEL6_0, MSEL2CR_MSEL6_1,
3820                         MSEL2CR_MSEL5_0, MSEL2CR_MSEL5_1,
3821                         MSEL2CR_MSEL4_0, MSEL2CR_MSEL4_1,
3822                         MSEL2CR_MSEL3_0, MSEL2CR_MSEL3_1,
3823                         MSEL2CR_MSEL2_0, MSEL2CR_MSEL2_1,
3824                         MSEL2CR_MSEL1_0, MSEL2CR_MSEL1_1,
3825                         MSEL2CR_MSEL0_0, MSEL2CR_MSEL0_1,
3826                 ))
3827         },
3828         { PINMUX_CFG_REG_VAR("MSEL3CR", 0xe6058020, 32,
3829                              GROUP(-3, 1, -12, 1, -3, 1, -1, 1, -2, 1, -3, 1,
3830                                    -2),
3831                              GROUP(
3832                         /* RESERVED [3] */
3833                         MSEL3CR_MSEL28_0, MSEL3CR_MSEL28_1,
3834                         /* RESERVED [12] */
3835                         MSEL3CR_MSEL15_0, MSEL3CR_MSEL15_1,
3836                         /* RESERVED [3] */
3837                         MSEL3CR_MSEL11_0, MSEL3CR_MSEL11_1,
3838                         /* RESERVED [1] */
3839                         MSEL3CR_MSEL9_0, MSEL3CR_MSEL9_1,
3840                         /* RESERVED [2] */
3841                         MSEL3CR_MSEL6_0, MSEL3CR_MSEL6_1,
3842                         /* RESERVED [3] */
3843                         MSEL3CR_MSEL2_0, MSEL3CR_MSEL2_1,
3844                         /* RESERVED [2] */
3845                 ))
3846         },
3847         { PINMUX_CFG_REG_VAR("MSEL4CR", 0xe6058024, 32,
3848                              GROUP(-2, 1, -1, 1, 1, -3, 1, 1, 1, 1, -3, 1,
3849                                    -1, 1, 1, 1, 1, 1, 1, 1, -2, 1, -2, 1,
3850                                    -1),
3851                              GROUP(
3852                         /* RESERVED [2] */
3853                         MSEL4CR_MSEL29_0, MSEL4CR_MSEL29_1,
3854                         /* RESERVED [1] */
3855                         MSEL4CR_MSEL27_0, MSEL4CR_MSEL27_1,
3856                         MSEL4CR_MSEL26_0, MSEL4CR_MSEL26_1,
3857                         /* RESERVED [3] */
3858                         MSEL4CR_MSEL22_0, MSEL4CR_MSEL22_1,
3859                         MSEL4CR_MSEL21_0, MSEL4CR_MSEL21_1,
3860                         MSEL4CR_MSEL20_0, MSEL4CR_MSEL20_1,
3861                         MSEL4CR_MSEL19_0, MSEL4CR_MSEL19_1,
3862                         /* RESERVED [3] */
3863                         MSEL4CR_MSEL15_0, MSEL4CR_MSEL15_1,
3864                         /* RESERVED [1] */
3865                         MSEL4CR_MSEL13_0, MSEL4CR_MSEL13_1,
3866                         MSEL4CR_MSEL12_0, MSEL4CR_MSEL12_1,
3867                         MSEL4CR_MSEL11_0, MSEL4CR_MSEL11_1,
3868                         MSEL4CR_MSEL10_0, MSEL4CR_MSEL10_1,
3869                         MSEL4CR_MSEL9_0, MSEL4CR_MSEL9_1,
3870                         MSEL4CR_MSEL8_0, MSEL4CR_MSEL8_1,
3871                         MSEL4CR_MSEL7_0, MSEL4CR_MSEL7_1,
3872                         /* RESERVED [2] */
3873                         MSEL4CR_MSEL4_0, MSEL4CR_MSEL4_1,
3874                         /* RESERVED [2] */
3875                         MSEL4CR_MSEL1_0, MSEL4CR_MSEL1_1,
3876                         /* RESERVED [1] */
3877                 ))
3878         },
3879         { /* sentinel */ }
3880 };
3881
3882 static const struct pinmux_data_reg pinmux_data_regs[] = {
3883         { PINMUX_DATA_REG("PORTL031_000DR", 0xe6054000, 32, GROUP(
3884                         PORT31_DATA, PORT30_DATA, PORT29_DATA, PORT28_DATA,
3885                         PORT27_DATA, PORT26_DATA, PORT25_DATA, PORT24_DATA,
3886                         PORT23_DATA, PORT22_DATA, PORT21_DATA, PORT20_DATA,
3887                         PORT19_DATA, PORT18_DATA, PORT17_DATA, PORT16_DATA,
3888                         PORT15_DATA, PORT14_DATA, PORT13_DATA, PORT12_DATA,
3889                         PORT11_DATA, PORT10_DATA, PORT9_DATA, PORT8_DATA,
3890                         PORT7_DATA, PORT6_DATA, PORT5_DATA, PORT4_DATA,
3891                         PORT3_DATA, PORT2_DATA, PORT1_DATA, PORT0_DATA ))
3892         },
3893         { PINMUX_DATA_REG("PORTD063_032DR", 0xe6055000, 32, GROUP(
3894                         PORT63_DATA, PORT62_DATA, PORT61_DATA, PORT60_DATA,
3895                         PORT59_DATA, PORT58_DATA, PORT57_DATA, PORT56_DATA,
3896                         PORT55_DATA, PORT54_DATA, PORT53_DATA, PORT52_DATA,
3897                         PORT51_DATA, PORT50_DATA, PORT49_DATA, PORT48_DATA,
3898                         PORT47_DATA, PORT46_DATA, PORT45_DATA, PORT44_DATA,
3899                         PORT43_DATA, PORT42_DATA, PORT41_DATA, PORT40_DATA,
3900                         PORT39_DATA, PORT38_DATA, PORT37_DATA, PORT36_DATA,
3901                         PORT35_DATA, PORT34_DATA, PORT33_DATA, PORT32_DATA ))
3902         },
3903         { PINMUX_DATA_REG("PORTD095_064DR", 0xe6055004, 32, GROUP(
3904                         PORT95_DATA, PORT94_DATA, PORT93_DATA, PORT92_DATA,
3905                         PORT91_DATA, PORT90_DATA, PORT89_DATA, PORT88_DATA,
3906                         PORT87_DATA, PORT86_DATA, PORT85_DATA, PORT84_DATA,
3907                         PORT83_DATA, PORT82_DATA, PORT81_DATA, PORT80_DATA,
3908                         PORT79_DATA, PORT78_DATA, PORT77_DATA, PORT76_DATA,
3909                         PORT75_DATA, PORT74_DATA, PORT73_DATA, PORT72_DATA,
3910                         PORT71_DATA, PORT70_DATA, PORT69_DATA, PORT68_DATA,
3911                         PORT67_DATA, PORT66_DATA, PORT65_DATA, PORT64_DATA ))
3912         },
3913         { PINMUX_DATA_REG("PORTR127_096DR", 0xe6056000, 32, GROUP(
3914                         0, 0, 0, 0,
3915                         0, 0, 0, 0,
3916                         0, PORT118_DATA, PORT117_DATA, PORT116_DATA,
3917                         PORT115_DATA, PORT114_DATA, PORT113_DATA, PORT112_DATA,
3918                         PORT111_DATA, PORT110_DATA, PORT109_DATA, PORT108_DATA,
3919                         PORT107_DATA, PORT106_DATA, PORT105_DATA, PORT104_DATA,
3920                         PORT103_DATA, PORT102_DATA, PORT101_DATA, PORT100_DATA,
3921                         PORT99_DATA, PORT98_DATA, PORT97_DATA, PORT96_DATA ))
3922         },
3923         { PINMUX_DATA_REG("PORTR159_128DR", 0xe6056004, 32, GROUP(
3924                         PORT159_DATA, PORT158_DATA, PORT157_DATA, PORT156_DATA,
3925                         PORT155_DATA, PORT154_DATA, PORT153_DATA, PORT152_DATA,
3926                         PORT151_DATA, PORT150_DATA, PORT149_DATA, PORT148_DATA,
3927                         PORT147_DATA, PORT146_DATA, PORT145_DATA, PORT144_DATA,
3928                         PORT143_DATA, PORT142_DATA, PORT141_DATA, PORT140_DATA,
3929                         PORT139_DATA, PORT138_DATA, PORT137_DATA, PORT136_DATA,
3930                         PORT135_DATA, PORT134_DATA, PORT133_DATA, PORT132_DATA,
3931                         PORT131_DATA, PORT130_DATA, PORT129_DATA, PORT128_DATA ))
3932         },
3933         { PINMUX_DATA_REG("PORTR191_160DR", 0xe6056008, 32, GROUP(
3934                         0, 0, 0, 0,
3935                         0, 0, 0, 0,
3936                         0, 0, 0, 0,
3937                         0, 0, 0, 0,
3938                         0, 0, 0, 0,
3939                         0, 0, 0, 0,
3940                         0, 0, 0, PORT164_DATA,
3941                         PORT163_DATA, PORT162_DATA, PORT161_DATA, PORT160_DATA ))
3942         },
3943         { PINMUX_DATA_REG("PORTR223_192DR", 0xe605600C, 32, GROUP(
3944                         PORT223_DATA, PORT222_DATA, PORT221_DATA, PORT220_DATA,
3945                         PORT219_DATA, PORT218_DATA, PORT217_DATA, PORT216_DATA,
3946                         PORT215_DATA, PORT214_DATA, PORT213_DATA, PORT212_DATA,
3947                         PORT211_DATA, PORT210_DATA, PORT209_DATA, PORT208_DATA,
3948                         PORT207_DATA, PORT206_DATA, PORT205_DATA, PORT204_DATA,
3949                         PORT203_DATA, PORT202_DATA, PORT201_DATA, PORT200_DATA,
3950                         PORT199_DATA, PORT198_DATA, PORT197_DATA, PORT196_DATA,
3951                         PORT195_DATA, PORT194_DATA, PORT193_DATA, PORT192_DATA ))
3952         },
3953         { PINMUX_DATA_REG("PORTU255_224DR", 0xe6057000, 32, GROUP(
3954                         PORT255_DATA, PORT254_DATA, PORT253_DATA, PORT252_DATA,
3955                         PORT251_DATA, PORT250_DATA, PORT249_DATA, PORT248_DATA,
3956                         PORT247_DATA, PORT246_DATA, PORT245_DATA, PORT244_DATA,
3957                         PORT243_DATA, PORT242_DATA, PORT241_DATA, PORT240_DATA,
3958                         PORT239_DATA, PORT238_DATA, PORT237_DATA, PORT236_DATA,
3959                         PORT235_DATA, PORT234_DATA, PORT233_DATA, PORT232_DATA,
3960                         PORT231_DATA, PORT230_DATA, PORT229_DATA, PORT228_DATA,
3961                         PORT227_DATA, PORT226_DATA, PORT225_DATA, PORT224_DATA ))
3962         },
3963         { PINMUX_DATA_REG("PORTU287_256DR", 0xe6057004, 32, GROUP(
3964                         0, 0, 0, 0,
3965                         0, PORT282_DATA, PORT281_DATA, PORT280_DATA,
3966                         PORT279_DATA, PORT278_DATA, PORT277_DATA, PORT276_DATA,
3967                         PORT275_DATA, PORT274_DATA, PORT273_DATA, PORT272_DATA,
3968                         PORT271_DATA, PORT270_DATA, PORT269_DATA, PORT268_DATA,
3969                         PORT267_DATA, PORT266_DATA, PORT265_DATA, PORT264_DATA,
3970                         PORT263_DATA, PORT262_DATA, PORT261_DATA, PORT260_DATA,
3971                         PORT259_DATA, PORT258_DATA, PORT257_DATA, PORT256_DATA ))
3972         },
3973         { PINMUX_DATA_REG("PORTR319_288DR", 0xe6056010, 32, GROUP(
3974                         0, 0, 0, 0,
3975                         0, 0, 0, 0,
3976                         0, 0, PORT309_DATA, PORT308_DATA,
3977                         PORT307_DATA, PORT306_DATA, PORT305_DATA, PORT304_DATA,
3978                         PORT303_DATA, PORT302_DATA, PORT301_DATA, PORT300_DATA,
3979                         PORT299_DATA, PORT298_DATA, PORT297_DATA, PORT296_DATA,
3980                         PORT295_DATA, PORT294_DATA, PORT293_DATA, PORT292_DATA,
3981                         PORT291_DATA, PORT290_DATA, PORT289_DATA, PORT288_DATA ))
3982         },
3983         { /* sentinel */ }
3984 };
3985
3986 static const struct pinmux_irq pinmux_irqs[] = {
3987         PINMUX_IRQ(11),         /* IRQ0 */
3988         PINMUX_IRQ(10),         /* IRQ1 */
3989         PINMUX_IRQ(149),        /* IRQ2 */
3990         PINMUX_IRQ(224),        /* IRQ3 */
3991         PINMUX_IRQ(159),        /* IRQ4 */
3992         PINMUX_IRQ(227),        /* IRQ5 */
3993         PINMUX_IRQ(147),        /* IRQ6 */
3994         PINMUX_IRQ(150),        /* IRQ7 */
3995         PINMUX_IRQ(223),        /* IRQ8 */
3996         PINMUX_IRQ(56, 308),    /* IRQ9 */
3997         PINMUX_IRQ(54),         /* IRQ10 */
3998         PINMUX_IRQ(238),        /* IRQ11 */
3999         PINMUX_IRQ(156),        /* IRQ12 */
4000         PINMUX_IRQ(239),        /* IRQ13 */
4001         PINMUX_IRQ(251),        /* IRQ14 */
4002         PINMUX_IRQ(0),          /* IRQ15 */
4003         PINMUX_IRQ(249),        /* IRQ16 */
4004         PINMUX_IRQ(234),        /* IRQ17 */
4005         PINMUX_IRQ(13),         /* IRQ18 */
4006         PINMUX_IRQ(9),          /* IRQ19 */
4007         PINMUX_IRQ(14),         /* IRQ20 */
4008         PINMUX_IRQ(15),         /* IRQ21 */
4009         PINMUX_IRQ(40),         /* IRQ22 */
4010         PINMUX_IRQ(53),         /* IRQ23 */
4011         PINMUX_IRQ(118),        /* IRQ24 */
4012         PINMUX_IRQ(164),        /* IRQ25 */
4013         PINMUX_IRQ(115),        /* IRQ26 */
4014         PINMUX_IRQ(116),        /* IRQ27 */
4015         PINMUX_IRQ(117),        /* IRQ28 */
4016         PINMUX_IRQ(28),         /* IRQ29 */
4017         PINMUX_IRQ(27),         /* IRQ30 */
4018         PINMUX_IRQ(26),         /* IRQ31 */
4019 };
4020
4021 /* -----------------------------------------------------------------------------
4022  * VCCQ MC0 regulator
4023  */
4024
4025 static void sh73a0_vccq_mc0_endisable(struct regulator_dev *reg, bool enable)
4026 {
4027         struct sh_pfc *pfc = reg->reg_data;
4028         void __iomem *addr = pfc->windows[1].virt + 4;
4029         unsigned long flags;
4030         u32 value;
4031
4032         spin_lock_irqsave(&pfc->lock, flags);
4033
4034         value = ioread32(addr);
4035
4036         if (enable)
4037                 value |= BIT(28);
4038         else
4039                 value &= ~BIT(28);
4040
4041         iowrite32(value, addr);
4042
4043         spin_unlock_irqrestore(&pfc->lock, flags);
4044 }
4045
4046 static int sh73a0_vccq_mc0_enable(struct regulator_dev *reg)
4047 {
4048         sh73a0_vccq_mc0_endisable(reg, true);
4049         return 0;
4050 }
4051
4052 static int sh73a0_vccq_mc0_disable(struct regulator_dev *reg)
4053 {
4054         sh73a0_vccq_mc0_endisable(reg, false);
4055         return 0;
4056 }
4057
4058 static int sh73a0_vccq_mc0_is_enabled(struct regulator_dev *reg)
4059 {
4060         struct sh_pfc *pfc = reg->reg_data;
4061         void __iomem *addr = pfc->windows[1].virt + 4;
4062         unsigned long flags;
4063         u32 value;
4064
4065         spin_lock_irqsave(&pfc->lock, flags);
4066         value = ioread32(addr);
4067         spin_unlock_irqrestore(&pfc->lock, flags);
4068
4069         return !!(value & BIT(28));
4070 }
4071
4072 static int sh73a0_vccq_mc0_get_voltage(struct regulator_dev *reg)
4073 {
4074         return 3300000;
4075 }
4076
4077 static const struct regulator_ops sh73a0_vccq_mc0_ops = {
4078         .enable = sh73a0_vccq_mc0_enable,
4079         .disable = sh73a0_vccq_mc0_disable,
4080         .is_enabled = sh73a0_vccq_mc0_is_enabled,
4081         .get_voltage = sh73a0_vccq_mc0_get_voltage,
4082 };
4083
4084 static const struct regulator_desc sh73a0_vccq_mc0_desc = {
4085         .owner = THIS_MODULE,
4086         .name = "vccq_mc0",
4087         .type = REGULATOR_VOLTAGE,
4088         .ops = &sh73a0_vccq_mc0_ops,
4089 };
4090
4091 static struct regulator_consumer_supply sh73a0_vccq_mc0_consumers[] = {
4092         REGULATOR_SUPPLY("vqmmc", "sh_mobile_sdhi.0"),
4093         REGULATOR_SUPPLY("vqmmc", "ee100000.sdhi"),
4094 };
4095
4096 static const struct regulator_init_data sh73a0_vccq_mc0_init_data = {
4097         .constraints = {
4098                 .valid_ops_mask = REGULATOR_CHANGE_STATUS,
4099         },
4100         .num_consumer_supplies = ARRAY_SIZE(sh73a0_vccq_mc0_consumers),
4101         .consumer_supplies = sh73a0_vccq_mc0_consumers,
4102 };
4103
4104 /* -----------------------------------------------------------------------------
4105  * Pin bias
4106  */
4107
4108 static const unsigned int sh73a0_portcr_offsets[] = {
4109         0x00000000, 0x00001000, 0x00001000, 0x00002000, 0x00002000,
4110         0x00002000, 0x00002000, 0x00003000, 0x00003000, 0x00002000,
4111 };
4112
4113 static int sh73a0_pin_to_portcr(unsigned int pin)
4114 {
4115         return sh73a0_portcr_offsets[pin >> 5] + pin;
4116 }
4117
4118 /* -----------------------------------------------------------------------------
4119  * SoC information
4120  */
4121
4122 static int sh73a0_pinmux_soc_init(struct sh_pfc *pfc)
4123 {
4124         struct regulator_config cfg = { };
4125         struct regulator_dev *vccq;
4126         int ret;
4127
4128         cfg.dev = pfc->dev;
4129         cfg.init_data = &sh73a0_vccq_mc0_init_data;
4130         cfg.driver_data = pfc;
4131
4132         vccq = devm_regulator_register(pfc->dev, &sh73a0_vccq_mc0_desc, &cfg);
4133         if (IS_ERR(vccq)) {
4134                 ret = PTR_ERR(vccq);
4135                 dev_err(pfc->dev, "Failed to register VCCQ MC0 regulator: %d\n",
4136                         ret);
4137                 return ret;
4138         }
4139
4140         return 0;
4141 }
4142
4143 static const struct sh_pfc_soc_operations sh73a0_pfc_ops = {
4144         .init = sh73a0_pinmux_soc_init,
4145         .get_bias = rmobile_pinmux_get_bias,
4146         .set_bias = rmobile_pinmux_set_bias,
4147         .pin_to_portcr = sh73a0_pin_to_portcr,
4148 };
4149
4150 const struct sh_pfc_soc_info sh73a0_pinmux_info = {
4151         .name = "sh73a0_pfc",
4152         .ops = &sh73a0_pfc_ops,
4153
4154         .input = { PINMUX_INPUT_BEGIN, PINMUX_INPUT_END },
4155         .output = { PINMUX_OUTPUT_BEGIN, PINMUX_OUTPUT_END },
4156         .function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END },
4157
4158         .pins = pinmux_pins,
4159         .nr_pins = ARRAY_SIZE(pinmux_pins),
4160         .groups = pinmux_groups,
4161         .nr_groups = ARRAY_SIZE(pinmux_groups),
4162         .functions = pinmux_functions,
4163         .nr_functions = ARRAY_SIZE(pinmux_functions),
4164
4165         .cfg_regs = pinmux_config_regs,
4166         .data_regs = pinmux_data_regs,
4167
4168         .pinmux_data = pinmux_data,
4169         .pinmux_data_size = ARRAY_SIZE(pinmux_data),
4170
4171         .gpio_irq = pinmux_irqs,
4172         .gpio_irq_size = ARRAY_SIZE(pinmux_irqs),
4173 };