1/*
2 * Copyright (C) 2012-2013  Renesas Solutions Corp.
3 * Copyright (C) 2013  Magnus Damm
4 * Copyright (C) 2012  Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License as
8 * published by the Free Software Foundation; version 2 of the
9 * License.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
19 */
20#include <linux/io.h>
21#include <linux/kernel.h>
22#include <linux/pinctrl/pinconf-generic.h>
23
24#ifndef CONFIG_ARCH_MULTIPLATFORM
25#include <mach/irqs.h>
26#endif
27
28#include "core.h"
29#include "sh_pfc.h"
30
31#define CPU_ALL_PORT(fn, pfx, sfx)					\
32	/*  Port0 - Port30 */						\
33	PORT_10(0, fn, pfx, sfx),					\
34	PORT_10(10, fn, pfx##1, sfx),					\
35	PORT_10(20, fn, pfx##2, sfx),					\
36	PORT_1(30, fn, pfx##30, sfx),					\
37	/* Port32 - Port40 */						\
38	PORT_1(32, fn, pfx##32, sfx),	PORT_1(33, fn, pfx##33, sfx),	\
39	PORT_1(34, fn, pfx##34, sfx),	PORT_1(35, fn, pfx##35, sfx),	\
40	PORT_1(36, fn, pfx##36, sfx),	PORT_1(37, fn, pfx##37, sfx),	\
41	PORT_1(38, fn, pfx##38, sfx),	PORT_1(39, fn, pfx##39, sfx),	\
42	PORT_1(40, fn, pfx##40, sfx),					\
43	/* Port64  - Port85 */						\
44	PORT_1(64, fn, pfx##64, sfx),	PORT_1(65, fn, pfx##65, sfx),	\
45	PORT_1(66, fn, pfx##66, sfx),	PORT_1(67, fn, pfx##67, sfx),	\
46	PORT_1(68, fn, pfx##68, sfx),	PORT_1(69, fn, pfx##69, sfx),	\
47	PORT_10(70, fn, pfx##7, sfx),					\
48	PORT_1(80, fn, pfx##80, sfx),	PORT_1(81, fn, pfx##81, sfx),	\
49	PORT_1(82, fn, pfx##82, sfx),	PORT_1(83, fn, pfx##83, sfx),	\
50	PORT_1(84, fn, pfx##84, sfx),	PORT_1(85, fn, pfx##85, sfx),	\
51	/* Port96  - Port126 */						\
52	PORT_1(96, fn, pfx##96, sfx),	PORT_1(97, fn, pfx##97, sfx),	\
53	PORT_1(98, fn, pfx##98, sfx),	PORT_1(99, fn, pfx##99, sfx),	\
54	PORT_10(100, fn, pfx##10, sfx),					\
55	PORT_10(110, fn, pfx##11, sfx),					\
56	PORT_1(120, fn, pfx##120, sfx),	PORT_1(121, fn, pfx##121, sfx),	\
57	PORT_1(122, fn, pfx##122, sfx),	PORT_1(123, fn, pfx##123, sfx),	\
58	PORT_1(124, fn, pfx##124, sfx),	PORT_1(125, fn, pfx##125, sfx),	\
59	PORT_1(126, fn, pfx##126, sfx),					\
60	/* Port128 - Port134 */						\
61	PORT_1(128, fn, pfx##128, sfx),	PORT_1(129, fn, pfx##129, sfx),	\
62	PORT_1(130, fn, pfx##130, sfx),	PORT_1(131, fn, pfx##131, sfx),	\
63	PORT_1(132, fn, pfx##132, sfx),	PORT_1(133, fn, pfx##133, sfx),	\
64	PORT_1(134, fn, pfx##134, sfx),					\
65	/* Port160 - Port178 */						\
66	PORT_10(160, fn, pfx##16, sfx),					\
67	PORT_1(170, fn, pfx##170, sfx),	PORT_1(171, fn, pfx##171, sfx),	\
68	PORT_1(172, fn, pfx##172, sfx),	PORT_1(173, fn, pfx##173, sfx),	\
69	PORT_1(174, fn, pfx##174, sfx),	PORT_1(175, fn, pfx##175, sfx),	\
70	PORT_1(176, fn, pfx##176, sfx),	PORT_1(177, fn, pfx##177, sfx),	\
71	PORT_1(178, fn, pfx##178, sfx),					\
72	/* Port192 - Port222 */						\
73	PORT_1(192, fn, pfx##192, sfx),	PORT_1(193, fn, pfx##193, sfx),	\
74	PORT_1(194, fn, pfx##194, sfx),	PORT_1(195, fn, pfx##195, sfx),	\
75	PORT_1(196, fn, pfx##196, sfx),	PORT_1(197, fn, pfx##197, sfx),	\
76	PORT_1(198, fn, pfx##198, sfx),	PORT_1(199, fn, pfx##199, sfx),	\
77	PORT_10(200, fn, pfx##20, sfx),					\
78	PORT_10(210, fn, pfx##21, sfx),					\
79	PORT_1(220, fn, pfx##220, sfx),	PORT_1(221, fn, pfx##221, sfx),	\
80	PORT_1(222, fn, pfx##222, sfx),					\
81	/* Port224 - Port250 */						\
82	PORT_1(224, fn, pfx##224, sfx),	PORT_1(225, fn, pfx##225, sfx),	\
83	PORT_1(226, fn, pfx##226, sfx),	PORT_1(227, fn, pfx##227, sfx),	\
84	PORT_1(228, fn, pfx##228, sfx),	PORT_1(229, fn, pfx##229, sfx),	\
85	PORT_10(230, fn, pfx##23, sfx),					\
86	PORT_10(240, fn, pfx##24, sfx),					\
87	PORT_1(250, fn, pfx##250, sfx),					\
88	/* Port256 - Port283 */						\
89	PORT_1(256, fn, pfx##256, sfx),	PORT_1(257, fn, pfx##257, sfx),	\
90	PORT_1(258, fn, pfx##258, sfx),	PORT_1(259, fn, pfx##259, sfx),	\
91	PORT_10(260, fn, pfx##26, sfx),					\
92	PORT_10(270, fn, pfx##27, sfx),					\
93	PORT_1(280, fn, pfx##280, sfx),	PORT_1(281, fn, pfx##281, sfx),	\
94	PORT_1(282, fn, pfx##282, sfx),	PORT_1(283, fn, pfx##283, sfx),	\
95	/* Port288 - Port308 */						\
96	PORT_1(288, fn, pfx##288, sfx),	PORT_1(289, fn, pfx##289, sfx),	\
97	PORT_10(290, fn, pfx##29, sfx),					\
98	PORT_1(300, fn, pfx##300, sfx),	PORT_1(301, fn, pfx##301, sfx),	\
99	PORT_1(302, fn, pfx##302, sfx),	PORT_1(303, fn, pfx##303, sfx),	\
100	PORT_1(304, fn, pfx##304, sfx),	PORT_1(305, fn, pfx##305, sfx),	\
101	PORT_1(306, fn, pfx##306, sfx),	PORT_1(307, fn, pfx##307, sfx),	\
102	PORT_1(308, fn, pfx##308, sfx),					\
103	/* Port320 - Port329 */						\
104	PORT_10(320, fn, pfx##32, sfx)
105
106
107enum {
108	PINMUX_RESERVED = 0,
109
110	/* PORT0_DATA -> PORT329_DATA */
111	PINMUX_DATA_BEGIN,
112	PORT_ALL(DATA),
113	PINMUX_DATA_END,
114
115	/* PORT0_IN -> PORT329_IN */
116	PINMUX_INPUT_BEGIN,
117	PORT_ALL(IN),
118	PINMUX_INPUT_END,
119
120	/* PORT0_OUT -> PORT329_OUT */
121	PINMUX_OUTPUT_BEGIN,
122	PORT_ALL(OUT),
123	PINMUX_OUTPUT_END,
124
125	PINMUX_FUNCTION_BEGIN,
126	PORT_ALL(FN_IN), /* PORT0_FN_IN -> PORT329_FN_IN */
127	PORT_ALL(FN_OUT), /* PORT0_FN_OUT -> PORT329_FN_OUT */
128	PORT_ALL(FN0), /* PORT0_FN0 -> PORT329_FN0 */
129	PORT_ALL(FN1), /* PORT0_FN1 -> PORT329_FN1 */
130	PORT_ALL(FN2), /* PORT0_FN2 -> PORT329_FN2 */
131	PORT_ALL(FN3), /* PORT0_FN3 -> PORT329_FN3 */
132	PORT_ALL(FN4), /* PORT0_FN4 -> PORT329_FN4 */
133	PORT_ALL(FN5), /* PORT0_FN5 -> PORT329_FN5 */
134	PORT_ALL(FN6), /* PORT0_FN6 -> PORT329_FN6 */
135	PORT_ALL(FN7), /* PORT0_FN7 -> PORT329_FN7 */
136
137	MSEL1CR_31_0, MSEL1CR_31_1,
138	MSEL1CR_27_0, MSEL1CR_27_1,
139	MSEL1CR_25_0, MSEL1CR_25_1,
140	MSEL1CR_24_0, MSEL1CR_24_1,
141	MSEL1CR_22_0, MSEL1CR_22_1,
142	MSEL1CR_21_0, MSEL1CR_21_1,
143	MSEL1CR_20_0, MSEL1CR_20_1,
144	MSEL1CR_19_0, MSEL1CR_19_1,
145	MSEL1CR_18_0, MSEL1CR_18_1,
146	MSEL1CR_17_0, MSEL1CR_17_1,
147	MSEL1CR_16_0, MSEL1CR_16_1,
148	MSEL1CR_15_0, MSEL1CR_15_1,
149	MSEL1CR_14_0, MSEL1CR_14_1,
150	MSEL1CR_13_0, MSEL1CR_13_1,
151	MSEL1CR_12_0, MSEL1CR_12_1,
152	MSEL1CR_11_0, MSEL1CR_11_1,
153	MSEL1CR_10_0, MSEL1CR_10_1,
154	MSEL1CR_09_0, MSEL1CR_09_1,
155	MSEL1CR_08_0, MSEL1CR_08_1,
156	MSEL1CR_07_0, MSEL1CR_07_1,
157	MSEL1CR_06_0, MSEL1CR_06_1,
158	MSEL1CR_05_0, MSEL1CR_05_1,
159	MSEL1CR_04_0, MSEL1CR_04_1,
160	MSEL1CR_03_0, MSEL1CR_03_1,
161	MSEL1CR_02_0, MSEL1CR_02_1,
162	MSEL1CR_01_0, MSEL1CR_01_1,
163	MSEL1CR_00_0, MSEL1CR_00_1,
164
165	MSEL3CR_31_0, MSEL3CR_31_1,
166	MSEL3CR_28_0, MSEL3CR_28_1,
167	MSEL3CR_27_0, MSEL3CR_27_1,
168	MSEL3CR_26_0, MSEL3CR_26_1,
169	MSEL3CR_23_0, MSEL3CR_23_1,
170	MSEL3CR_22_0, MSEL3CR_22_1,
171	MSEL3CR_21_0, MSEL3CR_21_1,
172	MSEL3CR_20_0, MSEL3CR_20_1,
173	MSEL3CR_19_0, MSEL3CR_19_1,
174	MSEL3CR_18_0, MSEL3CR_18_1,
175	MSEL3CR_17_0, MSEL3CR_17_1,
176	MSEL3CR_16_0, MSEL3CR_16_1,
177	MSEL3CR_15_0, MSEL3CR_15_1,
178	MSEL3CR_12_0, MSEL3CR_12_1,
179	MSEL3CR_11_0, MSEL3CR_11_1,
180	MSEL3CR_10_0, MSEL3CR_10_1,
181	MSEL3CR_09_0, MSEL3CR_09_1,
182	MSEL3CR_06_0, MSEL3CR_06_1,
183	MSEL3CR_03_0, MSEL3CR_03_1,
184	MSEL3CR_01_0, MSEL3CR_01_1,
185	MSEL3CR_00_0, MSEL3CR_00_1,
186
187	MSEL4CR_30_0, MSEL4CR_30_1,
188	MSEL4CR_29_0, MSEL4CR_29_1,
189	MSEL4CR_28_0, MSEL4CR_28_1,
190	MSEL4CR_27_0, MSEL4CR_27_1,
191	MSEL4CR_26_0, MSEL4CR_26_1,
192	MSEL4CR_25_0, MSEL4CR_25_1,
193	MSEL4CR_24_0, MSEL4CR_24_1,
194	MSEL4CR_23_0, MSEL4CR_23_1,
195	MSEL4CR_22_0, MSEL4CR_22_1,
196	MSEL4CR_21_0, MSEL4CR_21_1,
197	MSEL4CR_20_0, MSEL4CR_20_1,
198	MSEL4CR_19_0, MSEL4CR_19_1,
199	MSEL4CR_18_0, MSEL4CR_18_1,
200	MSEL4CR_17_0, MSEL4CR_17_1,
201	MSEL4CR_16_0, MSEL4CR_16_1,
202	MSEL4CR_15_0, MSEL4CR_15_1,
203	MSEL4CR_14_0, MSEL4CR_14_1,
204	MSEL4CR_13_0, MSEL4CR_13_1,
205	MSEL4CR_12_0, MSEL4CR_12_1,
206	MSEL4CR_11_0, MSEL4CR_11_1,
207	MSEL4CR_10_0, MSEL4CR_10_1,
208	MSEL4CR_09_0, MSEL4CR_09_1,
209	MSEL4CR_07_0, MSEL4CR_07_1,
210	MSEL4CR_04_0, MSEL4CR_04_1,
211	MSEL4CR_01_0, MSEL4CR_01_1,
212
213	MSEL5CR_31_0, MSEL5CR_31_1,
214	MSEL5CR_30_0, MSEL5CR_30_1,
215	MSEL5CR_29_0, MSEL5CR_29_1,
216	MSEL5CR_28_0, MSEL5CR_28_1,
217	MSEL5CR_27_0, MSEL5CR_27_1,
218	MSEL5CR_26_0, MSEL5CR_26_1,
219	MSEL5CR_25_0, MSEL5CR_25_1,
220	MSEL5CR_24_0, MSEL5CR_24_1,
221	MSEL5CR_23_0, MSEL5CR_23_1,
222	MSEL5CR_22_0, MSEL5CR_22_1,
223	MSEL5CR_21_0, MSEL5CR_21_1,
224	MSEL5CR_20_0, MSEL5CR_20_1,
225	MSEL5CR_19_0, MSEL5CR_19_1,
226	MSEL5CR_18_0, MSEL5CR_18_1,
227	MSEL5CR_17_0, MSEL5CR_17_1,
228	MSEL5CR_16_0, MSEL5CR_16_1,
229	MSEL5CR_15_0, MSEL5CR_15_1,
230	MSEL5CR_14_0, MSEL5CR_14_1,
231	MSEL5CR_13_0, MSEL5CR_13_1,
232	MSEL5CR_12_0, MSEL5CR_12_1,
233	MSEL5CR_11_0, MSEL5CR_11_1,
234	MSEL5CR_10_0, MSEL5CR_10_1,
235	MSEL5CR_09_0, MSEL5CR_09_1,
236	MSEL5CR_08_0, MSEL5CR_08_1,
237	MSEL5CR_07_0, MSEL5CR_07_1,
238	MSEL5CR_06_0, MSEL5CR_06_1,
239
240	MSEL8CR_16_0, MSEL8CR_16_1,
241	MSEL8CR_01_0, MSEL8CR_01_1,
242	MSEL8CR_00_0, MSEL8CR_00_1,
243
244	PINMUX_FUNCTION_END,
245
246	PINMUX_MARK_BEGIN,
247
248
249#define F1(a)	a##_MARK
250#define F2(a)	a##_MARK
251#define F3(a)	a##_MARK
252#define F4(a)	a##_MARK
253#define F5(a)	a##_MARK
254#define F6(a)	a##_MARK
255#define F7(a)	a##_MARK
256#define IRQ(a)	IRQ##a##_MARK
257
258	F1(LCDD0), F3(PDM2_CLK_0), F7(DU0_DR0), IRQ(0), /* Port0 */
259	F1(LCDD1), F3(PDM2_DATA_1), F7(DU0_DR19), IRQ(1),
260	F1(LCDD2), F3(PDM3_CLK_2), F7(DU0_DR2), IRQ(2),
261	F1(LCDD3), F3(PDM3_DATA_3), F7(DU0_DR3), IRQ(3),
262	F1(LCDD4), F3(PDM4_CLK_4), F7(DU0_DR4), IRQ(4),
263	F1(LCDD5), F3(PDM4_DATA_5), F7(DU0_DR5), IRQ(5),
264	F1(LCDD6), F3(PDM0_OUTCLK_6), F7(DU0_DR6), IRQ(6),
265	F1(LCDD7), F3(PDM0_OUTDATA_7), F7(DU0_DR7), IRQ(7),
266	F1(LCDD8), F3(PDM1_OUTCLK_8), F7(DU0_DG0), IRQ(8),
267	F1(LCDD9), F3(PDM1_OUTDATA_9), F7(DU0_DG1), IRQ(9),
268	F1(LCDD10), F3(FSICCK), F7(DU0_DG2), IRQ(10), /* Port10 */
269	F1(LCDD11), F3(FSICISLD), F7(DU0_DG3), IRQ(11),
270	F1(LCDD12), F3(FSICOMC), F7(DU0_DG4), IRQ(12),
271	F1(LCDD13), F3(FSICOLR), F4(FSICILR), F7(DU0_DG5), IRQ(13),
272	F1(LCDD14), F3(FSICOBT), F4(FSICIBT), F7(DU0_DG6), IRQ(14),
273	F1(LCDD15), F3(FSICOSLD), F7(DU0_DG7), IRQ(15),
274	F1(LCDD16), F4(TPU1TO1), F7(DU0_DB0),
275	F1(LCDD17), F4(SF_IRQ_00), F7(DU0_DB1),
276	F1(LCDD18), F4(SF_IRQ_01), F7(DU0_DB2),
277	F1(LCDD19), F3(SCIFB3_RTS_19), F7(DU0_DB3),
278	F1(LCDD20), F3(SCIFB3_CTS_20), F7(DU0_DB4), /* Port20 */
279	F1(LCDD21), F3(SCIFB3_TXD_21), F7(DU0_DB5),
280	F1(LCDD22), F3(SCIFB3_RXD_22), F7(DU0_DB6),
281	F1(LCDD23), F3(SCIFB3_SCK_23), F7(DU0_DB7),
282	F1(LCDHSYN), F2(LCDCS), F3(SCIFB1_RTS_24),
283	F7(DU0_EXHSYNC_N_CSYNC_N_HSYNC_N),
284	F1(LCDVSYN), F3(SCIFB1_CTS_25), F7(DU0_EXVSYNC_N_VSYNC_N_CSYNC_N),
285	F1(LCDDCK), F2(LCDWR), F3(SCIFB1_TXD_26), F7(DU0_DOTCLKIN),
286	F1(LCDDISP), F2(LCDRS), F3(SCIFB1_RXD_27), F7(DU0_DOTCLKOUT),
287	F1(LCDRD_N), F3(SCIFB1_SCK_28), F7(DU0_DOTCLKOUTB),
288	F1(LCDLCLK), F4(SF_IRQ_02), F7(DU0_DISP_CSYNC_N_DE),
289	F1(LCDDON), F4(SF_IRQ_03), F7(DU0_ODDF_N_CLAMP), /* Port30 */
290
291	F1(SCIFA0_RTS), F5(SIM0_DET), F7(CSCIF0_RTS), /* Port32 */
292	F1(SCIFA0_CTS), F5(SIM1_DET), F7(CSCIF0_CTS),
293	F1(SCIFA0_SCK), F5(SIM0_PWRON), F7(CSCIF0_SCK),
294	F1(SCIFA1_RTS), F7(CSCIF1_RTS),
295	F1(SCIFA1_CTS), F7(CSCIF1_CTS),
296	F1(SCIFA1_SCK), F7(CSCIF1_SCK),
297	F1(SCIFB0_RTS), F3(TPU0TO1), F4(SCIFB3_RTS_38), F7(CHSCIF0_HRTS),
298	F1(SCIFB0_CTS), F3(TPU0TO2), F4(SCIFB3_CTS_39), F7(CHSCIF0_HCTS),
299	F1(SCIFB0_SCK), F3(TPU0TO3), F4(SCIFB3_SCK_40),
300	F7(CHSCIF0_HSCK), /* Port40 */
301
302	F1(PDM0_DATA), /* Port64 */
303	F1(PDM1_DATA),
304	F1(HSI_RX_WAKE), F2(SCIFB2_CTS_66), F3(MSIOF3_SYNC), F5(GenIO4),
305	IRQ(40),
306	F1(HSI_RX_READY), F2(SCIFB1_TXD_67), F5(GIO_OUT3_67), F7(CHSCIF1_HTX),
307	F1(HSI_RX_FLAG), F2(SCIFB2_TXD_68), F3(MSIOF3_TXD), F5(GIO_OUT4_68),
308	F1(HSI_RX_DATA), F2(SCIFB2_RXD_69), F3(MSIOF3_RXD), F5(GIO_OUT5_69),
309	F1(HSI_TX_FLAG), F2(SCIFB1_RTS_70), F5(GIO_OUT1_70), F6(HSIC_TSTCLK0),
310	F7(CHSCIF1_HRTS), /* Port70 */
311	F1(HSI_TX_DATA), F2(SCIFB1_CTS_71), F5(GIO_OUT2_71), F6(HSIC_TSTCLK1),
312	F7(CHSCIF1_HCTS),
313	F1(HSI_TX_WAKE), F2(SCIFB1_RXD_72), F5(GenIO8), F7(CHSCIF1_HRX),
314	F1(HSI_TX_READY), F2(SCIFB2_RTS_73), F3(MSIOF3_SCK), F5(GIO_OUT0_73),
315	F1(IRDA_OUT), F1(IRDA_IN), F1(IRDA_FIRSEL), F1(TPU0TO0),
316	F1(DIGRFEN), F1(GPS_TIMESTAMP), F1(TXP), /* Port80 */
317	F1(TXP2), F1(COEX_0), F1(COEX_1), IRQ(19), IRQ(18), /* Port85 */
318
319	F1(KEYIN0), /* Port96 */
320	F1(KEYIN1), F1(KEYIN2), F1(KEYIN3), F1(KEYIN4), /* Port100 */
321	F1(KEYIN5), F1(KEYIN6), IRQ(41), F1(KEYIN7), IRQ(42),
322	F2(KEYOUT0), F2(KEYOUT1), F2(KEYOUT2), F2(KEYOUT3),
323	F2(KEYOUT4), F2(KEYOUT5), IRQ(43), F2(KEYOUT6), IRQ(44), /* Port110 */
324	F2(KEYOUT7), F5(RFANAEN), IRQ(45),
325	F1(KEYIN8), F2(KEYOUT8), F4(SF_IRQ_04), IRQ(46),
326	F1(KEYIN9), F2(KEYOUT9), F4(SF_IRQ_05), IRQ(47),
327	F1(KEYIN10), F2(KEYOUT10), F4(SF_IRQ_06), IRQ(48),
328	F1(KEYIN11), F2(KEYOUT11), F4(SF_IRQ_07), IRQ(49),
329	F1(SCIFA0_TXD), F7(CSCIF0_TX), F1(SCIFA0_RXD), F7(CSCIF0_RX),
330	F1(SCIFA1_TXD), F7(CSCIF1_TX), F1(SCIFA1_RXD), F7(CSCIF1_RX),
331	F3(SF_PORT_1_120), F4(SCIFB3_RXD_120), F7(DU0_CDE), /* Port120 */
332	F3(SF_PORT_0_121), F4(SCIFB3_TXD_121),
333	F1(SCIFB0_TXD), F7(CHSCIF0_HTX),
334	F1(SCIFB0_RXD), F7(CHSCIF0_HRX), F3(ISP_STROBE_124),
335	F1(STP_ISD_0), F2(PDM4_CLK_125), F3(MSIOF2_TXD), F5(SIM0_VOLTSEL0),
336	F1(TS_SDEN), F2(MSIOF7_SYNC), F3(STP_ISEN_1),
337	F1(STP_ISEN_0), F2(PDM1_OUTDATA_128), F3(MSIOF2_SYNC),
338	F5(SIM1_VOLTSEL1), F1(TS_SPSYNC), F2(MSIOF7_RXD), F3(STP_ISSYNC_1),
339	F1(STP_ISSYNC_0), F2(PDM4_DATA_130), F3(MSIOF2_RXD),
340	F5(SIM0_VOLTSEL1), /* Port130 */
341	F1(STP_OPWM_0), F5(SIM1_PWRON), F1(TS_SCK), F2(MSIOF7_SCK),
342	F3(STP_ISCLK_1), F1(STP_ISCLK_0), F2(PDM1_OUTCLK_133), F3(MSIOF2_SCK),
343	F5(SIM1_VOLTSEL0), F1(TS_SDAT), F2(MSIOF7_TXD), F3(STP_ISD_1),
344	IRQ(20), /* Port160 */
345	IRQ(21), IRQ(22), IRQ(23),
346	F1(MMCD0_0), F1(MMCD0_1), F1(MMCD0_2), F1(MMCD0_3),
347	F1(MMCD0_4), F1(MMCD0_5), F1(MMCD0_6), /* Port170 */
348	F1(MMCD0_7), F1(MMCCMD0), F1(MMCCLK0), F1(MMCRST),
349	IRQ(24), IRQ(25), IRQ(26), IRQ(27),
350	F1(A10), F2(MMCD1_7), IRQ(31), /* Port192 */
351	F1(A9), F2(MMCD1_6), IRQ(32),
352	F1(A8), F2(MMCD1_5), IRQ(33),
353	F1(A7), F2(MMCD1_4), IRQ(34),
354	F1(A6), F2(MMCD1_3), IRQ(35),
355	F1(A5), F2(MMCD1_2), IRQ(36),
356	F1(A4), F2(MMCD1_1), IRQ(37),
357	F1(A3), F2(MMCD1_0), IRQ(38),
358	F1(A2), F2(MMCCMD1), IRQ(39), /* Port200 */
359	F1(A1),
360	F1(A0), F2(BS),
361	F1(CKO), F2(MMCCLK1),
362	F1(CS0_N), F5(SIM0_GPO1),
363	F1(CS2_N), F5(SIM0_GPO2),
364	F1(CS4_N), F2(VIO_VD), F5(SIM1_GPO0),
365	F1(D15), F5(GIO_OUT15),
366	F1(D14), F5(GIO_OUT14),
367	F1(D13), F5(GIO_OUT13),
368	F1(D12), F5(GIO_OUT12), /* Port210 */
369	F1(D11), F5(WGM_TXP2),
370	F1(D10), F5(WGM_GPS_TIMEM_ASK_RFCLK),
371	F1(D9), F2(VIO_D9), F5(GIO_OUT9),
372	F1(D8), F2(VIO_D8), F5(GIO_OUT8),
373	F1(D7), F2(VIO_D7), F5(GIO_OUT7),
374	F1(D6), F2(VIO_D6), F5(GIO_OUT6),
375	F1(D5), F2(VIO_D5), F5(GIO_OUT5_217),
376	F1(D4), F2(VIO_D4), F5(GIO_OUT4_218),
377	F1(D3), F2(VIO_D3), F5(GIO_OUT3_219),
378	F1(D2), F2(VIO_D2), F5(GIO_OUT2_220), /* Port220 */
379	F1(D1), F2(VIO_D1), F5(GIO_OUT1_221),
380	F1(D0), F2(VIO_D0), F5(GIO_OUT0_222),
381	F1(RDWR_224), F2(VIO_HD), F5(SIM1_GPO2),
382	F1(RD_N), F1(WAIT_N), F2(VIO_CLK), F5(SIM1_GPO1),
383	F1(WE0_N), F2(RDWR_227),
384	F1(WE1_N), F5(SIM0_GPO0),
385	F1(PWMO), F2(VIO_CKO1_229),
386	F1(SLIM_CLK), F2(VIO_CKO4_230), /* Port230 */
387	F1(SLIM_DATA), F2(VIO_CKO5_231), F2(VIO_CKO2_232), F4(SF_PORT_0_232),
388	F2(VIO_CKO3_233), F4(SF_PORT_1_233),
389	F1(FSIACK), F2(PDM3_CLK_234), F3(ISP_IRIS1_234),
390	F1(FSIAISLD), F2(PDM3_DATA_235),
391	F1(FSIAOMC), F2(PDM0_OUTCLK_236), F3(ISP_IRIS0_236),
392	F1(FSIAOLR), F2(FSIAILR), F1(FSIAOBT), F2(FSIAIBT),
393	F1(FSIAOSLD), F2(PDM0_OUTDATA_239),
394	F1(FSIBISLD), /* Port240 */
395	F1(FSIBOLR), F2(FSIBILR), F1(FSIBOMC), F3(ISP_SHUTTER1_242),
396	F1(FSIBOBT), F2(FSIBIBT), F1(FSIBOSLD), F2(FSIASPDIF),
397	F1(FSIBCK), F3(ISP_SHUTTER0_245),
398	F1(ISP_IRIS1_246), F1(ISP_IRIS0_247), F1(ISP_SHUTTER1_248),
399	F1(ISP_SHUTTER0_249), F1(ISP_STROBE_250), /* Port250 */
400	F1(MSIOF0_SYNC), F1(MSIOF0_RXD), F1(MSIOF0_SCK), F1(MSIOF0_SS2),
401	F3(VIO_CKO3_259), F1(MSIOF0_TXD), /* Port260 */
402	F2(SCIFB1_SCK_261), F7(CHSCIF1_HSCK), F2(SCIFB2_SCK_262),
403	F1(MSIOF1_SS2), F4(MSIOF5_SS2), F1(MSIOF1_TXD), F4(MSIOF5_TXD),
404	F1(MSIOF1_RXD), F4(MSIOF5_RXD), F1(MSIOF1_SS1), F4(MSIOF5_SS1),
405	F1(MSIOF0_SS1), F1(MSIOF1_SCK), F4(MSIOF5_SCK),
406	F1(MSIOF1_SYNC), F4(MSIOF5_SYNC),
407	F1(MSIOF2_SS1), F3(VIO_CKO5_270), /* Port270 */
408	F1(MSIOF2_SS2), F3(VIO_CKO2_271), F1(MSIOF3_SS2), F3(VIO_CKO1_272),
409	F1(MSIOF3_SS1), F3(VIO_CKO4_273), F1(MSIOF4_SS2), F4(TPU1TO0),
410	F1(IC_DP), F1(SIM0_RST), F1(IC_DM), F1(SIM0_BSICOMP),
411	F1(SIM0_CLK), F1(SIM0_IO), /* Port280 */
412	F1(SIM1_IO), F2(PDM2_DATA_281), F1(SIM1_CLK), F2(PDM2_CLK_282),
413	F1(SIM1_RST), F1(SDHID1_0), F3(STMDATA0_2),
414	F1(SDHID1_1), F3(STMDATA1_2), IRQ(51), /* Port290 */
415	F1(SDHID1_2), F3(STMDATA2_2), F1(SDHID1_3), F3(STMDATA3_2),
416	F1(SDHICLK1), F3(STMCLK_2), F1(SDHICMD1), F3(STMSIDI_2),
417	F1(SDHID2_0), F2(MSIOF4_TXD), F3(SCIFB2_TXD_295), F4(MSIOF6_TXD),
418	F1(SDHID2_1), F4(MSIOF6_SS2), IRQ(52),
419	F1(SDHID2_2), F2(MSIOF4_RXD), F3(SCIFB2_RXD_297), F4(MSIOF6_RXD),
420	F1(SDHID2_3), F2(MSIOF4_SYNC), F3(SCIFB2_CTS_298), F4(MSIOF6_SYNC),
421	F1(SDHICLK2), F2(MSIOF4_SCK), F3(SCIFB2_SCK_299), F4(MSIOF6_SCK),
422	F1(SDHICMD2), F2(MSIOF4_SS1), F3(SCIFB2_RTS_300),
423	F4(MSIOF6_SS1), /* Port300 */
424	F1(SDHICD0), IRQ(50), F1(SDHID0_0), F3(STMDATA0_1),
425	F1(SDHID0_1), F3(STMDATA1_1), F1(SDHID0_2), F3(STMDATA2_1),
426	F1(SDHID0_3), F3(STMDATA3_1), F1(SDHICMD0), F3(STMSIDI_1),
427	F1(SDHIWP0), F1(SDHICLK0), F3(STMCLK_1), IRQ(16), /* Port320 */
428	IRQ(17), IRQ(28), IRQ(29), IRQ(30), IRQ(53), IRQ(54),
429	IRQ(55), IRQ(56), IRQ(57),
430	PINMUX_MARK_END,
431};
432
433static const u16 pinmux_data[] = {
434	/* specify valid pin states for each pin in GPIO mode */
435	PINMUX_DATA_ALL(),
436
437	/* Port0 */
438	PINMUX_DATA(LCDD0_MARK,		PORT0_FN1),
439	PINMUX_DATA(PDM2_CLK_0_MARK,	PORT0_FN3),
440	PINMUX_DATA(DU0_DR0_MARK,	PORT0_FN7),
441	PINMUX_DATA(IRQ0_MARK,		PORT0_FN0),
442
443	/* Port1 */
444	PINMUX_DATA(LCDD1_MARK,		PORT1_FN1),
445	PINMUX_DATA(PDM2_DATA_1_MARK,	PORT1_FN3,	MSEL3CR_12_0),
446	PINMUX_DATA(DU0_DR19_MARK,	PORT1_FN7),
447	PINMUX_DATA(IRQ1_MARK,		PORT1_FN0),
448
449	/* Port2 */
450	PINMUX_DATA(LCDD2_MARK,		PORT2_FN1),
451	PINMUX_DATA(PDM3_CLK_2_MARK,	PORT2_FN3),
452	PINMUX_DATA(DU0_DR2_MARK,	PORT2_FN7),
453	PINMUX_DATA(IRQ2_MARK,		PORT2_FN0),
454
455	/* Port3 */
456	PINMUX_DATA(LCDD3_MARK,		PORT3_FN1),
457	PINMUX_DATA(PDM3_DATA_3_MARK,	PORT3_FN3,	MSEL3CR_12_0),
458	PINMUX_DATA(DU0_DR3_MARK,	PORT3_FN7),
459	PINMUX_DATA(IRQ3_MARK,		PORT3_FN0),
460
461	/* Port4 */
462	PINMUX_DATA(LCDD4_MARK,		PORT4_FN1),
463	PINMUX_DATA(PDM4_CLK_4_MARK,	PORT4_FN3),
464	PINMUX_DATA(DU0_DR4_MARK,	PORT4_FN7),
465	PINMUX_DATA(IRQ4_MARK,		PORT4_FN0),
466
467	/* Port5 */
468	PINMUX_DATA(LCDD5_MARK,		PORT5_FN1),
469	PINMUX_DATA(PDM4_DATA_5_MARK,	PORT5_FN3,	MSEL3CR_12_0),
470	PINMUX_DATA(DU0_DR5_MARK,	PORT5_FN7),
471	PINMUX_DATA(IRQ5_MARK,		PORT5_FN0),
472
473	/* Port6 */
474	PINMUX_DATA(LCDD6_MARK,		PORT6_FN1),
475	PINMUX_DATA(PDM0_OUTCLK_6_MARK,	PORT6_FN3),
476	PINMUX_DATA(DU0_DR6_MARK,	PORT6_FN7),
477	PINMUX_DATA(IRQ6_MARK,		PORT6_FN0),
478
479	/* Port7 */
480	PINMUX_DATA(LCDD7_MARK,			PORT7_FN1),
481	PINMUX_DATA(PDM0_OUTDATA_7_MARK,	PORT7_FN3),
482	PINMUX_DATA(DU0_DR7_MARK,		PORT7_FN7),
483	PINMUX_DATA(IRQ7_MARK,			PORT7_FN0),
484
485	/* Port8 */
486	PINMUX_DATA(LCDD8_MARK,		PORT8_FN1),
487	PINMUX_DATA(PDM1_OUTCLK_8_MARK,	PORT8_FN3),
488	PINMUX_DATA(DU0_DG0_MARK,	PORT8_FN7),
489	PINMUX_DATA(IRQ8_MARK,		PORT8_FN0),
490
491	/* Port9 */
492	PINMUX_DATA(LCDD9_MARK,		PORT9_FN1),
493	PINMUX_DATA(PDM1_OUTDATA_9_MARK, PORT9_FN3),
494	PINMUX_DATA(DU0_DG1_MARK,	PORT9_FN7),
495	PINMUX_DATA(IRQ9_MARK,		PORT9_FN0),
496
497	/* Port10 */
498	PINMUX_DATA(LCDD10_MARK,		PORT10_FN1),
499	PINMUX_DATA(FSICCK_MARK,		PORT10_FN3),
500	PINMUX_DATA(DU0_DG2_MARK,		PORT10_FN7),
501	PINMUX_DATA(IRQ10_MARK,			PORT10_FN0),
502
503	/* Port11 */
504	PINMUX_DATA(LCDD11_MARK,		PORT11_FN1),
505	PINMUX_DATA(FSICISLD_MARK,		PORT11_FN3),
506	PINMUX_DATA(DU0_DG3_MARK,		PORT11_FN7),
507	PINMUX_DATA(IRQ11_MARK,			PORT11_FN0),
508
509	/* Port12 */
510	PINMUX_DATA(LCDD12_MARK,		PORT12_FN1),
511	PINMUX_DATA(FSICOMC_MARK,		PORT12_FN3),
512	PINMUX_DATA(DU0_DG4_MARK,		PORT12_FN7),
513	PINMUX_DATA(IRQ12_MARK,			PORT12_FN0),
514
515	/* Port13 */
516	PINMUX_DATA(LCDD13_MARK,		PORT13_FN1),
517	PINMUX_DATA(FSICOLR_MARK,		PORT13_FN3),
518	PINMUX_DATA(FSICILR_MARK,		PORT13_FN4),
519	PINMUX_DATA(DU0_DG5_MARK,		PORT13_FN7),
520	PINMUX_DATA(IRQ13_MARK,			PORT13_FN0),
521
522	/* Port14 */
523	PINMUX_DATA(LCDD14_MARK,		PORT14_FN1),
524	PINMUX_DATA(FSICOBT_MARK,		PORT14_FN3),
525	PINMUX_DATA(FSICIBT_MARK,		PORT14_FN4),
526	PINMUX_DATA(DU0_DG6_MARK,		PORT14_FN7),
527	PINMUX_DATA(IRQ14_MARK,			PORT14_FN0),
528
529	/* Port15 */
530	PINMUX_DATA(LCDD15_MARK,		PORT15_FN1),
531	PINMUX_DATA(FSICOSLD_MARK,		PORT15_FN3),
532	PINMUX_DATA(DU0_DG7_MARK,		PORT15_FN7),
533	PINMUX_DATA(IRQ15_MARK,			PORT15_FN0),
534
535	/* Port16 */
536	PINMUX_DATA(LCDD16_MARK,		PORT16_FN1),
537	PINMUX_DATA(TPU1TO1_MARK,		PORT16_FN4),
538	PINMUX_DATA(DU0_DB0_MARK,		PORT16_FN7),
539
540	/* Port17 */
541	PINMUX_DATA(LCDD17_MARK,		PORT17_FN1),
542	PINMUX_DATA(SF_IRQ_00_MARK,		PORT17_FN4),
543	PINMUX_DATA(DU0_DB1_MARK,		PORT17_FN7),
544
545	/* Port18 */
546	PINMUX_DATA(LCDD18_MARK,		PORT18_FN1),
547	PINMUX_DATA(SF_IRQ_01_MARK,		PORT18_FN4),
548	PINMUX_DATA(DU0_DB2_MARK,		PORT18_FN7),
549
550	/* Port19 */
551	PINMUX_DATA(LCDD19_MARK,		PORT19_FN1),
552	PINMUX_DATA(SCIFB3_RTS_19_MARK,		PORT19_FN3),
553	PINMUX_DATA(DU0_DB3_MARK,		PORT19_FN7),
554
555	/* Port20 */
556	PINMUX_DATA(LCDD20_MARK,		PORT20_FN1),
557	PINMUX_DATA(SCIFB3_CTS_20_MARK,		PORT20_FN3,	MSEL3CR_09_0),
558	PINMUX_DATA(DU0_DB4_MARK,		PORT20_FN7),
559
560	/* Port21 */
561	PINMUX_DATA(LCDD21_MARK,		PORT21_FN1),
562	PINMUX_DATA(SCIFB3_TXD_21_MARK,		PORT21_FN3,	MSEL3CR_09_0),
563	PINMUX_DATA(DU0_DB5_MARK,		PORT21_FN7),
564
565	/* Port22 */
566	PINMUX_DATA(LCDD22_MARK,		PORT22_FN1),
567	PINMUX_DATA(SCIFB3_RXD_22_MARK,		PORT22_FN3,	MSEL3CR_09_0),
568	PINMUX_DATA(DU0_DB6_MARK,		PORT22_FN7),
569
570	/* Port23 */
571	PINMUX_DATA(LCDD23_MARK,		PORT23_FN1),
572	PINMUX_DATA(SCIFB3_SCK_23_MARK,		PORT23_FN3),
573	PINMUX_DATA(DU0_DB7_MARK,		PORT23_FN7),
574
575	/* Port24 */
576	PINMUX_DATA(LCDHSYN_MARK,			PORT24_FN1),
577	PINMUX_DATA(LCDCS_MARK,				PORT24_FN2),
578	PINMUX_DATA(SCIFB1_RTS_24_MARK,			PORT24_FN3),
579	PINMUX_DATA(DU0_EXHSYNC_N_CSYNC_N_HSYNC_N_MARK,	PORT24_FN7),
580
581	/* Port25 */
582	PINMUX_DATA(LCDVSYN_MARK,			PORT25_FN1),
583	PINMUX_DATA(SCIFB1_CTS_25_MARK, PORT25_FN3, MSEL3CR_11_0),
584	PINMUX_DATA(DU0_EXVSYNC_N_VSYNC_N_CSYNC_N_MARK,	PORT25_FN7),
585
586	/* Port26 */
587	PINMUX_DATA(LCDDCK_MARK,		PORT26_FN1),
588	PINMUX_DATA(LCDWR_MARK,			PORT26_FN2),
589	PINMUX_DATA(SCIFB1_TXD_26_MARK,		PORT26_FN3,	MSEL3CR_11_0),
590	PINMUX_DATA(DU0_DOTCLKIN_MARK,		PORT26_FN7),
591
592	/* Port27 */
593	PINMUX_DATA(LCDDISP_MARK,		PORT27_FN1),
594	PINMUX_DATA(LCDRS_MARK,			PORT27_FN2),
595	PINMUX_DATA(SCIFB1_RXD_27_MARK,		PORT27_FN3,	MSEL3CR_11_0),
596	PINMUX_DATA(DU0_DOTCLKOUT_MARK,		PORT27_FN7),
597
598	/* Port28 */
599	PINMUX_DATA(LCDRD_N_MARK,		PORT28_FN1),
600	PINMUX_DATA(SCIFB1_SCK_28_MARK,		PORT28_FN3),
601	PINMUX_DATA(DU0_DOTCLKOUTB_MARK,	PORT28_FN7),
602
603	/* Port29 */
604	PINMUX_DATA(LCDLCLK_MARK,		PORT29_FN1),
605	PINMUX_DATA(SF_IRQ_02_MARK,		PORT29_FN4),
606	PINMUX_DATA(DU0_DISP_CSYNC_N_DE_MARK,	PORT29_FN7),
607
608	/* Port30 */
609	PINMUX_DATA(LCDDON_MARK,		PORT30_FN1),
610	PINMUX_DATA(SF_IRQ_03_MARK,		PORT30_FN4),
611	PINMUX_DATA(DU0_ODDF_N_CLAMP_MARK,	PORT30_FN7),
612
613	/* Port32 */
614	PINMUX_DATA(SCIFA0_RTS_MARK,		PORT32_FN1),
615	PINMUX_DATA(SIM0_DET_MARK,		PORT32_FN5),
616	PINMUX_DATA(CSCIF0_RTS_MARK,		PORT32_FN7),
617
618	/* Port33 */
619	PINMUX_DATA(SCIFA0_CTS_MARK,		PORT33_FN1),
620	PINMUX_DATA(SIM1_DET_MARK,		PORT33_FN5),
621	PINMUX_DATA(CSCIF0_CTS_MARK,		PORT33_FN7),
622
623	/* Port34 */
624	PINMUX_DATA(SCIFA0_SCK_MARK,		PORT34_FN1),
625	PINMUX_DATA(SIM0_PWRON_MARK,		PORT34_FN5),
626	PINMUX_DATA(CSCIF0_SCK_MARK,		PORT34_FN7),
627
628	/* Port35 */
629	PINMUX_DATA(SCIFA1_RTS_MARK,		PORT35_FN1),
630	PINMUX_DATA(CSCIF1_RTS_MARK,		PORT35_FN7),
631
632	/* Port36 */
633	PINMUX_DATA(SCIFA1_CTS_MARK,		PORT36_FN1),
634	PINMUX_DATA(CSCIF1_CTS_MARK,		PORT36_FN7),
635
636	/* Port37 */
637	PINMUX_DATA(SCIFA1_SCK_MARK,		PORT37_FN1),
638	PINMUX_DATA(CSCIF1_SCK_MARK,		PORT37_FN7),
639
640	/* Port38 */
641	PINMUX_DATA(SCIFB0_RTS_MARK,		PORT38_FN1),
642	PINMUX_DATA(TPU0TO1_MARK,		PORT38_FN3),
643	PINMUX_DATA(SCIFB3_RTS_38_MARK,		PORT38_FN4),
644	PINMUX_DATA(CHSCIF0_HRTS_MARK,		PORT38_FN7),
645
646	/* Port39 */
647	PINMUX_DATA(SCIFB0_CTS_MARK,		PORT39_FN1),
648	PINMUX_DATA(TPU0TO2_MARK,		PORT39_FN3),
649	PINMUX_DATA(SCIFB3_CTS_39_MARK,		PORT39_FN4,	MSEL3CR_09_1),
650	PINMUX_DATA(CHSCIF0_HCTS_MARK,		PORT39_FN7),
651
652	/* Port40 */
653	PINMUX_DATA(SCIFB0_SCK_MARK,		PORT40_FN1),
654	PINMUX_DATA(TPU0TO3_MARK,		PORT40_FN3),
655	PINMUX_DATA(SCIFB3_SCK_40_MARK,		PORT40_FN4),
656	PINMUX_DATA(CHSCIF0_HSCK_MARK,		PORT40_FN7),
657
658	/* Port64 */
659	PINMUX_DATA(PDM0_DATA_MARK,		PORT64_FN1),
660
661	/* Port65 */
662	PINMUX_DATA(PDM1_DATA_MARK,		PORT65_FN1),
663
664	/* Port66 */
665	PINMUX_DATA(HSI_RX_WAKE_MARK,		PORT66_FN1),
666	PINMUX_DATA(SCIFB2_CTS_66_MARK,		PORT66_FN2,	MSEL3CR_10_0),
667	PINMUX_DATA(MSIOF3_SYNC_MARK,		PORT66_FN3),
668	PINMUX_DATA(GenIO4_MARK,		PORT66_FN5),
669	PINMUX_DATA(IRQ40_MARK,			PORT66_FN0),
670
671	/* Port67 */
672	PINMUX_DATA(HSI_RX_READY_MARK,		PORT67_FN1),
673	PINMUX_DATA(SCIFB1_TXD_67_MARK,		PORT67_FN2,	MSEL3CR_11_1),
674	PINMUX_DATA(GIO_OUT3_67_MARK,		PORT67_FN5),
675	PINMUX_DATA(CHSCIF1_HTX_MARK,		PORT67_FN7),
676
677	/* Port68 */
678	PINMUX_DATA(HSI_RX_FLAG_MARK,		PORT68_FN1),
679	PINMUX_DATA(SCIFB2_TXD_68_MARK,		PORT68_FN2,	MSEL3CR_10_0),
680	PINMUX_DATA(MSIOF3_TXD_MARK,		PORT68_FN3),
681	PINMUX_DATA(GIO_OUT4_68_MARK,		PORT68_FN5),
682
683	/* Port69 */
684	PINMUX_DATA(HSI_RX_DATA_MARK,		PORT69_FN1),
685	PINMUX_DATA(SCIFB2_RXD_69_MARK,		PORT69_FN2,	MSEL3CR_10_0),
686	PINMUX_DATA(MSIOF3_RXD_MARK,		PORT69_FN3),
687	PINMUX_DATA(GIO_OUT5_69_MARK,		PORT69_FN5),
688
689	/* Port70 */
690	PINMUX_DATA(HSI_TX_FLAG_MARK,		PORT70_FN1),
691	PINMUX_DATA(SCIFB1_RTS_70_MARK,		PORT70_FN2),
692	PINMUX_DATA(GIO_OUT1_70_MARK,		PORT70_FN5),
693	PINMUX_DATA(HSIC_TSTCLK0_MARK,		PORT70_FN6),
694	PINMUX_DATA(CHSCIF1_HRTS_MARK,		PORT70_FN7),
695
696	/* Port71 */
697	PINMUX_DATA(HSI_TX_DATA_MARK,		PORT71_FN1),
698	PINMUX_DATA(SCIFB1_CTS_71_MARK,		PORT71_FN2,	MSEL3CR_11_1),
699	PINMUX_DATA(GIO_OUT2_71_MARK,		PORT71_FN5),
700	PINMUX_DATA(HSIC_TSTCLK1_MARK,		PORT71_FN6),
701	PINMUX_DATA(CHSCIF1_HCTS_MARK,		PORT71_FN7),
702
703	/* Port72 */
704	PINMUX_DATA(HSI_TX_WAKE_MARK,		PORT72_FN1),
705	PINMUX_DATA(SCIFB1_RXD_72_MARK,		PORT72_FN2,	MSEL3CR_11_1),
706	PINMUX_DATA(GenIO8_MARK,		PORT72_FN5),
707	PINMUX_DATA(CHSCIF1_HRX_MARK,		PORT72_FN7),
708
709	/* Port73 */
710	PINMUX_DATA(HSI_TX_READY_MARK,		PORT73_FN1),
711	PINMUX_DATA(SCIFB2_RTS_73_MARK,		PORT73_FN2),
712	PINMUX_DATA(MSIOF3_SCK_MARK,		PORT73_FN3),
713	PINMUX_DATA(GIO_OUT0_73_MARK,		PORT73_FN5),
714
715	/* Port74 - Port85 */
716	PINMUX_DATA(IRDA_OUT_MARK,		PORT74_FN1),
717	PINMUX_DATA(IRDA_IN_MARK,		PORT75_FN1),
718	PINMUX_DATA(IRDA_FIRSEL_MARK,		PORT76_FN1),
719	PINMUX_DATA(TPU0TO0_MARK,		PORT77_FN1),
720	PINMUX_DATA(DIGRFEN_MARK,		PORT78_FN1),
721	PINMUX_DATA(GPS_TIMESTAMP_MARK,		PORT79_FN1),
722	PINMUX_DATA(TXP_MARK,			PORT80_FN1),
723	PINMUX_DATA(TXP2_MARK,			PORT81_FN1),
724	PINMUX_DATA(COEX_0_MARK,		PORT82_FN1),
725	PINMUX_DATA(COEX_1_MARK,		PORT83_FN1),
726	PINMUX_DATA(IRQ19_MARK,			PORT84_FN0),
727	PINMUX_DATA(IRQ18_MARK,			PORT85_FN0),
728
729	/* Port96 - Port101 */
730	PINMUX_DATA(KEYIN0_MARK,		PORT96_FN1),
731	PINMUX_DATA(KEYIN1_MARK,		PORT97_FN1),
732	PINMUX_DATA(KEYIN2_MARK,		PORT98_FN1),
733	PINMUX_DATA(KEYIN3_MARK,		PORT99_FN1),
734	PINMUX_DATA(KEYIN4_MARK,		PORT100_FN1),
735	PINMUX_DATA(KEYIN5_MARK,		PORT101_FN1),
736
737	/* Port102 */
738	PINMUX_DATA(KEYIN6_MARK,		PORT102_FN1),
739	PINMUX_DATA(IRQ41_MARK,			PORT102_FN0),
740
741	/* Port103 */
742	PINMUX_DATA(KEYIN7_MARK,		PORT103_FN1),
743	PINMUX_DATA(IRQ42_MARK,			PORT103_FN0),
744
745	/* Port104 - Port108 */
746	PINMUX_DATA(KEYOUT0_MARK,		PORT104_FN2),
747	PINMUX_DATA(KEYOUT1_MARK,		PORT105_FN2),
748	PINMUX_DATA(KEYOUT2_MARK,		PORT106_FN2),
749	PINMUX_DATA(KEYOUT3_MARK,		PORT107_FN2),
750	PINMUX_DATA(KEYOUT4_MARK,		PORT108_FN2),
751
752	/* Port109 */
753	PINMUX_DATA(KEYOUT5_MARK,		PORT109_FN2),
754	PINMUX_DATA(IRQ43_MARK,			PORT109_FN0),
755
756	/* Port110 */
757	PINMUX_DATA(KEYOUT6_MARK,		PORT110_FN2),
758	PINMUX_DATA(IRQ44_MARK,			PORT110_FN0),
759
760	/* Port111 */
761	PINMUX_DATA(KEYOUT7_MARK,		PORT111_FN2),
762	PINMUX_DATA(RFANAEN_MARK,		PORT111_FN5),
763	PINMUX_DATA(IRQ45_MARK,			PORT111_FN0),
764
765	/* Port112 */
766	PINMUX_DATA(KEYIN8_MARK,		PORT112_FN1),
767	PINMUX_DATA(KEYOUT8_MARK,		PORT112_FN2),
768	PINMUX_DATA(SF_IRQ_04_MARK,		PORT112_FN4),
769	PINMUX_DATA(IRQ46_MARK,			PORT112_FN0),
770
771	/* Port113 */
772	PINMUX_DATA(KEYIN9_MARK,		PORT113_FN1),
773	PINMUX_DATA(KEYOUT9_MARK,		PORT113_FN2),
774	PINMUX_DATA(SF_IRQ_05_MARK,		PORT113_FN4),
775	PINMUX_DATA(IRQ47_MARK,			PORT113_FN0),
776
777	/* Port114 */
778	PINMUX_DATA(KEYIN10_MARK,		PORT114_FN1),
779	PINMUX_DATA(KEYOUT10_MARK,		PORT114_FN2),
780	PINMUX_DATA(SF_IRQ_06_MARK,		PORT114_FN4),
781	PINMUX_DATA(IRQ48_MARK,			PORT114_FN0),
782
783	/* Port115 */
784	PINMUX_DATA(KEYIN11_MARK,		PORT115_FN1),
785	PINMUX_DATA(KEYOUT11_MARK,		PORT115_FN2),
786	PINMUX_DATA(SF_IRQ_07_MARK,		PORT115_FN4),
787	PINMUX_DATA(IRQ49_MARK,			PORT115_FN0),
788
789	/* Port116 */
790	PINMUX_DATA(SCIFA0_TXD_MARK,		PORT116_FN1),
791	PINMUX_DATA(CSCIF0_TX_MARK,		PORT116_FN7),
792
793	/* Port117 */
794	PINMUX_DATA(SCIFA0_RXD_MARK,		PORT117_FN1),
795	PINMUX_DATA(CSCIF0_RX_MARK,		PORT117_FN7),
796
797	/* Port118 */
798	PINMUX_DATA(SCIFA1_TXD_MARK,		PORT118_FN1),
799	PINMUX_DATA(CSCIF1_TX_MARK,		PORT118_FN7),
800
801	/* Port119 */
802	PINMUX_DATA(SCIFA1_RXD_MARK,		PORT119_FN1),
803	PINMUX_DATA(CSCIF1_RX_MARK,		PORT119_FN7),
804
805	/* Port120 */
806	PINMUX_DATA(SF_PORT_1_120_MARK,		PORT120_FN3),
807	PINMUX_DATA(SCIFB3_RXD_120_MARK,	PORT120_FN4,	MSEL3CR_09_1),
808	PINMUX_DATA(DU0_CDE_MARK,		PORT120_FN7),
809
810	/* Port121 */
811	PINMUX_DATA(SF_PORT_0_121_MARK,		PORT121_FN3),
812	PINMUX_DATA(SCIFB3_TXD_121_MARK,	PORT121_FN4,	MSEL3CR_09_1),
813
814	/* Port122 */
815	PINMUX_DATA(SCIFB0_TXD_MARK,		PORT122_FN1),
816	PINMUX_DATA(CHSCIF0_HTX_MARK,		PORT122_FN7),
817
818	/* Port123 */
819	PINMUX_DATA(SCIFB0_RXD_MARK,		PORT123_FN1),
820	PINMUX_DATA(CHSCIF0_HRX_MARK,		PORT123_FN7),
821
822	/* Port124 */
823	PINMUX_DATA(ISP_STROBE_124_MARK,	PORT124_FN3),
824
825	/* Port125 */
826	PINMUX_DATA(STP_ISD_0_MARK,		PORT125_FN1),
827	PINMUX_DATA(PDM4_CLK_125_MARK,		PORT125_FN2),
828	PINMUX_DATA(MSIOF2_TXD_MARK,		PORT125_FN3),
829	PINMUX_DATA(SIM0_VOLTSEL0_MARK,		PORT125_FN5),
830
831	/* Port126 */
832	PINMUX_DATA(TS_SDEN_MARK,		PORT126_FN1),
833	PINMUX_DATA(MSIOF7_SYNC_MARK,		PORT126_FN2),
834	PINMUX_DATA(STP_ISEN_1_MARK,		PORT126_FN3),
835
836	/* Port128 */
837	PINMUX_DATA(STP_ISEN_0_MARK,		PORT128_FN1),
838	PINMUX_DATA(PDM1_OUTDATA_128_MARK,	PORT128_FN2),
839	PINMUX_DATA(MSIOF2_SYNC_MARK,		PORT128_FN3),
840	PINMUX_DATA(SIM1_VOLTSEL1_MARK,		PORT128_FN5),
841
842	/* Port129 */
843	PINMUX_DATA(TS_SPSYNC_MARK,		PORT129_FN1),
844	PINMUX_DATA(MSIOF7_RXD_MARK,		PORT129_FN2),
845	PINMUX_DATA(STP_ISSYNC_1_MARK,		PORT129_FN3),
846
847	/* Port130 */
848	PINMUX_DATA(STP_ISSYNC_0_MARK,		PORT130_FN1),
849	PINMUX_DATA(PDM4_DATA_130_MARK,		PORT130_FN2,	MSEL3CR_12_1),
850	PINMUX_DATA(MSIOF2_RXD_MARK,		PORT130_FN3),
851	PINMUX_DATA(SIM0_VOLTSEL1_MARK,		PORT130_FN5),
852
853	/* Port131 */
854	PINMUX_DATA(STP_OPWM_0_MARK,		PORT131_FN1),
855	PINMUX_DATA(SIM1_PWRON_MARK,		PORT131_FN5),
856
857	/* Port132 */
858	PINMUX_DATA(TS_SCK_MARK,		PORT132_FN1),
859	PINMUX_DATA(MSIOF7_SCK_MARK,		PORT132_FN2),
860	PINMUX_DATA(STP_ISCLK_1_MARK,		PORT132_FN3),
861
862	/* Port133 */
863	PINMUX_DATA(STP_ISCLK_0_MARK,		PORT133_FN1),
864	PINMUX_DATA(PDM1_OUTCLK_133_MARK,	PORT133_FN2),
865	PINMUX_DATA(MSIOF2_SCK_MARK,		PORT133_FN3),
866	PINMUX_DATA(SIM1_VOLTSEL0_MARK,		PORT133_FN5),
867
868	/* Port134 */
869	PINMUX_DATA(TS_SDAT_MARK,		PORT134_FN1),
870	PINMUX_DATA(MSIOF7_TXD_MARK,		PORT134_FN2),
871	PINMUX_DATA(STP_ISD_1_MARK,		PORT134_FN3),
872
873	/* Port160 - Port178 */
874	PINMUX_DATA(IRQ20_MARK,			PORT160_FN0),
875	PINMUX_DATA(IRQ21_MARK,			PORT161_FN0),
876	PINMUX_DATA(IRQ22_MARK,			PORT162_FN0),
877	PINMUX_DATA(IRQ23_MARK,			PORT163_FN0),
878	PINMUX_DATA(MMCD0_0_MARK,		PORT164_FN1),
879	PINMUX_DATA(MMCD0_1_MARK,		PORT165_FN1),
880	PINMUX_DATA(MMCD0_2_MARK,		PORT166_FN1),
881	PINMUX_DATA(MMCD0_3_MARK,		PORT167_FN1),
882	PINMUX_DATA(MMCD0_4_MARK,		PORT168_FN1),
883	PINMUX_DATA(MMCD0_5_MARK,		PORT169_FN1),
884	PINMUX_DATA(MMCD0_6_MARK,		PORT170_FN1),
885	PINMUX_DATA(MMCD0_7_MARK,		PORT171_FN1),
886	PINMUX_DATA(MMCCMD0_MARK,		PORT172_FN1),
887	PINMUX_DATA(MMCCLK0_MARK,		PORT173_FN1),
888	PINMUX_DATA(MMCRST_MARK,		PORT174_FN1),
889	PINMUX_DATA(IRQ24_MARK,			PORT175_FN0),
890	PINMUX_DATA(IRQ25_MARK,			PORT176_FN0),
891	PINMUX_DATA(IRQ26_MARK,			PORT177_FN0),
892	PINMUX_DATA(IRQ27_MARK,			PORT178_FN0),
893
894	/* Port192 - Port200 FN1 */
895	PINMUX_DATA(A10_MARK,		PORT192_FN1),
896	PINMUX_DATA(A9_MARK,		PORT193_FN1),
897	PINMUX_DATA(A8_MARK,		PORT194_FN1),
898	PINMUX_DATA(A7_MARK,		PORT195_FN1),
899	PINMUX_DATA(A6_MARK,		PORT196_FN1),
900	PINMUX_DATA(A5_MARK,		PORT197_FN1),
901	PINMUX_DATA(A4_MARK,		PORT198_FN1),
902	PINMUX_DATA(A3_MARK,		PORT199_FN1),
903	PINMUX_DATA(A2_MARK,		PORT200_FN1),
904
905	/* Port192 - Port200 FN2 */
906	PINMUX_DATA(MMCD1_7_MARK,		PORT192_FN2),
907	PINMUX_DATA(MMCD1_6_MARK,		PORT193_FN2),
908	PINMUX_DATA(MMCD1_5_MARK,		PORT194_FN2),
909	PINMUX_DATA(MMCD1_4_MARK,		PORT195_FN2),
910	PINMUX_DATA(MMCD1_3_MARK,		PORT196_FN2),
911	PINMUX_DATA(MMCD1_2_MARK,		PORT197_FN2),
912	PINMUX_DATA(MMCD1_1_MARK,		PORT198_FN2),
913	PINMUX_DATA(MMCD1_0_MARK,		PORT199_FN2),
914	PINMUX_DATA(MMCCMD1_MARK,		PORT200_FN2),
915
916	/* Port192 - Port200 IRQ */
917	PINMUX_DATA(IRQ31_MARK,			PORT192_FN0),
918	PINMUX_DATA(IRQ32_MARK,			PORT193_FN0),
919	PINMUX_DATA(IRQ33_MARK,			PORT194_FN0),
920	PINMUX_DATA(IRQ34_MARK,			PORT195_FN0),
921	PINMUX_DATA(IRQ35_MARK,			PORT196_FN0),
922	PINMUX_DATA(IRQ36_MARK,			PORT197_FN0),
923	PINMUX_DATA(IRQ37_MARK,			PORT198_FN0),
924	PINMUX_DATA(IRQ38_MARK,			PORT199_FN0),
925	PINMUX_DATA(IRQ39_MARK,			PORT200_FN0),
926
927	/* Port201 */
928	PINMUX_DATA(A1_MARK,		PORT201_FN1),
929
930	/* Port202 */
931	PINMUX_DATA(A0_MARK,		PORT202_FN1),
932	PINMUX_DATA(BS_MARK,		PORT202_FN2),
933
934	/* Port203 */
935	PINMUX_DATA(CKO_MARK,		PORT203_FN1),
936	PINMUX_DATA(MMCCLK1_MARK,	PORT203_FN2),
937
938	/* Port204 */
939	PINMUX_DATA(CS0_N_MARK,		PORT204_FN1),
940	PINMUX_DATA(SIM0_GPO1_MARK,	PORT204_FN5),
941
942	/* Port205 */
943	PINMUX_DATA(CS2_N_MARK,		PORT205_FN1),
944	PINMUX_DATA(SIM0_GPO2_MARK,	PORT205_FN5),
945
946	/* Port206 */
947	PINMUX_DATA(CS4_N_MARK,		PORT206_FN1),
948	PINMUX_DATA(VIO_VD_MARK,	PORT206_FN2),
949	PINMUX_DATA(SIM1_GPO0_MARK,	PORT206_FN5),
950
951	/* Port207 - Port212 FN1 */
952	PINMUX_DATA(D15_MARK,		PORT207_FN1),
953	PINMUX_DATA(D14_MARK,		PORT208_FN1),
954	PINMUX_DATA(D13_MARK,		PORT209_FN1),
955	PINMUX_DATA(D12_MARK,		PORT210_FN1),
956	PINMUX_DATA(D11_MARK,		PORT211_FN1),
957	PINMUX_DATA(D10_MARK,		PORT212_FN1),
958
959	/* Port207 - Port212 FN5 */
960	PINMUX_DATA(GIO_OUT15_MARK,			PORT207_FN5),
961	PINMUX_DATA(GIO_OUT14_MARK,			PORT208_FN5),
962	PINMUX_DATA(GIO_OUT13_MARK,			PORT209_FN5),
963	PINMUX_DATA(GIO_OUT12_MARK,			PORT210_FN5),
964	PINMUX_DATA(WGM_TXP2_MARK,			PORT211_FN5),
965	PINMUX_DATA(WGM_GPS_TIMEM_ASK_RFCLK_MARK,	PORT212_FN5),
966
967	/* Port213 - Port222 FN1 */
968	PINMUX_DATA(D9_MARK,		PORT213_FN1),
969	PINMUX_DATA(D8_MARK,		PORT214_FN1),
970	PINMUX_DATA(D7_MARK,		PORT215_FN1),
971	PINMUX_DATA(D6_MARK,		PORT216_FN1),
972	PINMUX_DATA(D5_MARK,		PORT217_FN1),
973	PINMUX_DATA(D4_MARK,		PORT218_FN1),
974	PINMUX_DATA(D3_MARK,		PORT219_FN1),
975	PINMUX_DATA(D2_MARK,		PORT220_FN1),
976	PINMUX_DATA(D1_MARK,		PORT221_FN1),
977	PINMUX_DATA(D0_MARK,		PORT222_FN1),
978
979	/* Port213 - Port222 FN2 */
980	PINMUX_DATA(VIO_D9_MARK,	PORT213_FN2),
981	PINMUX_DATA(VIO_D8_MARK,	PORT214_FN2),
982	PINMUX_DATA(VIO_D7_MARK,	PORT215_FN2),
983	PINMUX_DATA(VIO_D6_MARK,	PORT216_FN2),
984	PINMUX_DATA(VIO_D5_MARK,	PORT217_FN2),
985	PINMUX_DATA(VIO_D4_MARK,	PORT218_FN2),
986	PINMUX_DATA(VIO_D3_MARK,	PORT219_FN2),
987	PINMUX_DATA(VIO_D2_MARK,	PORT220_FN2),
988	PINMUX_DATA(VIO_D1_MARK,	PORT221_FN2),
989	PINMUX_DATA(VIO_D0_MARK,	PORT222_FN2),
990
991	/* Port213 - Port222 FN5 */
992	PINMUX_DATA(GIO_OUT9_MARK,	PORT213_FN5),
993	PINMUX_DATA(GIO_OUT8_MARK,	PORT214_FN5),
994	PINMUX_DATA(GIO_OUT7_MARK,	PORT215_FN5),
995	PINMUX_DATA(GIO_OUT6_MARK,	PORT216_FN5),
996	PINMUX_DATA(GIO_OUT5_217_MARK,	PORT217_FN5),
997	PINMUX_DATA(GIO_OUT4_218_MARK,	PORT218_FN5),
998	PINMUX_DATA(GIO_OUT3_219_MARK,	PORT219_FN5),
999	PINMUX_DATA(GIO_OUT2_220_MARK,	PORT220_FN5),
1000	PINMUX_DATA(GIO_OUT1_221_MARK,	PORT221_FN5),
1001	PINMUX_DATA(GIO_OUT0_222_MARK,	PORT222_FN5),
1002
1003	/* Port224 */
1004	PINMUX_DATA(RDWR_224_MARK,	PORT224_FN1),
1005	PINMUX_DATA(VIO_HD_MARK,	PORT224_FN2),
1006	PINMUX_DATA(SIM1_GPO2_MARK,	PORT224_FN5),
1007
1008	/* Port225 */
1009	PINMUX_DATA(RD_N_MARK,		PORT225_FN1),
1010
1011	/* Port226 */
1012	PINMUX_DATA(WAIT_N_MARK,	PORT226_FN1),
1013	PINMUX_DATA(VIO_CLK_MARK,	PORT226_FN2),
1014	PINMUX_DATA(SIM1_GPO1_MARK,	PORT226_FN5),
1015
1016	/* Port227 */
1017	PINMUX_DATA(WE0_N_MARK,		PORT227_FN1),
1018	PINMUX_DATA(RDWR_227_MARK,	PORT227_FN2),
1019
1020	/* Port228 */
1021	PINMUX_DATA(WE1_N_MARK,		PORT228_FN1),
1022	PINMUX_DATA(SIM0_GPO0_MARK,	PORT228_FN5),
1023
1024	/* Port229 */
1025	PINMUX_DATA(PWMO_MARK,		PORT229_FN1),
1026	PINMUX_DATA(VIO_CKO1_229_MARK,	PORT229_FN2),
1027
1028	/* Port230 */
1029	PINMUX_DATA(SLIM_CLK_MARK,	PORT230_FN1),
1030	PINMUX_DATA(VIO_CKO4_230_MARK,	PORT230_FN2),
1031
1032	/* Port231 */
1033	PINMUX_DATA(SLIM_DATA_MARK,	PORT231_FN1),
1034	PINMUX_DATA(VIO_CKO5_231_MARK,	PORT231_FN2),
1035
1036	/* Port232 */
1037	PINMUX_DATA(VIO_CKO2_232_MARK,	PORT232_FN2),
1038	PINMUX_DATA(SF_PORT_0_232_MARK,	PORT232_FN4),
1039
1040	/* Port233 */
1041	PINMUX_DATA(VIO_CKO3_233_MARK,	PORT233_FN2),
1042	PINMUX_DATA(SF_PORT_1_233_MARK,	PORT233_FN4),
1043
1044	/* Port234 */
1045	PINMUX_DATA(FSIACK_MARK,	PORT234_FN1),
1046	PINMUX_DATA(PDM3_CLK_234_MARK,	PORT234_FN2),
1047	PINMUX_DATA(ISP_IRIS1_234_MARK,	PORT234_FN3),
1048
1049	/* Port235 */
1050	PINMUX_DATA(FSIAISLD_MARK,	PORT235_FN1),
1051	PINMUX_DATA(PDM3_DATA_235_MARK,	PORT235_FN2,	MSEL3CR_12_1),
1052
1053	/* Port236 */
1054	PINMUX_DATA(FSIAOMC_MARK,		PORT236_FN1),
1055	PINMUX_DATA(PDM0_OUTCLK_236_MARK,	PORT236_FN2),
1056	PINMUX_DATA(ISP_IRIS0_236_MARK,		PORT236_FN3),
1057
1058	/* Port237 */
1059	PINMUX_DATA(FSIAOLR_MARK,	PORT237_FN1),
1060	PINMUX_DATA(FSIAILR_MARK,	PORT237_FN2),
1061
1062	/* Port238 */
1063	PINMUX_DATA(FSIAOBT_MARK,	PORT238_FN1),
1064	PINMUX_DATA(FSIAIBT_MARK,	PORT238_FN2),
1065
1066	/* Port239 */
1067	PINMUX_DATA(FSIAOSLD_MARK,		PORT239_FN1),
1068	PINMUX_DATA(PDM0_OUTDATA_239_MARK,	PORT239_FN2),
1069
1070	/* Port240 */
1071	PINMUX_DATA(FSIBISLD_MARK,	PORT240_FN1),
1072
1073	/* Port241 */
1074	PINMUX_DATA(FSIBOLR_MARK,	PORT241_FN1),
1075	PINMUX_DATA(FSIBILR_MARK,	PORT241_FN2),
1076
1077	/* Port242 */
1078	PINMUX_DATA(FSIBOMC_MARK,		PORT242_FN1),
1079	PINMUX_DATA(ISP_SHUTTER1_242_MARK,	PORT242_FN3),
1080
1081	/* Port243 */
1082	PINMUX_DATA(FSIBOBT_MARK,	PORT243_FN1),
1083	PINMUX_DATA(FSIBIBT_MARK,	PORT243_FN2),
1084
1085	/* Port244 */
1086	PINMUX_DATA(FSIBOSLD_MARK,	PORT244_FN1),
1087	PINMUX_DATA(FSIASPDIF_MARK,	PORT244_FN2),
1088
1089	/* Port245 */
1090	PINMUX_DATA(FSIBCK_MARK,		PORT245_FN1),
1091	PINMUX_DATA(ISP_SHUTTER0_245_MARK,	PORT245_FN3),
1092
1093	/* Port246 - Port250 FN1 */
1094	PINMUX_DATA(ISP_IRIS1_246_MARK,		PORT246_FN1),
1095	PINMUX_DATA(ISP_IRIS0_247_MARK,		PORT247_FN1),
1096	PINMUX_DATA(ISP_SHUTTER1_248_MARK,	PORT248_FN1),
1097	PINMUX_DATA(ISP_SHUTTER0_249_MARK,	PORT249_FN1),
1098	PINMUX_DATA(ISP_STROBE_250_MARK,	PORT250_FN1),
1099
1100	/* Port256 - Port258 */
1101	PINMUX_DATA(MSIOF0_SYNC_MARK,		PORT256_FN1),
1102	PINMUX_DATA(MSIOF0_RXD_MARK,		PORT257_FN1),
1103	PINMUX_DATA(MSIOF0_SCK_MARK,		PORT258_FN1),
1104
1105	/* Port259 */
1106	PINMUX_DATA(MSIOF0_SS2_MARK,		PORT259_FN1),
1107	PINMUX_DATA(VIO_CKO3_259_MARK,		PORT259_FN3),
1108
1109	/* Port260 */
1110	PINMUX_DATA(MSIOF0_TXD_MARK,		PORT260_FN1),
1111
1112	/* Port261 */
1113	PINMUX_DATA(SCIFB1_SCK_261_MARK,	PORT261_FN2),
1114	PINMUX_DATA(CHSCIF1_HSCK_MARK,		PORT261_FN7),
1115
1116	/* Port262 */
1117	PINMUX_DATA(SCIFB2_SCK_262_MARK,	PORT262_FN2),
1118
1119	/* Port263 - Port266 FN1 */
1120	PINMUX_DATA(MSIOF1_SS2_MARK,		PORT263_FN1),
1121	PINMUX_DATA(MSIOF1_TXD_MARK,		PORT264_FN1),
1122	PINMUX_DATA(MSIOF1_RXD_MARK,		PORT265_FN1),
1123	PINMUX_DATA(MSIOF1_SS1_MARK,		PORT266_FN1),
1124
1125	/* Port263 - Port266 FN4 */
1126	PINMUX_DATA(MSIOF5_SS2_MARK,		PORT263_FN4),
1127	PINMUX_DATA(MSIOF5_TXD_MARK,		PORT264_FN4),
1128	PINMUX_DATA(MSIOF5_RXD_MARK,		PORT265_FN4),
1129	PINMUX_DATA(MSIOF5_SS1_MARK,		PORT266_FN4),
1130
1131	/* Port267 */
1132	PINMUX_DATA(MSIOF0_SS1_MARK,		PORT267_FN1),
1133
1134	/* Port268 */
1135	PINMUX_DATA(MSIOF1_SCK_MARK,		PORT268_FN1),
1136	PINMUX_DATA(MSIOF5_SCK_MARK,		PORT268_FN4),
1137
1138	/* Port269 */
1139	PINMUX_DATA(MSIOF1_SYNC_MARK,		PORT269_FN1),
1140	PINMUX_DATA(MSIOF5_SYNC_MARK,		PORT269_FN4),
1141
1142	/* Port270 - Port273 FN1 */
1143	PINMUX_DATA(MSIOF2_SS1_MARK,		PORT270_FN1),
1144	PINMUX_DATA(MSIOF2_SS2_MARK,		PORT271_FN1),
1145	PINMUX_DATA(MSIOF3_SS2_MARK,		PORT272_FN1),
1146	PINMUX_DATA(MSIOF3_SS1_MARK,		PORT273_FN1),
1147
1148	/* Port270 - Port273 FN3 */
1149	PINMUX_DATA(VIO_CKO5_270_MARK,		PORT270_FN3),
1150	PINMUX_DATA(VIO_CKO2_271_MARK,		PORT271_FN3),
1151	PINMUX_DATA(VIO_CKO1_272_MARK,		PORT272_FN3),
1152	PINMUX_DATA(VIO_CKO4_273_MARK,		PORT273_FN3),
1153
1154	/* Port274 */
1155	PINMUX_DATA(MSIOF4_SS2_MARK,		PORT274_FN1),
1156	PINMUX_DATA(TPU1TO0_MARK,		PORT274_FN4),
1157
1158	/* Port275 - Port280 */
1159	PINMUX_DATA(IC_DP_MARK,			PORT275_FN1),
1160	PINMUX_DATA(SIM0_RST_MARK,		PORT276_FN1),
1161	PINMUX_DATA(IC_DM_MARK,			PORT277_FN1),
1162	PINMUX_DATA(SIM0_BSICOMP_MARK,		PORT278_FN1),
1163	PINMUX_DATA(SIM0_CLK_MARK,		PORT279_FN1),
1164	PINMUX_DATA(SIM0_IO_MARK,		PORT280_FN1),
1165
1166	/* Port281 */
1167	PINMUX_DATA(SIM1_IO_MARK,		PORT281_FN1),
1168	PINMUX_DATA(PDM2_DATA_281_MARK,		PORT281_FN2,	MSEL3CR_12_1),
1169
1170	/* Port282 */
1171	PINMUX_DATA(SIM1_CLK_MARK,		PORT282_FN1),
1172	PINMUX_DATA(PDM2_CLK_282_MARK,		PORT282_FN2),
1173
1174	/* Port283 */
1175	PINMUX_DATA(SIM1_RST_MARK,		PORT283_FN1),
1176
1177	/* Port289 */
1178	PINMUX_DATA(SDHID1_0_MARK,		PORT289_FN1),
1179	PINMUX_DATA(STMDATA0_2_MARK,		PORT289_FN3),
1180
1181	/* Port290 */
1182	PINMUX_DATA(SDHID1_1_MARK,		PORT290_FN1),
1183	PINMUX_DATA(STMDATA1_2_MARK,		PORT290_FN3),
1184	PINMUX_DATA(IRQ51_MARK,			PORT290_FN0),
1185
1186	/* Port291 - Port294 FN1 */
1187	PINMUX_DATA(SDHID1_2_MARK,		PORT291_FN1),
1188	PINMUX_DATA(SDHID1_3_MARK,		PORT292_FN1),
1189	PINMUX_DATA(SDHICLK1_MARK,		PORT293_FN1),
1190	PINMUX_DATA(SDHICMD1_MARK,		PORT294_FN1),
1191
1192	/* Port291 - Port294 FN3 */
1193	PINMUX_DATA(STMDATA2_2_MARK,		PORT291_FN3),
1194	PINMUX_DATA(STMDATA3_2_MARK,		PORT292_FN3),
1195	PINMUX_DATA(STMCLK_2_MARK,		PORT293_FN3),
1196	PINMUX_DATA(STMSIDI_2_MARK,		PORT294_FN3),
1197
1198	/* Port295 */
1199	PINMUX_DATA(SDHID2_0_MARK,		PORT295_FN1),
1200	PINMUX_DATA(MSIOF4_TXD_MARK,		PORT295_FN2),
1201	PINMUX_DATA(SCIFB2_TXD_295_MARK,	PORT295_FN3,	MSEL3CR_10_1),
1202	PINMUX_DATA(MSIOF6_TXD_MARK,		PORT295_FN4),
1203
1204	/* Port296 */
1205	PINMUX_DATA(SDHID2_1_MARK,		PORT296_FN1),
1206	PINMUX_DATA(MSIOF6_SS2_MARK,		PORT296_FN4),
1207	PINMUX_DATA(IRQ52_MARK,			PORT296_FN0),
1208
1209	/* Port297 - Port300 FN1 */
1210	PINMUX_DATA(SDHID2_2_MARK,		PORT297_FN1),
1211	PINMUX_DATA(SDHID2_3_MARK,		PORT298_FN1),
1212	PINMUX_DATA(SDHICLK2_MARK,		PORT299_FN1),
1213	PINMUX_DATA(SDHICMD2_MARK,		PORT300_FN1),
1214
1215	/* Port297 - Port300 FN2 */
1216	PINMUX_DATA(MSIOF4_RXD_MARK,		PORT297_FN2),
1217	PINMUX_DATA(MSIOF4_SYNC_MARK,		PORT298_FN2),
1218	PINMUX_DATA(MSIOF4_SCK_MARK,		PORT299_FN2),
1219	PINMUX_DATA(MSIOF4_SS1_MARK,		PORT300_FN2),
1220
1221	/* Port297 - Port300 FN3 */
1222	PINMUX_DATA(SCIFB2_RXD_297_MARK,	PORT297_FN3,	MSEL3CR_10_1),
1223	PINMUX_DATA(SCIFB2_CTS_298_MARK,	PORT298_FN3,	MSEL3CR_10_1),
1224	PINMUX_DATA(SCIFB2_SCK_299_MARK,	PORT299_FN3),
1225	PINMUX_DATA(SCIFB2_RTS_300_MARK,	PORT300_FN3),
1226
1227	/* Port297 - Port300 FN4 */
1228	PINMUX_DATA(MSIOF6_RXD_MARK,		PORT297_FN4),
1229	PINMUX_DATA(MSIOF6_SYNC_MARK,		PORT298_FN4),
1230	PINMUX_DATA(MSIOF6_SCK_MARK,		PORT299_FN4),
1231	PINMUX_DATA(MSIOF6_SS1_MARK,		PORT300_FN4),
1232
1233	/* Port301 */
1234	PINMUX_DATA(SDHICD0_MARK,		PORT301_FN1),
1235	PINMUX_DATA(IRQ50_MARK,			PORT301_FN0),
1236
1237	/* Port302 - Port306 FN1 */
1238	PINMUX_DATA(SDHID0_0_MARK,		PORT302_FN1),
1239	PINMUX_DATA(SDHID0_1_MARK,		PORT303_FN1),
1240	PINMUX_DATA(SDHID0_2_MARK,		PORT304_FN1),
1241	PINMUX_DATA(SDHID0_3_MARK,		PORT305_FN1),
1242	PINMUX_DATA(SDHICMD0_MARK,		PORT306_FN1),
1243
1244	/* Port302 - Port306 FN3 */
1245	PINMUX_DATA(STMDATA0_1_MARK,		PORT302_FN3),
1246	PINMUX_DATA(STMDATA1_1_MARK,		PORT303_FN3),
1247	PINMUX_DATA(STMDATA2_1_MARK,		PORT304_FN3),
1248	PINMUX_DATA(STMDATA3_1_MARK,		PORT305_FN3),
1249	PINMUX_DATA(STMSIDI_1_MARK,		PORT306_FN3),
1250
1251	/* Port307 */
1252	PINMUX_DATA(SDHIWP0_MARK,		PORT307_FN1),
1253
1254	/* Port308 */
1255	PINMUX_DATA(SDHICLK0_MARK,		PORT308_FN1),
1256	PINMUX_DATA(STMCLK_1_MARK,		PORT308_FN3),
1257
1258	/* Port320 - Port329 */
1259	PINMUX_DATA(IRQ16_MARK,			PORT320_FN0),
1260	PINMUX_DATA(IRQ17_MARK,			PORT321_FN0),
1261	PINMUX_DATA(IRQ28_MARK,			PORT322_FN0),
1262	PINMUX_DATA(IRQ29_MARK,			PORT323_FN0),
1263	PINMUX_DATA(IRQ30_MARK,			PORT324_FN0),
1264	PINMUX_DATA(IRQ53_MARK,			PORT325_FN0),
1265	PINMUX_DATA(IRQ54_MARK,			PORT326_FN0),
1266	PINMUX_DATA(IRQ55_MARK,			PORT327_FN0),
1267	PINMUX_DATA(IRQ56_MARK,			PORT328_FN0),
1268	PINMUX_DATA(IRQ57_MARK,			PORT329_FN0),
1269};
1270
1271#define __O	(SH_PFC_PIN_CFG_OUTPUT)
1272#define __IO	(SH_PFC_PIN_CFG_INPUT | SH_PFC_PIN_CFG_OUTPUT)
1273#define __PUD	(SH_PFC_PIN_CFG_PULL_DOWN | SH_PFC_PIN_CFG_PULL_UP)
1274
1275#define R8A73A4_PIN_IO_PU_PD(pin)       SH_PFC_PIN_CFG(pin, __IO | __PUD)
1276#define R8A73A4_PIN_O(pin)              SH_PFC_PIN_CFG(pin, __O)
1277
1278static const struct sh_pfc_pin pinmux_pins[] = {
1279	R8A73A4_PIN_IO_PU_PD(0), R8A73A4_PIN_IO_PU_PD(1),
1280	R8A73A4_PIN_IO_PU_PD(2), R8A73A4_PIN_IO_PU_PD(3),
1281	R8A73A4_PIN_IO_PU_PD(4), R8A73A4_PIN_IO_PU_PD(5),
1282	R8A73A4_PIN_IO_PU_PD(6), R8A73A4_PIN_IO_PU_PD(7),
1283	R8A73A4_PIN_IO_PU_PD(8), R8A73A4_PIN_IO_PU_PD(9),
1284	R8A73A4_PIN_IO_PU_PD(10), R8A73A4_PIN_IO_PU_PD(11),
1285	R8A73A4_PIN_IO_PU_PD(12), R8A73A4_PIN_IO_PU_PD(13),
1286	R8A73A4_PIN_IO_PU_PD(14), R8A73A4_PIN_IO_PU_PD(15),
1287	R8A73A4_PIN_IO_PU_PD(16), R8A73A4_PIN_IO_PU_PD(17),
1288	R8A73A4_PIN_IO_PU_PD(18), R8A73A4_PIN_IO_PU_PD(19),
1289	R8A73A4_PIN_IO_PU_PD(20), R8A73A4_PIN_IO_PU_PD(21),
1290	R8A73A4_PIN_IO_PU_PD(22), R8A73A4_PIN_IO_PU_PD(23),
1291	R8A73A4_PIN_IO_PU_PD(24), R8A73A4_PIN_IO_PU_PD(25),
1292	R8A73A4_PIN_IO_PU_PD(26), R8A73A4_PIN_IO_PU_PD(27),
1293	R8A73A4_PIN_IO_PU_PD(28), R8A73A4_PIN_IO_PU_PD(29),
1294	R8A73A4_PIN_IO_PU_PD(30),
1295	R8A73A4_PIN_IO_PU_PD(32), R8A73A4_PIN_IO_PU_PD(33),
1296	R8A73A4_PIN_IO_PU_PD(34), R8A73A4_PIN_IO_PU_PD(35),
1297	R8A73A4_PIN_IO_PU_PD(36), R8A73A4_PIN_IO_PU_PD(37),
1298	R8A73A4_PIN_IO_PU_PD(38), R8A73A4_PIN_IO_PU_PD(39),
1299	R8A73A4_PIN_IO_PU_PD(40),
1300	R8A73A4_PIN_IO_PU_PD(64), R8A73A4_PIN_IO_PU_PD(65),
1301	R8A73A4_PIN_IO_PU_PD(66), R8A73A4_PIN_IO_PU_PD(67),
1302	R8A73A4_PIN_IO_PU_PD(68), R8A73A4_PIN_IO_PU_PD(69),
1303	R8A73A4_PIN_IO_PU_PD(70), R8A73A4_PIN_IO_PU_PD(71),
1304	R8A73A4_PIN_IO_PU_PD(72), R8A73A4_PIN_IO_PU_PD(73),
1305	R8A73A4_PIN_O(74), R8A73A4_PIN_IO_PU_PD(75),
1306	R8A73A4_PIN_IO_PU_PD(76), R8A73A4_PIN_IO_PU_PD(77),
1307	R8A73A4_PIN_IO_PU_PD(78), R8A73A4_PIN_IO_PU_PD(79),
1308	R8A73A4_PIN_IO_PU_PD(80), R8A73A4_PIN_IO_PU_PD(81),
1309	R8A73A4_PIN_IO_PU_PD(82), R8A73A4_PIN_IO_PU_PD(83),
1310	R8A73A4_PIN_IO_PU_PD(84), R8A73A4_PIN_IO_PU_PD(85),
1311	R8A73A4_PIN_IO_PU_PD(96), R8A73A4_PIN_IO_PU_PD(97),
1312	R8A73A4_PIN_IO_PU_PD(98), R8A73A4_PIN_IO_PU_PD(99),
1313	R8A73A4_PIN_IO_PU_PD(100), R8A73A4_PIN_IO_PU_PD(101),
1314	R8A73A4_PIN_IO_PU_PD(102), R8A73A4_PIN_IO_PU_PD(103),
1315	R8A73A4_PIN_IO_PU_PD(104), R8A73A4_PIN_IO_PU_PD(105),
1316	R8A73A4_PIN_IO_PU_PD(106), R8A73A4_PIN_IO_PU_PD(107),
1317	R8A73A4_PIN_IO_PU_PD(108), R8A73A4_PIN_IO_PU_PD(109),
1318	R8A73A4_PIN_IO_PU_PD(110), R8A73A4_PIN_IO_PU_PD(111),
1319	R8A73A4_PIN_IO_PU_PD(112), R8A73A4_PIN_IO_PU_PD(113),
1320	R8A73A4_PIN_IO_PU_PD(114), R8A73A4_PIN_IO_PU_PD(115),
1321	R8A73A4_PIN_IO_PU_PD(116), R8A73A4_PIN_IO_PU_PD(117),
1322	R8A73A4_PIN_IO_PU_PD(118), R8A73A4_PIN_IO_PU_PD(119),
1323	R8A73A4_PIN_IO_PU_PD(120), R8A73A4_PIN_IO_PU_PD(121),
1324	R8A73A4_PIN_IO_PU_PD(122), R8A73A4_PIN_IO_PU_PD(123),
1325	R8A73A4_PIN_IO_PU_PD(124), R8A73A4_PIN_IO_PU_PD(125),
1326	R8A73A4_PIN_IO_PU_PD(126),
1327	R8A73A4_PIN_IO_PU_PD(128), R8A73A4_PIN_IO_PU_PD(129),
1328	R8A73A4_PIN_IO_PU_PD(130), R8A73A4_PIN_IO_PU_PD(131),
1329	R8A73A4_PIN_IO_PU_PD(132), R8A73A4_PIN_IO_PU_PD(133),
1330	R8A73A4_PIN_IO_PU_PD(134),
1331	R8A73A4_PIN_IO_PU_PD(160), R8A73A4_PIN_IO_PU_PD(161),
1332	R8A73A4_PIN_IO_PU_PD(162), R8A73A4_PIN_IO_PU_PD(163),
1333	R8A73A4_PIN_IO_PU_PD(164), R8A73A4_PIN_IO_PU_PD(165),
1334	R8A73A4_PIN_IO_PU_PD(166), R8A73A4_PIN_IO_PU_PD(167),
1335	R8A73A4_PIN_IO_PU_PD(168), R8A73A4_PIN_IO_PU_PD(169),
1336	R8A73A4_PIN_IO_PU_PD(170), R8A73A4_PIN_IO_PU_PD(171),
1337	R8A73A4_PIN_IO_PU_PD(172), R8A73A4_PIN_IO_PU_PD(173),
1338	R8A73A4_PIN_IO_PU_PD(174), R8A73A4_PIN_IO_PU_PD(175),
1339	R8A73A4_PIN_IO_PU_PD(176), R8A73A4_PIN_IO_PU_PD(177),
1340	R8A73A4_PIN_IO_PU_PD(178),
1341	R8A73A4_PIN_IO_PU_PD(192), R8A73A4_PIN_IO_PU_PD(193),
1342	R8A73A4_PIN_IO_PU_PD(194), R8A73A4_PIN_IO_PU_PD(195),
1343	R8A73A4_PIN_IO_PU_PD(196), R8A73A4_PIN_IO_PU_PD(197),
1344	R8A73A4_PIN_IO_PU_PD(198), R8A73A4_PIN_IO_PU_PD(199),
1345	R8A73A4_PIN_IO_PU_PD(200), R8A73A4_PIN_IO_PU_PD(201),
1346	R8A73A4_PIN_IO_PU_PD(202), R8A73A4_PIN_IO_PU_PD(203),
1347	R8A73A4_PIN_IO_PU_PD(204), R8A73A4_PIN_IO_PU_PD(205),
1348	R8A73A4_PIN_IO_PU_PD(206), R8A73A4_PIN_IO_PU_PD(207),
1349	R8A73A4_PIN_IO_PU_PD(208), R8A73A4_PIN_IO_PU_PD(209),
1350	R8A73A4_PIN_IO_PU_PD(210), R8A73A4_PIN_IO_PU_PD(211),
1351	R8A73A4_PIN_IO_PU_PD(212), R8A73A4_PIN_IO_PU_PD(213),
1352	R8A73A4_PIN_IO_PU_PD(214), R8A73A4_PIN_IO_PU_PD(215),
1353	R8A73A4_PIN_IO_PU_PD(216), R8A73A4_PIN_IO_PU_PD(217),
1354	R8A73A4_PIN_IO_PU_PD(218), R8A73A4_PIN_IO_PU_PD(219),
1355	R8A73A4_PIN_IO_PU_PD(220), R8A73A4_PIN_IO_PU_PD(221),
1356	R8A73A4_PIN_IO_PU_PD(222),
1357	R8A73A4_PIN_IO_PU_PD(224), R8A73A4_PIN_IO_PU_PD(225),
1358	R8A73A4_PIN_IO_PU_PD(226), R8A73A4_PIN_IO_PU_PD(227),
1359	R8A73A4_PIN_IO_PU_PD(228), R8A73A4_PIN_IO_PU_PD(229),
1360	R8A73A4_PIN_IO_PU_PD(230), R8A73A4_PIN_IO_PU_PD(231),
1361	R8A73A4_PIN_IO_PU_PD(232), R8A73A4_PIN_IO_PU_PD(233),
1362	R8A73A4_PIN_IO_PU_PD(234), R8A73A4_PIN_IO_PU_PD(235),
1363	R8A73A4_PIN_IO_PU_PD(236), R8A73A4_PIN_IO_PU_PD(237),
1364	R8A73A4_PIN_IO_PU_PD(238), R8A73A4_PIN_IO_PU_PD(239),
1365	R8A73A4_PIN_IO_PU_PD(240), R8A73A4_PIN_IO_PU_PD(241),
1366	R8A73A4_PIN_IO_PU_PD(242), R8A73A4_PIN_IO_PU_PD(243),
1367	R8A73A4_PIN_IO_PU_PD(244), R8A73A4_PIN_IO_PU_PD(245),
1368	R8A73A4_PIN_IO_PU_PD(246), R8A73A4_PIN_IO_PU_PD(247),
1369	R8A73A4_PIN_IO_PU_PD(248), R8A73A4_PIN_IO_PU_PD(249),
1370	R8A73A4_PIN_IO_PU_PD(250),
1371	R8A73A4_PIN_IO_PU_PD(256), R8A73A4_PIN_IO_PU_PD(257),
1372	R8A73A4_PIN_IO_PU_PD(258), R8A73A4_PIN_IO_PU_PD(259),
1373	R8A73A4_PIN_IO_PU_PD(260), R8A73A4_PIN_IO_PU_PD(261),
1374	R8A73A4_PIN_IO_PU_PD(262), R8A73A4_PIN_IO_PU_PD(263),
1375	R8A73A4_PIN_IO_PU_PD(264), R8A73A4_PIN_IO_PU_PD(265),
1376	R8A73A4_PIN_IO_PU_PD(266), R8A73A4_PIN_IO_PU_PD(267),
1377	R8A73A4_PIN_IO_PU_PD(268), R8A73A4_PIN_IO_PU_PD(269),
1378	R8A73A4_PIN_IO_PU_PD(270), R8A73A4_PIN_IO_PU_PD(271),
1379	R8A73A4_PIN_IO_PU_PD(272), R8A73A4_PIN_IO_PU_PD(273),
1380	R8A73A4_PIN_IO_PU_PD(274), R8A73A4_PIN_IO_PU_PD(275),
1381	R8A73A4_PIN_IO_PU_PD(276), R8A73A4_PIN_IO_PU_PD(277),
1382	R8A73A4_PIN_IO_PU_PD(278), R8A73A4_PIN_IO_PU_PD(279),
1383	R8A73A4_PIN_IO_PU_PD(280), R8A73A4_PIN_IO_PU_PD(281),
1384	R8A73A4_PIN_IO_PU_PD(282), R8A73A4_PIN_IO_PU_PD(283),
1385	R8A73A4_PIN_O(288), R8A73A4_PIN_IO_PU_PD(289),
1386	R8A73A4_PIN_IO_PU_PD(290), R8A73A4_PIN_IO_PU_PD(291),
1387	R8A73A4_PIN_IO_PU_PD(292), R8A73A4_PIN_IO_PU_PD(293),
1388	R8A73A4_PIN_IO_PU_PD(294), R8A73A4_PIN_IO_PU_PD(295),
1389	R8A73A4_PIN_IO_PU_PD(296), R8A73A4_PIN_IO_PU_PD(297),
1390	R8A73A4_PIN_IO_PU_PD(298), R8A73A4_PIN_IO_PU_PD(299),
1391	R8A73A4_PIN_IO_PU_PD(300), R8A73A4_PIN_IO_PU_PD(301),
1392	R8A73A4_PIN_IO_PU_PD(302), R8A73A4_PIN_IO_PU_PD(303),
1393	R8A73A4_PIN_IO_PU_PD(304), R8A73A4_PIN_IO_PU_PD(305),
1394	R8A73A4_PIN_IO_PU_PD(306), R8A73A4_PIN_IO_PU_PD(307),
1395	R8A73A4_PIN_IO_PU_PD(308),
1396	R8A73A4_PIN_IO_PU_PD(320), R8A73A4_PIN_IO_PU_PD(321),
1397	R8A73A4_PIN_IO_PU_PD(322), R8A73A4_PIN_IO_PU_PD(323),
1398	R8A73A4_PIN_IO_PU_PD(324), R8A73A4_PIN_IO_PU_PD(325),
1399	R8A73A4_PIN_IO_PU_PD(326), R8A73A4_PIN_IO_PU_PD(327),
1400	R8A73A4_PIN_IO_PU_PD(328), R8A73A4_PIN_IO_PU_PD(329),
1401};
1402
1403/* - IRQC ------------------------------------------------------------------- */
1404#define IRQC_PINS_MUX(pin, irq_mark)				\
1405static const unsigned int irqc_irq##irq_mark##_pins[] = {	\
1406	pin,							\
1407};								\
1408static const unsigned int irqc_irq##irq_mark##_mux[] = {	\
1409	IRQ##irq_mark##_MARK,					\
1410}
1411IRQC_PINS_MUX(0, 0);
1412IRQC_PINS_MUX(1, 1);
1413IRQC_PINS_MUX(2, 2);
1414IRQC_PINS_MUX(3, 3);
1415IRQC_PINS_MUX(4, 4);
1416IRQC_PINS_MUX(5, 5);
1417IRQC_PINS_MUX(6, 6);
1418IRQC_PINS_MUX(7, 7);
1419IRQC_PINS_MUX(8, 8);
1420IRQC_PINS_MUX(9, 9);
1421IRQC_PINS_MUX(10, 10);
1422IRQC_PINS_MUX(11, 11);
1423IRQC_PINS_MUX(12, 12);
1424IRQC_PINS_MUX(13, 13);
1425IRQC_PINS_MUX(14, 14);
1426IRQC_PINS_MUX(15, 15);
1427IRQC_PINS_MUX(66, 40);
1428IRQC_PINS_MUX(84, 19);
1429IRQC_PINS_MUX(85, 18);
1430IRQC_PINS_MUX(102, 41);
1431IRQC_PINS_MUX(103, 42);
1432IRQC_PINS_MUX(109, 43);
1433IRQC_PINS_MUX(110, 44);
1434IRQC_PINS_MUX(111, 45);
1435IRQC_PINS_MUX(112, 46);
1436IRQC_PINS_MUX(113, 47);
1437IRQC_PINS_MUX(114, 48);
1438IRQC_PINS_MUX(115, 49);
1439IRQC_PINS_MUX(160, 20);
1440IRQC_PINS_MUX(161, 21);
1441IRQC_PINS_MUX(162, 22);
1442IRQC_PINS_MUX(163, 23);
1443IRQC_PINS_MUX(175, 24);
1444IRQC_PINS_MUX(176, 25);
1445IRQC_PINS_MUX(177, 26);
1446IRQC_PINS_MUX(178, 27);
1447IRQC_PINS_MUX(192, 31);
1448IRQC_PINS_MUX(193, 32);
1449IRQC_PINS_MUX(194, 33);
1450IRQC_PINS_MUX(195, 34);
1451IRQC_PINS_MUX(196, 35);
1452IRQC_PINS_MUX(197, 36);
1453IRQC_PINS_MUX(198, 37);
1454IRQC_PINS_MUX(199, 38);
1455IRQC_PINS_MUX(200, 39);
1456IRQC_PINS_MUX(290, 51);
1457IRQC_PINS_MUX(296, 52);
1458IRQC_PINS_MUX(301, 50);
1459IRQC_PINS_MUX(320, 16);
1460IRQC_PINS_MUX(321, 17);
1461IRQC_PINS_MUX(322, 28);
1462IRQC_PINS_MUX(323, 29);
1463IRQC_PINS_MUX(324, 30);
1464IRQC_PINS_MUX(325, 53);
1465IRQC_PINS_MUX(326, 54);
1466IRQC_PINS_MUX(327, 55);
1467IRQC_PINS_MUX(328, 56);
1468IRQC_PINS_MUX(329, 57);
1469/* - MMCIF0 ----------------------------------------------------------------- */
1470static const unsigned int mmc0_data1_pins[] = {
1471	/* D[0] */
1472	164,
1473};
1474static const unsigned int mmc0_data1_mux[] = {
1475	MMCD0_0_MARK,
1476};
1477static const unsigned int mmc0_data4_pins[] = {
1478	/* D[0:3] */
1479	164, 165, 166, 167,
1480};
1481static const unsigned int mmc0_data4_mux[] = {
1482	MMCD0_0_MARK, MMCD0_1_MARK, MMCD0_2_MARK, MMCD0_3_MARK,
1483};
1484static const unsigned int mmc0_data8_pins[] = {
1485	/* D[0:7] */
1486	164, 165, 166, 167, 168, 169, 170, 171,
1487};
1488static const unsigned int mmc0_data8_mux[] = {
1489	MMCD0_0_MARK, MMCD0_1_MARK, MMCD0_2_MARK, MMCD0_3_MARK,
1490	MMCD0_4_MARK, MMCD0_5_MARK, MMCD0_6_MARK, MMCD0_7_MARK,
1491};
1492static const unsigned int mmc0_ctrl_pins[] = {
1493	/* CMD, CLK */
1494	172, 173,
1495};
1496static const unsigned int mmc0_ctrl_mux[] = {
1497	MMCCMD0_MARK, MMCCLK0_MARK,
1498};
1499/* - MMCIF1 ----------------------------------------------------------------- */
1500static const unsigned int mmc1_data1_pins[] = {
1501	/* D[0] */
1502	199,
1503};
1504static const unsigned int mmc1_data1_mux[] = {
1505	MMCD1_0_MARK,
1506};
1507static const unsigned int mmc1_data4_pins[] = {
1508	/* D[0:3] */
1509	199, 198, 197, 196,
1510};
1511static const unsigned int mmc1_data4_mux[] = {
1512	MMCD1_0_MARK, MMCD1_1_MARK, MMCD1_2_MARK, MMCD1_3_MARK,
1513};
1514static const unsigned int mmc1_data8_pins[] = {
1515	/* D[0:7] */
1516	199, 198, 197, 196, 195, 194, 193, 192,
1517};
1518static const unsigned int mmc1_data8_mux[] = {
1519	MMCD1_0_MARK, MMCD1_1_MARK, MMCD1_2_MARK, MMCD1_3_MARK,
1520	MMCD1_4_MARK, MMCD1_5_MARK, MMCD1_6_MARK, MMCD1_7_MARK,
1521};
1522static const unsigned int mmc1_ctrl_pins[] = {
1523	/* CMD, CLK */
1524	200, 203,
1525};
1526static const unsigned int mmc1_ctrl_mux[] = {
1527	MMCCMD1_MARK, MMCCLK1_MARK,
1528};
1529/* - SCIFA0 ----------------------------------------------------------------- */
1530static const unsigned int scifa0_data_pins[] = {
1531	/* SCIFA0_RXD, SCIFA0_TXD */
1532	117, 116,
1533};
1534static const unsigned int scifa0_data_mux[] = {
1535	SCIFA0_RXD_MARK, SCIFA0_TXD_MARK,
1536};
1537static const unsigned int scifa0_clk_pins[] = {
1538	/* SCIFA0_SCK */
1539	34,
1540};
1541static const unsigned int scifa0_clk_mux[] = {
1542	SCIFA0_SCK_MARK,
1543};
1544static const unsigned int scifa0_ctrl_pins[] = {
1545	/* SCIFA0_RTS, SCIFA0_CTS */
1546	32, 33,
1547};
1548static const unsigned int scifa0_ctrl_mux[] = {
1549	SCIFA0_RTS_MARK, SCIFA0_CTS_MARK,
1550};
1551/* - SCIFA1 ----------------------------------------------------------------- */
1552static const unsigned int scifa1_data_pins[] = {
1553	/* SCIFA1_RXD, SCIFA1_TXD */
1554	119, 118,
1555};
1556static const unsigned int scifa1_data_mux[] = {
1557	SCIFA1_RXD_MARK, SCIFA1_TXD_MARK,
1558};
1559static const unsigned int scifa1_clk_pins[] = {
1560	/* SCIFA1_SCK */
1561	37,
1562};
1563static const unsigned int scifa1_clk_mux[] = {
1564	SCIFA1_SCK_MARK,
1565};
1566static const unsigned int scifa1_ctrl_pins[] = {
1567	/* SCIFA1_RTS, SCIFA1_CTS */
1568	35, 36,
1569};
1570static const unsigned int scifa1_ctrl_mux[] = {
1571	SCIFA1_RTS_MARK, SCIFA1_CTS_MARK,
1572};
1573/* - SCIFB0 ----------------------------------------------------------------- */
1574static const unsigned int scifb0_data_pins[] = {
1575	/* SCIFB0_RXD, SCIFB0_TXD */
1576	123, 122,
1577};
1578static const unsigned int scifb0_data_mux[] = {
1579	SCIFB0_RXD_MARK, SCIFB0_TXD_MARK,
1580};
1581static const unsigned int scifb0_clk_pins[] = {
1582	/* SCIFB0_SCK */
1583	40,
1584};
1585static const unsigned int scifb0_clk_mux[] = {
1586	SCIFB0_SCK_MARK,
1587};
1588static const unsigned int scifb0_ctrl_pins[] = {
1589	/* SCIFB0_RTS, SCIFB0_CTS */
1590	38, 39,
1591};
1592static const unsigned int scifb0_ctrl_mux[] = {
1593	SCIFB0_RTS_MARK, SCIFB0_CTS_MARK,
1594};
1595/* - SCIFB1 ----------------------------------------------------------------- */
1596static const unsigned int scifb1_data_pins[] = {
1597	/* SCIFB1_RXD, SCIFB1_TXD */
1598	27, 26,
1599};
1600static const unsigned int scifb1_data_mux[] = {
1601	SCIFB1_RXD_27_MARK, SCIFB1_TXD_26_MARK,
1602};
1603static const unsigned int scifb1_clk_pins[] = {
1604	/* SCIFB1_SCK */
1605	28,
1606};
1607static const unsigned int scifb1_clk_mux[] = {
1608	SCIFB1_SCK_28_MARK,
1609};
1610static const unsigned int scifb1_ctrl_pins[] = {
1611	/* SCIFB1_RTS, SCIFB1_CTS */
1612	24, 25,
1613};
1614static const unsigned int scifb1_ctrl_mux[] = {
1615	SCIFB1_RTS_24_MARK, SCIFB1_CTS_25_MARK,
1616};
1617static const unsigned int scifb1_data_b_pins[] = {
1618	/* SCIFB1_RXD, SCIFB1_TXD */
1619	72, 67,
1620};
1621static const unsigned int scifb1_data_b_mux[] = {
1622	SCIFB1_RXD_72_MARK, SCIFB1_TXD_67_MARK,
1623};
1624static const unsigned int scifb1_clk_b_pins[] = {
1625	/* SCIFB1_SCK */
1626	261,
1627};
1628static const unsigned int scifb1_clk_b_mux[] = {
1629	SCIFB1_SCK_261_MARK,
1630};
1631static const unsigned int scifb1_ctrl_b_pins[] = {
1632	/* SCIFB1_RTS, SCIFB1_CTS */
1633	70, 71,
1634};
1635static const unsigned int scifb1_ctrl_b_mux[] = {
1636	SCIFB1_RTS_70_MARK, SCIFB1_CTS_71_MARK,
1637};
1638/* - SCIFB2 ----------------------------------------------------------------- */
1639static const unsigned int scifb2_data_pins[] = {
1640	/* SCIFB2_RXD, SCIFB2_TXD */
1641	69, 68,
1642};
1643static const unsigned int scifb2_data_mux[] = {
1644	SCIFB2_RXD_69_MARK, SCIFB2_TXD_68_MARK,
1645};
1646static const unsigned int scifb2_clk_pins[] = {
1647	/* SCIFB2_SCK */
1648	262,
1649};
1650static const unsigned int scifb2_clk_mux[] = {
1651	SCIFB2_SCK_262_MARK,
1652};
1653static const unsigned int scifb2_ctrl_pins[] = {
1654	/* SCIFB2_RTS, SCIFB2_CTS */
1655	73, 66,
1656};
1657static const unsigned int scifb2_ctrl_mux[] = {
1658	SCIFB2_RTS_73_MARK, SCIFB2_CTS_66_MARK,
1659};
1660static const unsigned int scifb2_data_b_pins[] = {
1661	/* SCIFB2_RXD, SCIFB2_TXD */
1662	297, 295,
1663};
1664static const unsigned int scifb2_data_b_mux[] = {
1665	SCIFB2_RXD_297_MARK, SCIFB2_TXD_295_MARK,
1666};
1667static const unsigned int scifb2_clk_b_pins[] = {
1668	/* SCIFB2_SCK */
1669	299,
1670};
1671static const unsigned int scifb2_clk_b_mux[] = {
1672	SCIFB2_SCK_299_MARK,
1673};
1674static const unsigned int scifb2_ctrl_b_pins[] = {
1675	/* SCIFB2_RTS, SCIFB2_CTS */
1676	300, 298,
1677};
1678static const unsigned int scifb2_ctrl_b_mux[] = {
1679	SCIFB2_RTS_300_MARK, SCIFB2_CTS_298_MARK,
1680};
1681/* - SCIFB3 ----------------------------------------------------------------- */
1682static const unsigned int scifb3_data_pins[] = {
1683	/* SCIFB3_RXD, SCIFB3_TXD */
1684	22, 21,
1685};
1686static const unsigned int scifb3_data_mux[] = {
1687	SCIFB3_RXD_22_MARK, SCIFB3_TXD_21_MARK,
1688};
1689static const unsigned int scifb3_clk_pins[] = {
1690	/* SCIFB3_SCK */
1691	23,
1692};
1693static const unsigned int scifb3_clk_mux[] = {
1694	SCIFB3_SCK_23_MARK,
1695};
1696static const unsigned int scifb3_ctrl_pins[] = {
1697	/* SCIFB3_RTS, SCIFB3_CTS */
1698	19, 20,
1699};
1700static const unsigned int scifb3_ctrl_mux[] = {
1701	SCIFB3_RTS_19_MARK, SCIFB3_CTS_20_MARK,
1702};
1703static const unsigned int scifb3_data_b_pins[] = {
1704	/* SCIFB3_RXD, SCIFB3_TXD */
1705	120, 121,
1706};
1707static const unsigned int scifb3_data_b_mux[] = {
1708	SCIFB3_RXD_120_MARK, SCIFB3_TXD_121_MARK,
1709};
1710static const unsigned int scifb3_clk_b_pins[] = {
1711	/* SCIFB3_SCK */
1712	40,
1713};
1714static const unsigned int scifb3_clk_b_mux[] = {
1715	SCIFB3_SCK_40_MARK,
1716};
1717static const unsigned int scifb3_ctrl_b_pins[] = {
1718	/* SCIFB3_RTS, SCIFB3_CTS */
1719	38, 39,
1720};
1721static const unsigned int scifb3_ctrl_b_mux[] = {
1722	SCIFB3_RTS_38_MARK, SCIFB3_CTS_39_MARK,
1723};
1724/* - SDHI0 ------------------------------------------------------------------ */
1725static const unsigned int sdhi0_data1_pins[] = {
1726	/* D0 */
1727	302,
1728};
1729static const unsigned int sdhi0_data1_mux[] = {
1730	SDHID0_0_MARK,
1731};
1732static const unsigned int sdhi0_data4_pins[] = {
1733	/* D[0:3] */
1734	302, 303, 304, 305,
1735};
1736static const unsigned int sdhi0_data4_mux[] = {
1737	SDHID0_0_MARK, SDHID0_1_MARK, SDHID0_2_MARK, SDHID0_3_MARK,
1738};
1739static const unsigned int sdhi0_ctrl_pins[] = {
1740	/* CLK, CMD */
1741	308, 306,
1742};
1743static const unsigned int sdhi0_ctrl_mux[] = {
1744	SDHICLK0_MARK, SDHICMD0_MARK,
1745};
1746static const unsigned int sdhi0_cd_pins[] = {
1747	/* CD */
1748	301,
1749};
1750static const unsigned int sdhi0_cd_mux[] = {
1751	SDHICD0_MARK,
1752};
1753static const unsigned int sdhi0_wp_pins[] = {
1754	/* WP */
1755	307,
1756};
1757static const unsigned int sdhi0_wp_mux[] = {
1758	SDHIWP0_MARK,
1759};
1760/* - SDHI1 ------------------------------------------------------------------ */
1761static const unsigned int sdhi1_data1_pins[] = {
1762	/* D0 */
1763	289,
1764};
1765static const unsigned int sdhi1_data1_mux[] = {
1766	SDHID1_0_MARK,
1767};
1768static const unsigned int sdhi1_data4_pins[] = {
1769	/* D[0:3] */
1770	289, 290, 291, 292,
1771};
1772static const unsigned int sdhi1_data4_mux[] = {
1773	SDHID1_0_MARK, SDHID1_1_MARK, SDHID1_2_MARK, SDHID1_3_MARK,
1774};
1775static const unsigned int sdhi1_ctrl_pins[] = {
1776	/* CLK, CMD */
1777	293, 294,
1778};
1779static const unsigned int sdhi1_ctrl_mux[] = {
1780	SDHICLK1_MARK, SDHICMD1_MARK,
1781};
1782/* - SDHI2 ------------------------------------------------------------------ */
1783static const unsigned int sdhi2_data1_pins[] = {
1784	/* D0 */
1785	295,
1786};
1787static const unsigned int sdhi2_data1_mux[] = {
1788	SDHID2_0_MARK,
1789};
1790static const unsigned int sdhi2_data4_pins[] = {
1791	/* D[0:3] */
1792	295, 296, 297, 298,
1793};
1794static const unsigned int sdhi2_data4_mux[] = {
1795	SDHID2_0_MARK, SDHID2_1_MARK, SDHID2_2_MARK, SDHID2_3_MARK,
1796};
1797static const unsigned int sdhi2_ctrl_pins[] = {
1798	/* CLK, CMD */
1799	299, 300,
1800};
1801static const unsigned int sdhi2_ctrl_mux[] = {
1802	SDHICLK2_MARK, SDHICMD2_MARK,
1803};
1804
1805static const struct sh_pfc_pin_group pinmux_groups[] = {
1806	SH_PFC_PIN_GROUP(irqc_irq0),
1807	SH_PFC_PIN_GROUP(irqc_irq1),
1808	SH_PFC_PIN_GROUP(irqc_irq2),
1809	SH_PFC_PIN_GROUP(irqc_irq3),
1810	SH_PFC_PIN_GROUP(irqc_irq4),
1811	SH_PFC_PIN_GROUP(irqc_irq5),
1812	SH_PFC_PIN_GROUP(irqc_irq6),
1813	SH_PFC_PIN_GROUP(irqc_irq7),
1814	SH_PFC_PIN_GROUP(irqc_irq8),
1815	SH_PFC_PIN_GROUP(irqc_irq9),
1816	SH_PFC_PIN_GROUP(irqc_irq10),
1817	SH_PFC_PIN_GROUP(irqc_irq11),
1818	SH_PFC_PIN_GROUP(irqc_irq12),
1819	SH_PFC_PIN_GROUP(irqc_irq13),
1820	SH_PFC_PIN_GROUP(irqc_irq14),
1821	SH_PFC_PIN_GROUP(irqc_irq15),
1822	SH_PFC_PIN_GROUP(irqc_irq16),
1823	SH_PFC_PIN_GROUP(irqc_irq17),
1824	SH_PFC_PIN_GROUP(irqc_irq18),
1825	SH_PFC_PIN_GROUP(irqc_irq19),
1826	SH_PFC_PIN_GROUP(irqc_irq20),
1827	SH_PFC_PIN_GROUP(irqc_irq21),
1828	SH_PFC_PIN_GROUP(irqc_irq22),
1829	SH_PFC_PIN_GROUP(irqc_irq23),
1830	SH_PFC_PIN_GROUP(irqc_irq24),
1831	SH_PFC_PIN_GROUP(irqc_irq25),
1832	SH_PFC_PIN_GROUP(irqc_irq26),
1833	SH_PFC_PIN_GROUP(irqc_irq27),
1834	SH_PFC_PIN_GROUP(irqc_irq28),
1835	SH_PFC_PIN_GROUP(irqc_irq29),
1836	SH_PFC_PIN_GROUP(irqc_irq30),
1837	SH_PFC_PIN_GROUP(irqc_irq31),
1838	SH_PFC_PIN_GROUP(irqc_irq32),
1839	SH_PFC_PIN_GROUP(irqc_irq33),
1840	SH_PFC_PIN_GROUP(irqc_irq34),
1841	SH_PFC_PIN_GROUP(irqc_irq35),
1842	SH_PFC_PIN_GROUP(irqc_irq36),
1843	SH_PFC_PIN_GROUP(irqc_irq37),
1844	SH_PFC_PIN_GROUP(irqc_irq38),
1845	SH_PFC_PIN_GROUP(irqc_irq39),
1846	SH_PFC_PIN_GROUP(irqc_irq40),
1847	SH_PFC_PIN_GROUP(irqc_irq41),
1848	SH_PFC_PIN_GROUP(irqc_irq42),
1849	SH_PFC_PIN_GROUP(irqc_irq43),
1850	SH_PFC_PIN_GROUP(irqc_irq44),
1851	SH_PFC_PIN_GROUP(irqc_irq45),
1852	SH_PFC_PIN_GROUP(irqc_irq46),
1853	SH_PFC_PIN_GROUP(irqc_irq47),
1854	SH_PFC_PIN_GROUP(irqc_irq48),
1855	SH_PFC_PIN_GROUP(irqc_irq49),
1856	SH_PFC_PIN_GROUP(irqc_irq50),
1857	SH_PFC_PIN_GROUP(irqc_irq51),
1858	SH_PFC_PIN_GROUP(irqc_irq52),
1859	SH_PFC_PIN_GROUP(irqc_irq53),
1860	SH_PFC_PIN_GROUP(irqc_irq54),
1861	SH_PFC_PIN_GROUP(irqc_irq55),
1862	SH_PFC_PIN_GROUP(irqc_irq56),
1863	SH_PFC_PIN_GROUP(irqc_irq57),
1864	SH_PFC_PIN_GROUP(mmc0_data1),
1865	SH_PFC_PIN_GROUP(mmc0_data4),
1866	SH_PFC_PIN_GROUP(mmc0_data8),
1867	SH_PFC_PIN_GROUP(mmc0_ctrl),
1868	SH_PFC_PIN_GROUP(mmc1_data1),
1869	SH_PFC_PIN_GROUP(mmc1_data4),
1870	SH_PFC_PIN_GROUP(mmc1_data8),
1871	SH_PFC_PIN_GROUP(mmc1_ctrl),
1872	SH_PFC_PIN_GROUP(scifa0_data),
1873	SH_PFC_PIN_GROUP(scifa0_clk),
1874	SH_PFC_PIN_GROUP(scifa0_ctrl),
1875	SH_PFC_PIN_GROUP(scifa1_data),
1876	SH_PFC_PIN_GROUP(scifa1_clk),
1877	SH_PFC_PIN_GROUP(scifa1_ctrl),
1878	SH_PFC_PIN_GROUP(scifb0_data),
1879	SH_PFC_PIN_GROUP(scifb0_clk),
1880	SH_PFC_PIN_GROUP(scifb0_ctrl),
1881	SH_PFC_PIN_GROUP(scifb1_data),
1882	SH_PFC_PIN_GROUP(scifb1_clk),
1883	SH_PFC_PIN_GROUP(scifb1_ctrl),
1884	SH_PFC_PIN_GROUP(scifb1_data_b),
1885	SH_PFC_PIN_GROUP(scifb1_clk_b),
1886	SH_PFC_PIN_GROUP(scifb1_ctrl_b),
1887	SH_PFC_PIN_GROUP(scifb2_data),
1888	SH_PFC_PIN_GROUP(scifb2_clk),
1889	SH_PFC_PIN_GROUP(scifb2_ctrl),
1890	SH_PFC_PIN_GROUP(scifb2_data_b),
1891	SH_PFC_PIN_GROUP(scifb2_clk_b),
1892	SH_PFC_PIN_GROUP(scifb2_ctrl_b),
1893	SH_PFC_PIN_GROUP(scifb3_data),
1894	SH_PFC_PIN_GROUP(scifb3_clk),
1895	SH_PFC_PIN_GROUP(scifb3_ctrl),
1896	SH_PFC_PIN_GROUP(scifb3_data_b),
1897	SH_PFC_PIN_GROUP(scifb3_clk_b),
1898	SH_PFC_PIN_GROUP(scifb3_ctrl_b),
1899	SH_PFC_PIN_GROUP(sdhi0_data1),
1900	SH_PFC_PIN_GROUP(sdhi0_data4),
1901	SH_PFC_PIN_GROUP(sdhi0_ctrl),
1902	SH_PFC_PIN_GROUP(sdhi0_cd),
1903	SH_PFC_PIN_GROUP(sdhi0_wp),
1904	SH_PFC_PIN_GROUP(sdhi1_data1),
1905	SH_PFC_PIN_GROUP(sdhi1_data4),
1906	SH_PFC_PIN_GROUP(sdhi1_ctrl),
1907	SH_PFC_PIN_GROUP(sdhi2_data1),
1908	SH_PFC_PIN_GROUP(sdhi2_data4),
1909	SH_PFC_PIN_GROUP(sdhi2_ctrl),
1910};
1911
1912static const char * const irqc_groups[] = {
1913	"irqc_irq0",
1914	"irqc_irq1",
1915	"irqc_irq2",
1916	"irqc_irq3",
1917	"irqc_irq4",
1918	"irqc_irq5",
1919	"irqc_irq6",
1920	"irqc_irq7",
1921	"irqc_irq8",
1922	"irqc_irq9",
1923	"irqc_irq10",
1924	"irqc_irq11",
1925	"irqc_irq12",
1926	"irqc_irq13",
1927	"irqc_irq14",
1928	"irqc_irq15",
1929	"irqc_irq16",
1930	"irqc_irq17",
1931	"irqc_irq18",
1932	"irqc_irq19",
1933	"irqc_irq20",
1934	"irqc_irq21",
1935	"irqc_irq22",
1936	"irqc_irq23",
1937	"irqc_irq24",
1938	"irqc_irq25",
1939	"irqc_irq26",
1940	"irqc_irq27",
1941	"irqc_irq28",
1942	"irqc_irq29",
1943	"irqc_irq30",
1944	"irqc_irq31",
1945	"irqc_irq32",
1946	"irqc_irq33",
1947	"irqc_irq34",
1948	"irqc_irq35",
1949	"irqc_irq36",
1950	"irqc_irq37",
1951	"irqc_irq38",
1952	"irqc_irq39",
1953	"irqc_irq40",
1954	"irqc_irq41",
1955	"irqc_irq42",
1956	"irqc_irq43",
1957	"irqc_irq44",
1958	"irqc_irq45",
1959	"irqc_irq46",
1960	"irqc_irq47",
1961	"irqc_irq48",
1962	"irqc_irq49",
1963	"irqc_irq50",
1964	"irqc_irq51",
1965	"irqc_irq52",
1966	"irqc_irq53",
1967	"irqc_irq54",
1968	"irqc_irq55",
1969	"irqc_irq56",
1970	"irqc_irq57",
1971};
1972
1973static const char * const mmc0_groups[] = {
1974	"mmc0_data1",
1975	"mmc0_data4",
1976	"mmc0_data8",
1977	"mmc0_ctrl",
1978};
1979
1980static const char * const mmc1_groups[] = {
1981	"mmc1_data1",
1982	"mmc1_data4",
1983	"mmc1_data8",
1984	"mmc1_ctrl",
1985};
1986
1987static const char * const scifa0_groups[] = {
1988	"scifa0_data",
1989	"scifa0_clk",
1990	"scifa0_ctrl",
1991};
1992
1993static const char * const scifa1_groups[] = {
1994	"scifa1_data",
1995	"scifa1_clk",
1996	"scifa1_ctrl",
1997};
1998
1999static const char * const scifb0_groups[] = {
2000	"scifb0_data",
2001	"scifb0_clk",
2002	"scifb0_ctrl",
2003};
2004
2005static const char * const scifb1_groups[] = {
2006	"scifb1_data",
2007	"scifb1_clk",
2008	"scifb1_ctrl",
2009	"scifb1_data_b",
2010	"scifb1_clk_b",
2011	"scifb1_ctrl_b",
2012};
2013
2014static const char * const scifb2_groups[] = {
2015	"scifb2_data",
2016	"scifb2_clk",
2017	"scifb2_ctrl",
2018	"scifb2_data_b",
2019	"scifb2_clk_b",
2020	"scifb2_ctrl_b",
2021};
2022
2023static const char * const scifb3_groups[] = {
2024	"scifb3_data",
2025	"scifb3_clk",
2026	"scifb3_ctrl",
2027	"scifb3_data_b",
2028	"scifb3_clk_b",
2029	"scifb3_ctrl_b",
2030};
2031
2032static const char * const sdhi0_groups[] = {
2033	"sdhi0_data1",
2034	"sdhi0_data4",
2035	"sdhi0_ctrl",
2036	"sdhi0_cd",
2037	"sdhi0_wp",
2038};
2039
2040static const char * const sdhi1_groups[] = {
2041	"sdhi1_data1",
2042	"sdhi1_data4",
2043	"sdhi1_ctrl",
2044};
2045
2046static const char * const sdhi2_groups[] = {
2047	"sdhi2_data1",
2048	"sdhi2_data4",
2049	"sdhi2_ctrl",
2050};
2051
2052static const struct sh_pfc_function pinmux_functions[] = {
2053	SH_PFC_FUNCTION(irqc),
2054	SH_PFC_FUNCTION(mmc0),
2055	SH_PFC_FUNCTION(mmc1),
2056	SH_PFC_FUNCTION(scifa0),
2057	SH_PFC_FUNCTION(scifa1),
2058	SH_PFC_FUNCTION(scifb0),
2059	SH_PFC_FUNCTION(scifb1),
2060	SH_PFC_FUNCTION(scifb2),
2061	SH_PFC_FUNCTION(scifb3),
2062	SH_PFC_FUNCTION(sdhi0),
2063	SH_PFC_FUNCTION(sdhi1),
2064	SH_PFC_FUNCTION(sdhi2),
2065};
2066
2067static const struct pinmux_cfg_reg pinmux_config_regs[] = {
2068	PORTCR(0, 0xe6050000),
2069	PORTCR(1, 0xe6050001),
2070	PORTCR(2, 0xe6050002),
2071	PORTCR(3, 0xe6050003),
2072	PORTCR(4, 0xe6050004),
2073	PORTCR(5, 0xe6050005),
2074	PORTCR(6, 0xe6050006),
2075	PORTCR(7, 0xe6050007),
2076	PORTCR(8, 0xe6050008),
2077	PORTCR(9, 0xe6050009),
2078	PORTCR(10, 0xe605000A),
2079	PORTCR(11, 0xe605000B),
2080	PORTCR(12, 0xe605000C),
2081	PORTCR(13, 0xe605000D),
2082	PORTCR(14, 0xe605000E),
2083	PORTCR(15, 0xe605000F),
2084	PORTCR(16, 0xe6050010),
2085	PORTCR(17, 0xe6050011),
2086	PORTCR(18, 0xe6050012),
2087	PORTCR(19, 0xe6050013),
2088	PORTCR(20, 0xe6050014),
2089	PORTCR(21, 0xe6050015),
2090	PORTCR(22, 0xe6050016),
2091	PORTCR(23, 0xe6050017),
2092	PORTCR(24, 0xe6050018),
2093	PORTCR(25, 0xe6050019),
2094	PORTCR(26, 0xe605001A),
2095	PORTCR(27, 0xe605001B),
2096	PORTCR(28, 0xe605001C),
2097	PORTCR(29, 0xe605001D),
2098	PORTCR(30, 0xe605001E),
2099	PORTCR(32, 0xe6051020),
2100	PORTCR(33, 0xe6051021),
2101	PORTCR(34, 0xe6051022),
2102	PORTCR(35, 0xe6051023),
2103	PORTCR(36, 0xe6051024),
2104	PORTCR(37, 0xe6051025),
2105	PORTCR(38, 0xe6051026),
2106	PORTCR(39, 0xe6051027),
2107	PORTCR(40, 0xe6051028),
2108	PORTCR(64, 0xe6050040),
2109	PORTCR(65, 0xe6050041),
2110	PORTCR(66, 0xe6050042),
2111	PORTCR(67, 0xe6050043),
2112	PORTCR(68, 0xe6050044),
2113	PORTCR(69, 0xe6050045),
2114	PORTCR(70, 0xe6050046),
2115	PORTCR(71, 0xe6050047),
2116	PORTCR(72, 0xe6050048),
2117	PORTCR(73, 0xe6050049),
2118	PORTCR(74, 0xe605004A),
2119	PORTCR(75, 0xe605004B),
2120	PORTCR(76, 0xe605004C),
2121	PORTCR(77, 0xe605004D),
2122	PORTCR(78, 0xe605004E),
2123	PORTCR(79, 0xe605004F),
2124	PORTCR(80, 0xe6050050),
2125	PORTCR(81, 0xe6050051),
2126	PORTCR(82, 0xe6050052),
2127	PORTCR(83, 0xe6050053),
2128	PORTCR(84, 0xe6050054),
2129	PORTCR(85, 0xe6050055),
2130	PORTCR(96, 0xe6051060),
2131	PORTCR(97, 0xe6051061),
2132	PORTCR(98, 0xe6051062),
2133	PORTCR(99, 0xe6051063),
2134	PORTCR(100, 0xe6051064),
2135	PORTCR(101, 0xe6051065),
2136	PORTCR(102, 0xe6051066),
2137	PORTCR(103, 0xe6051067),
2138	PORTCR(104, 0xe6051068),
2139	PORTCR(105, 0xe6051069),
2140	PORTCR(106, 0xe605106A),
2141	PORTCR(107, 0xe605106B),
2142	PORTCR(108, 0xe605106C),
2143	PORTCR(109, 0xe605106D),
2144	PORTCR(110, 0xe605106E),
2145	PORTCR(111, 0xe605106F),
2146	PORTCR(112, 0xe6051070),
2147	PORTCR(113, 0xe6051071),
2148	PORTCR(114, 0xe6051072),
2149	PORTCR(115, 0xe6051073),
2150	PORTCR(116, 0xe6051074),
2151	PORTCR(117, 0xe6051075),
2152	PORTCR(118, 0xe6051076),
2153	PORTCR(119, 0xe6051077),
2154	PORTCR(120, 0xe6051078),
2155	PORTCR(121, 0xe6051079),
2156	PORTCR(122, 0xe605107A),
2157	PORTCR(123, 0xe605107B),
2158	PORTCR(124, 0xe605107C),
2159	PORTCR(125, 0xe605107D),
2160	PORTCR(126, 0xe605107E),
2161	PORTCR(128, 0xe6051080),
2162	PORTCR(129, 0xe6051081),
2163	PORTCR(130, 0xe6051082),
2164	PORTCR(131, 0xe6051083),
2165	PORTCR(132, 0xe6051084),
2166	PORTCR(133, 0xe6051085),
2167	PORTCR(134, 0xe6051086),
2168	PORTCR(160, 0xe60520A0),
2169	PORTCR(161, 0xe60520A1),
2170	PORTCR(162, 0xe60520A2),
2171	PORTCR(163, 0xe60520A3),
2172	PORTCR(164, 0xe60520A4),
2173	PORTCR(165, 0xe60520A5),
2174	PORTCR(166, 0xe60520A6),
2175	PORTCR(167, 0xe60520A7),
2176	PORTCR(168, 0xe60520A8),
2177	PORTCR(169, 0xe60520A9),
2178	PORTCR(170, 0xe60520AA),
2179	PORTCR(171, 0xe60520AB),
2180	PORTCR(172, 0xe60520AC),
2181	PORTCR(173, 0xe60520AD),
2182	PORTCR(174, 0xe60520AE),
2183	PORTCR(175, 0xe60520AF),
2184	PORTCR(176, 0xe60520B0),
2185	PORTCR(177, 0xe60520B1),
2186	PORTCR(178, 0xe60520B2),
2187	PORTCR(192, 0xe60520C0),
2188	PORTCR(193, 0xe60520C1),
2189	PORTCR(194, 0xe60520C2),
2190	PORTCR(195, 0xe60520C3),
2191	PORTCR(196, 0xe60520C4),
2192	PORTCR(197, 0xe60520C5),
2193	PORTCR(198, 0xe60520C6),
2194	PORTCR(199, 0xe60520C7),
2195	PORTCR(200, 0xe60520C8),
2196	PORTCR(201, 0xe60520C9),
2197	PORTCR(202, 0xe60520CA),
2198	PORTCR(203, 0xe60520CB),
2199	PORTCR(204, 0xe60520CC),
2200	PORTCR(205, 0xe60520CD),
2201	PORTCR(206, 0xe60520CE),
2202	PORTCR(207, 0xe60520CF),
2203	PORTCR(208, 0xe60520D0),
2204	PORTCR(209, 0xe60520D1),
2205	PORTCR(210, 0xe60520D2),
2206	PORTCR(211, 0xe60520D3),
2207	PORTCR(212, 0xe60520D4),
2208	PORTCR(213, 0xe60520D5),
2209	PORTCR(214, 0xe60520D6),
2210	PORTCR(215, 0xe60520D7),
2211	PORTCR(216, 0xe60520D8),
2212	PORTCR(217, 0xe60520D9),
2213	PORTCR(218, 0xe60520DA),
2214	PORTCR(219, 0xe60520DB),
2215	PORTCR(220, 0xe60520DC),
2216	PORTCR(221, 0xe60520DD),
2217	PORTCR(222, 0xe60520DE),
2218	PORTCR(224, 0xe60520E0),
2219	PORTCR(225, 0xe60520E1),
2220	PORTCR(226, 0xe60520E2),
2221	PORTCR(227, 0xe60520E3),
2222	PORTCR(228, 0xe60520E4),
2223	PORTCR(229, 0xe60520E5),
2224	PORTCR(230, 0xe60520e6),
2225	PORTCR(231, 0xe60520E7),
2226	PORTCR(232, 0xe60520E8),
2227	PORTCR(233, 0xe60520E9),
2228	PORTCR(234, 0xe60520EA),
2229	PORTCR(235, 0xe60520EB),
2230	PORTCR(236, 0xe60520EC),
2231	PORTCR(237, 0xe60520ED),
2232	PORTCR(238, 0xe60520EE),
2233	PORTCR(239, 0xe60520EF),
2234	PORTCR(240, 0xe60520F0),
2235	PORTCR(241, 0xe60520F1),
2236	PORTCR(242, 0xe60520F2),
2237	PORTCR(243, 0xe60520F3),
2238	PORTCR(244, 0xe60520F4),
2239	PORTCR(245, 0xe60520F5),
2240	PORTCR(246, 0xe60520F6),
2241	PORTCR(247, 0xe60520F7),
2242	PORTCR(248, 0xe60520F8),
2243	PORTCR(249, 0xe60520F9),
2244	PORTCR(250, 0xe60520FA),
2245	PORTCR(256, 0xe6052100),
2246	PORTCR(257, 0xe6052101),
2247	PORTCR(258, 0xe6052102),
2248	PORTCR(259, 0xe6052103),
2249	PORTCR(260, 0xe6052104),
2250	PORTCR(261, 0xe6052105),
2251	PORTCR(262, 0xe6052106),
2252	PORTCR(263, 0xe6052107),
2253	PORTCR(264, 0xe6052108),
2254	PORTCR(265, 0xe6052109),
2255	PORTCR(266, 0xe605210A),
2256	PORTCR(267, 0xe605210B),
2257	PORTCR(268, 0xe605210C),
2258	PORTCR(269, 0xe605210D),
2259	PORTCR(270, 0xe605210E),
2260	PORTCR(271, 0xe605210F),
2261	PORTCR(272, 0xe6052110),
2262	PORTCR(273, 0xe6052111),
2263	PORTCR(274, 0xe6052112),
2264	PORTCR(275, 0xe6052113),
2265	PORTCR(276, 0xe6052114),
2266	PORTCR(277, 0xe6052115),
2267	PORTCR(278, 0xe6052116),
2268	PORTCR(279, 0xe6052117),
2269	PORTCR(280, 0xe6052118),
2270	PORTCR(281, 0xe6052119),
2271	PORTCR(282, 0xe605211A),
2272	PORTCR(283, 0xe605211B),
2273	PORTCR(288, 0xe6053120),
2274	PORTCR(289, 0xe6053121),
2275	PORTCR(290, 0xe6053122),
2276	PORTCR(291, 0xe6053123),
2277	PORTCR(292, 0xe6053124),
2278	PORTCR(293, 0xe6053125),
2279	PORTCR(294, 0xe6053126),
2280	PORTCR(295, 0xe6053127),
2281	PORTCR(296, 0xe6053128),
2282	PORTCR(297, 0xe6053129),
2283	PORTCR(298, 0xe605312A),
2284	PORTCR(299, 0xe605312B),
2285	PORTCR(300, 0xe605312C),
2286	PORTCR(301, 0xe605312D),
2287	PORTCR(302, 0xe605312E),
2288	PORTCR(303, 0xe605312F),
2289	PORTCR(304, 0xe6053130),
2290	PORTCR(305, 0xe6053131),
2291	PORTCR(306, 0xe6053132),
2292	PORTCR(307, 0xe6053133),
2293	PORTCR(308, 0xe6053134),
2294	PORTCR(320, 0xe6053140),
2295	PORTCR(321, 0xe6053141),
2296	PORTCR(322, 0xe6053142),
2297	PORTCR(323, 0xe6053143),
2298	PORTCR(324, 0xe6053144),
2299	PORTCR(325, 0xe6053145),
2300	PORTCR(326, 0xe6053146),
2301	PORTCR(327, 0xe6053147),
2302	PORTCR(328, 0xe6053148),
2303	PORTCR(329, 0xe6053149),
2304
2305	{ PINMUX_CFG_REG("MSEL1CR", 0xe605800c, 32, 1) {
2306			MSEL1CR_31_0, MSEL1CR_31_1,
2307			0, 0,
2308			0, 0,
2309			0, 0,
2310			MSEL1CR_27_0, MSEL1CR_27_1,
2311			0, 0,
2312			MSEL1CR_25_0, MSEL1CR_25_1,
2313			MSEL1CR_24_0, MSEL1CR_24_1,
2314			0, 0,
2315			MSEL1CR_22_0, MSEL1CR_22_1,
2316			MSEL1CR_21_0, MSEL1CR_21_1,
2317			MSEL1CR_20_0, MSEL1CR_20_1,
2318			MSEL1CR_19_0, MSEL1CR_19_1,
2319			MSEL1CR_18_0, MSEL1CR_18_1,
2320			MSEL1CR_17_0, MSEL1CR_17_1,
2321			MSEL1CR_16_0, MSEL1CR_16_1,
2322			MSEL1CR_15_0, MSEL1CR_15_1,
2323			MSEL1CR_14_0, MSEL1CR_14_1,
2324			MSEL1CR_13_0, MSEL1CR_13_1,
2325			MSEL1CR_12_0, MSEL1CR_12_1,
2326			MSEL1CR_11_0, MSEL1CR_11_1,
2327			MSEL1CR_10_0, MSEL1CR_10_1,
2328			MSEL1CR_09_0, MSEL1CR_09_1,
2329			MSEL1CR_08_0, MSEL1CR_08_1,
2330			MSEL1CR_07_0, MSEL1CR_07_1,
2331			MSEL1CR_06_0, MSEL1CR_06_1,
2332			MSEL1CR_05_0, MSEL1CR_05_1,
2333			MSEL1CR_04_0, MSEL1CR_04_1,
2334			MSEL1CR_03_0, MSEL1CR_03_1,
2335			MSEL1CR_02_0, MSEL1CR_02_1,
2336			MSEL1CR_01_0, MSEL1CR_01_1,
2337			MSEL1CR_00_0, MSEL1CR_00_1,
2338		}
2339	},
2340	{ PINMUX_CFG_REG("MSEL3CR", 0xe6058020, 32, 1) {
2341			MSEL3CR_31_0, MSEL3CR_31_1,
2342			0, 0,
2343			0, 0,
2344			MSEL3CR_28_0, MSEL3CR_28_1,
2345			MSEL3CR_27_0, MSEL3CR_27_1,
2346			MSEL3CR_26_0, MSEL3CR_26_1,
2347			0, 0,
2348			0, 0,
2349			MSEL3CR_23_0, MSEL3CR_23_1,
2350			MSEL3CR_22_0, MSEL3CR_22_1,
2351			MSEL3CR_21_0, MSEL3CR_21_1,
2352			MSEL3CR_20_0, MSEL3CR_20_1,
2353			MSEL3CR_19_0, MSEL3CR_19_1,
2354			MSEL3CR_18_0, MSEL3CR_18_1,
2355			MSEL3CR_17_0, MSEL3CR_17_1,
2356			MSEL3CR_16_0, MSEL3CR_16_1,
2357			MSEL3CR_15_0, MSEL3CR_15_1,
2358			0, 0,
2359			0, 0,
2360			MSEL3CR_12_0, MSEL3CR_12_1,
2361			MSEL3CR_11_0, MSEL3CR_11_1,
2362			MSEL3CR_10_0, MSEL3CR_10_1,
2363			MSEL3CR_09_0, MSEL3CR_09_1,
2364			0, 0,
2365			0, 0,
2366			MSEL3CR_06_0, MSEL3CR_06_1,
2367			0, 0,
2368			0, 0,
2369			MSEL3CR_03_0, MSEL3CR_03_1,
2370			0, 0,
2371			MSEL3CR_01_0, MSEL3CR_01_1,
2372			MSEL3CR_00_0, MSEL3CR_00_1,
2373			}
2374	},
2375	{ PINMUX_CFG_REG("MSEL4CR", 0xe6058024, 32, 1) {
2376			0, 0,
2377			MSEL4CR_30_0, MSEL4CR_30_1,
2378			MSEL4CR_29_0, MSEL4CR_29_1,
2379			MSEL4CR_28_0, MSEL4CR_28_1,
2380			MSEL4CR_27_0, MSEL4CR_27_1,
2381			MSEL4CR_26_0, MSEL4CR_26_1,
2382			MSEL4CR_25_0, MSEL4CR_25_1,
2383			MSEL4CR_24_0, MSEL4CR_24_1,
2384			MSEL4CR_23_0, MSEL4CR_23_1,
2385			MSEL4CR_22_0, MSEL4CR_22_1,
2386			MSEL4CR_21_0, MSEL4CR_21_1,
2387			MSEL4CR_20_0, MSEL4CR_20_1,
2388			MSEL4CR_19_0, MSEL4CR_19_1,
2389			MSEL4CR_18_0, MSEL4CR_18_1,
2390			MSEL4CR_17_0, MSEL4CR_17_1,
2391			MSEL4CR_16_0, MSEL4CR_16_1,
2392			MSEL4CR_15_0, MSEL4CR_15_1,
2393			MSEL4CR_14_0, MSEL4CR_14_1,
2394			MSEL4CR_13_0, MSEL4CR_13_1,
2395			MSEL4CR_12_0, MSEL4CR_12_1,
2396			MSEL4CR_11_0, MSEL4CR_11_1,
2397			MSEL4CR_10_0, MSEL4CR_10_1,
2398			MSEL4CR_09_0, MSEL4CR_09_1,
2399			0, 0,
2400			MSEL4CR_07_0, MSEL4CR_07_1,
2401			0, 0,
2402			0, 0,
2403			MSEL4CR_04_0, MSEL4CR_04_1,
2404			0, 0,
2405			0, 0,
2406			MSEL4CR_01_0, MSEL4CR_01_1,
2407			0, 0,
2408		}
2409	},
2410	{ PINMUX_CFG_REG("MSEL5CR", 0xe6058028, 32, 1) {
2411			MSEL5CR_31_0, MSEL5CR_31_1,
2412			MSEL5CR_30_0, MSEL5CR_30_1,
2413			MSEL5CR_29_0, MSEL5CR_29_1,
2414			MSEL5CR_28_0, MSEL5CR_28_1,
2415			MSEL5CR_27_0, MSEL5CR_27_1,
2416			MSEL5CR_26_0, MSEL5CR_26_1,
2417			MSEL5CR_25_0, MSEL5CR_25_1,
2418			MSEL5CR_24_0, MSEL5CR_24_1,
2419			MSEL5CR_23_0, MSEL5CR_23_1,
2420			MSEL5CR_22_0, MSEL5CR_22_1,
2421			MSEL5CR_21_0, MSEL5CR_21_1,
2422			MSEL5CR_20_0, MSEL5CR_20_1,
2423			MSEL5CR_19_0, MSEL5CR_19_1,
2424			MSEL5CR_18_0, MSEL5CR_18_1,
2425			MSEL5CR_17_0, MSEL5CR_17_1,
2426			MSEL5CR_16_0, MSEL5CR_16_1,
2427			MSEL5CR_15_0, MSEL5CR_15_1,
2428			MSEL5CR_14_0, MSEL5CR_14_1,
2429			MSEL5CR_13_0, MSEL5CR_13_1,
2430			MSEL5CR_12_0, MSEL5CR_12_1,
2431			MSEL5CR_11_0, MSEL5CR_11_1,
2432			MSEL5CR_10_0, MSEL5CR_10_1,
2433			MSEL5CR_09_0, MSEL5CR_09_1,
2434			MSEL5CR_08_0, MSEL5CR_08_1,
2435			MSEL5CR_07_0, MSEL5CR_07_1,
2436			MSEL5CR_06_0, MSEL5CR_06_1,
2437			0, 0,
2438			0, 0,
2439			0, 0,
2440			0, 0,
2441			0, 0,
2442			0, 0,
2443		}
2444	},
2445	{ PINMUX_CFG_REG("MSEL8CR", 0xe6058034, 32, 1) {
2446			0, 0,
2447			0, 0,
2448			0, 0,
2449			0, 0,
2450			0, 0,
2451			0, 0,
2452			0, 0,
2453			0, 0,
2454			0, 0,
2455			0, 0,
2456			0, 0,
2457			0, 0,
2458			0, 0,
2459			0, 0,
2460			0, 0,
2461			MSEL8CR_16_0, MSEL8CR_16_1,
2462			0, 0,
2463			0, 0,
2464			0, 0,
2465			0, 0,
2466			0, 0,
2467			0, 0,
2468			0, 0,
2469			0, 0,
2470			0, 0,
2471			0, 0,
2472			0, 0,
2473			0, 0,
2474			0, 0,
2475			0, 0,
2476			MSEL8CR_01_0, MSEL8CR_01_1,
2477			MSEL8CR_00_0, MSEL8CR_00_1,
2478		}
2479	},
2480	{ },
2481};
2482
2483static const struct pinmux_data_reg pinmux_data_regs[] = {
2484
2485	{ PINMUX_DATA_REG("PORTL031_000DR", 0xe6054000, 32) {
2486			0, PORT30_DATA, PORT29_DATA, PORT28_DATA,
2487			PORT27_DATA, PORT26_DATA, PORT25_DATA, PORT24_DATA,
2488			PORT23_DATA, PORT22_DATA, PORT21_DATA, PORT20_DATA,
2489			PORT19_DATA, PORT18_DATA, PORT17_DATA, PORT16_DATA,
2490			PORT15_DATA, PORT14_DATA, PORT13_DATA, PORT12_DATA,
2491			PORT11_DATA, PORT10_DATA, PORT9_DATA, PORT8_DATA,
2492			PORT7_DATA, PORT6_DATA, PORT5_DATA, PORT4_DATA,
2493			PORT3_DATA, PORT2_DATA, PORT1_DATA, PORT0_DATA,
2494		}
2495	},
2496	{ PINMUX_DATA_REG("PORTD063_032DR", 0xe6055000, 32) {
2497			0, 0, 0, 0,
2498			0, 0, 0, 0,
2499			0, 0, 0, 0,
2500			0, 0, 0, 0,
2501			0, 0, 0, 0,
2502			0, 0, 0, PORT40_DATA,
2503			PORT39_DATA, PORT38_DATA, PORT37_DATA, PORT36_DATA,
2504			PORT35_DATA, PORT34_DATA, PORT33_DATA, PORT32_DATA,
2505		}
2506	},
2507	{ PINMUX_DATA_REG("PORTL095_064DR", 0xe6054004, 32) {
2508			0, 0, 0, 0,
2509			0, 0, 0, 0,
2510			0, 0, PORT85_DATA, PORT84_DATA,
2511			PORT83_DATA, PORT82_DATA, PORT81_DATA, PORT80_DATA,
2512			PORT79_DATA, PORT78_DATA, PORT77_DATA, PORT76_DATA,
2513			PORT75_DATA, PORT74_DATA, PORT73_DATA, PORT72_DATA,
2514			PORT71_DATA, PORT70_DATA, PORT69_DATA, PORT68_DATA,
2515			PORT67_DATA, PORT66_DATA, PORT65_DATA, PORT64_DATA,
2516		}
2517	},
2518	{ PINMUX_DATA_REG("PORTD127_096DR", 0xe6055004, 32) {
2519			0, PORT126_DATA, PORT125_DATA, PORT124_DATA,
2520			PORT123_DATA, PORT122_DATA, PORT121_DATA, PORT120_DATA,
2521			PORT119_DATA, PORT118_DATA, PORT117_DATA, PORT116_DATA,
2522			PORT115_DATA, PORT114_DATA, PORT113_DATA, PORT112_DATA,
2523			PORT111_DATA, PORT110_DATA, PORT109_DATA, PORT108_DATA,
2524			PORT107_DATA, PORT106_DATA, PORT105_DATA, PORT104_DATA,
2525			PORT103_DATA, PORT102_DATA, PORT101_DATA, PORT100_DATA,
2526			PORT99_DATA, PORT98_DATA, PORT97_DATA, PORT96_DATA,
2527		}
2528	},
2529	{ PINMUX_DATA_REG("PORTD159_128DR", 0xe6055008, 32) {
2530			0, 0, 0, 0,
2531			0, 0, 0, 0,
2532			0, 0, 0, 0,
2533			0, 0, 0, 0,
2534			0, 0, 0, 0,
2535			0, 0, 0, 0,
2536			0, PORT134_DATA, PORT133_DATA, PORT132_DATA,
2537			PORT131_DATA, PORT130_DATA, PORT129_DATA, PORT128_DATA,
2538		}
2539	},
2540	{ PINMUX_DATA_REG("PORTR191_160DR", 0xe6056000, 32) {
2541			0, 0, 0, 0,
2542			0, 0, 0, 0,
2543			0, 0, 0, 0,
2544			0, PORT178_DATA, PORT177_DATA, PORT176_DATA,
2545			PORT175_DATA, PORT174_DATA, PORT173_DATA, PORT172_DATA,
2546			PORT171_DATA, PORT170_DATA, PORT169_DATA, PORT168_DATA,
2547			PORT167_DATA, PORT166_DATA, PORT165_DATA, PORT164_DATA,
2548			PORT163_DATA, PORT162_DATA, PORT161_DATA, PORT160_DATA,
2549		}
2550	},
2551	{ PINMUX_DATA_REG("PORTR223_192DR", 0xe6056004, 32) {
2552			0, PORT222_DATA, PORT221_DATA, PORT220_DATA,
2553			PORT219_DATA, PORT218_DATA, PORT217_DATA, PORT216_DATA,
2554			PORT215_DATA, PORT214_DATA, PORT213_DATA, PORT212_DATA,
2555			PORT211_DATA, PORT210_DATA, PORT209_DATA, PORT208_DATA,
2556			PORT207_DATA, PORT206_DATA, PORT205_DATA, PORT204_DATA,
2557			PORT203_DATA, PORT202_DATA, PORT201_DATA, PORT200_DATA,
2558			PORT199_DATA, PORT198_DATA, PORT197_DATA, PORT196_DATA,
2559			PORT195_DATA, PORT194_DATA, PORT193_DATA, PORT192_DATA,
2560		}
2561	},
2562	{ PINMUX_DATA_REG("PORTR255_224DR", 0xe6056008, 32) {
2563			0, 0, 0, 0,
2564			0, PORT250_DATA, PORT249_DATA, PORT248_DATA,
2565			PORT247_DATA, PORT246_DATA, PORT245_DATA, PORT244_DATA,
2566			PORT243_DATA, PORT242_DATA, PORT241_DATA, PORT240_DATA,
2567			PORT239_DATA, PORT238_DATA, PORT237_DATA, PORT236_DATA,
2568			PORT235_DATA, PORT234_DATA, PORT233_DATA, PORT232_DATA,
2569			PORT231_DATA, PORT230_DATA, PORT229_DATA, PORT228_DATA,
2570			PORT227_DATA, PORT226_DATA, PORT225_DATA, PORT224_DATA,
2571		}
2572	},
2573	{ PINMUX_DATA_REG("PORTR287_256DR", 0xe605600C, 32) {
2574			0, 0, 0, 0,
2575			PORT283_DATA, PORT282_DATA, PORT281_DATA, PORT280_DATA,
2576			PORT279_DATA, PORT278_DATA, PORT277_DATA, PORT276_DATA,
2577			PORT275_DATA, PORT274_DATA, PORT273_DATA, PORT272_DATA,
2578			PORT271_DATA, PORT270_DATA, PORT269_DATA, PORT268_DATA,
2579			PORT267_DATA, PORT266_DATA, PORT265_DATA, PORT264_DATA,
2580			PORT263_DATA, PORT262_DATA, PORT261_DATA, PORT260_DATA,
2581			PORT259_DATA, PORT258_DATA, PORT257_DATA, PORT256_DATA,
2582		}
2583	},
2584	{ PINMUX_DATA_REG("PORTU319_288DR", 0xe6057000, 32) {
2585			0, 0, 0, 0,
2586			0, 0, 0, 0,
2587			0, 0, 0, PORT308_DATA,
2588			PORT307_DATA, PORT306_DATA, PORT305_DATA, PORT304_DATA,
2589			PORT303_DATA, PORT302_DATA, PORT301_DATA, PORT300_DATA,
2590			PORT299_DATA, PORT298_DATA, PORT297_DATA, PORT296_DATA,
2591			PORT295_DATA, PORT294_DATA, PORT293_DATA, PORT292_DATA,
2592			PORT291_DATA, PORT290_DATA, PORT289_DATA, PORT288_DATA,
2593		}
2594	},
2595	{ PINMUX_DATA_REG("PORTU351_320DR", 0xe6057004, 32) {
2596			0, 0, 0, 0,
2597			0, 0, 0, 0,
2598			0, 0, 0, 0,
2599			0, 0, 0, 0,
2600			0, 0, 0, 0,
2601			0, 0, PORT329_DATA, PORT328_DATA,
2602			PORT327_DATA, PORT326_DATA, PORT325_DATA, PORT324_DATA,
2603			PORT323_DATA, PORT322_DATA, PORT321_DATA, PORT320_DATA,
2604		}
2605	},
2606	{ },
2607};
2608
2609static const struct pinmux_irq pinmux_irqs[] = {
2610	PINMUX_IRQ(irq_pin(0), 0),
2611	PINMUX_IRQ(irq_pin(1), 1),
2612	PINMUX_IRQ(irq_pin(2), 2),
2613	PINMUX_IRQ(irq_pin(3), 3),
2614	PINMUX_IRQ(irq_pin(4), 4),
2615	PINMUX_IRQ(irq_pin(5), 5),
2616	PINMUX_IRQ(irq_pin(6), 6),
2617	PINMUX_IRQ(irq_pin(7), 7),
2618	PINMUX_IRQ(irq_pin(8), 8),
2619	PINMUX_IRQ(irq_pin(9), 9),
2620	PINMUX_IRQ(irq_pin(10), 10),
2621	PINMUX_IRQ(irq_pin(11), 11),
2622	PINMUX_IRQ(irq_pin(12), 12),
2623	PINMUX_IRQ(irq_pin(13), 13),
2624	PINMUX_IRQ(irq_pin(14), 14),
2625	PINMUX_IRQ(irq_pin(15), 15),
2626	PINMUX_IRQ(irq_pin(16), 320),
2627	PINMUX_IRQ(irq_pin(17), 321),
2628	PINMUX_IRQ(irq_pin(18), 85),
2629	PINMUX_IRQ(irq_pin(19), 84),
2630	PINMUX_IRQ(irq_pin(20), 160),
2631	PINMUX_IRQ(irq_pin(21), 161),
2632	PINMUX_IRQ(irq_pin(22), 162),
2633	PINMUX_IRQ(irq_pin(23), 163),
2634	PINMUX_IRQ(irq_pin(24), 175),
2635	PINMUX_IRQ(irq_pin(25), 176),
2636	PINMUX_IRQ(irq_pin(26), 177),
2637	PINMUX_IRQ(irq_pin(27), 178),
2638	PINMUX_IRQ(irq_pin(28), 322),
2639	PINMUX_IRQ(irq_pin(29), 323),
2640	PINMUX_IRQ(irq_pin(30), 324),
2641	PINMUX_IRQ(irq_pin(31), 192),
2642	PINMUX_IRQ(irq_pin(32), 193),
2643	PINMUX_IRQ(irq_pin(33), 194),
2644	PINMUX_IRQ(irq_pin(34), 195),
2645	PINMUX_IRQ(irq_pin(35), 196),
2646	PINMUX_IRQ(irq_pin(36), 197),
2647	PINMUX_IRQ(irq_pin(37), 198),
2648	PINMUX_IRQ(irq_pin(38), 199),
2649	PINMUX_IRQ(irq_pin(39), 200),
2650	PINMUX_IRQ(irq_pin(40), 66),
2651	PINMUX_IRQ(irq_pin(41), 102),
2652	PINMUX_IRQ(irq_pin(42), 103),
2653	PINMUX_IRQ(irq_pin(43), 109),
2654	PINMUX_IRQ(irq_pin(44), 110),
2655	PINMUX_IRQ(irq_pin(45), 111),
2656	PINMUX_IRQ(irq_pin(46), 112),
2657	PINMUX_IRQ(irq_pin(47), 113),
2658	PINMUX_IRQ(irq_pin(48), 114),
2659	PINMUX_IRQ(irq_pin(49), 115),
2660	PINMUX_IRQ(irq_pin(50), 301),
2661	PINMUX_IRQ(irq_pin(51), 290),
2662	PINMUX_IRQ(irq_pin(52), 296),
2663	PINMUX_IRQ(irq_pin(53), 325),
2664	PINMUX_IRQ(irq_pin(54), 326),
2665	PINMUX_IRQ(irq_pin(55), 327),
2666	PINMUX_IRQ(irq_pin(56), 328),
2667	PINMUX_IRQ(irq_pin(57), 329),
2668};
2669
2670#define PORTCR_PULMD_OFF (0 << 6)
2671#define PORTCR_PULMD_DOWN (2 << 6)
2672#define PORTCR_PULMD_UP (3 << 6)
2673#define PORTCR_PULMD_MASK (3 << 6)
2674
2675static const unsigned int r8a73a4_portcr_offsets[] = {
2676	0x00000000, 0x00001000, 0x00000000, 0x00001000,
2677	0x00001000, 0x00002000, 0x00002000, 0x00002000,
2678	0x00002000, 0x00003000, 0x00003000,
2679};
2680
2681static unsigned int r8a73a4_pinmux_get_bias(struct sh_pfc *pfc,
2682					    unsigned int pin)
2683{
2684	void __iomem *addr;
2685
2686	addr = pfc->windows->virt + r8a73a4_portcr_offsets[pin >> 5] + pin;
2687
2688	switch (ioread8(addr) & PORTCR_PULMD_MASK) {
2689	case PORTCR_PULMD_UP:
2690		return PIN_CONFIG_BIAS_PULL_UP;
2691	case PORTCR_PULMD_DOWN:
2692		return PIN_CONFIG_BIAS_PULL_DOWN;
2693	case PORTCR_PULMD_OFF:
2694	default:
2695		return PIN_CONFIG_BIAS_DISABLE;
2696	}
2697}
2698
2699static void r8a73a4_pinmux_set_bias(struct sh_pfc *pfc, unsigned int pin,
2700				   unsigned int bias)
2701{
2702	void __iomem *addr;
2703	u32 value;
2704
2705	addr = pfc->windows->virt + r8a73a4_portcr_offsets[pin >> 5] + pin;
2706	value = ioread8(addr) & ~PORTCR_PULMD_MASK;
2707
2708	switch (bias) {
2709	case PIN_CONFIG_BIAS_PULL_UP:
2710		value |= PORTCR_PULMD_UP;
2711		break;
2712	case PIN_CONFIG_BIAS_PULL_DOWN:
2713		value |= PORTCR_PULMD_DOWN;
2714		break;
2715	}
2716
2717	iowrite8(value, addr);
2718}
2719
2720static const struct sh_pfc_soc_operations r8a73a4_pfc_ops = {
2721	.get_bias = r8a73a4_pinmux_get_bias,
2722	.set_bias = r8a73a4_pinmux_set_bias,
2723};
2724
2725const struct sh_pfc_soc_info r8a73a4_pinmux_info = {
2726	.name		= "r8a73a4_pfc",
2727	.ops		= &r8a73a4_pfc_ops,
2728
2729	.input = { PINMUX_INPUT_BEGIN, PINMUX_INPUT_END },
2730	.output = { PINMUX_OUTPUT_BEGIN, PINMUX_OUTPUT_END },
2731	.function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END },
2732
2733	.pins = pinmux_pins,
2734	.nr_pins = ARRAY_SIZE(pinmux_pins),
2735
2736	.groups = pinmux_groups,
2737	.nr_groups = ARRAY_SIZE(pinmux_groups),
2738	.functions = pinmux_functions,
2739	.nr_functions = ARRAY_SIZE(pinmux_functions),
2740
2741	.cfg_regs	= pinmux_config_regs,
2742	.data_regs	= pinmux_data_regs,
2743
2744	.gpio_data	= pinmux_data,
2745	.gpio_data_size	= ARRAY_SIZE(pinmux_data),
2746
2747	.gpio_irq = pinmux_irqs,
2748	.gpio_irq_size = ARRAY_SIZE(pinmux_irqs),
2749};
2750