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