1/*
2 * sh7372 processor support - PFC hardware block
3 *
4 * Copyright (C) 2010  Kuninori Morimoto <morimoto.kuninori@renesas.com>
5 *
6 * Based on
7 * sh7367 processor support - PFC hardware block
8 * Copyright (C) 2010  Magnus Damm
9 *
10 * This program is free software; you can redistribute it and/or modify
11 * it under the terms of the GNU General Public License as published by
12 * the Free Software Foundation; version 2 of the License.
13 *
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17 * GNU General Public License for more details.
18 *
19 * You should have received a copy of the GNU General Public License
20 * along with this program; if not, write to the Free Software
21 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
22 */
23#include <linux/io.h>
24#include <linux/kernel.h>
25#include <linux/pinctrl/pinconf-generic.h>
26#include <linux/sh_intc.h>
27
28#include "core.h"
29#include "sh_pfc.h"
30
31#define CPU_ALL_PORT(fn, pfx, sfx)					\
32	PORT_10(0,  fn, pfx, sfx),	PORT_90(0,  fn, pfx, sfx),	\
33	PORT_10(100, fn, pfx##10, sfx),	PORT_10(110, fn, pfx##11, sfx),	\
34	PORT_10(120, fn, pfx##12, sfx),	PORT_10(130, fn, pfx##13, sfx),	\
35	PORT_10(140, fn, pfx##14, sfx),	PORT_10(150, fn, pfx##15, sfx),	\
36	PORT_10(160, fn, pfx##16, sfx),	PORT_10(170, fn, pfx##17, sfx),	\
37	PORT_10(180, fn, pfx##18, sfx),	PORT_1(190, fn, pfx##190, sfx)
38
39#define IRQC_PIN_MUX(irq, pin)						\
40static const unsigned int intc_irq##irq##_pins[] = {			\
41	pin,								\
42};									\
43static const unsigned int intc_irq##irq##_mux[] = {			\
44	IRQ##irq##_MARK,						\
45}
46
47#define IRQC_PINS_MUX(irq, pin0, pin1)					\
48static const unsigned int intc_irq##irq##_0_pins[] = {			\
49	pin0,								\
50};									\
51static const unsigned int intc_irq##irq##_0_mux[] = {			\
52	IRQ##irq##_##pin0##_MARK,					\
53};									\
54static const unsigned int intc_irq##irq##_1_pins[] = {			\
55	pin1,								\
56};									\
57static const unsigned int intc_irq##irq##_1_mux[] = {			\
58	IRQ##irq##_##pin1##_MARK,					\
59}
60
61enum {
62	PINMUX_RESERVED = 0,
63
64	/* PORT0_DATA -> PORT190_DATA */
65	PINMUX_DATA_BEGIN,
66	PORT_ALL(DATA),
67	PINMUX_DATA_END,
68
69	/* PORT0_IN -> PORT190_IN */
70	PINMUX_INPUT_BEGIN,
71	PORT_ALL(IN),
72	PINMUX_INPUT_END,
73
74	/* PORT0_OUT -> PORT190_OUT */
75	PINMUX_OUTPUT_BEGIN,
76	PORT_ALL(OUT),
77	PINMUX_OUTPUT_END,
78
79	PINMUX_FUNCTION_BEGIN,
80	PORT_ALL(FN_IN),	/* PORT0_FN_IN	-> PORT190_FN_IN */
81	PORT_ALL(FN_OUT),	/* PORT0_FN_OUT	-> PORT190_FN_OUT */
82	PORT_ALL(FN0),		/* PORT0_FN0	-> PORT190_FN0 */
83	PORT_ALL(FN1),		/* PORT0_FN1	-> PORT190_FN1 */
84	PORT_ALL(FN2),		/* PORT0_FN2	-> PORT190_FN2 */
85	PORT_ALL(FN3),		/* PORT0_FN3	-> PORT190_FN3 */
86	PORT_ALL(FN4),		/* PORT0_FN4	-> PORT190_FN4 */
87	PORT_ALL(FN5),		/* PORT0_FN5	-> PORT190_FN5 */
88	PORT_ALL(FN6),		/* PORT0_FN6	-> PORT190_FN6 */
89	PORT_ALL(FN7),		/* PORT0_FN7	-> PORT190_FN7 */
90
91	MSEL1CR_31_0,	MSEL1CR_31_1,
92	MSEL1CR_30_0,	MSEL1CR_30_1,
93	MSEL1CR_29_0,	MSEL1CR_29_1,
94	MSEL1CR_28_0,	MSEL1CR_28_1,
95	MSEL1CR_27_0,	MSEL1CR_27_1,
96	MSEL1CR_26_0,	MSEL1CR_26_1,
97	MSEL1CR_16_0,	MSEL1CR_16_1,
98	MSEL1CR_15_0,	MSEL1CR_15_1,
99	MSEL1CR_14_0,	MSEL1CR_14_1,
100	MSEL1CR_13_0,	MSEL1CR_13_1,
101	MSEL1CR_12_0,	MSEL1CR_12_1,
102	MSEL1CR_9_0,	MSEL1CR_9_1,
103	MSEL1CR_8_0,	MSEL1CR_8_1,
104	MSEL1CR_7_0,	MSEL1CR_7_1,
105	MSEL1CR_6_0,	MSEL1CR_6_1,
106	MSEL1CR_4_0,	MSEL1CR_4_1,
107	MSEL1CR_3_0,	MSEL1CR_3_1,
108	MSEL1CR_2_0,	MSEL1CR_2_1,
109	MSEL1CR_0_0,	MSEL1CR_0_1,
110
111	MSEL3CR_27_0,	MSEL3CR_27_1,
112	MSEL3CR_26_0,	MSEL3CR_26_1,
113	MSEL3CR_21_0,	MSEL3CR_21_1,
114	MSEL3CR_20_0,	MSEL3CR_20_1,
115	MSEL3CR_15_0,	MSEL3CR_15_1,
116	MSEL3CR_9_0,	MSEL3CR_9_1,
117	MSEL3CR_6_0,	MSEL3CR_6_1,
118
119	MSEL4CR_19_0,	MSEL4CR_19_1,
120	MSEL4CR_18_0,	MSEL4CR_18_1,
121	MSEL4CR_17_0,	MSEL4CR_17_1,
122	MSEL4CR_16_0,	MSEL4CR_16_1,
123	MSEL4CR_15_0,	MSEL4CR_15_1,
124	MSEL4CR_14_0,	MSEL4CR_14_1,
125	MSEL4CR_10_0,	MSEL4CR_10_1,
126	MSEL4CR_6_0,	MSEL4CR_6_1,
127	MSEL4CR_4_0,	MSEL4CR_4_1,
128	MSEL4CR_1_0,	MSEL4CR_1_1,
129	PINMUX_FUNCTION_END,
130
131	PINMUX_MARK_BEGIN,
132
133	/* IRQ */
134	IRQ0_6_MARK,	IRQ0_162_MARK,	IRQ1_MARK,	IRQ2_4_MARK,
135	IRQ2_5_MARK,	IRQ3_8_MARK,	IRQ3_16_MARK,	IRQ4_17_MARK,
136	IRQ4_163_MARK,	IRQ5_MARK,	IRQ6_39_MARK,	IRQ6_164_MARK,
137	IRQ7_40_MARK,	IRQ7_167_MARK,	IRQ8_41_MARK,	IRQ8_168_MARK,
138	IRQ9_42_MARK,	IRQ9_169_MARK,	IRQ10_MARK,	IRQ11_MARK,
139	IRQ12_80_MARK,	IRQ12_137_MARK,	IRQ13_81_MARK,	IRQ13_145_MARK,
140	IRQ14_82_MARK,	IRQ14_146_MARK,	IRQ15_83_MARK,	IRQ15_147_MARK,
141	IRQ16_84_MARK,	IRQ16_170_MARK,	IRQ17_MARK,	IRQ18_MARK,
142	IRQ19_MARK,	IRQ20_MARK,	IRQ21_MARK,	IRQ22_MARK,
143	IRQ23_MARK,	IRQ24_MARK,	IRQ25_MARK,	IRQ26_121_MARK,
144	IRQ26_172_MARK,	IRQ27_122_MARK,	IRQ27_180_MARK,	IRQ28_123_MARK,
145	IRQ28_181_MARK,	IRQ29_129_MARK,	IRQ29_182_MARK,	IRQ30_130_MARK,
146	IRQ30_183_MARK,	IRQ31_138_MARK,	IRQ31_184_MARK,
147
148	/* MSIOF0 */
149	MSIOF0_TSYNC_MARK,	MSIOF0_TSCK_MARK,	MSIOF0_RXD_MARK,
150	MSIOF0_RSCK_MARK,	MSIOF0_RSYNC_MARK,	MSIOF0_MCK0_MARK,
151	MSIOF0_MCK1_MARK,	MSIOF0_SS1_MARK,	MSIOF0_SS2_MARK,
152	MSIOF0_TXD_MARK,
153
154	/* MSIOF1 */
155	MSIOF1_TSCK_39_MARK,	MSIOF1_TSYNC_40_MARK,
156	MSIOF1_TSCK_88_MARK,	MSIOF1_TSYNC_89_MARK,
157	MSIOF1_TXD_41_MARK,	MSIOF1_RXD_42_MARK,
158	MSIOF1_TXD_90_MARK,	MSIOF1_RXD_91_MARK,
159	MSIOF1_SS1_43_MARK,	MSIOF1_SS2_44_MARK,
160	MSIOF1_SS1_92_MARK,	MSIOF1_SS2_93_MARK,
161	MSIOF1_RSCK_MARK,	MSIOF1_RSYNC_MARK,
162	MSIOF1_MCK0_MARK,	MSIOF1_MCK1_MARK,
163
164	/* MSIOF2 */
165	MSIOF2_RSCK_MARK,	MSIOF2_RSYNC_MARK,	MSIOF2_MCK0_MARK,
166	MSIOF2_MCK1_MARK,	MSIOF2_SS1_MARK,	MSIOF2_SS2_MARK,
167	MSIOF2_TSYNC_MARK,	MSIOF2_TSCK_MARK,	MSIOF2_RXD_MARK,
168	MSIOF2_TXD_MARK,
169
170	/* BBIF1 */
171	BBIF1_RXD_MARK,		BBIF1_TSYNC_MARK,	BBIF1_TSCK_MARK,
172	BBIF1_TXD_MARK,		BBIF1_RSCK_MARK,	BBIF1_RSYNC_MARK,
173	BBIF1_FLOW_MARK,	BB_RX_FLOW_N_MARK,
174
175	/* BBIF2 */
176	BBIF2_TSCK1_MARK,	BBIF2_TSYNC1_MARK,
177	BBIF2_TXD1_MARK,	BBIF2_RXD_MARK,
178
179	/* FSI */
180	FSIACK_MARK,	FSIBCK_MARK,		FSIAILR_MARK,	FSIAIBT_MARK,
181	FSIAISLD_MARK,	FSIAOMC_MARK,		FSIAOLR_MARK,	FSIAOBT_MARK,
182	FSIAOSLD_MARK,	FSIASPDIF_11_MARK,	FSIASPDIF_15_MARK,
183
184	/* FMSI */
185	FMSOCK_MARK,	FMSOOLR_MARK,	FMSIOLR_MARK,	FMSOOBT_MARK,
186	FMSIOBT_MARK,	FMSOSLD_MARK,	FMSOILR_MARK,	FMSIILR_MARK,
187	FMSOIBT_MARK,	FMSIIBT_MARK,	FMSISLD_MARK,	FMSICK_MARK,
188
189	/* SCIFA0 */
190	SCIFA0_TXD_MARK,	SCIFA0_RXD_MARK,	SCIFA0_SCK_MARK,
191	SCIFA0_RTS_MARK,	SCIFA0_CTS_MARK,
192
193	/* SCIFA1 */
194	SCIFA1_TXD_MARK,	SCIFA1_RXD_MARK,	SCIFA1_SCK_MARK,
195	SCIFA1_RTS_MARK,	SCIFA1_CTS_MARK,
196
197	/* SCIFA2 */
198	SCIFA2_CTS1_MARK,	SCIFA2_RTS1_MARK,	SCIFA2_TXD1_MARK,
199	SCIFA2_RXD1_MARK,	SCIFA2_SCK1_MARK,
200
201	/* SCIFA3 */
202	SCIFA3_CTS_43_MARK,	SCIFA3_CTS_140_MARK,	SCIFA3_RTS_44_MARK,
203	SCIFA3_RTS_141_MARK,	SCIFA3_SCK_MARK,	SCIFA3_TXD_MARK,
204	SCIFA3_RXD_MARK,
205
206	/* SCIFA4 */
207	SCIFA4_RXD_MARK,	SCIFA4_TXD_MARK,
208
209	/* SCIFA5 */
210	SCIFA5_RXD_MARK,	SCIFA5_TXD_MARK,
211
212	/* SCIFB */
213	SCIFB_SCK_MARK,	SCIFB_RTS_MARK,	SCIFB_CTS_MARK,
214	SCIFB_TXD_MARK,	SCIFB_RXD_MARK,
215
216	/* CEU */
217	VIO_HD_MARK,	VIO_CKO1_MARK,	VIO_CKO2_MARK,	VIO_VD_MARK,
218	VIO_CLK_MARK,	VIO_FIELD_MARK,	VIO_CKO_MARK,
219	VIO_D0_MARK,	VIO_D1_MARK,	VIO_D2_MARK,	VIO_D3_MARK,
220	VIO_D4_MARK,	VIO_D5_MARK,	VIO_D6_MARK,	VIO_D7_MARK,
221	VIO_D8_MARK,	VIO_D9_MARK,	VIO_D10_MARK,	VIO_D11_MARK,
222	VIO_D12_MARK,	VIO_D13_MARK,	VIO_D14_MARK,	VIO_D15_MARK,
223
224	/* USB0 */
225	IDIN_0_MARK,	EXTLP_0_MARK,	OVCN2_0_MARK,	PWEN_0_MARK,
226	OVCN_0_MARK,	VBUS0_0_MARK,
227
228	/* USB1 */
229	IDIN_1_18_MARK,		IDIN_1_113_MARK,
230	PWEN_1_115_MARK,	PWEN_1_138_MARK,
231	OVCN_1_114_MARK,	OVCN_1_162_MARK,
232	EXTLP_1_MARK,		OVCN2_1_MARK,
233	VBUS0_1_MARK,
234
235	/* GPIO */
236	GPI0_MARK,	GPI1_MARK,	GPO0_MARK,	GPO1_MARK,
237
238	/* BSC */
239	BS_MARK,	WE1_MARK,
240	CKO_MARK,	WAIT_MARK,	RDWR_MARK,
241
242	A0_MARK,	A1_MARK,	A2_MARK,	A3_MARK,
243	A6_MARK,	A7_MARK,	A8_MARK,	A9_MARK,
244	A10_MARK,	A11_MARK,	A12_MARK,	A13_MARK,
245	A14_MARK,	A15_MARK,	A16_MARK,	A17_MARK,
246	A18_MARK,	A19_MARK,	A20_MARK,	A21_MARK,
247	A22_MARK,	A23_MARK,	A24_MARK,	A25_MARK,
248	A26_MARK,
249
250	CS0_MARK,	CS2_MARK,	CS4_MARK,
251	CS5A_MARK,	CS5B_MARK,	CS6A_MARK,
252
253	/* BSC/FLCTL */
254	RD_FSC_MARK,	WE0_FWE_MARK,	A4_FOE_MARK,	A5_FCDE_MARK,
255	D0_NAF0_MARK,	D1_NAF1_MARK,	D2_NAF2_MARK,	D3_NAF3_MARK,
256	D4_NAF4_MARK,	D5_NAF5_MARK,	D6_NAF6_MARK,	D7_NAF7_MARK,
257	D8_NAF8_MARK,	D9_NAF9_MARK,	D10_NAF10_MARK,	D11_NAF11_MARK,
258	D12_NAF12_MARK,	D13_NAF13_MARK,	D14_NAF14_MARK,	D15_NAF15_MARK,
259
260	/* MMCIF(1) */
261	MMCD0_0_MARK,	MMCD0_1_MARK,	MMCD0_2_MARK,	MMCD0_3_MARK,
262	MMCD0_4_MARK,	MMCD0_5_MARK,	MMCD0_6_MARK,	MMCD0_7_MARK,
263	MMCCMD0_MARK,	MMCCLK0_MARK,
264
265	/* MMCIF(2) */
266	MMCD1_0_MARK,	MMCD1_1_MARK,	MMCD1_2_MARK,	MMCD1_3_MARK,
267	MMCD1_4_MARK,	MMCD1_5_MARK,	MMCD1_6_MARK,	MMCD1_7_MARK,
268	MMCCLK1_MARK,	MMCCMD1_MARK,
269
270	/* SPU2 */
271	VINT_I_MARK,
272
273	/* FLCTL */
274	FCE1_MARK,	FCE0_MARK,	FRB_MARK,
275
276	/* HSI */
277	GP_RX_FLAG_MARK,	GP_RX_DATA_MARK,	GP_TX_READY_MARK,
278	GP_RX_WAKE_MARK,	MP_TX_FLAG_MARK,	MP_TX_DATA_MARK,
279	MP_RX_READY_MARK,	MP_TX_WAKE_MARK,
280
281	/* MFI */
282	MFIv6_MARK,
283	MFIv4_MARK,
284
285	MEMC_CS0_MARK,			MEMC_BUSCLK_MEMC_A0_MARK,
286	MEMC_CS1_MEMC_A1_MARK,		MEMC_ADV_MEMC_DREQ0_MARK,
287	MEMC_WAIT_MEMC_DREQ1_MARK,	MEMC_NOE_MARK,
288	MEMC_NWE_MARK,			MEMC_INT_MARK,
289
290	MEMC_AD0_MARK,	MEMC_AD1_MARK,	MEMC_AD2_MARK,
291	MEMC_AD3_MARK,	MEMC_AD4_MARK,	MEMC_AD5_MARK,
292	MEMC_AD6_MARK,	MEMC_AD7_MARK,	MEMC_AD8_MARK,
293	MEMC_AD9_MARK,	MEMC_AD10_MARK,	MEMC_AD11_MARK,
294	MEMC_AD12_MARK,	MEMC_AD13_MARK,	MEMC_AD14_MARK,
295	MEMC_AD15_MARK,
296
297	/* SIM */
298	SIM_RST_MARK,	SIM_CLK_MARK,	SIM_D_MARK,
299
300	/* TPU */
301	TPU0TO0_MARK,		TPU0TO1_MARK,
302	TPU0TO2_93_MARK,	TPU0TO2_99_MARK,
303	TPU0TO3_MARK,
304
305	/* I2C2 */
306	I2C_SCL2_MARK,	I2C_SDA2_MARK,
307
308	/* I2C3(1) */
309	I2C_SCL3_MARK,	I2C_SDA3_MARK,
310
311	/* I2C3(2) */
312	I2C_SCL3S_MARK,	I2C_SDA3S_MARK,
313
314	/* I2C4(2) */
315	I2C_SCL4_MARK,	I2C_SDA4_MARK,
316
317	/* I2C4(2) */
318	I2C_SCL4S_MARK,	I2C_SDA4S_MARK,
319
320	/* KEYSC */
321	KEYOUT0_MARK,	KEYIN0_121_MARK,	KEYIN0_136_MARK,
322	KEYOUT1_MARK,	KEYIN1_122_MARK,	KEYIN1_135_MARK,
323	KEYOUT2_MARK,	KEYIN2_123_MARK,	KEYIN2_134_MARK,
324	KEYOUT3_MARK,	KEYIN3_124_MARK,	KEYIN3_133_MARK,
325	KEYOUT4_MARK,	KEYIN4_MARK,
326	KEYOUT5_MARK,	KEYIN5_MARK,
327	KEYOUT6_MARK,	KEYIN6_MARK,
328	KEYOUT7_MARK,	KEYIN7_MARK,
329
330	/* LCDC */
331	LCDC0_SELECT_MARK,
332	LCDC1_SELECT_MARK,
333	LCDHSYN_MARK,	LCDCS_MARK,	LCDVSYN_MARK,	LCDDCK_MARK,
334	LCDWR_MARK,	LCDRD_MARK,	LCDDISP_MARK,	LCDRS_MARK,
335	LCDLCLK_MARK,	LCDDON_MARK,
336
337	LCDD0_MARK,	LCDD1_MARK,	LCDD2_MARK,	LCDD3_MARK,
338	LCDD4_MARK,	LCDD5_MARK,	LCDD6_MARK,	LCDD7_MARK,
339	LCDD8_MARK,	LCDD9_MARK,	LCDD10_MARK,	LCDD11_MARK,
340	LCDD12_MARK,	LCDD13_MARK,	LCDD14_MARK,	LCDD15_MARK,
341	LCDD16_MARK,	LCDD17_MARK,	LCDD18_MARK,	LCDD19_MARK,
342	LCDD20_MARK,	LCDD21_MARK,	LCDD22_MARK,	LCDD23_MARK,
343
344	/* IRDA */
345	IRDA_OUT_MARK,	IRDA_IN_MARK,	IRDA_FIRSEL_MARK,
346	IROUT_139_MARK,	IROUT_140_MARK,
347
348	/* TSIF1 */
349	TS0_1SELECT_MARK,
350	TS0_2SELECT_MARK,
351	TS1_1SELECT_MARK,
352	TS1_2SELECT_MARK,
353
354	TS_SPSYNC1_MARK,	TS_SDAT1_MARK,
355	TS_SDEN1_MARK,		TS_SCK1_MARK,
356
357	/* TSIF2 */
358	TS_SPSYNC2_MARK,	TS_SDAT2_MARK,
359	TS_SDEN2_MARK,		TS_SCK2_MARK,
360
361	/* HDMI */
362	HDMI_HPD_MARK,	HDMI_CEC_MARK,
363
364	/* SDHI0 */
365	SDHICLK0_MARK,	SDHICD0_MARK,
366	SDHICMD0_MARK,	SDHIWP0_MARK,
367	SDHID0_0_MARK,	SDHID0_1_MARK,
368	SDHID0_2_MARK,	SDHID0_3_MARK,
369
370	/* SDHI1 */
371	SDHICLK1_MARK,	SDHICMD1_MARK,	SDHID1_0_MARK,
372	SDHID1_1_MARK,	SDHID1_2_MARK,	SDHID1_3_MARK,
373
374	/* SDHI2 */
375	SDHICLK2_MARK,	SDHICMD2_MARK,	SDHID2_0_MARK,
376	SDHID2_1_MARK,	SDHID2_2_MARK,	SDHID2_3_MARK,
377
378	/* SDENC */
379	SDENC_CPG_MARK,
380	SDENC_DV_CLKI_MARK,
381
382	PINMUX_MARK_END,
383};
384
385static const u16 pinmux_data[] = {
386	PINMUX_DATA_ALL(),
387
388	/* IRQ */
389	PINMUX_DATA(IRQ0_6_MARK,	PORT6_FN0, 	MSEL1CR_0_0),
390	PINMUX_DATA(IRQ0_162_MARK,	PORT162_FN0,	MSEL1CR_0_1),
391	PINMUX_DATA(IRQ1_MARK,		PORT12_FN0),
392	PINMUX_DATA(IRQ2_4_MARK,	PORT4_FN0,	MSEL1CR_2_0),
393	PINMUX_DATA(IRQ2_5_MARK,	PORT5_FN0,	MSEL1CR_2_1),
394	PINMUX_DATA(IRQ3_8_MARK,	PORT8_FN0,	MSEL1CR_3_0),
395	PINMUX_DATA(IRQ3_16_MARK,	PORT16_FN0,	MSEL1CR_3_1),
396	PINMUX_DATA(IRQ4_17_MARK,	PORT17_FN0,	MSEL1CR_4_0),
397	PINMUX_DATA(IRQ4_163_MARK,	PORT163_FN0,	MSEL1CR_4_1),
398	PINMUX_DATA(IRQ5_MARK,		PORT18_FN0),
399	PINMUX_DATA(IRQ6_39_MARK,	PORT39_FN0,	MSEL1CR_6_0),
400	PINMUX_DATA(IRQ6_164_MARK,	PORT164_FN0,	MSEL1CR_6_1),
401	PINMUX_DATA(IRQ7_40_MARK,	PORT40_FN0,	MSEL1CR_7_1),
402	PINMUX_DATA(IRQ7_167_MARK,	PORT167_FN0,	MSEL1CR_7_0),
403	PINMUX_DATA(IRQ8_41_MARK,	PORT41_FN0,	MSEL1CR_8_1),
404	PINMUX_DATA(IRQ8_168_MARK,	PORT168_FN0,	MSEL1CR_8_0),
405	PINMUX_DATA(IRQ9_42_MARK,	PORT42_FN0,	MSEL1CR_9_0),
406	PINMUX_DATA(IRQ9_169_MARK,	PORT169_FN0,	MSEL1CR_9_1),
407	PINMUX_DATA(IRQ10_MARK,		PORT65_FN0,	MSEL1CR_9_1),
408	PINMUX_DATA(IRQ11_MARK,		PORT67_FN0),
409	PINMUX_DATA(IRQ12_80_MARK,	PORT80_FN0,	MSEL1CR_12_0),
410	PINMUX_DATA(IRQ12_137_MARK,	PORT137_FN0,	MSEL1CR_12_1),
411	PINMUX_DATA(IRQ13_81_MARK,	PORT81_FN0,	MSEL1CR_13_0),
412	PINMUX_DATA(IRQ13_145_MARK,	PORT145_FN0,	MSEL1CR_13_1),
413	PINMUX_DATA(IRQ14_82_MARK,	PORT82_FN0,	MSEL1CR_14_0),
414	PINMUX_DATA(IRQ14_146_MARK,	PORT146_FN0,	MSEL1CR_14_1),
415	PINMUX_DATA(IRQ15_83_MARK,	PORT83_FN0,	MSEL1CR_15_0),
416	PINMUX_DATA(IRQ15_147_MARK,	PORT147_FN0,	MSEL1CR_15_1),
417	PINMUX_DATA(IRQ16_84_MARK,	PORT84_FN0,	MSEL1CR_16_0),
418	PINMUX_DATA(IRQ16_170_MARK,	PORT170_FN0,	MSEL1CR_16_1),
419	PINMUX_DATA(IRQ17_MARK,		PORT85_FN0),
420	PINMUX_DATA(IRQ18_MARK,		PORT86_FN0),
421	PINMUX_DATA(IRQ19_MARK,		PORT87_FN0),
422	PINMUX_DATA(IRQ20_MARK,		PORT92_FN0),
423	PINMUX_DATA(IRQ21_MARK,		PORT93_FN0),
424	PINMUX_DATA(IRQ22_MARK,		PORT94_FN0),
425	PINMUX_DATA(IRQ23_MARK,		PORT95_FN0),
426	PINMUX_DATA(IRQ24_MARK,		PORT112_FN0),
427	PINMUX_DATA(IRQ25_MARK,		PORT119_FN0),
428	PINMUX_DATA(IRQ26_121_MARK,	PORT121_FN0,	MSEL1CR_26_1),
429	PINMUX_DATA(IRQ26_172_MARK,	PORT172_FN0,	MSEL1CR_26_0),
430	PINMUX_DATA(IRQ27_122_MARK,	PORT122_FN0,	MSEL1CR_27_1),
431	PINMUX_DATA(IRQ27_180_MARK,	PORT180_FN0,	MSEL1CR_27_0),
432	PINMUX_DATA(IRQ28_123_MARK,	PORT123_FN0,	MSEL1CR_28_1),
433	PINMUX_DATA(IRQ28_181_MARK,	PORT181_FN0,	MSEL1CR_28_0),
434	PINMUX_DATA(IRQ29_129_MARK,	PORT129_FN0,	MSEL1CR_29_1),
435	PINMUX_DATA(IRQ29_182_MARK,	PORT182_FN0,	MSEL1CR_29_0),
436	PINMUX_DATA(IRQ30_130_MARK,	PORT130_FN0,	MSEL1CR_30_1),
437	PINMUX_DATA(IRQ30_183_MARK,	PORT183_FN0,	MSEL1CR_30_0),
438	PINMUX_DATA(IRQ31_138_MARK,	PORT138_FN0,	MSEL1CR_31_1),
439	PINMUX_DATA(IRQ31_184_MARK,	PORT184_FN0,	MSEL1CR_31_0),
440
441	/* Function 1 */
442	PINMUX_DATA(BBIF2_TSCK1_MARK,		PORT0_FN1),
443	PINMUX_DATA(BBIF2_TSYNC1_MARK,		PORT1_FN1),
444	PINMUX_DATA(BBIF2_TXD1_MARK,		PORT2_FN1),
445	PINMUX_DATA(BBIF2_RXD_MARK,		PORT3_FN1),
446	PINMUX_DATA(FSIACK_MARK,		PORT4_FN1),
447	PINMUX_DATA(FSIAILR_MARK,		PORT5_FN1),
448	PINMUX_DATA(FSIAIBT_MARK,		PORT6_FN1),
449	PINMUX_DATA(FSIAISLD_MARK,		PORT7_FN1),
450	PINMUX_DATA(FSIAOMC_MARK,		PORT8_FN1),
451	PINMUX_DATA(FSIAOLR_MARK,		PORT9_FN1),
452	PINMUX_DATA(FSIAOBT_MARK,		PORT10_FN1),
453	PINMUX_DATA(FSIAOSLD_MARK,		PORT11_FN1),
454	PINMUX_DATA(FMSOCK_MARK,		PORT12_FN1),
455	PINMUX_DATA(FMSOOLR_MARK,		PORT13_FN1),
456	PINMUX_DATA(FMSOOBT_MARK,		PORT14_FN1),
457	PINMUX_DATA(FMSOSLD_MARK,		PORT15_FN1),
458	PINMUX_DATA(FMSOILR_MARK,		PORT16_FN1),
459	PINMUX_DATA(FMSOIBT_MARK,		PORT17_FN1),
460	PINMUX_DATA(FMSISLD_MARK,		PORT18_FN1),
461	PINMUX_DATA(A0_MARK,			PORT19_FN1),
462	PINMUX_DATA(A1_MARK,			PORT20_FN1),
463	PINMUX_DATA(A2_MARK,			PORT21_FN1),
464	PINMUX_DATA(A3_MARK,			PORT22_FN1),
465	PINMUX_DATA(A4_FOE_MARK,		PORT23_FN1),
466	PINMUX_DATA(A5_FCDE_MARK,		PORT24_FN1),
467	PINMUX_DATA(A6_MARK,			PORT25_FN1),
468	PINMUX_DATA(A7_MARK,			PORT26_FN1),
469	PINMUX_DATA(A8_MARK,			PORT27_FN1),
470	PINMUX_DATA(A9_MARK,			PORT28_FN1),
471	PINMUX_DATA(A10_MARK,			PORT29_FN1),
472	PINMUX_DATA(A11_MARK,			PORT30_FN1),
473	PINMUX_DATA(A12_MARK,			PORT31_FN1),
474	PINMUX_DATA(A13_MARK,			PORT32_FN1),
475	PINMUX_DATA(A14_MARK,			PORT33_FN1),
476	PINMUX_DATA(A15_MARK,			PORT34_FN1),
477	PINMUX_DATA(A16_MARK,			PORT35_FN1),
478	PINMUX_DATA(A17_MARK,			PORT36_FN1),
479	PINMUX_DATA(A18_MARK,			PORT37_FN1),
480	PINMUX_DATA(A19_MARK,			PORT38_FN1),
481	PINMUX_DATA(A20_MARK,			PORT39_FN1),
482	PINMUX_DATA(A21_MARK,			PORT40_FN1),
483	PINMUX_DATA(A22_MARK,			PORT41_FN1),
484	PINMUX_DATA(A23_MARK,			PORT42_FN1),
485	PINMUX_DATA(A24_MARK,			PORT43_FN1),
486	PINMUX_DATA(A25_MARK,			PORT44_FN1),
487	PINMUX_DATA(A26_MARK,			PORT45_FN1),
488	PINMUX_DATA(D0_NAF0_MARK,		PORT46_FN1),
489	PINMUX_DATA(D1_NAF1_MARK,		PORT47_FN1),
490	PINMUX_DATA(D2_NAF2_MARK,		PORT48_FN1),
491	PINMUX_DATA(D3_NAF3_MARK,		PORT49_FN1),
492	PINMUX_DATA(D4_NAF4_MARK,		PORT50_FN1),
493	PINMUX_DATA(D5_NAF5_MARK,		PORT51_FN1),
494	PINMUX_DATA(D6_NAF6_MARK,		PORT52_FN1),
495	PINMUX_DATA(D7_NAF7_MARK,		PORT53_FN1),
496	PINMUX_DATA(D8_NAF8_MARK,		PORT54_FN1),
497	PINMUX_DATA(D9_NAF9_MARK,		PORT55_FN1),
498	PINMUX_DATA(D10_NAF10_MARK,		PORT56_FN1),
499	PINMUX_DATA(D11_NAF11_MARK,		PORT57_FN1),
500	PINMUX_DATA(D12_NAF12_MARK,		PORT58_FN1),
501	PINMUX_DATA(D13_NAF13_MARK,		PORT59_FN1),
502	PINMUX_DATA(D14_NAF14_MARK,		PORT60_FN1),
503	PINMUX_DATA(D15_NAF15_MARK,		PORT61_FN1),
504	PINMUX_DATA(CS0_MARK,			PORT62_FN1),
505	PINMUX_DATA(CS2_MARK,			PORT63_FN1),
506	PINMUX_DATA(CS4_MARK,			PORT64_FN1),
507	PINMUX_DATA(CS5A_MARK,			PORT65_FN1),
508	PINMUX_DATA(CS5B_MARK,			PORT66_FN1),
509	PINMUX_DATA(CS6A_MARK,			PORT67_FN1),
510	PINMUX_DATA(FCE0_MARK,			PORT68_FN1),
511	PINMUX_DATA(RD_FSC_MARK,		PORT69_FN1),
512	PINMUX_DATA(WE0_FWE_MARK,		PORT70_FN1),
513	PINMUX_DATA(WE1_MARK,			PORT71_FN1),
514	PINMUX_DATA(CKO_MARK,			PORT72_FN1),
515	PINMUX_DATA(FRB_MARK,			PORT73_FN1),
516	PINMUX_DATA(WAIT_MARK,			PORT74_FN1),
517	PINMUX_DATA(RDWR_MARK,			PORT75_FN1),
518	PINMUX_DATA(MEMC_AD0_MARK,		PORT76_FN1),
519	PINMUX_DATA(MEMC_AD1_MARK,		PORT77_FN1),
520	PINMUX_DATA(MEMC_AD2_MARK,		PORT78_FN1),
521	PINMUX_DATA(MEMC_AD3_MARK,		PORT79_FN1),
522	PINMUX_DATA(MEMC_AD4_MARK,		PORT80_FN1),
523	PINMUX_DATA(MEMC_AD5_MARK,		PORT81_FN1),
524	PINMUX_DATA(MEMC_AD6_MARK,		PORT82_FN1),
525	PINMUX_DATA(MEMC_AD7_MARK,		PORT83_FN1),
526	PINMUX_DATA(MEMC_AD8_MARK,		PORT84_FN1),
527	PINMUX_DATA(MEMC_AD9_MARK,		PORT85_FN1),
528	PINMUX_DATA(MEMC_AD10_MARK,		PORT86_FN1),
529	PINMUX_DATA(MEMC_AD11_MARK,		PORT87_FN1),
530	PINMUX_DATA(MEMC_AD12_MARK,		PORT88_FN1),
531	PINMUX_DATA(MEMC_AD13_MARK,		PORT89_FN1),
532	PINMUX_DATA(MEMC_AD14_MARK,		PORT90_FN1),
533	PINMUX_DATA(MEMC_AD15_MARK,		PORT91_FN1),
534	PINMUX_DATA(MEMC_CS0_MARK,		PORT92_FN1),
535	PINMUX_DATA(MEMC_BUSCLK_MEMC_A0_MARK,	PORT93_FN1),
536	PINMUX_DATA(MEMC_CS1_MEMC_A1_MARK,	PORT94_FN1),
537	PINMUX_DATA(MEMC_ADV_MEMC_DREQ0_MARK,	PORT95_FN1),
538	PINMUX_DATA(MEMC_WAIT_MEMC_DREQ1_MARK,	PORT96_FN1),
539	PINMUX_DATA(MEMC_NOE_MARK,		PORT97_FN1),
540	PINMUX_DATA(MEMC_NWE_MARK,		PORT98_FN1),
541	PINMUX_DATA(MEMC_INT_MARK,		PORT99_FN1),
542	PINMUX_DATA(VIO_VD_MARK,		PORT100_FN1),
543	PINMUX_DATA(VIO_HD_MARK,		PORT101_FN1),
544	PINMUX_DATA(VIO_D0_MARK,		PORT102_FN1),
545	PINMUX_DATA(VIO_D1_MARK,		PORT103_FN1),
546	PINMUX_DATA(VIO_D2_MARK,		PORT104_FN1),
547	PINMUX_DATA(VIO_D3_MARK,		PORT105_FN1),
548	PINMUX_DATA(VIO_D4_MARK,		PORT106_FN1),
549	PINMUX_DATA(VIO_D5_MARK,		PORT107_FN1),
550	PINMUX_DATA(VIO_D6_MARK,		PORT108_FN1),
551	PINMUX_DATA(VIO_D7_MARK,		PORT109_FN1),
552	PINMUX_DATA(VIO_D8_MARK,		PORT110_FN1),
553	PINMUX_DATA(VIO_D9_MARK,		PORT111_FN1),
554	PINMUX_DATA(VIO_D10_MARK,		PORT112_FN1),
555	PINMUX_DATA(VIO_D11_MARK,		PORT113_FN1),
556	PINMUX_DATA(VIO_D12_MARK,		PORT114_FN1),
557	PINMUX_DATA(VIO_D13_MARK,		PORT115_FN1),
558	PINMUX_DATA(VIO_D14_MARK,		PORT116_FN1),
559	PINMUX_DATA(VIO_D15_MARK,		PORT117_FN1),
560	PINMUX_DATA(VIO_CLK_MARK,		PORT118_FN1),
561	PINMUX_DATA(VIO_FIELD_MARK,		PORT119_FN1),
562	PINMUX_DATA(VIO_CKO_MARK,		PORT120_FN1),
563	PINMUX_DATA(LCDD0_MARK,			PORT121_FN1),
564	PINMUX_DATA(LCDD1_MARK,			PORT122_FN1),
565	PINMUX_DATA(LCDD2_MARK,			PORT123_FN1),
566	PINMUX_DATA(LCDD3_MARK,			PORT124_FN1),
567	PINMUX_DATA(LCDD4_MARK,			PORT125_FN1),
568	PINMUX_DATA(LCDD5_MARK,			PORT126_FN1),
569	PINMUX_DATA(LCDD6_MARK,			PORT127_FN1),
570	PINMUX_DATA(LCDD7_MARK,			PORT128_FN1),
571	PINMUX_DATA(LCDD8_MARK,			PORT129_FN1),
572	PINMUX_DATA(LCDD9_MARK,			PORT130_FN1),
573	PINMUX_DATA(LCDD10_MARK,		PORT131_FN1),
574	PINMUX_DATA(LCDD11_MARK,		PORT132_FN1),
575	PINMUX_DATA(LCDD12_MARK,		PORT133_FN1),
576	PINMUX_DATA(LCDD13_MARK,		PORT134_FN1),
577	PINMUX_DATA(LCDD14_MARK,		PORT135_FN1),
578	PINMUX_DATA(LCDD15_MARK,		PORT136_FN1),
579	PINMUX_DATA(LCDD16_MARK,		PORT137_FN1),
580	PINMUX_DATA(LCDD17_MARK,		PORT138_FN1),
581	PINMUX_DATA(LCDD18_MARK,		PORT139_FN1),
582	PINMUX_DATA(LCDD19_MARK,		PORT140_FN1),
583	PINMUX_DATA(LCDD20_MARK,		PORT141_FN1),
584	PINMUX_DATA(LCDD21_MARK,		PORT142_FN1),
585	PINMUX_DATA(LCDD22_MARK,		PORT143_FN1),
586	PINMUX_DATA(LCDD23_MARK,		PORT144_FN1),
587	PINMUX_DATA(LCDHSYN_MARK,		PORT145_FN1),
588	PINMUX_DATA(LCDVSYN_MARK,		PORT146_FN1),
589	PINMUX_DATA(LCDDCK_MARK,		PORT147_FN1),
590	PINMUX_DATA(LCDRD_MARK,			PORT148_FN1),
591	PINMUX_DATA(LCDDISP_MARK,		PORT149_FN1),
592	PINMUX_DATA(LCDLCLK_MARK,		PORT150_FN1),
593	PINMUX_DATA(LCDDON_MARK,		PORT151_FN1),
594	PINMUX_DATA(SCIFA0_TXD_MARK,		PORT152_FN1),
595	PINMUX_DATA(SCIFA0_RXD_MARK,		PORT153_FN1),
596	PINMUX_DATA(SCIFA1_TXD_MARK,		PORT154_FN1),
597	PINMUX_DATA(SCIFA1_RXD_MARK,		PORT155_FN1),
598	PINMUX_DATA(TS_SPSYNC1_MARK,		PORT156_FN1),
599	PINMUX_DATA(TS_SDAT1_MARK,		PORT157_FN1),
600	PINMUX_DATA(TS_SDEN1_MARK,		PORT158_FN1),
601	PINMUX_DATA(TS_SCK1_MARK,		PORT159_FN1),
602	PINMUX_DATA(TPU0TO0_MARK,		PORT160_FN1),
603	PINMUX_DATA(TPU0TO1_MARK,		PORT161_FN1),
604	PINMUX_DATA(SCIFB_SCK_MARK,		PORT162_FN1),
605	PINMUX_DATA(SCIFB_RTS_MARK,		PORT163_FN1),
606	PINMUX_DATA(SCIFB_CTS_MARK,		PORT164_FN1),
607	PINMUX_DATA(SCIFB_TXD_MARK,		PORT165_FN1),
608	PINMUX_DATA(SCIFB_RXD_MARK,		PORT166_FN1),
609	PINMUX_DATA(VBUS0_0_MARK,		PORT167_FN1),
610	PINMUX_DATA(VBUS0_1_MARK,		PORT168_FN1),
611	PINMUX_DATA(HDMI_HPD_MARK,		PORT169_FN1),
612	PINMUX_DATA(HDMI_CEC_MARK,		PORT170_FN1),
613	PINMUX_DATA(SDHICLK0_MARK,		PORT171_FN1),
614	PINMUX_DATA(SDHICD0_MARK,		PORT172_FN1),
615	PINMUX_DATA(SDHID0_0_MARK,		PORT173_FN1),
616	PINMUX_DATA(SDHID0_1_MARK,		PORT174_FN1),
617	PINMUX_DATA(SDHID0_2_MARK,		PORT175_FN1),
618	PINMUX_DATA(SDHID0_3_MARK,		PORT176_FN1),
619	PINMUX_DATA(SDHICMD0_MARK,		PORT177_FN1),
620	PINMUX_DATA(SDHIWP0_MARK,		PORT178_FN1),
621	PINMUX_DATA(SDHICLK1_MARK,		PORT179_FN1),
622	PINMUX_DATA(SDHID1_0_MARK,		PORT180_FN1),
623	PINMUX_DATA(SDHID1_1_MARK,		PORT181_FN1),
624	PINMUX_DATA(SDHID1_2_MARK,		PORT182_FN1),
625	PINMUX_DATA(SDHID1_3_MARK,		PORT183_FN1),
626	PINMUX_DATA(SDHICMD1_MARK,		PORT184_FN1),
627	PINMUX_DATA(SDHICLK2_MARK,		PORT185_FN1),
628	PINMUX_DATA(SDHID2_0_MARK,		PORT186_FN1),
629	PINMUX_DATA(SDHID2_1_MARK,		PORT187_FN1),
630	PINMUX_DATA(SDHID2_2_MARK,		PORT188_FN1),
631	PINMUX_DATA(SDHID2_3_MARK,		PORT189_FN1),
632	PINMUX_DATA(SDHICMD2_MARK,		PORT190_FN1),
633
634	/* Function 2 */
635	PINMUX_DATA(FSIBCK_MARK,		PORT4_FN2),
636	PINMUX_DATA(SCIFA4_RXD_MARK,		PORT5_FN2),
637	PINMUX_DATA(SCIFA4_TXD_MARK,		PORT6_FN2),
638	PINMUX_DATA(SCIFA5_RXD_MARK,		PORT8_FN2),
639	PINMUX_DATA(FSIASPDIF_11_MARK,		PORT11_FN2),
640	PINMUX_DATA(SCIFA5_TXD_MARK,		PORT12_FN2),
641	PINMUX_DATA(FMSIOLR_MARK,		PORT13_FN2),
642	PINMUX_DATA(FMSIOBT_MARK,		PORT14_FN2),
643	PINMUX_DATA(FSIASPDIF_15_MARK,		PORT15_FN2),
644	PINMUX_DATA(FMSIILR_MARK,		PORT16_FN2),
645	PINMUX_DATA(FMSIIBT_MARK,		PORT17_FN2),
646	PINMUX_DATA(BS_MARK,			PORT19_FN2),
647	PINMUX_DATA(MSIOF0_TSYNC_MARK,		PORT36_FN2),
648	PINMUX_DATA(MSIOF0_TSCK_MARK,		PORT37_FN2),
649	PINMUX_DATA(MSIOF0_RXD_MARK,		PORT38_FN2),
650	PINMUX_DATA(MSIOF0_RSCK_MARK,		PORT39_FN2),
651	PINMUX_DATA(MSIOF0_RSYNC_MARK,		PORT40_FN2),
652	PINMUX_DATA(MSIOF0_MCK0_MARK,		PORT41_FN2),
653	PINMUX_DATA(MSIOF0_MCK1_MARK,		PORT42_FN2),
654	PINMUX_DATA(MSIOF0_SS1_MARK,		PORT43_FN2),
655	PINMUX_DATA(MSIOF0_SS2_MARK,		PORT44_FN2),
656	PINMUX_DATA(MSIOF0_TXD_MARK,		PORT45_FN2),
657	PINMUX_DATA(FMSICK_MARK,		PORT65_FN2),
658	PINMUX_DATA(FCE1_MARK,			PORT66_FN2),
659	PINMUX_DATA(BBIF1_RXD_MARK,		PORT76_FN2),
660	PINMUX_DATA(BBIF1_TSYNC_MARK,		PORT77_FN2),
661	PINMUX_DATA(BBIF1_TSCK_MARK,		PORT78_FN2),
662	PINMUX_DATA(BBIF1_TXD_MARK,		PORT79_FN2),
663	PINMUX_DATA(BBIF1_RSCK_MARK,		PORT80_FN2),
664	PINMUX_DATA(BBIF1_RSYNC_MARK,		PORT81_FN2),
665	PINMUX_DATA(BBIF1_FLOW_MARK,		PORT82_FN2),
666	PINMUX_DATA(BB_RX_FLOW_N_MARK,		PORT83_FN2),
667	PINMUX_DATA(MSIOF1_RSCK_MARK,		PORT84_FN2),
668	PINMUX_DATA(MSIOF1_RSYNC_MARK,		PORT85_FN2),
669	PINMUX_DATA(MSIOF1_MCK0_MARK,		PORT86_FN2),
670	PINMUX_DATA(MSIOF1_MCK1_MARK,		PORT87_FN2),
671	PINMUX_DATA(MSIOF1_TSCK_88_MARK,	PORT88_FN2, MSEL4CR_10_1),
672	PINMUX_DATA(MSIOF1_TSYNC_89_MARK,	PORT89_FN2, MSEL4CR_10_1),
673	PINMUX_DATA(MSIOF1_TXD_90_MARK,		PORT90_FN2, MSEL4CR_10_1),
674	PINMUX_DATA(MSIOF1_RXD_91_MARK,		PORT91_FN2, MSEL4CR_10_1),
675	PINMUX_DATA(MSIOF1_SS1_92_MARK,		PORT92_FN2, MSEL4CR_10_1),
676	PINMUX_DATA(MSIOF1_SS2_93_MARK,		PORT93_FN2, MSEL4CR_10_1),
677	PINMUX_DATA(SCIFA2_CTS1_MARK,		PORT94_FN2),
678	PINMUX_DATA(SCIFA2_RTS1_MARK,		PORT95_FN2),
679	PINMUX_DATA(SCIFA2_TXD1_MARK,		PORT96_FN2),
680	PINMUX_DATA(SCIFA2_RXD1_MARK,		PORT97_FN2),
681	PINMUX_DATA(SCIFA2_SCK1_MARK,		PORT98_FN2),
682	PINMUX_DATA(I2C_SCL2_MARK,		PORT110_FN2),
683	PINMUX_DATA(I2C_SDA2_MARK,		PORT111_FN2),
684	PINMUX_DATA(I2C_SCL3_MARK,		PORT114_FN2, MSEL4CR_16_1),
685	PINMUX_DATA(I2C_SDA3_MARK,		PORT115_FN2, MSEL4CR_16_1),
686	PINMUX_DATA(I2C_SCL4_MARK,		PORT116_FN2, MSEL4CR_17_1),
687	PINMUX_DATA(I2C_SDA4_MARK,		PORT117_FN2, MSEL4CR_17_1),
688	PINMUX_DATA(MSIOF2_RSCK_MARK,		PORT134_FN2),
689	PINMUX_DATA(MSIOF2_RSYNC_MARK,		PORT135_FN2),
690	PINMUX_DATA(MSIOF2_MCK0_MARK,		PORT136_FN2),
691	PINMUX_DATA(MSIOF2_MCK1_MARK,		PORT137_FN2),
692	PINMUX_DATA(MSIOF2_SS1_MARK,		PORT138_FN2),
693	PINMUX_DATA(MSIOF2_SS2_MARK,		PORT139_FN2),
694	PINMUX_DATA(SCIFA3_CTS_140_MARK,	PORT140_FN2, MSEL3CR_9_1),
695	PINMUX_DATA(SCIFA3_RTS_141_MARK,	PORT141_FN2),
696	PINMUX_DATA(SCIFA3_SCK_MARK,		PORT142_FN2),
697	PINMUX_DATA(SCIFA3_TXD_MARK,		PORT143_FN2),
698	PINMUX_DATA(SCIFA3_RXD_MARK,		PORT144_FN2),
699	PINMUX_DATA(MSIOF2_TSYNC_MARK,		PORT148_FN2),
700	PINMUX_DATA(MSIOF2_TSCK_MARK,		PORT149_FN2),
701	PINMUX_DATA(MSIOF2_RXD_MARK,		PORT150_FN2),
702	PINMUX_DATA(MSIOF2_TXD_MARK,		PORT151_FN2),
703	PINMUX_DATA(SCIFA0_SCK_MARK,		PORT156_FN2),
704	PINMUX_DATA(SCIFA0_RTS_MARK,		PORT157_FN2),
705	PINMUX_DATA(SCIFA0_CTS_MARK,		PORT158_FN2),
706	PINMUX_DATA(SCIFA1_SCK_MARK,		PORT159_FN2),
707	PINMUX_DATA(SCIFA1_RTS_MARK,		PORT160_FN2),
708	PINMUX_DATA(SCIFA1_CTS_MARK,		PORT161_FN2),
709
710	/* Function 3 */
711	PINMUX_DATA(VIO_CKO1_MARK,		PORT16_FN3),
712	PINMUX_DATA(VIO_CKO2_MARK,		PORT17_FN3),
713	PINMUX_DATA(IDIN_1_18_MARK,		PORT18_FN3, MSEL4CR_14_1),
714	PINMUX_DATA(MSIOF1_TSCK_39_MARK,	PORT39_FN3, MSEL4CR_10_0),
715	PINMUX_DATA(MSIOF1_TSYNC_40_MARK,	PORT40_FN3, MSEL4CR_10_0),
716	PINMUX_DATA(MSIOF1_TXD_41_MARK,		PORT41_FN3, MSEL4CR_10_0),
717	PINMUX_DATA(MSIOF1_RXD_42_MARK,		PORT42_FN3, MSEL4CR_10_0),
718	PINMUX_DATA(MSIOF1_SS1_43_MARK,		PORT43_FN3, MSEL4CR_10_0),
719	PINMUX_DATA(MSIOF1_SS2_44_MARK,		PORT44_FN3, MSEL4CR_10_0),
720	PINMUX_DATA(MMCD1_0_MARK,		PORT54_FN3, MSEL4CR_15_1),
721	PINMUX_DATA(MMCD1_1_MARK,		PORT55_FN3, MSEL4CR_15_1),
722	PINMUX_DATA(MMCD1_2_MARK,		PORT56_FN3, MSEL4CR_15_1),
723	PINMUX_DATA(MMCD1_3_MARK,		PORT57_FN3, MSEL4CR_15_1),
724	PINMUX_DATA(MMCD1_4_MARK,		PORT58_FN3, MSEL4CR_15_1),
725	PINMUX_DATA(MMCD1_5_MARK,		PORT59_FN3, MSEL4CR_15_1),
726	PINMUX_DATA(MMCD1_6_MARK,		PORT60_FN3, MSEL4CR_15_1),
727	PINMUX_DATA(MMCD1_7_MARK,		PORT61_FN3, MSEL4CR_15_1),
728	PINMUX_DATA(VINT_I_MARK,		PORT65_FN3),
729	PINMUX_DATA(MMCCLK1_MARK,		PORT66_FN3, MSEL4CR_15_1),
730	PINMUX_DATA(MMCCMD1_MARK,		PORT67_FN3, MSEL4CR_15_1),
731	PINMUX_DATA(TPU0TO2_93_MARK,		PORT93_FN3),
732	PINMUX_DATA(TPU0TO2_99_MARK,		PORT99_FN3),
733	PINMUX_DATA(TPU0TO3_MARK,		PORT112_FN3),
734	PINMUX_DATA(IDIN_0_MARK,		PORT113_FN3),
735	PINMUX_DATA(EXTLP_0_MARK,		PORT114_FN3),
736	PINMUX_DATA(OVCN2_0_MARK,		PORT115_FN3),
737	PINMUX_DATA(PWEN_0_MARK,		PORT116_FN3),
738	PINMUX_DATA(OVCN_0_MARK,		PORT117_FN3),
739	PINMUX_DATA(KEYOUT7_MARK,		PORT121_FN3),
740	PINMUX_DATA(KEYOUT6_MARK,		PORT122_FN3),
741	PINMUX_DATA(KEYOUT5_MARK,		PORT123_FN3),
742	PINMUX_DATA(KEYOUT4_MARK,		PORT124_FN3),
743	PINMUX_DATA(KEYOUT3_MARK,		PORT125_FN3),
744	PINMUX_DATA(KEYOUT2_MARK,		PORT126_FN3),
745	PINMUX_DATA(KEYOUT1_MARK,		PORT127_FN3),
746	PINMUX_DATA(KEYOUT0_MARK,		PORT128_FN3),
747	PINMUX_DATA(KEYIN7_MARK,		PORT129_FN3),
748	PINMUX_DATA(KEYIN6_MARK,		PORT130_FN3),
749	PINMUX_DATA(KEYIN5_MARK,		PORT131_FN3),
750	PINMUX_DATA(KEYIN4_MARK,		PORT132_FN3),
751	PINMUX_DATA(KEYIN3_133_MARK,		PORT133_FN3, MSEL4CR_18_0),
752	PINMUX_DATA(KEYIN2_134_MARK,		PORT134_FN3, MSEL4CR_18_0),
753	PINMUX_DATA(KEYIN1_135_MARK,		PORT135_FN3, MSEL4CR_18_0),
754	PINMUX_DATA(KEYIN0_136_MARK,		PORT136_FN3, MSEL4CR_18_0),
755	PINMUX_DATA(TS_SPSYNC2_MARK,		PORT137_FN3),
756	PINMUX_DATA(IROUT_139_MARK,		PORT139_FN3),
757	PINMUX_DATA(IRDA_OUT_MARK,		PORT140_FN3),
758	PINMUX_DATA(IRDA_IN_MARK,		PORT141_FN3),
759	PINMUX_DATA(IRDA_FIRSEL_MARK,		PORT142_FN3),
760	PINMUX_DATA(TS_SDAT2_MARK,		PORT145_FN3),
761	PINMUX_DATA(TS_SDEN2_MARK,		PORT146_FN3),
762	PINMUX_DATA(TS_SCK2_MARK,		PORT147_FN3),
763
764	/* Function 4 */
765	PINMUX_DATA(SCIFA3_CTS_43_MARK,	PORT43_FN4, MSEL3CR_9_0),
766	PINMUX_DATA(SCIFA3_RTS_44_MARK,	PORT44_FN4),
767	PINMUX_DATA(GP_RX_FLAG_MARK,	PORT76_FN4),
768	PINMUX_DATA(GP_RX_DATA_MARK,	PORT77_FN4),
769	PINMUX_DATA(GP_TX_READY_MARK,	PORT78_FN4),
770	PINMUX_DATA(GP_RX_WAKE_MARK,	PORT79_FN4),
771	PINMUX_DATA(MP_TX_FLAG_MARK,	PORT80_FN4),
772	PINMUX_DATA(MP_TX_DATA_MARK,	PORT81_FN4),
773	PINMUX_DATA(MP_RX_READY_MARK,	PORT82_FN4),
774	PINMUX_DATA(MP_TX_WAKE_MARK,	PORT83_FN4),
775	PINMUX_DATA(MMCD0_0_MARK,	PORT84_FN4, MSEL4CR_15_0),
776	PINMUX_DATA(MMCD0_1_MARK,	PORT85_FN4, MSEL4CR_15_0),
777	PINMUX_DATA(MMCD0_2_MARK,	PORT86_FN4, MSEL4CR_15_0),
778	PINMUX_DATA(MMCD0_3_MARK,	PORT87_FN4, MSEL4CR_15_0),
779	PINMUX_DATA(MMCD0_4_MARK,	PORT88_FN4, MSEL4CR_15_0),
780	PINMUX_DATA(MMCD0_5_MARK,	PORT89_FN4, MSEL4CR_15_0),
781	PINMUX_DATA(MMCD0_6_MARK,	PORT90_FN4, MSEL4CR_15_0),
782	PINMUX_DATA(MMCD0_7_MARK,	PORT91_FN4, MSEL4CR_15_0),
783	PINMUX_DATA(MMCCMD0_MARK,	PORT92_FN4, MSEL4CR_15_0),
784	PINMUX_DATA(SIM_RST_MARK,	PORT94_FN4),
785	PINMUX_DATA(SIM_CLK_MARK,	PORT95_FN4),
786	PINMUX_DATA(SIM_D_MARK,		PORT98_FN4),
787	PINMUX_DATA(MMCCLK0_MARK,	PORT99_FN4, MSEL4CR_15_0),
788	PINMUX_DATA(IDIN_1_113_MARK,	PORT113_FN4, MSEL4CR_14_0),
789	PINMUX_DATA(OVCN_1_114_MARK,	PORT114_FN4, MSEL4CR_14_0),
790	PINMUX_DATA(PWEN_1_115_MARK,	PORT115_FN4),
791	PINMUX_DATA(EXTLP_1_MARK,	PORT116_FN4),
792	PINMUX_DATA(OVCN2_1_MARK,	PORT117_FN4),
793	PINMUX_DATA(KEYIN0_121_MARK,	PORT121_FN4, MSEL4CR_18_1),
794	PINMUX_DATA(KEYIN1_122_MARK,	PORT122_FN4, MSEL4CR_18_1),
795	PINMUX_DATA(KEYIN2_123_MARK,	PORT123_FN4, MSEL4CR_18_1),
796	PINMUX_DATA(KEYIN3_124_MARK,	PORT124_FN4, MSEL4CR_18_1),
797	PINMUX_DATA(PWEN_1_138_MARK,	PORT138_FN4),
798	PINMUX_DATA(IROUT_140_MARK,	PORT140_FN4),
799	PINMUX_DATA(LCDCS_MARK,		PORT145_FN4),
800	PINMUX_DATA(LCDWR_MARK,		PORT147_FN4),
801	PINMUX_DATA(LCDRS_MARK,		PORT149_FN4),
802	PINMUX_DATA(OVCN_1_162_MARK,	PORT162_FN4, MSEL4CR_14_1),
803
804	/* Function 5 */
805	PINMUX_DATA(GPI0_MARK,		PORT41_FN5),
806	PINMUX_DATA(GPI1_MARK,		PORT42_FN5),
807	PINMUX_DATA(GPO0_MARK,		PORT43_FN5),
808	PINMUX_DATA(GPO1_MARK,		PORT44_FN5),
809	PINMUX_DATA(I2C_SCL3S_MARK,	PORT137_FN5, MSEL4CR_16_0),
810	PINMUX_DATA(I2C_SDA3S_MARK,	PORT145_FN5, MSEL4CR_16_0),
811	PINMUX_DATA(I2C_SCL4S_MARK,	PORT146_FN5, MSEL4CR_17_0),
812	PINMUX_DATA(I2C_SDA4S_MARK,	PORT147_FN5, MSEL4CR_17_0),
813
814	/* Function select */
815	PINMUX_DATA(LCDC0_SELECT_MARK,	MSEL3CR_6_0),
816	PINMUX_DATA(LCDC1_SELECT_MARK,	MSEL3CR_6_1),
817
818	PINMUX_DATA(TS0_1SELECT_MARK,	MSEL3CR_21_0, MSEL3CR_20_0),
819	PINMUX_DATA(TS0_2SELECT_MARK,	MSEL3CR_21_0, MSEL3CR_20_1),
820	PINMUX_DATA(TS1_1SELECT_MARK,	MSEL3CR_27_0, MSEL3CR_26_0),
821	PINMUX_DATA(TS1_2SELECT_MARK,	MSEL3CR_27_0, MSEL3CR_26_1),
822
823	PINMUX_DATA(SDENC_CPG_MARK,	MSEL4CR_19_0),
824	PINMUX_DATA(SDENC_DV_CLKI_MARK,	MSEL4CR_19_1),
825
826	PINMUX_DATA(MFIv6_MARK,		MSEL4CR_6_0),
827	PINMUX_DATA(MFIv4_MARK,		MSEL4CR_6_1),
828};
829
830#define __I		(SH_PFC_PIN_CFG_INPUT)
831#define __O		(SH_PFC_PIN_CFG_OUTPUT)
832#define __IO		(SH_PFC_PIN_CFG_INPUT | SH_PFC_PIN_CFG_OUTPUT)
833#define __PD		(SH_PFC_PIN_CFG_PULL_DOWN)
834#define __PU		(SH_PFC_PIN_CFG_PULL_UP)
835#define __PUD		(SH_PFC_PIN_CFG_PULL_DOWN | SH_PFC_PIN_CFG_PULL_UP)
836
837#define SH7372_PIN_I_PD(pin)		SH_PFC_PIN_CFG(pin, __I | __PD)
838#define SH7372_PIN_I_PU(pin)		SH_PFC_PIN_CFG(pin, __I | __PU)
839#define SH7372_PIN_I_PU_PD(pin)		SH_PFC_PIN_CFG(pin, __I | __PUD)
840#define SH7372_PIN_IO(pin)		SH_PFC_PIN_CFG(pin, __IO)
841#define SH7372_PIN_IO_PD(pin)		SH_PFC_PIN_CFG(pin, __IO | __PD)
842#define SH7372_PIN_IO_PU(pin)		SH_PFC_PIN_CFG(pin, __IO | __PU)
843#define SH7372_PIN_IO_PU_PD(pin)	SH_PFC_PIN_CFG(pin, __IO | __PUD)
844#define SH7372_PIN_O(pin)		SH_PFC_PIN_CFG(pin, __O)
845#define SH7372_PIN_O_PU_PD(pin)		SH_PFC_PIN_CFG(pin, __O | __PUD)
846
847static const struct sh_pfc_pin pinmux_pins[] = {
848	/* Table 57-1 (I/O and Pull U/D) */
849	SH7372_PIN_IO_PD(0),		SH7372_PIN_IO_PD(1),
850	SH7372_PIN_O(2),		SH7372_PIN_I_PD(3),
851	SH7372_PIN_I_PD(4),		SH7372_PIN_I_PD(5),
852	SH7372_PIN_IO_PU_PD(6),		SH7372_PIN_I_PD(7),
853	SH7372_PIN_IO_PD(8),		SH7372_PIN_O(9),
854	SH7372_PIN_O(10),		SH7372_PIN_O(11),
855	SH7372_PIN_IO_PU_PD(12),	SH7372_PIN_IO_PD(13),
856	SH7372_PIN_IO_PD(14),		SH7372_PIN_O(15),
857	SH7372_PIN_IO_PD(16),		SH7372_PIN_IO_PD(17),
858	SH7372_PIN_I_PD(18),		SH7372_PIN_IO(19),
859	SH7372_PIN_IO(20),		SH7372_PIN_IO(21),
860	SH7372_PIN_IO(22),		SH7372_PIN_IO(23),
861	SH7372_PIN_IO(24),		SH7372_PIN_IO(25),
862	SH7372_PIN_IO(26),		SH7372_PIN_IO(27),
863	SH7372_PIN_IO(28),		SH7372_PIN_IO(29),
864	SH7372_PIN_IO(30),		SH7372_PIN_IO(31),
865	SH7372_PIN_IO(32),		SH7372_PIN_IO(33),
866	SH7372_PIN_IO(34),		SH7372_PIN_IO(35),
867	SH7372_PIN_IO(36),		SH7372_PIN_IO(37),
868	SH7372_PIN_IO(38),		SH7372_PIN_IO(39),
869	SH7372_PIN_IO(40),		SH7372_PIN_IO(41),
870	SH7372_PIN_IO(42),		SH7372_PIN_IO(43),
871	SH7372_PIN_IO(44),		SH7372_PIN_IO(45),
872	SH7372_PIN_IO_PU(46),		SH7372_PIN_IO_PU(47),
873	SH7372_PIN_IO_PU(48),		SH7372_PIN_IO_PU(49),
874	SH7372_PIN_IO_PU(50),		SH7372_PIN_IO_PU(51),
875	SH7372_PIN_IO_PU(52),		SH7372_PIN_IO_PU(53),
876	SH7372_PIN_IO_PU(54),		SH7372_PIN_IO_PU(55),
877	SH7372_PIN_IO_PU(56),		SH7372_PIN_IO_PU(57),
878	SH7372_PIN_IO_PU(58),		SH7372_PIN_IO_PU(59),
879	SH7372_PIN_IO_PU(60),		SH7372_PIN_IO_PU(61),
880	SH7372_PIN_IO(62),		SH7372_PIN_O(63),
881	SH7372_PIN_O(64),		SH7372_PIN_IO_PU(65),
882	SH7372_PIN_O_PU_PD(66),		SH7372_PIN_IO_PU(67),
883	SH7372_PIN_O(68),		SH7372_PIN_IO(69),
884	SH7372_PIN_IO(70),		SH7372_PIN_IO(71),
885	SH7372_PIN_O(72),		SH7372_PIN_I_PU(73),
886	SH7372_PIN_I_PU_PD(74),		SH7372_PIN_IO_PU_PD(75),
887	SH7372_PIN_IO_PU_PD(76),	SH7372_PIN_IO_PU_PD(77),
888	SH7372_PIN_IO_PU_PD(78),	SH7372_PIN_IO_PU_PD(79),
889	SH7372_PIN_IO_PU_PD(80),	SH7372_PIN_IO_PU_PD(81),
890	SH7372_PIN_IO_PU_PD(82),	SH7372_PIN_IO_PU_PD(83),
891	SH7372_PIN_IO_PU_PD(84),	SH7372_PIN_IO_PU_PD(85),
892	SH7372_PIN_IO_PU_PD(86),	SH7372_PIN_IO_PU_PD(87),
893	SH7372_PIN_IO_PU_PD(88),	SH7372_PIN_IO_PU_PD(89),
894	SH7372_PIN_IO_PU_PD(90),	SH7372_PIN_IO_PU_PD(91),
895	SH7372_PIN_IO_PU_PD(92),	SH7372_PIN_IO_PU_PD(93),
896	SH7372_PIN_IO_PU_PD(94),	SH7372_PIN_IO_PU_PD(95),
897	SH7372_PIN_IO_PU(96),		SH7372_PIN_IO_PU_PD(97),
898	SH7372_PIN_IO_PU_PD(98),	SH7372_PIN_O_PU_PD(99),
899	SH7372_PIN_IO_PD(100),		SH7372_PIN_IO_PD(101),
900	SH7372_PIN_IO_PD(102),		SH7372_PIN_IO_PD(103),
901	SH7372_PIN_IO_PD(104),		SH7372_PIN_IO_PD(105),
902	SH7372_PIN_IO_PU(106),		SH7372_PIN_IO_PU(107),
903	SH7372_PIN_IO_PU(108),		SH7372_PIN_IO_PU(109),
904	SH7372_PIN_IO_PU(110),		SH7372_PIN_IO_PU(111),
905	SH7372_PIN_IO_PD(112),		SH7372_PIN_IO_PD(113),
906	SH7372_PIN_IO_PU(114),		SH7372_PIN_IO_PU(115),
907	SH7372_PIN_IO_PU(116),		SH7372_PIN_IO_PU(117),
908	SH7372_PIN_IO_PU(118),		SH7372_PIN_IO_PU(119),
909	SH7372_PIN_IO_PU(120),		SH7372_PIN_IO_PD(121),
910	SH7372_PIN_IO_PD(122),		SH7372_PIN_IO_PD(123),
911	SH7372_PIN_IO_PD(124),		SH7372_PIN_IO_PD(125),
912	SH7372_PIN_IO_PD(126),		SH7372_PIN_IO_PD(127),
913	SH7372_PIN_IO_PD(128),		SH7372_PIN_IO_PU_PD(129),
914	SH7372_PIN_IO_PU_PD(130),	SH7372_PIN_IO_PU_PD(131),
915	SH7372_PIN_IO_PU_PD(132),	SH7372_PIN_IO_PU_PD(133),
916	SH7372_PIN_IO_PU_PD(134),	SH7372_PIN_IO_PU_PD(135),
917	SH7372_PIN_IO_PD(136),		SH7372_PIN_IO_PD(137),
918	SH7372_PIN_IO_PD(138),		SH7372_PIN_IO_PD(139),
919	SH7372_PIN_IO_PD(140),		SH7372_PIN_IO_PD(141),
920	SH7372_PIN_IO_PD(142),		SH7372_PIN_IO_PU_PD(143),
921	SH7372_PIN_IO_PD(144),		SH7372_PIN_IO_PD(145),
922	SH7372_PIN_IO_PD(146),		SH7372_PIN_IO_PD(147),
923	SH7372_PIN_IO_PD(148),		SH7372_PIN_IO_PD(149),
924	SH7372_PIN_IO_PD(150),		SH7372_PIN_IO_PD(151),
925	SH7372_PIN_IO_PU_PD(152),	SH7372_PIN_I_PD(153),
926	SH7372_PIN_IO_PU_PD(154),	SH7372_PIN_I_PD(155),
927	SH7372_PIN_IO_PD(156),		SH7372_PIN_IO_PD(157),
928	SH7372_PIN_I_PD(158),		SH7372_PIN_IO_PD(159),
929	SH7372_PIN_O(160),		SH7372_PIN_IO_PD(161),
930	SH7372_PIN_IO_PD(162),		SH7372_PIN_IO_PD(163),
931	SH7372_PIN_I_PD(164),		SH7372_PIN_IO_PD(165),
932	SH7372_PIN_I_PD(166),		SH7372_PIN_I_PD(167),
933	SH7372_PIN_I_PD(168),		SH7372_PIN_I_PD(169),
934	SH7372_PIN_I_PD(170),		SH7372_PIN_O(171),
935	SH7372_PIN_IO_PU_PD(172),	SH7372_PIN_IO_PU_PD(173),
936	SH7372_PIN_IO_PU_PD(174),	SH7372_PIN_IO_PU_PD(175),
937	SH7372_PIN_IO_PU_PD(176),	SH7372_PIN_IO_PU_PD(177),
938	SH7372_PIN_IO_PU_PD(178),	SH7372_PIN_O(179),
939	SH7372_PIN_IO_PU_PD(180),	SH7372_PIN_IO_PU_PD(181),
940	SH7372_PIN_IO_PU_PD(182),	SH7372_PIN_IO_PU_PD(183),
941	SH7372_PIN_IO_PU_PD(184),	SH7372_PIN_O(185),
942	SH7372_PIN_IO_PU_PD(186),	SH7372_PIN_IO_PU_PD(187),
943	SH7372_PIN_IO_PU_PD(188),	SH7372_PIN_IO_PU_PD(189),
944	SH7372_PIN_IO_PU_PD(190),
945};
946
947/* - BSC -------------------------------------------------------------------- */
948static const unsigned int bsc_data8_pins[] = {
949	/* D[0:7] */
950	46, 47, 48, 49, 50, 51, 52, 53,
951};
952static const unsigned int bsc_data8_mux[] = {
953	D0_NAF0_MARK, D1_NAF1_MARK, D2_NAF2_MARK, D3_NAF3_MARK,
954	D4_NAF4_MARK, D5_NAF5_MARK, D6_NAF6_MARK, D7_NAF7_MARK,
955};
956static const unsigned int bsc_data16_pins[] = {
957	/* D[0:15] */
958	46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
959};
960static const unsigned int bsc_data16_mux[] = {
961	D0_NAF0_MARK, D1_NAF1_MARK, D2_NAF2_MARK, D3_NAF3_MARK,
962	D4_NAF4_MARK, D5_NAF5_MARK, D6_NAF6_MARK, D7_NAF7_MARK,
963	D8_NAF8_MARK, D9_NAF9_MARK, D10_NAF10_MARK, D11_NAF11_MARK,
964	D12_NAF12_MARK, D13_NAF13_MARK, D14_NAF14_MARK, D15_NAF15_MARK,
965};
966static const unsigned int bsc_cs0_pins[] = {
967	/* CS */
968	62,
969};
970static const unsigned int bsc_cs0_mux[] = {
971	CS0_MARK,
972};
973static const unsigned int bsc_cs2_pins[] = {
974	/* CS */
975	63,
976};
977static const unsigned int bsc_cs2_mux[] = {
978	CS2_MARK,
979};
980static const unsigned int bsc_cs4_pins[] = {
981	/* CS */
982	64,
983};
984static const unsigned int bsc_cs4_mux[] = {
985	CS4_MARK,
986};
987static const unsigned int bsc_cs5a_pins[] = {
988	/* CS */
989	65,
990};
991static const unsigned int bsc_cs5a_mux[] = {
992	CS5A_MARK,
993};
994static const unsigned int bsc_cs5b_pins[] = {
995	/* CS */
996	66,
997};
998static const unsigned int bsc_cs5b_mux[] = {
999	CS5B_MARK,
1000};
1001static const unsigned int bsc_cs6a_pins[] = {
1002	/* CS */
1003	67,
1004};
1005static const unsigned int bsc_cs6a_mux[] = {
1006	CS6A_MARK,
1007};
1008static const unsigned int bsc_rd_we8_pins[] = {
1009	/* RD, WE[0] */
1010	69, 70,
1011};
1012static const unsigned int bsc_rd_we8_mux[] = {
1013	RD_FSC_MARK, WE0_FWE_MARK,
1014};
1015static const unsigned int bsc_rd_we16_pins[] = {
1016	/* RD, WE[0:1] */
1017	69, 70, 71,
1018};
1019static const unsigned int bsc_rd_we16_mux[] = {
1020	RD_FSC_MARK, WE0_FWE_MARK, WE1_MARK,
1021};
1022static const unsigned int bsc_bs_pins[] = {
1023	/* BS */
1024	19,
1025};
1026static const unsigned int bsc_bs_mux[] = {
1027	BS_MARK,
1028};
1029static const unsigned int bsc_rdwr_pins[] = {
1030	/* RDWR */
1031	75,
1032};
1033static const unsigned int bsc_rdwr_mux[] = {
1034	RDWR_MARK,
1035};
1036static const unsigned int bsc_wait_pins[] = {
1037	/* WAIT */
1038	74,
1039};
1040static const unsigned int bsc_wait_mux[] = {
1041	WAIT_MARK,
1042};
1043/* - CEU -------------------------------------------------------------------- */
1044static const unsigned int ceu_data_0_7_pins[] = {
1045	/* D[0:7] */
1046	102, 103, 104, 105, 106, 107, 108, 109,
1047};
1048static const unsigned int ceu_data_0_7_mux[] = {
1049	VIO_D0_MARK, VIO_D1_MARK, VIO_D2_MARK, VIO_D3_MARK,
1050	VIO_D4_MARK, VIO_D5_MARK, VIO_D6_MARK, VIO_D7_MARK,
1051};
1052static const unsigned int ceu_data_8_15_pins[] = {
1053	/* D[8:15] */
1054	110, 111, 112, 113, 114, 115, 116, 117,
1055};
1056static const unsigned int ceu_data_8_15_mux[] = {
1057	VIO_D8_MARK, VIO_D9_MARK, VIO_D10_MARK, VIO_D11_MARK,
1058	VIO_D12_MARK, VIO_D13_MARK, VIO_D14_MARK, VIO_D15_MARK,
1059};
1060static const unsigned int ceu_clk_0_pins[] = {
1061	/* CKO */
1062	120,
1063};
1064static const unsigned int ceu_clk_0_mux[] = {
1065	VIO_CKO_MARK,
1066};
1067static const unsigned int ceu_clk_1_pins[] = {
1068	/* CKO */
1069	16,
1070};
1071static const unsigned int ceu_clk_1_mux[] = {
1072	VIO_CKO1_MARK,
1073};
1074static const unsigned int ceu_clk_2_pins[] = {
1075	/* CKO */
1076	17,
1077};
1078static const unsigned int ceu_clk_2_mux[] = {
1079	VIO_CKO2_MARK,
1080};
1081static const unsigned int ceu_sync_pins[] = {
1082	/* CLK, VD, HD */
1083	118, 100, 101,
1084};
1085static const unsigned int ceu_sync_mux[] = {
1086	VIO_CLK_MARK, VIO_VD_MARK, VIO_HD_MARK,
1087};
1088static const unsigned int ceu_field_pins[] = {
1089	/* FIELD */
1090	119,
1091};
1092static const unsigned int ceu_field_mux[] = {
1093	VIO_FIELD_MARK,
1094};
1095/* - FLCTL ------------------------------------------------------------------ */
1096static const unsigned int flctl_data_pins[] = {
1097	/* NAF[0:15] */
1098	46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1099};
1100static const unsigned int flctl_data_mux[] = {
1101	D0_NAF0_MARK, D1_NAF1_MARK, D2_NAF2_MARK, D3_NAF3_MARK,
1102	D4_NAF4_MARK, D5_NAF5_MARK, D6_NAF6_MARK, D7_NAF7_MARK,
1103	D8_NAF8_MARK, D9_NAF9_MARK, D10_NAF10_MARK, D11_NAF11_MARK,
1104	D12_NAF12_MARK, D13_NAF13_MARK, D14_NAF14_MARK, D15_NAF15_MARK,
1105};
1106static const unsigned int flctl_ce0_pins[] = {
1107	/* CE */
1108	68,
1109};
1110static const unsigned int flctl_ce0_mux[] = {
1111	FCE0_MARK,
1112};
1113static const unsigned int flctl_ce1_pins[] = {
1114	/* CE */
1115	66,
1116};
1117static const unsigned int flctl_ce1_mux[] = {
1118	FCE1_MARK,
1119};
1120static const unsigned int flctl_ctrl_pins[] = {
1121	/* FCDE, FOE, FSC, FWE, FRB */
1122	24, 23, 69, 70, 73,
1123};
1124static const unsigned int flctl_ctrl_mux[] = {
1125	A5_FCDE_MARK, A4_FOE_MARK, RD_FSC_MARK, WE0_FWE_MARK, FRB_MARK,
1126};
1127/* - FSIA ------------------------------------------------------------------- */
1128static const unsigned int fsia_mclk_in_pins[] = {
1129	/* CK */
1130	4,
1131};
1132static const unsigned int fsia_mclk_in_mux[] = {
1133	FSIACK_MARK,
1134};
1135static const unsigned int fsia_mclk_out_pins[] = {
1136	/* OMC */
1137	8,
1138};
1139static const unsigned int fsia_mclk_out_mux[] = {
1140	FSIAOMC_MARK,
1141};
1142static const unsigned int fsia_sclk_in_pins[] = {
1143	/* ILR, IBT */
1144	5, 6,
1145};
1146static const unsigned int fsia_sclk_in_mux[] = {
1147	FSIAILR_MARK, FSIAIBT_MARK,
1148};
1149static const unsigned int fsia_sclk_out_pins[] = {
1150	/* OLR, OBT */
1151	9, 10,
1152};
1153static const unsigned int fsia_sclk_out_mux[] = {
1154	FSIAOLR_MARK, FSIAOBT_MARK,
1155};
1156static const unsigned int fsia_data_in_pins[] = {
1157	/* ISLD */
1158	7,
1159};
1160static const unsigned int fsia_data_in_mux[] = {
1161	FSIAISLD_MARK,
1162};
1163static const unsigned int fsia_data_out_pins[] = {
1164	/* OSLD */
1165	11,
1166};
1167static const unsigned int fsia_data_out_mux[] = {
1168	FSIAOSLD_MARK,
1169};
1170static const unsigned int fsia_spdif_0_pins[] = {
1171	/* SPDIF */
1172	11,
1173};
1174static const unsigned int fsia_spdif_0_mux[] = {
1175	FSIASPDIF_11_MARK,
1176};
1177static const unsigned int fsia_spdif_1_pins[] = {
1178	/* SPDIF */
1179	15,
1180};
1181static const unsigned int fsia_spdif_1_mux[] = {
1182	FSIASPDIF_15_MARK,
1183};
1184/* - FSIB ------------------------------------------------------------------- */
1185static const unsigned int fsib_mclk_in_pins[] = {
1186	/* CK */
1187	4,
1188};
1189static const unsigned int fsib_mclk_in_mux[] = {
1190	FSIBCK_MARK,
1191};
1192/* - HDMI ------------------------------------------------------------------- */
1193static const unsigned int hdmi_pins[] = {
1194	/* HPD, CEC */
1195	169, 170,
1196};
1197static const unsigned int hdmi_mux[] = {
1198	HDMI_HPD_MARK, HDMI_CEC_MARK,
1199};
1200/* - INTC ------------------------------------------------------------------- */
1201IRQC_PINS_MUX(0, 6, 162);
1202IRQC_PIN_MUX(1, 12);
1203IRQC_PINS_MUX(2, 4, 5);
1204IRQC_PINS_MUX(3, 8, 16);
1205IRQC_PINS_MUX(4, 17, 163);
1206IRQC_PIN_MUX(5, 18);
1207IRQC_PINS_MUX(6, 39, 164);
1208IRQC_PINS_MUX(7, 40, 167);
1209IRQC_PINS_MUX(8, 41, 168);
1210IRQC_PINS_MUX(9, 42, 169);
1211IRQC_PIN_MUX(10, 65);
1212IRQC_PIN_MUX(11, 67);
1213IRQC_PINS_MUX(12, 80, 137);
1214IRQC_PINS_MUX(13, 81, 145);
1215IRQC_PINS_MUX(14, 82, 146);
1216IRQC_PINS_MUX(15, 83, 147);
1217IRQC_PINS_MUX(16, 84, 170);
1218IRQC_PIN_MUX(17, 85);
1219IRQC_PIN_MUX(18, 86);
1220IRQC_PIN_MUX(19, 87);
1221IRQC_PIN_MUX(20, 92);
1222IRQC_PIN_MUX(21, 93);
1223IRQC_PIN_MUX(22, 94);
1224IRQC_PIN_MUX(23, 95);
1225IRQC_PIN_MUX(24, 112);
1226IRQC_PIN_MUX(25, 119);
1227IRQC_PINS_MUX(26, 121, 172);
1228IRQC_PINS_MUX(27, 122, 180);
1229IRQC_PINS_MUX(28, 123, 181);
1230IRQC_PINS_MUX(29, 129, 182);
1231IRQC_PINS_MUX(30, 130, 183);
1232IRQC_PINS_MUX(31, 138, 184);
1233/* - KEYSC ------------------------------------------------------------------ */
1234static const unsigned int keysc_in04_0_pins[] = {
1235	/* KEYIN[0:4] */
1236	136, 135, 134, 133, 132,
1237};
1238static const unsigned int keysc_in04_0_mux[] = {
1239	KEYIN0_136_MARK, KEYIN1_135_MARK, KEYIN2_134_MARK, KEYIN3_133_MARK,
1240	KEYIN4_MARK,
1241};
1242static const unsigned int keysc_in04_1_pins[] = {
1243	/* KEYIN[0:4] */
1244	121, 122, 123, 124, 132,
1245};
1246static const unsigned int keysc_in04_1_mux[] = {
1247	KEYIN0_121_MARK, KEYIN1_122_MARK, KEYIN2_123_MARK, KEYIN3_124_MARK,
1248	KEYIN4_MARK,
1249};
1250static const unsigned int keysc_in5_pins[] = {
1251	/* KEYIN5 */
1252	131,
1253};
1254static const unsigned int keysc_in5_mux[] = {
1255	KEYIN5_MARK,
1256};
1257static const unsigned int keysc_in6_pins[] = {
1258	/* KEYIN6 */
1259	130,
1260};
1261static const unsigned int keysc_in6_mux[] = {
1262	KEYIN6_MARK,
1263};
1264static const unsigned int keysc_in7_pins[] = {
1265	/* KEYIN7 */
1266	129,
1267};
1268static const unsigned int keysc_in7_mux[] = {
1269	KEYIN7_MARK,
1270};
1271static const unsigned int keysc_out4_pins[] = {
1272	/* KEYOUT[0:3] */
1273	128, 127, 126, 125,
1274};
1275static const unsigned int keysc_out4_mux[] = {
1276	KEYOUT0_MARK, KEYOUT1_MARK, KEYOUT2_MARK, KEYOUT3_MARK,
1277};
1278static const unsigned int keysc_out5_pins[] = {
1279	/* KEYOUT[0:4] */
1280	128, 127, 126, 125, 124,
1281};
1282static const unsigned int keysc_out5_mux[] = {
1283	KEYOUT0_MARK, KEYOUT1_MARK, KEYOUT2_MARK, KEYOUT3_MARK,
1284	KEYOUT4_MARK,
1285};
1286static const unsigned int keysc_out6_pins[] = {
1287	/* KEYOUT[0:5] */
1288	128, 127, 126, 125, 124, 123,
1289};
1290static const unsigned int keysc_out6_mux[] = {
1291	KEYOUT0_MARK, KEYOUT1_MARK, KEYOUT2_MARK, KEYOUT3_MARK,
1292	KEYOUT4_MARK, KEYOUT5_MARK,
1293};
1294static const unsigned int keysc_out8_pins[] = {
1295	/* KEYOUT[0:7] */
1296	128, 127, 126, 125, 124, 123, 122, 121,
1297};
1298static const unsigned int keysc_out8_mux[] = {
1299	KEYOUT0_MARK, KEYOUT1_MARK, KEYOUT2_MARK, KEYOUT3_MARK,
1300	KEYOUT4_MARK, KEYOUT5_MARK, KEYOUT6_MARK, KEYOUT7_MARK,
1301};
1302/* - LCD -------------------------------------------------------------------- */
1303static const unsigned int lcd_data8_pins[] = {
1304	/* D[0:7] */
1305	121, 122, 123, 124, 125, 126, 127, 128,
1306};
1307static const unsigned int lcd_data8_mux[] = {
1308	/* LCDC */
1309	LCDD0_MARK, LCDD1_MARK, LCDD2_MARK, LCDD3_MARK,
1310	LCDD4_MARK, LCDD5_MARK, LCDD6_MARK, LCDD7_MARK,
1311};
1312static const unsigned int lcd_data9_pins[] = {
1313	/* D[0:8] */
1314	121, 122, 123, 124, 125, 126, 127, 128,
1315	129,
1316	137, 138, 139, 140, 141, 142, 143, 144,
1317};
1318static const unsigned int lcd_data9_mux[] = {
1319	LCDD0_MARK, LCDD1_MARK, LCDD2_MARK, LCDD3_MARK,
1320	LCDD4_MARK, LCDD5_MARK, LCDD6_MARK, LCDD7_MARK,
1321	LCDD8_MARK,
1322};
1323static const unsigned int lcd_data12_pins[] = {
1324	/* D[0:11] */
1325	121, 122, 123, 124, 125, 126, 127, 128,
1326	129, 130, 131, 132,
1327};
1328static const unsigned int lcd_data12_mux[] = {
1329	LCDD0_MARK, LCDD1_MARK, LCDD2_MARK, LCDD3_MARK,
1330	LCDD4_MARK, LCDD5_MARK, LCDD6_MARK, LCDD7_MARK,
1331	LCDD8_MARK, LCDD9_MARK,	LCDD10_MARK, LCDD11_MARK,
1332};
1333static const unsigned int lcd_data16_pins[] = {
1334	/* D[0:15] */
1335	121, 122, 123, 124, 125, 126, 127, 128,
1336	129, 130, 131, 132, 133, 134, 135, 136,
1337};
1338static const unsigned int lcd_data16_mux[] = {
1339	LCDD0_MARK, LCDD1_MARK, LCDD2_MARK, LCDD3_MARK,
1340	LCDD4_MARK, LCDD5_MARK, LCDD6_MARK, LCDD7_MARK,
1341	LCDD8_MARK, LCDD9_MARK,	LCDD10_MARK, LCDD11_MARK,
1342	LCDD12_MARK, LCDD13_MARK, LCDD14_MARK, LCDD15_MARK,
1343};
1344static const unsigned int lcd_data18_pins[] = {
1345	/* D[0:17] */
1346	121, 122, 123, 124, 125, 126, 127, 128,
1347	129, 130, 131, 132, 133, 134, 135, 136,
1348	137, 138,
1349};
1350static const unsigned int lcd_data18_mux[] = {
1351	LCDD0_MARK, LCDD1_MARK, LCDD2_MARK, LCDD3_MARK,
1352	LCDD4_MARK, LCDD5_MARK, LCDD6_MARK, LCDD7_MARK,
1353	LCDD8_MARK, LCDD9_MARK,	LCDD10_MARK, LCDD11_MARK,
1354	LCDD12_MARK, LCDD13_MARK, LCDD14_MARK, LCDD15_MARK,
1355	LCDD16_MARK, LCDD17_MARK,
1356};
1357static const unsigned int lcd_data24_pins[] = {
1358	/* D[0:23] */
1359	121, 122, 123, 124, 125, 126, 127, 128,
1360	129, 130, 131, 132, 133, 134, 135, 136,
1361	137, 138, 139, 140, 141, 142, 143, 144,
1362};
1363static const unsigned int lcd_data24_mux[] = {
1364	LCDD0_MARK, LCDD1_MARK, LCDD2_MARK, LCDD3_MARK,
1365	LCDD4_MARK, LCDD5_MARK, LCDD6_MARK, LCDD7_MARK,
1366	LCDD8_MARK, LCDD9_MARK,	LCDD10_MARK, LCDD11_MARK,
1367	LCDD12_MARK, LCDD13_MARK, LCDD14_MARK, LCDD15_MARK,
1368	LCDD16_MARK, LCDD17_MARK, LCDD18_MARK, LCDD19_MARK,
1369	LCDD20_MARK, LCDD21_MARK, LCDD22_MARK, LCDD23_MARK,
1370};
1371static const unsigned int lcd_display_pins[] = {
1372	/* DON */
1373	151,
1374};
1375static const unsigned int lcd_display_mux[] = {
1376	LCDDON_MARK,
1377};
1378static const unsigned int lcd_lclk_pins[] = {
1379	/* LCLK */
1380	150,
1381};
1382static const unsigned int lcd_lclk_mux[] = {
1383	LCDLCLK_MARK,
1384};
1385static const unsigned int lcd_sync_pins[] = {
1386	/* VSYN, HSYN, DCK, DISP */
1387	146, 145, 147, 149,
1388};
1389static const unsigned int lcd_sync_mux[] = {
1390	LCDVSYN_MARK, LCDHSYN_MARK, LCDDCK_MARK, LCDDISP_MARK,
1391};
1392static const unsigned int lcd_sys_pins[] = {
1393	/* CS, WR, RD, RS */
1394	145, 147, 148, 149,
1395};
1396static const unsigned int lcd_sys_mux[] = {
1397	LCDCS_MARK, LCDWR_MARK, LCDRD_MARK, LCDRS_MARK,
1398};
1399/* - MMCIF ------------------------------------------------------------------ */
1400static const unsigned int mmc0_data1_0_pins[] = {
1401	/* D[0] */
1402	84,
1403};
1404static const unsigned int mmc0_data1_0_mux[] = {
1405	MMCD0_0_MARK,
1406};
1407static const unsigned int mmc0_data4_0_pins[] = {
1408	/* D[0:3] */
1409	84, 85, 86, 87,
1410};
1411static const unsigned int mmc0_data4_0_mux[] = {
1412	MMCD0_0_MARK, MMCD0_1_MARK, MMCD0_2_MARK, MMCD0_3_MARK,
1413};
1414static const unsigned int mmc0_data8_0_pins[] = {
1415	/* D[0:7] */
1416	84, 85, 86, 87, 88, 89, 90, 91,
1417};
1418static const unsigned int mmc0_data8_0_mux[] = {
1419	MMCD0_0_MARK, MMCD0_1_MARK, MMCD0_2_MARK, MMCD0_3_MARK,
1420	MMCD0_4_MARK, MMCD0_5_MARK, MMCD0_6_MARK, MMCD0_7_MARK,
1421};
1422static const unsigned int mmc0_ctrl_0_pins[] = {
1423	/* CMD, CLK */
1424	92, 99,
1425};
1426static const unsigned int mmc0_ctrl_0_mux[] = {
1427	MMCCMD0_MARK, MMCCLK0_MARK,
1428};
1429
1430static const unsigned int mmc0_data1_1_pins[] = {
1431	/* D[0] */
1432	54,
1433};
1434static const unsigned int mmc0_data1_1_mux[] = {
1435	MMCD1_0_MARK,
1436};
1437static const unsigned int mmc0_data4_1_pins[] = {
1438	/* D[0:3] */
1439	54, 55, 56, 57,
1440};
1441static const unsigned int mmc0_data4_1_mux[] = {
1442	MMCD1_0_MARK, MMCD1_1_MARK, MMCD1_2_MARK, MMCD1_3_MARK,
1443};
1444static const unsigned int mmc0_data8_1_pins[] = {
1445	/* D[0:7] */
1446	54, 55, 56, 57, 58, 59, 60, 61,
1447};
1448static const unsigned int mmc0_data8_1_mux[] = {
1449	MMCD1_0_MARK, MMCD1_1_MARK, MMCD1_2_MARK, MMCD1_3_MARK,
1450	MMCD1_4_MARK, MMCD1_5_MARK, MMCD1_6_MARK, MMCD1_7_MARK,
1451};
1452static const unsigned int mmc0_ctrl_1_pins[] = {
1453	/* CMD, CLK */
1454	67, 66,
1455};
1456static const unsigned int mmc0_ctrl_1_mux[] = {
1457	MMCCMD1_MARK, MMCCLK1_MARK,
1458};
1459/* - SCIFA0 ----------------------------------------------------------------- */
1460static const unsigned int scifa0_data_pins[] = {
1461	/* RXD, TXD */
1462	153, 152,
1463};
1464static const unsigned int scifa0_data_mux[] = {
1465	SCIFA0_RXD_MARK, SCIFA0_TXD_MARK,
1466};
1467static const unsigned int scifa0_clk_pins[] = {
1468	/* SCK */
1469	156,
1470};
1471static const unsigned int scifa0_clk_mux[] = {
1472	SCIFA0_SCK_MARK,
1473};
1474static const unsigned int scifa0_ctrl_pins[] = {
1475	/* RTS, CTS */
1476	157, 158,
1477};
1478static const unsigned int scifa0_ctrl_mux[] = {
1479	SCIFA0_RTS_MARK, SCIFA0_CTS_MARK,
1480};
1481/* - SCIFA1 ----------------------------------------------------------------- */
1482static const unsigned int scifa1_data_pins[] = {
1483	/* RXD, TXD */
1484	155, 154,
1485};
1486static const unsigned int scifa1_data_mux[] = {
1487	SCIFA1_RXD_MARK, SCIFA1_TXD_MARK,
1488};
1489static const unsigned int scifa1_clk_pins[] = {
1490	/* SCK */
1491	159,
1492};
1493static const unsigned int scifa1_clk_mux[] = {
1494	SCIFA1_SCK_MARK,
1495};
1496static const unsigned int scifa1_ctrl_pins[] = {
1497	/* RTS, CTS */
1498	160, 161,
1499};
1500static const unsigned int scifa1_ctrl_mux[] = {
1501	SCIFA1_RTS_MARK, SCIFA1_CTS_MARK,
1502};
1503/* - SCIFA2 ----------------------------------------------------------------- */
1504static const unsigned int scifa2_data_pins[] = {
1505	/* RXD, TXD */
1506	97, 96,
1507};
1508static const unsigned int scifa2_data_mux[] = {
1509	SCIFA2_RXD1_MARK, SCIFA2_TXD1_MARK,
1510};
1511static const unsigned int scifa2_clk_pins[] = {
1512	/* SCK */
1513	98,
1514};
1515static const unsigned int scifa2_clk_mux[] = {
1516	SCIFA2_SCK1_MARK,
1517};
1518static const unsigned int scifa2_ctrl_pins[] = {
1519	/* RTS, CTS */
1520	95, 94,
1521};
1522static const unsigned int scifa2_ctrl_mux[] = {
1523	SCIFA2_RTS1_MARK, SCIFA2_CTS1_MARK,
1524};
1525/* - SCIFA3 ----------------------------------------------------------------- */
1526static const unsigned int scifa3_data_pins[] = {
1527	/* RXD, TXD */
1528	144, 143,
1529};
1530static const unsigned int scifa3_data_mux[] = {
1531	SCIFA3_RXD_MARK, SCIFA3_TXD_MARK,
1532};
1533static const unsigned int scifa3_clk_pins[] = {
1534	/* SCK */
1535	142,
1536};
1537static const unsigned int scifa3_clk_mux[] = {
1538	SCIFA3_SCK_MARK,
1539};
1540static const unsigned int scifa3_ctrl_0_pins[] = {
1541	/* RTS, CTS */
1542	44, 43,
1543};
1544static const unsigned int scifa3_ctrl_0_mux[] = {
1545	SCIFA3_RTS_44_MARK, SCIFA3_CTS_43_MARK,
1546};
1547static const unsigned int scifa3_ctrl_1_pins[] = {
1548	/* RTS, CTS */
1549	141, 140,
1550};
1551static const unsigned int scifa3_ctrl_1_mux[] = {
1552	SCIFA3_RTS_141_MARK, SCIFA3_CTS_140_MARK,
1553};
1554/* - SCIFA4 ----------------------------------------------------------------- */
1555static const unsigned int scifa4_data_pins[] = {
1556	/* RXD, TXD */
1557	5, 6,
1558};
1559static const unsigned int scifa4_data_mux[] = {
1560	SCIFA4_RXD_MARK, SCIFA4_TXD_MARK,
1561};
1562/* - SCIFA5 ----------------------------------------------------------------- */
1563static const unsigned int scifa5_data_pins[] = {
1564	/* RXD, TXD */
1565	8, 12,
1566};
1567static const unsigned int scifa5_data_mux[] = {
1568	SCIFA5_RXD_MARK, SCIFA5_TXD_MARK,
1569};
1570/* - SCIFB ------------------------------------------------------------------ */
1571static const unsigned int scifb_data_pins[] = {
1572	/* RXD, TXD */
1573	166, 165,
1574};
1575static const unsigned int scifb_data_mux[] = {
1576	SCIFB_RXD_MARK, SCIFB_TXD_MARK,
1577};
1578static const unsigned int scifb_clk_pins[] = {
1579	/* SCK */
1580	162,
1581};
1582static const unsigned int scifb_clk_mux[] = {
1583	SCIFB_SCK_MARK,
1584};
1585static const unsigned int scifb_ctrl_pins[] = {
1586	/* RTS, CTS */
1587	163, 164,
1588};
1589static const unsigned int scifb_ctrl_mux[] = {
1590	SCIFB_RTS_MARK, SCIFB_CTS_MARK,
1591};
1592/* - SDHI0 ------------------------------------------------------------------ */
1593static const unsigned int sdhi0_data1_pins[] = {
1594	/* D0 */
1595	173,
1596};
1597static const unsigned int sdhi0_data1_mux[] = {
1598	SDHID0_0_MARK,
1599};
1600static const unsigned int sdhi0_data4_pins[] = {
1601	/* D[0:3] */
1602	173, 174, 175, 176,
1603};
1604static const unsigned int sdhi0_data4_mux[] = {
1605	SDHID0_0_MARK, SDHID0_1_MARK, SDHID0_2_MARK, SDHID0_3_MARK,
1606};
1607static const unsigned int sdhi0_ctrl_pins[] = {
1608	/* CMD, CLK */
1609	177, 171,
1610};
1611static const unsigned int sdhi0_ctrl_mux[] = {
1612	SDHICMD0_MARK, SDHICLK0_MARK,
1613};
1614static const unsigned int sdhi0_cd_pins[] = {
1615	/* CD */
1616	172,
1617};
1618static const unsigned int sdhi0_cd_mux[] = {
1619	SDHICD0_MARK,
1620};
1621static const unsigned int sdhi0_wp_pins[] = {
1622	/* WP */
1623	178,
1624};
1625static const unsigned int sdhi0_wp_mux[] = {
1626	SDHIWP0_MARK,
1627};
1628/* - SDHI1 ------------------------------------------------------------------ */
1629static const unsigned int sdhi1_data1_pins[] = {
1630	/* D0 */
1631	180,
1632};
1633static const unsigned int sdhi1_data1_mux[] = {
1634	SDHID1_0_MARK,
1635};
1636static const unsigned int sdhi1_data4_pins[] = {
1637	/* D[0:3] */
1638	180, 181, 182, 183,
1639};
1640static const unsigned int sdhi1_data4_mux[] = {
1641	SDHID1_0_MARK, SDHID1_1_MARK, SDHID1_2_MARK, SDHID1_3_MARK,
1642};
1643static const unsigned int sdhi1_ctrl_pins[] = {
1644	/* CMD, CLK */
1645	184, 179,
1646};
1647static const unsigned int sdhi1_ctrl_mux[] = {
1648	SDHICMD1_MARK, SDHICLK1_MARK,
1649};
1650
1651static const unsigned int sdhi2_data1_pins[] = {
1652	/* D0 */
1653	186,
1654};
1655static const unsigned int sdhi2_data1_mux[] = {
1656	SDHID2_0_MARK,
1657};
1658static const unsigned int sdhi2_data4_pins[] = {
1659	/* D[0:3] */
1660	186, 187, 188, 189,
1661};
1662static const unsigned int sdhi2_data4_mux[] = {
1663	SDHID2_0_MARK, SDHID2_1_MARK, SDHID2_2_MARK, SDHID2_3_MARK,
1664};
1665static const unsigned int sdhi2_ctrl_pins[] = {
1666	/* CMD, CLK */
1667	190, 185,
1668};
1669static const unsigned int sdhi2_ctrl_mux[] = {
1670	SDHICMD2_MARK, SDHICLK2_MARK,
1671};
1672/* - USB0 ------------------------------------------------------------------- */
1673static const unsigned int usb0_vbus_pins[] = {
1674	/* VBUS */
1675	167,
1676};
1677static const unsigned int usb0_vbus_mux[] = {
1678	VBUS0_0_MARK,
1679};
1680static const unsigned int usb0_otg_id_pins[] = {
1681	/* IDIN */
1682	113,
1683};
1684static const unsigned int usb0_otg_id_mux[] = {
1685	IDIN_0_MARK,
1686};
1687static const unsigned int usb0_otg_ctrl_pins[] = {
1688	/* PWEN, EXTLP, OVCN, OVCN2 */
1689	116, 114, 117, 115,
1690};
1691static const unsigned int usb0_otg_ctrl_mux[] = {
1692	PWEN_0_MARK, EXTLP_0_MARK, OVCN_0_MARK, OVCN2_0_MARK,
1693};
1694/* - USB1 ------------------------------------------------------------------- */
1695static const unsigned int usb1_vbus_pins[] = {
1696	/* VBUS */
1697	168,
1698};
1699static const unsigned int usb1_vbus_mux[] = {
1700	VBUS0_1_MARK,
1701};
1702static const unsigned int usb1_otg_id_0_pins[] = {
1703	/* IDIN */
1704	113,
1705};
1706static const unsigned int usb1_otg_id_0_mux[] = {
1707	IDIN_1_113_MARK,
1708};
1709static const unsigned int usb1_otg_id_1_pins[] = {
1710	/* IDIN */
1711	18,
1712};
1713static const unsigned int usb1_otg_id_1_mux[] = {
1714	IDIN_1_18_MARK,
1715};
1716static const unsigned int usb1_otg_ctrl_0_pins[] = {
1717	/* PWEN, EXTLP, OVCN, OVCN2 */
1718	115, 116, 114, 117, 113,
1719};
1720static const unsigned int usb1_otg_ctrl_0_mux[] = {
1721	PWEN_1_115_MARK, EXTLP_1_MARK, OVCN_1_114_MARK, OVCN2_1_MARK,
1722};
1723static const unsigned int usb1_otg_ctrl_1_pins[] = {
1724	/* PWEN, EXTLP, OVCN, OVCN2 */
1725	138, 116, 162, 117, 18,
1726};
1727static const unsigned int usb1_otg_ctrl_1_mux[] = {
1728	PWEN_1_138_MARK, EXTLP_1_MARK, OVCN_1_162_MARK, OVCN2_1_MARK,
1729};
1730
1731static const struct sh_pfc_pin_group pinmux_groups[] = {
1732	SH_PFC_PIN_GROUP(bsc_data8),
1733	SH_PFC_PIN_GROUP(bsc_data16),
1734	SH_PFC_PIN_GROUP(bsc_cs0),
1735	SH_PFC_PIN_GROUP(bsc_cs2),
1736	SH_PFC_PIN_GROUP(bsc_cs4),
1737	SH_PFC_PIN_GROUP(bsc_cs5a),
1738	SH_PFC_PIN_GROUP(bsc_cs5b),
1739	SH_PFC_PIN_GROUP(bsc_cs6a),
1740	SH_PFC_PIN_GROUP(bsc_rd_we8),
1741	SH_PFC_PIN_GROUP(bsc_rd_we16),
1742	SH_PFC_PIN_GROUP(bsc_bs),
1743	SH_PFC_PIN_GROUP(bsc_rdwr),
1744	SH_PFC_PIN_GROUP(ceu_data_0_7),
1745	SH_PFC_PIN_GROUP(ceu_data_8_15),
1746	SH_PFC_PIN_GROUP(ceu_clk_0),
1747	SH_PFC_PIN_GROUP(ceu_clk_1),
1748	SH_PFC_PIN_GROUP(ceu_clk_2),
1749	SH_PFC_PIN_GROUP(ceu_sync),
1750	SH_PFC_PIN_GROUP(ceu_field),
1751	SH_PFC_PIN_GROUP(flctl_data),
1752	SH_PFC_PIN_GROUP(flctl_ce0),
1753	SH_PFC_PIN_GROUP(flctl_ce1),
1754	SH_PFC_PIN_GROUP(flctl_ctrl),
1755	SH_PFC_PIN_GROUP(fsia_mclk_in),
1756	SH_PFC_PIN_GROUP(fsia_mclk_out),
1757	SH_PFC_PIN_GROUP(fsia_sclk_in),
1758	SH_PFC_PIN_GROUP(fsia_sclk_out),
1759	SH_PFC_PIN_GROUP(fsia_data_in),
1760	SH_PFC_PIN_GROUP(fsia_data_out),
1761	SH_PFC_PIN_GROUP(fsia_spdif_0),
1762	SH_PFC_PIN_GROUP(fsia_spdif_1),
1763	SH_PFC_PIN_GROUP(fsib_mclk_in),
1764	SH_PFC_PIN_GROUP(hdmi),
1765	SH_PFC_PIN_GROUP(intc_irq0_0),
1766	SH_PFC_PIN_GROUP(intc_irq0_1),
1767	SH_PFC_PIN_GROUP(intc_irq1),
1768	SH_PFC_PIN_GROUP(intc_irq2_0),
1769	SH_PFC_PIN_GROUP(intc_irq2_1),
1770	SH_PFC_PIN_GROUP(intc_irq3_0),
1771	SH_PFC_PIN_GROUP(intc_irq3_1),
1772	SH_PFC_PIN_GROUP(intc_irq4_0),
1773	SH_PFC_PIN_GROUP(intc_irq4_1),
1774	SH_PFC_PIN_GROUP(intc_irq5),
1775	SH_PFC_PIN_GROUP(intc_irq6_0),
1776	SH_PFC_PIN_GROUP(intc_irq6_1),
1777	SH_PFC_PIN_GROUP(intc_irq7_0),
1778	SH_PFC_PIN_GROUP(intc_irq7_1),
1779	SH_PFC_PIN_GROUP(intc_irq8_0),
1780	SH_PFC_PIN_GROUP(intc_irq8_1),
1781	SH_PFC_PIN_GROUP(intc_irq9_0),
1782	SH_PFC_PIN_GROUP(intc_irq9_1),
1783	SH_PFC_PIN_GROUP(intc_irq10),
1784	SH_PFC_PIN_GROUP(intc_irq11),
1785	SH_PFC_PIN_GROUP(intc_irq12_0),
1786	SH_PFC_PIN_GROUP(intc_irq12_1),
1787	SH_PFC_PIN_GROUP(intc_irq13_0),
1788	SH_PFC_PIN_GROUP(intc_irq13_1),
1789	SH_PFC_PIN_GROUP(intc_irq14_0),
1790	SH_PFC_PIN_GROUP(intc_irq14_1),
1791	SH_PFC_PIN_GROUP(intc_irq15_0),
1792	SH_PFC_PIN_GROUP(intc_irq15_1),
1793	SH_PFC_PIN_GROUP(intc_irq16_0),
1794	SH_PFC_PIN_GROUP(intc_irq16_1),
1795	SH_PFC_PIN_GROUP(intc_irq17),
1796	SH_PFC_PIN_GROUP(intc_irq18),
1797	SH_PFC_PIN_GROUP(intc_irq19),
1798	SH_PFC_PIN_GROUP(intc_irq20),
1799	SH_PFC_PIN_GROUP(intc_irq21),
1800	SH_PFC_PIN_GROUP(intc_irq22),
1801	SH_PFC_PIN_GROUP(intc_irq23),
1802	SH_PFC_PIN_GROUP(intc_irq24),
1803	SH_PFC_PIN_GROUP(intc_irq25),
1804	SH_PFC_PIN_GROUP(intc_irq26_0),
1805	SH_PFC_PIN_GROUP(intc_irq26_1),
1806	SH_PFC_PIN_GROUP(intc_irq27_0),
1807	SH_PFC_PIN_GROUP(intc_irq27_1),
1808	SH_PFC_PIN_GROUP(intc_irq28_0),
1809	SH_PFC_PIN_GROUP(intc_irq28_1),
1810	SH_PFC_PIN_GROUP(intc_irq29_0),
1811	SH_PFC_PIN_GROUP(intc_irq29_1),
1812	SH_PFC_PIN_GROUP(intc_irq30_0),
1813	SH_PFC_PIN_GROUP(intc_irq30_1),
1814	SH_PFC_PIN_GROUP(intc_irq31_0),
1815	SH_PFC_PIN_GROUP(intc_irq31_1),
1816	SH_PFC_PIN_GROUP(keysc_in04_0),
1817	SH_PFC_PIN_GROUP(keysc_in04_1),
1818	SH_PFC_PIN_GROUP(keysc_in5),
1819	SH_PFC_PIN_GROUP(keysc_in6),
1820	SH_PFC_PIN_GROUP(keysc_in7),
1821	SH_PFC_PIN_GROUP(keysc_out4),
1822	SH_PFC_PIN_GROUP(keysc_out5),
1823	SH_PFC_PIN_GROUP(keysc_out6),
1824	SH_PFC_PIN_GROUP(keysc_out8),
1825	SH_PFC_PIN_GROUP(lcd_data8),
1826	SH_PFC_PIN_GROUP(lcd_data9),
1827	SH_PFC_PIN_GROUP(lcd_data12),
1828	SH_PFC_PIN_GROUP(lcd_data16),
1829	SH_PFC_PIN_GROUP(lcd_data18),
1830	SH_PFC_PIN_GROUP(lcd_data24),
1831	SH_PFC_PIN_GROUP(lcd_display),
1832	SH_PFC_PIN_GROUP(lcd_lclk),
1833	SH_PFC_PIN_GROUP(lcd_sync),
1834	SH_PFC_PIN_GROUP(lcd_sys),
1835	SH_PFC_PIN_GROUP(mmc0_data1_0),
1836	SH_PFC_PIN_GROUP(mmc0_data4_0),
1837	SH_PFC_PIN_GROUP(mmc0_data8_0),
1838	SH_PFC_PIN_GROUP(mmc0_ctrl_0),
1839	SH_PFC_PIN_GROUP(mmc0_data1_1),
1840	SH_PFC_PIN_GROUP(mmc0_data4_1),
1841	SH_PFC_PIN_GROUP(mmc0_data8_1),
1842	SH_PFC_PIN_GROUP(mmc0_ctrl_1),
1843	SH_PFC_PIN_GROUP(scifa0_data),
1844	SH_PFC_PIN_GROUP(scifa0_clk),
1845	SH_PFC_PIN_GROUP(scifa0_ctrl),
1846	SH_PFC_PIN_GROUP(scifa1_data),
1847	SH_PFC_PIN_GROUP(scifa1_clk),
1848	SH_PFC_PIN_GROUP(scifa1_ctrl),
1849	SH_PFC_PIN_GROUP(scifa2_data),
1850	SH_PFC_PIN_GROUP(scifa2_clk),
1851	SH_PFC_PIN_GROUP(scifa2_ctrl),
1852	SH_PFC_PIN_GROUP(scifa3_data),
1853	SH_PFC_PIN_GROUP(scifa3_clk),
1854	SH_PFC_PIN_GROUP(scifa3_ctrl_0),
1855	SH_PFC_PIN_GROUP(scifa3_ctrl_1),
1856	SH_PFC_PIN_GROUP(scifa4_data),
1857	SH_PFC_PIN_GROUP(scifa5_data),
1858	SH_PFC_PIN_GROUP(scifb_data),
1859	SH_PFC_PIN_GROUP(scifb_clk),
1860	SH_PFC_PIN_GROUP(scifb_ctrl),
1861	SH_PFC_PIN_GROUP(sdhi0_data1),
1862	SH_PFC_PIN_GROUP(sdhi0_data4),
1863	SH_PFC_PIN_GROUP(sdhi0_ctrl),
1864	SH_PFC_PIN_GROUP(sdhi0_cd),
1865	SH_PFC_PIN_GROUP(sdhi0_wp),
1866	SH_PFC_PIN_GROUP(sdhi1_data1),
1867	SH_PFC_PIN_GROUP(sdhi1_data4),
1868	SH_PFC_PIN_GROUP(sdhi1_ctrl),
1869	SH_PFC_PIN_GROUP(sdhi2_data1),
1870	SH_PFC_PIN_GROUP(sdhi2_data4),
1871	SH_PFC_PIN_GROUP(sdhi2_ctrl),
1872	SH_PFC_PIN_GROUP(usb0_vbus),
1873	SH_PFC_PIN_GROUP(usb0_otg_id),
1874	SH_PFC_PIN_GROUP(usb0_otg_ctrl),
1875	SH_PFC_PIN_GROUP(usb1_vbus),
1876	SH_PFC_PIN_GROUP(usb1_otg_id_0),
1877	SH_PFC_PIN_GROUP(usb1_otg_id_1),
1878	SH_PFC_PIN_GROUP(usb1_otg_ctrl_0),
1879	SH_PFC_PIN_GROUP(usb1_otg_ctrl_1),
1880};
1881
1882static const char * const bsc_groups[] = {
1883	"bsc_data8",
1884	"bsc_data16",
1885	"bsc_cs0",
1886	"bsc_cs2",
1887	"bsc_cs4",
1888	"bsc_cs5a",
1889	"bsc_cs5b",
1890	"bsc_cs6a",
1891	"bsc_rd_we8",
1892	"bsc_rd_we16",
1893	"bsc_bs",
1894	"bsc_rdwr",
1895};
1896
1897static const char * const ceu_groups[] = {
1898	"ceu_data_0_7",
1899	"ceu_data_8_15",
1900	"ceu_clk_0",
1901	"ceu_clk_1",
1902	"ceu_clk_2",
1903	"ceu_sync",
1904	"ceu_field",
1905};
1906
1907static const char * const flctl_groups[] = {
1908	"flctl_data",
1909	"flctl_ce0",
1910	"flctl_ce1",
1911	"flctl_ctrl",
1912};
1913
1914static const char * const fsia_groups[] = {
1915	"fsia_mclk_in",
1916	"fsia_mclk_out",
1917	"fsia_sclk_in",
1918	"fsia_sclk_out",
1919	"fsia_data_in",
1920	"fsia_data_out",
1921	"fsia_spdif_0",
1922	"fsia_spdif_1",
1923};
1924
1925static const char * const fsib_groups[] = {
1926	"fsib_mclk_in",
1927};
1928
1929static const char * const hdmi_groups[] = {
1930	"hdmi",
1931};
1932
1933static const char * const intc_groups[] = {
1934	"intc_irq0_0",
1935	"intc_irq0_1",
1936	"intc_irq1",
1937	"intc_irq2_0",
1938	"intc_irq2_1",
1939	"intc_irq3_0",
1940	"intc_irq3_1",
1941	"intc_irq4_0",
1942	"intc_irq4_1",
1943	"intc_irq5",
1944	"intc_irq6_0",
1945	"intc_irq6_1",
1946	"intc_irq7_0",
1947	"intc_irq7_1",
1948	"intc_irq8_0",
1949	"intc_irq8_1",
1950	"intc_irq9_0",
1951	"intc_irq9_1",
1952	"intc_irq10",
1953	"intc_irq11",
1954	"intc_irq12_0",
1955	"intc_irq12_1",
1956	"intc_irq13_0",
1957	"intc_irq13_1",
1958	"intc_irq14_0",
1959	"intc_irq14_1",
1960	"intc_irq15_0",
1961	"intc_irq15_1",
1962	"intc_irq16_0",
1963	"intc_irq16_1",
1964	"intc_irq17",
1965	"intc_irq18",
1966	"intc_irq19",
1967	"intc_irq20",
1968	"intc_irq21",
1969	"intc_irq22",
1970	"intc_irq23",
1971	"intc_irq24",
1972	"intc_irq25",
1973	"intc_irq26_0",
1974	"intc_irq26_1",
1975	"intc_irq27_0",
1976	"intc_irq27_1",
1977	"intc_irq28_0",
1978	"intc_irq28_1",
1979	"intc_irq29_0",
1980	"intc_irq29_1",
1981	"intc_irq30_0",
1982	"intc_irq30_1",
1983	"intc_irq31_0",
1984	"intc_irq31_1",
1985};
1986
1987static const char * const keysc_groups[] = {
1988	"keysc_in04_0",
1989	"keysc_in04_1",
1990	"keysc_in5",
1991	"keysc_in6",
1992	"keysc_in7",
1993	"keysc_out4",
1994	"keysc_out5",
1995	"keysc_out6",
1996	"keysc_out8",
1997};
1998
1999static const char * const lcd_groups[] = {
2000	"lcd_data8",
2001	"lcd_data9",
2002	"lcd_data12",
2003	"lcd_data16",
2004	"lcd_data18",
2005	"lcd_data24",
2006	"lcd_display",
2007	"lcd_lclk",
2008	"lcd_sync",
2009	"lcd_sys",
2010};
2011
2012static const char * const mmc0_groups[] = {
2013	"mmc0_data1_0",
2014	"mmc0_data4_0",
2015	"mmc0_data8_0",
2016	"mmc0_ctrl_0",
2017	"mmc0_data1_1",
2018	"mmc0_data4_1",
2019	"mmc0_data8_1",
2020	"mmc0_ctrl_1",
2021};
2022
2023static const char * const scifa0_groups[] = {
2024	"scifa0_data",
2025	"scifa0_clk",
2026	"scifa0_ctrl",
2027};
2028
2029static const char * const scifa1_groups[] = {
2030	"scifa1_data",
2031	"scifa1_clk",
2032	"scifa1_ctrl",
2033};
2034
2035static const char * const scifa2_groups[] = {
2036	"scifa2_data",
2037	"scifa2_clk",
2038	"scifa2_ctrl",
2039};
2040
2041static const char * const scifa3_groups[] = {
2042	"scifa3_data",
2043	"scifa3_clk",
2044	"scifa3_ctrl_0",
2045	"scifa3_ctrl_1",
2046};
2047
2048static const char * const scifa4_groups[] = {
2049	"scifa4_data",
2050};
2051
2052static const char * const scifa5_groups[] = {
2053	"scifa5_data",
2054};
2055
2056static const char * const scifb_groups[] = {
2057	"scifb_data",
2058	"scifb_clk",
2059	"scifb_ctrl",
2060};
2061
2062static const char * const sdhi0_groups[] = {
2063	"sdhi0_data1",
2064	"sdhi0_data4",
2065	"sdhi0_ctrl",
2066	"sdhi0_cd",
2067	"sdhi0_wp",
2068};
2069
2070static const char * const sdhi1_groups[] = {
2071	"sdhi1_data1",
2072	"sdhi1_data4",
2073	"sdhi1_ctrl",
2074};
2075
2076static const char * const sdhi2_groups[] = {
2077	"sdhi2_data1",
2078	"sdhi2_data4",
2079	"sdhi2_ctrl",
2080};
2081
2082static const char * const usb0_groups[] = {
2083	"usb0_vbus",
2084	"usb0_otg_id",
2085	"usb0_otg_ctrl",
2086};
2087
2088static const char * const usb1_groups[] = {
2089	"usb1_vbus",
2090	"usb1_otg_id_0",
2091	"usb1_otg_id_1",
2092	"usb1_otg_ctrl_0",
2093	"usb1_otg_ctrl_1",
2094};
2095
2096static const struct sh_pfc_function pinmux_functions[] = {
2097	SH_PFC_FUNCTION(bsc),
2098	SH_PFC_FUNCTION(ceu),
2099	SH_PFC_FUNCTION(flctl),
2100	SH_PFC_FUNCTION(fsia),
2101	SH_PFC_FUNCTION(fsib),
2102	SH_PFC_FUNCTION(hdmi),
2103	SH_PFC_FUNCTION(intc),
2104	SH_PFC_FUNCTION(keysc),
2105	SH_PFC_FUNCTION(lcd),
2106	SH_PFC_FUNCTION(mmc0),
2107	SH_PFC_FUNCTION(scifa0),
2108	SH_PFC_FUNCTION(scifa1),
2109	SH_PFC_FUNCTION(scifa2),
2110	SH_PFC_FUNCTION(scifa3),
2111	SH_PFC_FUNCTION(scifa4),
2112	SH_PFC_FUNCTION(scifa5),
2113	SH_PFC_FUNCTION(scifb),
2114	SH_PFC_FUNCTION(sdhi0),
2115	SH_PFC_FUNCTION(sdhi1),
2116	SH_PFC_FUNCTION(sdhi2),
2117	SH_PFC_FUNCTION(usb0),
2118	SH_PFC_FUNCTION(usb1),
2119};
2120
2121static const struct pinmux_cfg_reg pinmux_config_regs[] = {
2122	PORTCR(0,	0xE6051000), /* PORT0CR */
2123	PORTCR(1,	0xE6051001), /* PORT1CR */
2124	PORTCR(2,	0xE6051002), /* PORT2CR */
2125	PORTCR(3,	0xE6051003), /* PORT3CR */
2126	PORTCR(4,	0xE6051004), /* PORT4CR */
2127	PORTCR(5,	0xE6051005), /* PORT5CR */
2128	PORTCR(6,	0xE6051006), /* PORT6CR */
2129	PORTCR(7,	0xE6051007), /* PORT7CR */
2130	PORTCR(8,	0xE6051008), /* PORT8CR */
2131	PORTCR(9,	0xE6051009), /* PORT9CR */
2132	PORTCR(10,	0xE605100A), /* PORT10CR */
2133	PORTCR(11,	0xE605100B), /* PORT11CR */
2134	PORTCR(12,	0xE605100C), /* PORT12CR */
2135	PORTCR(13,	0xE605100D), /* PORT13CR */
2136	PORTCR(14,	0xE605100E), /* PORT14CR */
2137	PORTCR(15,	0xE605100F), /* PORT15CR */
2138	PORTCR(16,	0xE6051010), /* PORT16CR */
2139	PORTCR(17,	0xE6051011), /* PORT17CR */
2140	PORTCR(18,	0xE6051012), /* PORT18CR */
2141	PORTCR(19,	0xE6051013), /* PORT19CR */
2142	PORTCR(20,	0xE6051014), /* PORT20CR */
2143	PORTCR(21,	0xE6051015), /* PORT21CR */
2144	PORTCR(22,	0xE6051016), /* PORT22CR */
2145	PORTCR(23,	0xE6051017), /* PORT23CR */
2146	PORTCR(24,	0xE6051018), /* PORT24CR */
2147	PORTCR(25,	0xE6051019), /* PORT25CR */
2148	PORTCR(26,	0xE605101A), /* PORT26CR */
2149	PORTCR(27,	0xE605101B), /* PORT27CR */
2150	PORTCR(28,	0xE605101C), /* PORT28CR */
2151	PORTCR(29,	0xE605101D), /* PORT29CR */
2152	PORTCR(30,	0xE605101E), /* PORT30CR */
2153	PORTCR(31,	0xE605101F), /* PORT31CR */
2154	PORTCR(32,	0xE6051020), /* PORT32CR */
2155	PORTCR(33,	0xE6051021), /* PORT33CR */
2156	PORTCR(34,	0xE6051022), /* PORT34CR */
2157	PORTCR(35,	0xE6051023), /* PORT35CR */
2158	PORTCR(36,	0xE6051024), /* PORT36CR */
2159	PORTCR(37,	0xE6051025), /* PORT37CR */
2160	PORTCR(38,	0xE6051026), /* PORT38CR */
2161	PORTCR(39,	0xE6051027), /* PORT39CR */
2162	PORTCR(40,	0xE6051028), /* PORT40CR */
2163	PORTCR(41,	0xE6051029), /* PORT41CR */
2164	PORTCR(42,	0xE605102A), /* PORT42CR */
2165	PORTCR(43,	0xE605102B), /* PORT43CR */
2166	PORTCR(44,	0xE605102C), /* PORT44CR */
2167	PORTCR(45,	0xE605102D), /* PORT45CR */
2168	PORTCR(46,	0xE605202E), /* PORT46CR */
2169	PORTCR(47,	0xE605202F), /* PORT47CR */
2170	PORTCR(48,	0xE6052030), /* PORT48CR */
2171	PORTCR(49,	0xE6052031), /* PORT49CR */
2172	PORTCR(50,	0xE6052032), /* PORT50CR */
2173	PORTCR(51,	0xE6052033), /* PORT51CR */
2174	PORTCR(52,	0xE6052034), /* PORT52CR */
2175	PORTCR(53,	0xE6052035), /* PORT53CR */
2176	PORTCR(54,	0xE6052036), /* PORT54CR */
2177	PORTCR(55,	0xE6052037), /* PORT55CR */
2178	PORTCR(56,	0xE6052038), /* PORT56CR */
2179	PORTCR(57,	0xE6052039), /* PORT57CR */
2180	PORTCR(58,	0xE605203A), /* PORT58CR */
2181	PORTCR(59,	0xE605203B), /* PORT59CR */
2182	PORTCR(60,	0xE605203C), /* PORT60CR */
2183	PORTCR(61,	0xE605203D), /* PORT61CR */
2184	PORTCR(62,	0xE605203E), /* PORT62CR */
2185	PORTCR(63,	0xE605203F), /* PORT63CR */
2186	PORTCR(64,	0xE6052040), /* PORT64CR */
2187	PORTCR(65,	0xE6052041), /* PORT65CR */
2188	PORTCR(66,	0xE6052042), /* PORT66CR */
2189	PORTCR(67,	0xE6052043), /* PORT67CR */
2190	PORTCR(68,	0xE6052044), /* PORT68CR */
2191	PORTCR(69,	0xE6052045), /* PORT69CR */
2192	PORTCR(70,	0xE6052046), /* PORT70CR */
2193	PORTCR(71,	0xE6052047), /* PORT71CR */
2194	PORTCR(72,	0xE6052048), /* PORT72CR */
2195	PORTCR(73,	0xE6052049), /* PORT73CR */
2196	PORTCR(74,	0xE605204A), /* PORT74CR */
2197	PORTCR(75,	0xE605204B), /* PORT75CR */
2198	PORTCR(76,	0xE605004C), /* PORT76CR */
2199	PORTCR(77,	0xE605004D), /* PORT77CR */
2200	PORTCR(78,	0xE605004E), /* PORT78CR */
2201	PORTCR(79,	0xE605004F), /* PORT79CR */
2202	PORTCR(80,	0xE6050050), /* PORT80CR */
2203	PORTCR(81,	0xE6050051), /* PORT81CR */
2204	PORTCR(82,	0xE6050052), /* PORT82CR */
2205	PORTCR(83,	0xE6050053), /* PORT83CR */
2206	PORTCR(84,	0xE6050054), /* PORT84CR */
2207	PORTCR(85,	0xE6050055), /* PORT85CR */
2208	PORTCR(86,	0xE6050056), /* PORT86CR */
2209	PORTCR(87,	0xE6050057), /* PORT87CR */
2210	PORTCR(88,	0xE6050058), /* PORT88CR */
2211	PORTCR(89,	0xE6050059), /* PORT89CR */
2212	PORTCR(90,	0xE605005A), /* PORT90CR */
2213	PORTCR(91,	0xE605005B), /* PORT91CR */
2214	PORTCR(92,	0xE605005C), /* PORT92CR */
2215	PORTCR(93,	0xE605005D), /* PORT93CR */
2216	PORTCR(94,	0xE605005E), /* PORT94CR */
2217	PORTCR(95,	0xE605005F), /* PORT95CR */
2218	PORTCR(96,	0xE6050060), /* PORT96CR */
2219	PORTCR(97,	0xE6050061), /* PORT97CR */
2220	PORTCR(98,	0xE6050062), /* PORT98CR */
2221	PORTCR(99,	0xE6050063), /* PORT99CR */
2222	PORTCR(100,	0xE6053064), /* PORT100CR */
2223	PORTCR(101,	0xE6053065), /* PORT101CR */
2224	PORTCR(102,	0xE6053066), /* PORT102CR */
2225	PORTCR(103,	0xE6053067), /* PORT103CR */
2226	PORTCR(104,	0xE6053068), /* PORT104CR */
2227	PORTCR(105,	0xE6053069), /* PORT105CR */
2228	PORTCR(106,	0xE605306A), /* PORT106CR */
2229	PORTCR(107,	0xE605306B), /* PORT107CR */
2230	PORTCR(108,	0xE605306C), /* PORT108CR */
2231	PORTCR(109,	0xE605306D), /* PORT109CR */
2232	PORTCR(110,	0xE605306E), /* PORT110CR */
2233	PORTCR(111,	0xE605306F), /* PORT111CR */
2234	PORTCR(112,	0xE6053070), /* PORT112CR */
2235	PORTCR(113,	0xE6053071), /* PORT113CR */
2236	PORTCR(114,	0xE6053072), /* PORT114CR */
2237	PORTCR(115,	0xE6053073), /* PORT115CR */
2238	PORTCR(116,	0xE6053074), /* PORT116CR */
2239	PORTCR(117,	0xE6053075), /* PORT117CR */
2240	PORTCR(118,	0xE6053076), /* PORT118CR */
2241	PORTCR(119,	0xE6053077), /* PORT119CR */
2242	PORTCR(120,	0xE6053078), /* PORT120CR */
2243	PORTCR(121,	0xE6050079), /* PORT121CR */
2244	PORTCR(122,	0xE605007A), /* PORT122CR */
2245	PORTCR(123,	0xE605007B), /* PORT123CR */
2246	PORTCR(124,	0xE605007C), /* PORT124CR */
2247	PORTCR(125,	0xE605007D), /* PORT125CR */
2248	PORTCR(126,	0xE605007E), /* PORT126CR */
2249	PORTCR(127,	0xE605007F), /* PORT127CR */
2250	PORTCR(128,	0xE6050080), /* PORT128CR */
2251	PORTCR(129,	0xE6050081), /* PORT129CR */
2252	PORTCR(130,	0xE6050082), /* PORT130CR */
2253	PORTCR(131,	0xE6050083), /* PORT131CR */
2254	PORTCR(132,	0xE6050084), /* PORT132CR */
2255	PORTCR(133,	0xE6050085), /* PORT133CR */
2256	PORTCR(134,	0xE6050086), /* PORT134CR */
2257	PORTCR(135,	0xE6050087), /* PORT135CR */
2258	PORTCR(136,	0xE6050088), /* PORT136CR */
2259	PORTCR(137,	0xE6050089), /* PORT137CR */
2260	PORTCR(138,	0xE605008A), /* PORT138CR */
2261	PORTCR(139,	0xE605008B), /* PORT139CR */
2262	PORTCR(140,	0xE605008C), /* PORT140CR */
2263	PORTCR(141,	0xE605008D), /* PORT141CR */
2264	PORTCR(142,	0xE605008E), /* PORT142CR */
2265	PORTCR(143,	0xE605008F), /* PORT143CR */
2266	PORTCR(144,	0xE6050090), /* PORT144CR */
2267	PORTCR(145,	0xE6050091), /* PORT145CR */
2268	PORTCR(146,	0xE6050092), /* PORT146CR */
2269	PORTCR(147,	0xE6050093), /* PORT147CR */
2270	PORTCR(148,	0xE6050094), /* PORT148CR */
2271	PORTCR(149,	0xE6050095), /* PORT149CR */
2272	PORTCR(150,	0xE6050096), /* PORT150CR */
2273	PORTCR(151,	0xE6050097), /* PORT151CR */
2274	PORTCR(152,	0xE6053098), /* PORT152CR */
2275	PORTCR(153,	0xE6053099), /* PORT153CR */
2276	PORTCR(154,	0xE605309A), /* PORT154CR */
2277	PORTCR(155,	0xE605309B), /* PORT155CR */
2278	PORTCR(156,	0xE605009C), /* PORT156CR */
2279	PORTCR(157,	0xE605009D), /* PORT157CR */
2280	PORTCR(158,	0xE605009E), /* PORT158CR */
2281	PORTCR(159,	0xE605009F), /* PORT159CR */
2282	PORTCR(160,	0xE60500A0), /* PORT160CR */
2283	PORTCR(161,	0xE60500A1), /* PORT161CR */
2284	PORTCR(162,	0xE60500A2), /* PORT162CR */
2285	PORTCR(163,	0xE60500A3), /* PORT163CR */
2286	PORTCR(164,	0xE60500A4), /* PORT164CR */
2287	PORTCR(165,	0xE60500A5), /* PORT165CR */
2288	PORTCR(166,	0xE60500A6), /* PORT166CR */
2289	PORTCR(167,	0xE60520A7), /* PORT167CR */
2290	PORTCR(168,	0xE60520A8), /* PORT168CR */
2291	PORTCR(169,	0xE60520A9), /* PORT169CR */
2292	PORTCR(170,	0xE60520AA), /* PORT170CR */
2293	PORTCR(171,	0xE60520AB), /* PORT171CR */
2294	PORTCR(172,	0xE60520AC), /* PORT172CR */
2295	PORTCR(173,	0xE60520AD), /* PORT173CR */
2296	PORTCR(174,	0xE60520AE), /* PORT174CR */
2297	PORTCR(175,	0xE60520AF), /* PORT175CR */
2298	PORTCR(176,	0xE60520B0), /* PORT176CR */
2299	PORTCR(177,	0xE60520B1), /* PORT177CR */
2300	PORTCR(178,	0xE60520B2), /* PORT178CR */
2301	PORTCR(179,	0xE60520B3), /* PORT179CR */
2302	PORTCR(180,	0xE60520B4), /* PORT180CR */
2303	PORTCR(181,	0xE60520B5), /* PORT181CR */
2304	PORTCR(182,	0xE60520B6), /* PORT182CR */
2305	PORTCR(183,	0xE60520B7), /* PORT183CR */
2306	PORTCR(184,	0xE60520B8), /* PORT184CR */
2307	PORTCR(185,	0xE60520B9), /* PORT185CR */
2308	PORTCR(186,	0xE60520BA), /* PORT186CR */
2309	PORTCR(187,	0xE60520BB), /* PORT187CR */
2310	PORTCR(188,	0xE60520BC), /* PORT188CR */
2311	PORTCR(189,	0xE60520BD), /* PORT189CR */
2312	PORTCR(190,	0xE60520BE), /* PORT190CR */
2313
2314	{ PINMUX_CFG_REG("MSEL1CR", 0xE605800C, 32, 1) {
2315			MSEL1CR_31_0,	MSEL1CR_31_1,
2316			MSEL1CR_30_0,	MSEL1CR_30_1,
2317			MSEL1CR_29_0,	MSEL1CR_29_1,
2318			MSEL1CR_28_0,	MSEL1CR_28_1,
2319			MSEL1CR_27_0,	MSEL1CR_27_1,
2320			MSEL1CR_26_0,	MSEL1CR_26_1,
2321			0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2322			0, 0, 0, 0, 0, 0, 0, 0,
2323			MSEL1CR_16_0,	MSEL1CR_16_1,
2324			MSEL1CR_15_0,	MSEL1CR_15_1,
2325			MSEL1CR_14_0,	MSEL1CR_14_1,
2326			MSEL1CR_13_0,	MSEL1CR_13_1,
2327			MSEL1CR_12_0,	MSEL1CR_12_1,
2328			0, 0, 0, 0,
2329			MSEL1CR_9_0,	MSEL1CR_9_1,
2330			MSEL1CR_8_0,	MSEL1CR_8_1,
2331			MSEL1CR_7_0,	MSEL1CR_7_1,
2332			MSEL1CR_6_0,	MSEL1CR_6_1,
2333			0, 0,
2334			MSEL1CR_4_0,	MSEL1CR_4_1,
2335			MSEL1CR_3_0,	MSEL1CR_3_1,
2336			MSEL1CR_2_0,	MSEL1CR_2_1,
2337			0, 0,
2338			MSEL1CR_0_0,	MSEL1CR_0_1,
2339		}
2340	},
2341	{ PINMUX_CFG_REG("MSEL3CR", 0xE6058020, 32, 1) {
2342			0, 0, 0, 0,
2343			0, 0, 0, 0,
2344			MSEL3CR_27_0,	MSEL3CR_27_1,
2345			MSEL3CR_26_0,	MSEL3CR_26_1,
2346			0, 0, 0, 0,
2347			0, 0, 0, 0,
2348			MSEL3CR_21_0,	MSEL3CR_21_1,
2349			MSEL3CR_20_0,	MSEL3CR_20_1,
2350			0, 0, 0, 0,
2351			0, 0, 0, 0,
2352			MSEL3CR_15_0,	MSEL3CR_15_1,
2353			0, 0, 0, 0,
2354			0, 0, 0, 0,
2355			0, 0,
2356			MSEL3CR_9_0,	MSEL3CR_9_1,
2357			0, 0, 0, 0,
2358			MSEL3CR_6_0,	MSEL3CR_6_1,
2359			0, 0, 0, 0,
2360			0, 0, 0, 0,
2361			0, 0, 0, 0,
2362			}
2363	},
2364	{ PINMUX_CFG_REG("MSEL4CR", 0xE6058024, 32, 1) {
2365			0, 0, 0, 0,
2366			0, 0, 0, 0,
2367			0, 0, 0, 0,
2368			0, 0, 0, 0,
2369			0, 0, 0, 0,
2370			0, 0, 0, 0,
2371			MSEL4CR_19_0,	MSEL4CR_19_1,
2372			MSEL4CR_18_0,	MSEL4CR_18_1,
2373			MSEL4CR_17_0,	MSEL4CR_17_1,
2374			MSEL4CR_16_0,	MSEL4CR_16_1,
2375			MSEL4CR_15_0,	MSEL4CR_15_1,
2376			MSEL4CR_14_0,	MSEL4CR_14_1,
2377			0, 0, 0, 0,
2378			0, 0,
2379			MSEL4CR_10_0,	MSEL4CR_10_1,
2380			0, 0, 0, 0,
2381			0, 0,
2382			MSEL4CR_6_0,	MSEL4CR_6_1,
2383			0, 0,
2384			MSEL4CR_4_0,	MSEL4CR_4_1,
2385			0, 0, 0, 0,
2386			MSEL4CR_1_0,	MSEL4CR_1_1,
2387			0, 0,
2388		}
2389	},
2390	{ },
2391};
2392
2393static const struct pinmux_data_reg pinmux_data_regs[] = {
2394	{ PINMUX_DATA_REG("PORTL095_064DR", 0xE6054008, 32) {
2395			PORT95_DATA, PORT94_DATA, PORT93_DATA, PORT92_DATA,
2396			PORT91_DATA, PORT90_DATA, PORT89_DATA, PORT88_DATA,
2397			PORT87_DATA, PORT86_DATA, PORT85_DATA, PORT84_DATA,
2398			PORT83_DATA, PORT82_DATA, PORT81_DATA, PORT80_DATA,
2399			PORT79_DATA, PORT78_DATA, PORT77_DATA, PORT76_DATA,
2400			0, 0, 0, 0,
2401			0, 0, 0, 0,
2402			0, 0, 0, 0,
2403		}
2404	},
2405	{ PINMUX_DATA_REG("PORTL127_096DR", 0xE605400C, 32) {
2406			PORT127_DATA, PORT126_DATA, PORT125_DATA, PORT124_DATA,
2407			PORT123_DATA, PORT122_DATA, PORT121_DATA, 0,
2408			0, 0, 0, 0,
2409			0, 0, 0, 0,
2410			0, 0, 0, 0,
2411			0, 0, 0, 0,
2412			0, 0, 0, 0,
2413			PORT99_DATA,  PORT98_DATA,  PORT97_DATA,  PORT96_DATA,
2414		}
2415	},
2416	{ PINMUX_DATA_REG("PORTL159_128DR", 0xE6054010, 32) {
2417			PORT159_DATA, PORT158_DATA, PORT157_DATA, PORT156_DATA,
2418			0, 0, 0, 0,
2419			PORT151_DATA, PORT150_DATA, PORT149_DATA, PORT148_DATA,
2420			PORT147_DATA, PORT146_DATA, PORT145_DATA, PORT144_DATA,
2421			PORT143_DATA, PORT142_DATA, PORT141_DATA, PORT140_DATA,
2422			PORT139_DATA, PORT138_DATA, PORT137_DATA, PORT136_DATA,
2423			PORT135_DATA, PORT134_DATA, PORT133_DATA, PORT132_DATA,
2424			PORT131_DATA, PORT130_DATA, PORT129_DATA, PORT128_DATA,
2425		}
2426	},
2427	{ PINMUX_DATA_REG("PORTL191_160DR", 0xE6054014, 32) {
2428			0, 0, 0, 0,
2429			0, 0, 0, 0,
2430			0, 0, 0, 0,
2431			0, 0, 0, 0,
2432			0, 0, 0, 0,
2433			0, 0, 0, 0,
2434			0,	      PORT166_DATA, PORT165_DATA, PORT164_DATA,
2435			PORT163_DATA, PORT162_DATA, PORT161_DATA, PORT160_DATA,
2436		}
2437	},
2438	{ PINMUX_DATA_REG("PORTD031_000DR", 0xE6055000, 32) {
2439			PORT31_DATA, PORT30_DATA, PORT29_DATA, PORT28_DATA,
2440			PORT27_DATA, PORT26_DATA, PORT25_DATA, PORT24_DATA,
2441			PORT23_DATA, PORT22_DATA, PORT21_DATA, PORT20_DATA,
2442			PORT19_DATA, PORT18_DATA, PORT17_DATA, PORT16_DATA,
2443			PORT15_DATA, PORT14_DATA, PORT13_DATA, PORT12_DATA,
2444			PORT11_DATA, PORT10_DATA, PORT9_DATA,  PORT8_DATA,
2445			PORT7_DATA,  PORT6_DATA,  PORT5_DATA,  PORT4_DATA,
2446			PORT3_DATA,  PORT2_DATA,  PORT1_DATA,  PORT0_DATA,
2447		}
2448	},
2449	{ PINMUX_DATA_REG("PORTD063_032DR", 0xE6055004, 32) {
2450			0, 0, 0, 0, 0, 0, 0, 0,
2451			0, 0, 0, 0, 0, 0, 0, 0,
2452			0,           0,           PORT45_DATA, PORT44_DATA,
2453			PORT43_DATA, PORT42_DATA, PORT41_DATA, PORT40_DATA,
2454			PORT39_DATA, PORT38_DATA, PORT37_DATA, PORT36_DATA,
2455			PORT35_DATA, PORT34_DATA, PORT33_DATA, PORT32_DATA,
2456		}
2457	},
2458	{ PINMUX_DATA_REG("PORTR063_032DR", 0xE6056004, 32) {
2459			PORT63_DATA, PORT62_DATA, PORT61_DATA, PORT60_DATA,
2460			PORT59_DATA, PORT58_DATA, PORT57_DATA, PORT56_DATA,
2461			PORT55_DATA, PORT54_DATA, PORT53_DATA, PORT52_DATA,
2462			PORT51_DATA, PORT50_DATA, PORT49_DATA, PORT48_DATA,
2463			PORT47_DATA, PORT46_DATA, 0, 0,
2464			0, 0, 0, 0,
2465			0, 0, 0, 0,
2466			0, 0, 0, 0,
2467		}
2468	},
2469	{ PINMUX_DATA_REG("PORTR095_064DR", 0xE6056008, 32) {
2470			0, 0, 0, 0,
2471			0, 0, 0, 0,
2472			0, 0, 0, 0,
2473			0, 0, 0, 0,
2474			0, 0, 0, 0,
2475			PORT75_DATA, PORT74_DATA, PORT73_DATA, PORT72_DATA,
2476			PORT71_DATA, PORT70_DATA, PORT69_DATA, PORT68_DATA,
2477			PORT67_DATA, PORT66_DATA, PORT65_DATA, PORT64_DATA,
2478		}
2479	},
2480	{ PINMUX_DATA_REG("PORTR191_160DR", 0xE6056014, 32) {
2481			0,	      PORT190_DATA, PORT189_DATA, PORT188_DATA,
2482			PORT187_DATA, PORT186_DATA, PORT185_DATA, PORT184_DATA,
2483			PORT183_DATA, PORT182_DATA, PORT181_DATA, PORT180_DATA,
2484			PORT179_DATA, PORT178_DATA, PORT177_DATA, PORT176_DATA,
2485			PORT175_DATA, PORT174_DATA, PORT173_DATA, PORT172_DATA,
2486			PORT171_DATA, PORT170_DATA, PORT169_DATA, PORT168_DATA,
2487			PORT167_DATA, 0, 0, 0,
2488			0, 0, 0, 0,
2489		}
2490	},
2491	{ PINMUX_DATA_REG("PORTU127_096DR", 0xE605700C, 32) {
2492			0, 0, 0, 0,
2493			0, 0, 0, PORT120_DATA,
2494			PORT119_DATA, PORT118_DATA, PORT117_DATA, PORT116_DATA,
2495			PORT115_DATA, PORT114_DATA, PORT113_DATA, PORT112_DATA,
2496			PORT111_DATA, PORT110_DATA, PORT109_DATA, PORT108_DATA,
2497			PORT107_DATA, PORT106_DATA, PORT105_DATA, PORT104_DATA,
2498			PORT103_DATA, PORT102_DATA, PORT101_DATA, PORT100_DATA,
2499			0, 0, 0, 0,
2500		}
2501	},
2502	{ PINMUX_DATA_REG("PORTU159_128DR", 0xE6057010, 32) {
2503			0, 0, 0, 0,
2504			PORT155_DATA, PORT154_DATA, PORT153_DATA, PORT152_DATA,
2505			0, 0, 0, 0,
2506			0, 0, 0, 0,
2507			0, 0, 0, 0,
2508			0, 0, 0, 0,
2509			0, 0, 0, 0,
2510			0, 0, 0, 0,
2511		}
2512	},
2513	{ },
2514};
2515
2516#define EXT_IRQ16L(n) evt2irq(0x200 + ((n) << 5))
2517#define EXT_IRQ16H(n) evt2irq(0x3200 + (((n) - 16) << 5))
2518static const struct pinmux_irq pinmux_irqs[] = {
2519	PINMUX_IRQ(EXT_IRQ16L(0), 6, 162),
2520	PINMUX_IRQ(EXT_IRQ16L(1), 12),
2521	PINMUX_IRQ(EXT_IRQ16L(2), 4, 5),
2522	PINMUX_IRQ(EXT_IRQ16L(3), 8, 16),
2523	PINMUX_IRQ(EXT_IRQ16L(4), 17, 163),
2524	PINMUX_IRQ(EXT_IRQ16L(5), 18),
2525	PINMUX_IRQ(EXT_IRQ16L(6), 39, 164),
2526	PINMUX_IRQ(EXT_IRQ16L(7), 40, 167),
2527	PINMUX_IRQ(EXT_IRQ16L(8), 41, 168),
2528	PINMUX_IRQ(EXT_IRQ16L(9), 42, 169),
2529	PINMUX_IRQ(EXT_IRQ16L(10), 65),
2530	PINMUX_IRQ(EXT_IRQ16L(11), 67),
2531	PINMUX_IRQ(EXT_IRQ16L(12), 80, 137),
2532	PINMUX_IRQ(EXT_IRQ16L(13), 81, 145),
2533	PINMUX_IRQ(EXT_IRQ16L(14), 82, 146),
2534	PINMUX_IRQ(EXT_IRQ16L(15), 83, 147),
2535	PINMUX_IRQ(EXT_IRQ16H(16), 84, 170),
2536	PINMUX_IRQ(EXT_IRQ16H(17), 85),
2537	PINMUX_IRQ(EXT_IRQ16H(18), 86),
2538	PINMUX_IRQ(EXT_IRQ16H(19), 87),
2539	PINMUX_IRQ(EXT_IRQ16H(20), 92),
2540	PINMUX_IRQ(EXT_IRQ16H(21), 93),
2541	PINMUX_IRQ(EXT_IRQ16H(22), 94),
2542	PINMUX_IRQ(EXT_IRQ16H(23), 95),
2543	PINMUX_IRQ(EXT_IRQ16H(24), 112),
2544	PINMUX_IRQ(EXT_IRQ16H(25), 119),
2545	PINMUX_IRQ(EXT_IRQ16H(26), 121, 172),
2546	PINMUX_IRQ(EXT_IRQ16H(27), 122, 180),
2547	PINMUX_IRQ(EXT_IRQ16H(28), 123, 181),
2548	PINMUX_IRQ(EXT_IRQ16H(29), 129, 182),
2549	PINMUX_IRQ(EXT_IRQ16H(30), 130, 183),
2550	PINMUX_IRQ(EXT_IRQ16H(31), 138, 184),
2551};
2552
2553#define PORTnCR_PULMD_OFF	(0 << 6)
2554#define PORTnCR_PULMD_DOWN	(2 << 6)
2555#define PORTnCR_PULMD_UP	(3 << 6)
2556#define PORTnCR_PULMD_MASK	(3 << 6)
2557
2558struct sh7372_portcr_group {
2559	unsigned int end_pin;
2560	unsigned int offset;
2561};
2562
2563static const struct sh7372_portcr_group sh7372_portcr_offsets[] = {
2564	{ 45,  0x1000 }, { 75,  0x2000 }, { 99,  0x0000 }, { 120, 0x3000 },
2565	{ 151, 0x0000 }, { 155, 0x3000 }, { 166, 0x0000 }, { 190, 0x2000 },
2566};
2567
2568static void __iomem *sh7372_pinmux_portcr(struct sh_pfc *pfc, unsigned int pin)
2569{
2570	unsigned int i;
2571
2572	for (i = 0; i < ARRAY_SIZE(sh7372_portcr_offsets); ++i) {
2573		const struct sh7372_portcr_group *group =
2574			&sh7372_portcr_offsets[i];
2575
2576		if (pin <= group->end_pin)
2577			return pfc->windows->virt + group->offset + pin;
2578	}
2579
2580	return NULL;
2581}
2582
2583static unsigned int sh7372_pinmux_get_bias(struct sh_pfc *pfc, unsigned int pin)
2584{
2585	void __iomem *addr = sh7372_pinmux_portcr(pfc, pin);
2586	u32 value = ioread8(addr) & PORTnCR_PULMD_MASK;
2587
2588	switch (value) {
2589	case PORTnCR_PULMD_UP:
2590		return PIN_CONFIG_BIAS_PULL_UP;
2591	case PORTnCR_PULMD_DOWN:
2592		return PIN_CONFIG_BIAS_PULL_DOWN;
2593	case PORTnCR_PULMD_OFF:
2594	default:
2595		return PIN_CONFIG_BIAS_DISABLE;
2596	}
2597}
2598
2599static void sh7372_pinmux_set_bias(struct sh_pfc *pfc, unsigned int pin,
2600				   unsigned int bias)
2601{
2602	void __iomem *addr = sh7372_pinmux_portcr(pfc, pin);
2603	u32 value = ioread8(addr) & ~PORTnCR_PULMD_MASK;
2604
2605	switch (bias) {
2606	case PIN_CONFIG_BIAS_PULL_UP:
2607		value |= PORTnCR_PULMD_UP;
2608		break;
2609	case PIN_CONFIG_BIAS_PULL_DOWN:
2610		value |= PORTnCR_PULMD_DOWN;
2611		break;
2612	}
2613
2614	iowrite8(value, addr);
2615}
2616
2617static const struct sh_pfc_soc_operations sh7372_pfc_ops = {
2618	.get_bias = sh7372_pinmux_get_bias,
2619	.set_bias = sh7372_pinmux_set_bias,
2620};
2621
2622const struct sh_pfc_soc_info sh7372_pinmux_info = {
2623	.name = "sh7372_pfc",
2624	.ops = &sh7372_pfc_ops,
2625
2626	.input = { PINMUX_INPUT_BEGIN, PINMUX_INPUT_END },
2627	.output = { PINMUX_OUTPUT_BEGIN, PINMUX_OUTPUT_END },
2628	.function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END },
2629
2630	.pins = pinmux_pins,
2631	.nr_pins = ARRAY_SIZE(pinmux_pins),
2632	.groups = pinmux_groups,
2633	.nr_groups = ARRAY_SIZE(pinmux_groups),
2634	.functions = pinmux_functions,
2635	.nr_functions = ARRAY_SIZE(pinmux_functions),
2636
2637	.cfg_regs = pinmux_config_regs,
2638	.data_regs = pinmux_data_regs,
2639
2640	.gpio_data = pinmux_data,
2641	.gpio_data_size = ARRAY_SIZE(pinmux_data),
2642
2643	.gpio_irq = pinmux_irqs,
2644	.gpio_irq_size = ARRAY_SIZE(pinmux_irqs),
2645};
2646