blob: 009174d07767ff71451ac70cb4ce4de8b50efdf1 [file] [log] [blame]
Laurent Pinchartd5b15212012-12-15 23:51:21 +01001/*
2 * R8A7740 processor support
3 *
4 * Copyright (C) 2011 Renesas Solutions Corp.
5 * Copyright (C) 2011 Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
6 *
7 * This program is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License as
9 * published by the Free Software Foundation; version 2 of the
10 * License.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
20 */
Laurent Pinchart80da8e02013-04-23 14:24:19 +020021#include <linux/io.h>
Laurent Pinchartd5b15212012-12-15 23:51:21 +010022#include <linux/kernel.h>
Laurent Pinchart80da8e02013-04-23 14:24:19 +020023#include <linux/pinctrl/pinconf-generic.h>
24
Laurent Pinchartd5b15212012-12-15 23:51:21 +010025#include <mach/irqs.h>
26
Laurent Pinchart80da8e02013-04-23 14:24:19 +020027#include "core.h"
Laurent Pinchartc3323802012-12-15 23:51:55 +010028#include "sh_pfc.h"
29
Laurent Pinchartd5b15212012-12-15 23:51:21 +010030#define CPU_ALL_PORT(fn, pfx, sfx) \
Laurent Pinchart16b915e2013-02-14 00:24:32 +010031 PORT_10(0, fn, pfx, sfx), PORT_90(0, fn, pfx, sfx), \
32 PORT_10(100, fn, pfx##10, sfx), PORT_90(100, fn, pfx##1, sfx), \
33 PORT_10(200, fn, pfx##20, sfx), \
34 PORT_1(210, fn, pfx##210, sfx), PORT_1(211, fn, pfx##211, sfx)
Laurent Pinchartd5b15212012-12-15 23:51:21 +010035
Bastian Hecht09bbc1f2013-04-09 10:48:50 +000036#define IRQC_PIN_MUX(irq, pin) \
37static const unsigned int intc_irq##irq##_pins[] = { \
38 pin, \
39}; \
40static const unsigned int intc_irq##irq##_mux[] = { \
41 IRQ##irq##_MARK, \
42}
43
44#define IRQC_PINS_MUX(irq, idx, pin) \
45static const unsigned int intc_irq##irq##_##idx##_pins[] = { \
46 pin, \
47}; \
48static const unsigned int intc_irq##irq##_##idx##_mux[] = { \
49 IRQ##irq##_PORT##pin##_MARK, \
50}
51
Laurent Pinchartd5b15212012-12-15 23:51:21 +010052enum {
53 PINMUX_RESERVED = 0,
54
55 /* PORT0_DATA -> PORT211_DATA */
56 PINMUX_DATA_BEGIN,
57 PORT_ALL(DATA),
58 PINMUX_DATA_END,
59
60 /* PORT0_IN -> PORT211_IN */
61 PINMUX_INPUT_BEGIN,
62 PORT_ALL(IN),
63 PINMUX_INPUT_END,
64
Laurent Pinchartd5b15212012-12-15 23:51:21 +010065 /* PORT0_OUT -> PORT211_OUT */
66 PINMUX_OUTPUT_BEGIN,
67 PORT_ALL(OUT),
68 PINMUX_OUTPUT_END,
69
70 PINMUX_FUNCTION_BEGIN,
71 PORT_ALL(FN_IN), /* PORT0_FN_IN -> PORT211_FN_IN */
72 PORT_ALL(FN_OUT), /* PORT0_FN_OUT -> PORT211_FN_OUT */
73 PORT_ALL(FN0), /* PORT0_FN0 -> PORT211_FN0 */
74 PORT_ALL(FN1), /* PORT0_FN1 -> PORT211_FN1 */
75 PORT_ALL(FN2), /* PORT0_FN2 -> PORT211_FN2 */
76 PORT_ALL(FN3), /* PORT0_FN3 -> PORT211_FN3 */
77 PORT_ALL(FN4), /* PORT0_FN4 -> PORT211_FN4 */
78 PORT_ALL(FN5), /* PORT0_FN5 -> PORT211_FN5 */
79 PORT_ALL(FN6), /* PORT0_FN6 -> PORT211_FN6 */
80 PORT_ALL(FN7), /* PORT0_FN7 -> PORT211_FN7 */
81
82 MSEL1CR_31_0, MSEL1CR_31_1,
83 MSEL1CR_30_0, MSEL1CR_30_1,
84 MSEL1CR_29_0, MSEL1CR_29_1,
85 MSEL1CR_28_0, MSEL1CR_28_1,
86 MSEL1CR_27_0, MSEL1CR_27_1,
87 MSEL1CR_26_0, MSEL1CR_26_1,
88 MSEL1CR_16_0, MSEL1CR_16_1,
89 MSEL1CR_15_0, MSEL1CR_15_1,
90 MSEL1CR_14_0, MSEL1CR_14_1,
91 MSEL1CR_13_0, MSEL1CR_13_1,
92 MSEL1CR_12_0, MSEL1CR_12_1,
93 MSEL1CR_9_0, MSEL1CR_9_1,
94 MSEL1CR_7_0, MSEL1CR_7_1,
95 MSEL1CR_6_0, MSEL1CR_6_1,
96 MSEL1CR_5_0, MSEL1CR_5_1,
97 MSEL1CR_4_0, MSEL1CR_4_1,
98 MSEL1CR_3_0, MSEL1CR_3_1,
99 MSEL1CR_2_0, MSEL1CR_2_1,
100 MSEL1CR_0_0, MSEL1CR_0_1,
101
102 MSEL3CR_15_0, MSEL3CR_15_1, /* Trace / Debug ? */
103 MSEL3CR_6_0, MSEL3CR_6_1,
104
105 MSEL4CR_19_0, MSEL4CR_19_1,
106 MSEL4CR_18_0, MSEL4CR_18_1,
107 MSEL4CR_15_0, MSEL4CR_15_1,
108 MSEL4CR_10_0, MSEL4CR_10_1,
109 MSEL4CR_6_0, MSEL4CR_6_1,
110 MSEL4CR_4_0, MSEL4CR_4_1,
111 MSEL4CR_1_0, MSEL4CR_1_1,
112
113 MSEL5CR_31_0, MSEL5CR_31_1, /* irq/fiq output */
114 MSEL5CR_30_0, MSEL5CR_30_1,
115 MSEL5CR_29_0, MSEL5CR_29_1,
116 MSEL5CR_27_0, MSEL5CR_27_1,
117 MSEL5CR_25_0, MSEL5CR_25_1,
118 MSEL5CR_23_0, MSEL5CR_23_1,
119 MSEL5CR_21_0, MSEL5CR_21_1,
120 MSEL5CR_19_0, MSEL5CR_19_1,
121 MSEL5CR_17_0, MSEL5CR_17_1,
122 MSEL5CR_15_0, MSEL5CR_15_1,
123 MSEL5CR_14_0, MSEL5CR_14_1,
124 MSEL5CR_13_0, MSEL5CR_13_1,
125 MSEL5CR_12_0, MSEL5CR_12_1,
126 MSEL5CR_11_0, MSEL5CR_11_1,
127 MSEL5CR_10_0, MSEL5CR_10_1,
128 MSEL5CR_8_0, MSEL5CR_8_1,
129 MSEL5CR_7_0, MSEL5CR_7_1,
130 MSEL5CR_6_0, MSEL5CR_6_1,
131 MSEL5CR_5_0, MSEL5CR_5_1,
132 MSEL5CR_4_0, MSEL5CR_4_1,
133 MSEL5CR_3_0, MSEL5CR_3_1,
134 MSEL5CR_2_0, MSEL5CR_2_1,
135 MSEL5CR_0_0, MSEL5CR_0_1,
136 PINMUX_FUNCTION_END,
137
138 PINMUX_MARK_BEGIN,
139
140 /* IRQ */
141 IRQ0_PORT2_MARK, IRQ0_PORT13_MARK,
142 IRQ1_MARK,
143 IRQ2_PORT11_MARK, IRQ2_PORT12_MARK,
144 IRQ3_PORT10_MARK, IRQ3_PORT14_MARK,
145 IRQ4_PORT15_MARK, IRQ4_PORT172_MARK,
146 IRQ5_PORT0_MARK, IRQ5_PORT1_MARK,
147 IRQ6_PORT121_MARK, IRQ6_PORT173_MARK,
148 IRQ7_PORT120_MARK, IRQ7_PORT209_MARK,
149 IRQ8_MARK,
150 IRQ9_PORT118_MARK, IRQ9_PORT210_MARK,
151 IRQ10_MARK,
152 IRQ11_MARK,
153 IRQ12_PORT42_MARK, IRQ12_PORT97_MARK,
154 IRQ13_PORT64_MARK, IRQ13_PORT98_MARK,
155 IRQ14_PORT63_MARK, IRQ14_PORT99_MARK,
156 IRQ15_PORT62_MARK, IRQ15_PORT100_MARK,
157 IRQ16_PORT68_MARK, IRQ16_PORT211_MARK,
158 IRQ17_MARK,
159 IRQ18_MARK,
160 IRQ19_MARK,
161 IRQ20_MARK,
162 IRQ21_MARK,
163 IRQ22_MARK,
164 IRQ23_MARK,
165 IRQ24_MARK,
166 IRQ25_MARK,
167 IRQ26_PORT58_MARK, IRQ26_PORT81_MARK,
168 IRQ27_PORT57_MARK, IRQ27_PORT168_MARK,
169 IRQ28_PORT56_MARK, IRQ28_PORT169_MARK,
170 IRQ29_PORT50_MARK, IRQ29_PORT170_MARK,
171 IRQ30_PORT49_MARK, IRQ30_PORT171_MARK,
172 IRQ31_PORT41_MARK, IRQ31_PORT167_MARK,
173
174 /* Function */
175
176 /* DBGT */
177 DBGMDT2_MARK, DBGMDT1_MARK, DBGMDT0_MARK,
178 DBGMD10_MARK, DBGMD11_MARK, DBGMD20_MARK,
179 DBGMD21_MARK,
180
181 /* FSI-A */
182 FSIAISLD_PORT0_MARK, /* FSIAISLD Port 0/5 */
183 FSIAISLD_PORT5_MARK,
184 FSIASPDIF_PORT9_MARK, /* FSIASPDIF Port 9/18 */
185 FSIASPDIF_PORT18_MARK,
186 FSIAOSLD1_MARK, FSIAOSLD2_MARK, FSIAOLR_MARK,
187 FSIAOBT_MARK, FSIAOSLD_MARK, FSIAOMC_MARK,
188 FSIACK_MARK, FSIAILR_MARK, FSIAIBT_MARK,
189
190 /* FSI-B */
191 FSIBCK_MARK,
192
193 /* FMSI */
194 FMSISLD_PORT1_MARK, /* FMSISLD Port 1/6 */
195 FMSISLD_PORT6_MARK,
196 FMSIILR_MARK, FMSIIBT_MARK, FMSIOLR_MARK, FMSIOBT_MARK,
197 FMSICK_MARK, FMSOILR_MARK, FMSOIBT_MARK, FMSOOLR_MARK,
198 FMSOOBT_MARK, FMSOSLD_MARK, FMSOCK_MARK,
199
200 /* SCIFA0 */
201 SCIFA0_SCK_MARK, SCIFA0_CTS_MARK, SCIFA0_RTS_MARK,
202 SCIFA0_RXD_MARK, SCIFA0_TXD_MARK,
203
204 /* SCIFA1 */
205 SCIFA1_CTS_MARK, SCIFA1_SCK_MARK, SCIFA1_RXD_MARK,
206 SCIFA1_TXD_MARK, SCIFA1_RTS_MARK,
207
208 /* SCIFA2 */
209 SCIFA2_SCK_PORT22_MARK, /* SCIFA2_SCK Port 22/199 */
210 SCIFA2_SCK_PORT199_MARK,
211 SCIFA2_RXD_MARK, SCIFA2_TXD_MARK,
212 SCIFA2_CTS_MARK, SCIFA2_RTS_MARK,
213
214 /* SCIFA3 */
215 SCIFA3_RTS_PORT105_MARK, /* MSEL5CR_8_0 */
216 SCIFA3_SCK_PORT116_MARK,
217 SCIFA3_CTS_PORT117_MARK,
218 SCIFA3_RXD_PORT174_MARK,
219 SCIFA3_TXD_PORT175_MARK,
220
221 SCIFA3_RTS_PORT161_MARK, /* MSEL5CR_8_1 */
222 SCIFA3_SCK_PORT158_MARK,
223 SCIFA3_CTS_PORT162_MARK,
224 SCIFA3_RXD_PORT159_MARK,
225 SCIFA3_TXD_PORT160_MARK,
226
227 /* SCIFA4 */
228 SCIFA4_RXD_PORT12_MARK, /* MSEL5CR[12:11] = 00 */
229 SCIFA4_TXD_PORT13_MARK,
230
231 SCIFA4_RXD_PORT204_MARK, /* MSEL5CR[12:11] = 01 */
232 SCIFA4_TXD_PORT203_MARK,
233
234 SCIFA4_RXD_PORT94_MARK, /* MSEL5CR[12:11] = 10 */
235 SCIFA4_TXD_PORT93_MARK,
236
237 SCIFA4_SCK_PORT21_MARK, /* SCIFA4_SCK Port 21/205 */
238 SCIFA4_SCK_PORT205_MARK,
239
240 /* SCIFA5 */
241 SCIFA5_TXD_PORT20_MARK, /* MSEL5CR[15:14] = 00 */
242 SCIFA5_RXD_PORT10_MARK,
243
244 SCIFA5_RXD_PORT207_MARK, /* MSEL5CR[15:14] = 01 */
245 SCIFA5_TXD_PORT208_MARK,
246
247 SCIFA5_TXD_PORT91_MARK, /* MSEL5CR[15:14] = 10 */
248 SCIFA5_RXD_PORT92_MARK,
249
250 SCIFA5_SCK_PORT23_MARK, /* SCIFA5_SCK Port 23/206 */
251 SCIFA5_SCK_PORT206_MARK,
252
253 /* SCIFA6 */
254 SCIFA6_SCK_MARK, SCIFA6_RXD_MARK, SCIFA6_TXD_MARK,
255
256 /* SCIFA7 */
257 SCIFA7_TXD_MARK, SCIFA7_RXD_MARK,
258
259 /* SCIFAB */
260 SCIFB_SCK_PORT190_MARK, /* MSEL5CR_17_0 */
261 SCIFB_RXD_PORT191_MARK,
262 SCIFB_TXD_PORT192_MARK,
263 SCIFB_RTS_PORT186_MARK,
264 SCIFB_CTS_PORT187_MARK,
265
266 SCIFB_SCK_PORT2_MARK, /* MSEL5CR_17_1 */
267 SCIFB_RXD_PORT3_MARK,
268 SCIFB_TXD_PORT4_MARK,
269 SCIFB_RTS_PORT172_MARK,
270 SCIFB_CTS_PORT173_MARK,
271
272 /* LCD0 */
Laurent Pinchartd5b15212012-12-15 23:51:21 +0100273 LCD0_D0_MARK, LCD0_D1_MARK, LCD0_D2_MARK, LCD0_D3_MARK,
274 LCD0_D4_MARK, LCD0_D5_MARK, LCD0_D6_MARK, LCD0_D7_MARK,
275 LCD0_D8_MARK, LCD0_D9_MARK, LCD0_D10_MARK, LCD0_D11_MARK,
276 LCD0_D12_MARK, LCD0_D13_MARK, LCD0_D14_MARK, LCD0_D15_MARK,
277 LCD0_D16_MARK, LCD0_D17_MARK,
278 LCD0_DON_MARK, LCD0_VCPWC_MARK, LCD0_VEPWC_MARK,
279 LCD0_DCK_MARK, LCD0_VSYN_MARK, /* for RGB */
280 LCD0_HSYN_MARK, LCD0_DISP_MARK, /* for RGB */
281 LCD0_WR_MARK, LCD0_RD_MARK, /* for SYS */
282 LCD0_CS_MARK, LCD0_RS_MARK, /* for SYS */
283
284 LCD0_D21_PORT158_MARK, LCD0_D23_PORT159_MARK, /* MSEL5CR_6_1 */
285 LCD0_D22_PORT160_MARK, LCD0_D20_PORT161_MARK,
286 LCD0_D19_PORT162_MARK, LCD0_D18_PORT163_MARK,
287 LCD0_LCLK_PORT165_MARK,
288
289 LCD0_D18_PORT40_MARK, LCD0_D22_PORT0_MARK, /* MSEL5CR_6_0 */
290 LCD0_D23_PORT1_MARK, LCD0_D21_PORT2_MARK,
291 LCD0_D20_PORT3_MARK, LCD0_D19_PORT4_MARK,
292 LCD0_LCLK_PORT102_MARK,
293
294 /* LCD1 */
Laurent Pinchartd5b15212012-12-15 23:51:21 +0100295 LCD1_D0_MARK, LCD1_D1_MARK, LCD1_D2_MARK, LCD1_D3_MARK,
296 LCD1_D4_MARK, LCD1_D5_MARK, LCD1_D6_MARK, LCD1_D7_MARK,
297 LCD1_D8_MARK, LCD1_D9_MARK, LCD1_D10_MARK, LCD1_D11_MARK,
298 LCD1_D12_MARK, LCD1_D13_MARK, LCD1_D14_MARK, LCD1_D15_MARK,
299 LCD1_D16_MARK, LCD1_D17_MARK, LCD1_D18_MARK, LCD1_D19_MARK,
300 LCD1_D20_MARK, LCD1_D21_MARK, LCD1_D22_MARK, LCD1_D23_MARK,
301 LCD1_DON_MARK, LCD1_VCPWC_MARK,
302 LCD1_LCLK_MARK, LCD1_VEPWC_MARK,
303
304 LCD1_DCK_MARK, LCD1_VSYN_MARK, /* for RGB */
305 LCD1_HSYN_MARK, LCD1_DISP_MARK, /* for RGB */
306 LCD1_RS_MARK, LCD1_CS_MARK, /* for SYS */
307 LCD1_RD_MARK, LCD1_WR_MARK, /* for SYS */
308
309 /* RSPI */
310 RSPI_SSL0_A_MARK, RSPI_SSL1_A_MARK, RSPI_SSL2_A_MARK,
311 RSPI_SSL3_A_MARK, RSPI_CK_A_MARK, RSPI_MOSI_A_MARK,
312 RSPI_MISO_A_MARK,
313
314 /* VIO CKO */
315 VIO_CKO1_MARK, /* needs fixup */
316 VIO_CKO2_MARK,
317 VIO_CKO_1_MARK,
318 VIO_CKO_MARK,
319
320 /* VIO0 */
321 VIO0_D0_MARK, VIO0_D1_MARK, VIO0_D2_MARK, VIO0_D3_MARK,
322 VIO0_D4_MARK, VIO0_D5_MARK, VIO0_D6_MARK, VIO0_D7_MARK,
323 VIO0_D8_MARK, VIO0_D9_MARK, VIO0_D10_MARK, VIO0_D11_MARK,
324 VIO0_D12_MARK, VIO0_VD_MARK, VIO0_HD_MARK, VIO0_CLK_MARK,
325 VIO0_FIELD_MARK,
326
327 VIO0_D13_PORT26_MARK, /* MSEL5CR_27_0 */
328 VIO0_D14_PORT25_MARK,
329 VIO0_D15_PORT24_MARK,
330
331 VIO0_D13_PORT22_MARK, /* MSEL5CR_27_1 */
332 VIO0_D14_PORT95_MARK,
333 VIO0_D15_PORT96_MARK,
334
335 /* VIO1 */
336 VIO1_D0_MARK, VIO1_D1_MARK, VIO1_D2_MARK, VIO1_D3_MARK,
337 VIO1_D4_MARK, VIO1_D5_MARK, VIO1_D6_MARK, VIO1_D7_MARK,
338 VIO1_VD_MARK, VIO1_HD_MARK, VIO1_CLK_MARK, VIO1_FIELD_MARK,
339
340 /* TPU0 */
341 TPU0TO0_MARK, TPU0TO1_MARK, TPU0TO3_MARK,
342 TPU0TO2_PORT66_MARK, /* TPU0TO2 Port 66/202 */
343 TPU0TO2_PORT202_MARK,
344
345 /* SSP1 0 */
346 STP0_IPD0_MARK, STP0_IPD1_MARK, STP0_IPD2_MARK, STP0_IPD3_MARK,
347 STP0_IPD4_MARK, STP0_IPD5_MARK, STP0_IPD6_MARK, STP0_IPD7_MARK,
348 STP0_IPEN_MARK, STP0_IPCLK_MARK, STP0_IPSYNC_MARK,
349
350 /* SSP1 1 */
351 STP1_IPD1_MARK, STP1_IPD2_MARK, STP1_IPD3_MARK, STP1_IPD4_MARK,
352 STP1_IPD5_MARK, STP1_IPD6_MARK, STP1_IPD7_MARK, STP1_IPCLK_MARK,
353 STP1_IPSYNC_MARK,
354
355 STP1_IPD0_PORT186_MARK, /* MSEL5CR_23_0 */
356 STP1_IPEN_PORT187_MARK,
357
358 STP1_IPD0_PORT194_MARK, /* MSEL5CR_23_1 */
359 STP1_IPEN_PORT193_MARK,
360
361 /* SIM */
362 SIM_RST_MARK, SIM_CLK_MARK,
363 SIM_D_PORT22_MARK, /* SIM_D Port 22/199 */
364 SIM_D_PORT199_MARK,
365
366 /* SDHI0 */
367 SDHI0_D0_MARK, SDHI0_D1_MARK, SDHI0_D2_MARK, SDHI0_D3_MARK,
368 SDHI0_CD_MARK, SDHI0_WP_MARK, SDHI0_CMD_MARK, SDHI0_CLK_MARK,
369
370 /* SDHI1 */
371 SDHI1_D0_MARK, SDHI1_D1_MARK, SDHI1_D2_MARK, SDHI1_D3_MARK,
372 SDHI1_CD_MARK, SDHI1_WP_MARK, SDHI1_CMD_MARK, SDHI1_CLK_MARK,
373
374 /* SDHI2 */
375 SDHI2_D0_MARK, SDHI2_D1_MARK, SDHI2_D2_MARK, SDHI2_D3_MARK,
376 SDHI2_CLK_MARK, SDHI2_CMD_MARK,
377
378 SDHI2_CD_PORT24_MARK, /* MSEL5CR_19_0 */
379 SDHI2_WP_PORT25_MARK,
380
381 SDHI2_WP_PORT177_MARK, /* MSEL5CR_19_1 */
382 SDHI2_CD_PORT202_MARK,
383
384 /* MSIOF2 */
385 MSIOF2_TXD_MARK, MSIOF2_RXD_MARK, MSIOF2_TSCK_MARK,
386 MSIOF2_SS2_MARK, MSIOF2_TSYNC_MARK, MSIOF2_SS1_MARK,
387 MSIOF2_MCK1_MARK, MSIOF2_MCK0_MARK, MSIOF2_RSYNC_MARK,
388 MSIOF2_RSCK_MARK,
389
390 /* KEYSC */
391 KEYIN4_MARK, KEYIN5_MARK, KEYIN6_MARK, KEYIN7_MARK,
392 KEYOUT0_MARK, KEYOUT1_MARK, KEYOUT2_MARK, KEYOUT3_MARK,
393 KEYOUT4_MARK, KEYOUT5_MARK, KEYOUT6_MARK, KEYOUT7_MARK,
394
395 KEYIN0_PORT43_MARK, /* MSEL4CR_18_0 */
396 KEYIN1_PORT44_MARK,
397 KEYIN2_PORT45_MARK,
398 KEYIN3_PORT46_MARK,
399
400 KEYIN0_PORT58_MARK, /* MSEL4CR_18_1 */
401 KEYIN1_PORT57_MARK,
402 KEYIN2_PORT56_MARK,
403 KEYIN3_PORT55_MARK,
404
405 /* VOU */
406 DV_D0_MARK, DV_D1_MARK, DV_D2_MARK, DV_D3_MARK,
407 DV_D4_MARK, DV_D5_MARK, DV_D6_MARK, DV_D7_MARK,
408 DV_D8_MARK, DV_D9_MARK, DV_D10_MARK, DV_D11_MARK,
409 DV_D12_MARK, DV_D13_MARK, DV_D14_MARK, DV_D15_MARK,
410 DV_CLK_MARK, DV_VSYNC_MARK, DV_HSYNC_MARK,
411
412 /* MEMC */
413 MEMC_AD0_MARK, MEMC_AD1_MARK, MEMC_AD2_MARK, MEMC_AD3_MARK,
414 MEMC_AD4_MARK, MEMC_AD5_MARK, MEMC_AD6_MARK, MEMC_AD7_MARK,
415 MEMC_AD8_MARK, MEMC_AD9_MARK, MEMC_AD10_MARK, MEMC_AD11_MARK,
416 MEMC_AD12_MARK, MEMC_AD13_MARK, MEMC_AD14_MARK, MEMC_AD15_MARK,
417 MEMC_CS0_MARK, MEMC_INT_MARK, MEMC_NWE_MARK, MEMC_NOE_MARK,
418
419 MEMC_CS1_MARK, /* MSEL4CR_6_0 */
420 MEMC_ADV_MARK,
421 MEMC_WAIT_MARK,
422 MEMC_BUSCLK_MARK,
423
424 MEMC_A1_MARK, /* MSEL4CR_6_1 */
425 MEMC_DREQ0_MARK,
426 MEMC_DREQ1_MARK,
427 MEMC_A0_MARK,
428
429 /* MMC */
430 MMC0_D0_PORT68_MARK, MMC0_D1_PORT69_MARK, MMC0_D2_PORT70_MARK,
431 MMC0_D3_PORT71_MARK, MMC0_D4_PORT72_MARK, MMC0_D5_PORT73_MARK,
432 MMC0_D6_PORT74_MARK, MMC0_D7_PORT75_MARK, MMC0_CLK_PORT66_MARK,
433 MMC0_CMD_PORT67_MARK, /* MSEL4CR_15_0 */
434
435 MMC1_D0_PORT149_MARK, MMC1_D1_PORT148_MARK, MMC1_D2_PORT147_MARK,
436 MMC1_D3_PORT146_MARK, MMC1_D4_PORT145_MARK, MMC1_D5_PORT144_MARK,
437 MMC1_D6_PORT143_MARK, MMC1_D7_PORT142_MARK, MMC1_CLK_PORT103_MARK,
438 MMC1_CMD_PORT104_MARK, /* MSEL4CR_15_1 */
439
440 /* MSIOF0 */
441 MSIOF0_SS1_MARK, MSIOF0_SS2_MARK, MSIOF0_RXD_MARK,
442 MSIOF0_TXD_MARK, MSIOF0_MCK0_MARK, MSIOF0_MCK1_MARK,
443 MSIOF0_RSYNC_MARK, MSIOF0_RSCK_MARK, MSIOF0_TSCK_MARK,
444 MSIOF0_TSYNC_MARK,
445
446 /* MSIOF1 */
447 MSIOF1_RSCK_MARK, MSIOF1_RSYNC_MARK,
448 MSIOF1_MCK0_MARK, MSIOF1_MCK1_MARK,
449
450 MSIOF1_SS2_PORT116_MARK, MSIOF1_SS1_PORT117_MARK,
451 MSIOF1_RXD_PORT118_MARK, MSIOF1_TXD_PORT119_MARK,
452 MSIOF1_TSYNC_PORT120_MARK,
453 MSIOF1_TSCK_PORT121_MARK, /* MSEL4CR_10_0 */
454
455 MSIOF1_SS1_PORT67_MARK, MSIOF1_TSCK_PORT72_MARK,
456 MSIOF1_TSYNC_PORT73_MARK, MSIOF1_TXD_PORT74_MARK,
457 MSIOF1_RXD_PORT75_MARK,
458 MSIOF1_SS2_PORT202_MARK, /* MSEL4CR_10_1 */
459
460 /* GPIO */
461 GPO0_MARK, GPI0_MARK, GPO1_MARK, GPI1_MARK,
462
463 /* USB0 */
464 USB0_OCI_MARK, USB0_PPON_MARK, VBUS_MARK,
465
466 /* USB1 */
467 USB1_OCI_MARK, USB1_PPON_MARK,
468
469 /* BBIF1 */
470 BBIF1_RXD_MARK, BBIF1_TXD_MARK, BBIF1_TSYNC_MARK,
471 BBIF1_TSCK_MARK, BBIF1_RSCK_MARK, BBIF1_RSYNC_MARK,
472 BBIF1_FLOW_MARK, BBIF1_RX_FLOW_N_MARK,
473
474 /* BBIF2 */
475 BBIF2_TXD2_PORT5_MARK, /* MSEL5CR_0_0 */
476 BBIF2_RXD2_PORT60_MARK,
477 BBIF2_TSYNC2_PORT6_MARK,
478 BBIF2_TSCK2_PORT59_MARK,
479
480 BBIF2_RXD2_PORT90_MARK, /* MSEL5CR_0_1 */
481 BBIF2_TXD2_PORT183_MARK,
482 BBIF2_TSCK2_PORT89_MARK,
483 BBIF2_TSYNC2_PORT184_MARK,
484
485 /* BSC / FLCTL / PCMCIA */
486 CS0_MARK, CS2_MARK, CS4_MARK,
487 CS5B_MARK, CS6A_MARK,
488 CS5A_PORT105_MARK, /* CS5A PORT 19/105 */
489 CS5A_PORT19_MARK,
490 IOIS16_MARK, /* ? */
491
492 A0_MARK, A1_MARK, A2_MARK, A3_MARK,
493 A4_FOE_MARK, /* share with FLCTL */
494 A5_FCDE_MARK, /* share with FLCTL */
495 A6_MARK, A7_MARK, A8_MARK, A9_MARK,
496 A10_MARK, A11_MARK, A12_MARK, A13_MARK,
497 A14_MARK, A15_MARK, A16_MARK, A17_MARK,
498 A18_MARK, A19_MARK, A20_MARK, A21_MARK,
499 A22_MARK, A23_MARK, A24_MARK, A25_MARK,
500 A26_MARK,
501
502 D0_NAF0_MARK, D1_NAF1_MARK, D2_NAF2_MARK, /* share with FLCTL */
503 D3_NAF3_MARK, D4_NAF4_MARK, D5_NAF5_MARK, /* share with FLCTL */
504 D6_NAF6_MARK, D7_NAF7_MARK, D8_NAF8_MARK, /* share with FLCTL */
505 D9_NAF9_MARK, D10_NAF10_MARK, D11_NAF11_MARK, /* share with FLCTL */
506 D12_NAF12_MARK, D13_NAF13_MARK, D14_NAF14_MARK, /* share with FLCTL */
507 D15_NAF15_MARK, /* share with FLCTL */
508 D16_MARK, D17_MARK, D18_MARK, D19_MARK,
509 D20_MARK, D21_MARK, D22_MARK, D23_MARK,
510 D24_MARK, D25_MARK, D26_MARK, D27_MARK,
511 D28_MARK, D29_MARK, D30_MARK, D31_MARK,
512
513 WE0_FWE_MARK, /* share with FLCTL */
514 WE1_MARK,
515 WE2_ICIORD_MARK, /* share with PCMCIA */
516 WE3_ICIOWR_MARK, /* share with PCMCIA */
517 CKO_MARK, BS_MARK, RDWR_MARK,
518 RD_FSC_MARK, /* share with FLCTL */
519 WAIT_PORT177_MARK, /* WAIT Port 90/177 */
520 WAIT_PORT90_MARK,
521
522 FCE0_MARK, FCE1_MARK, FRB_MARK, /* FLCTL */
523
524 /* IRDA */
525 IRDA_FIRSEL_MARK, IRDA_IN_MARK, IRDA_OUT_MARK,
526
527 /* ATAPI */
528 IDE_D0_MARK, IDE_D1_MARK, IDE_D2_MARK, IDE_D3_MARK,
529 IDE_D4_MARK, IDE_D5_MARK, IDE_D6_MARK, IDE_D7_MARK,
530 IDE_D8_MARK, IDE_D9_MARK, IDE_D10_MARK, IDE_D11_MARK,
531 IDE_D12_MARK, IDE_D13_MARK, IDE_D14_MARK, IDE_D15_MARK,
532 IDE_A0_MARK, IDE_A1_MARK, IDE_A2_MARK, IDE_CS0_MARK,
533 IDE_CS1_MARK, IDE_IOWR_MARK, IDE_IORD_MARK, IDE_IORDY_MARK,
534 IDE_INT_MARK, IDE_RST_MARK, IDE_DIRECTION_MARK,
535 IDE_EXBUF_ENB_MARK, IDE_IODACK_MARK, IDE_IODREQ_MARK,
536
537 /* RMII */
538 RMII_CRS_DV_MARK, RMII_RX_ER_MARK, RMII_RXD0_MARK,
539 RMII_RXD1_MARK, RMII_TX_EN_MARK, RMII_TXD0_MARK,
540 RMII_MDC_MARK, RMII_TXD1_MARK, RMII_MDIO_MARK,
541 RMII_REF50CK_MARK, /* for RMII */
542 RMII_REF125CK_MARK, /* for GMII */
543
544 /* GEther */
545 ET_TX_CLK_MARK, ET_TX_EN_MARK, ET_ETXD0_MARK, ET_ETXD1_MARK,
546 ET_ETXD2_MARK, ET_ETXD3_MARK,
547 ET_ETXD4_MARK, ET_ETXD5_MARK, /* for GEther */
548 ET_ETXD6_MARK, ET_ETXD7_MARK, /* for GEther */
549 ET_COL_MARK, ET_TX_ER_MARK, ET_RX_CLK_MARK, ET_RX_DV_MARK,
550 ET_ERXD0_MARK, ET_ERXD1_MARK, ET_ERXD2_MARK, ET_ERXD3_MARK,
551 ET_ERXD4_MARK, ET_ERXD5_MARK, /* for GEther */
552 ET_ERXD6_MARK, ET_ERXD7_MARK, /* for GEther */
553 ET_RX_ER_MARK, ET_CRS_MARK, ET_MDC_MARK, ET_MDIO_MARK,
554 ET_LINK_MARK, ET_PHY_INT_MARK, ET_WOL_MARK, ET_GTX_CLK_MARK,
555
556 /* DMA0 */
557 DREQ0_MARK, DACK0_MARK,
558
559 /* DMA1 */
560 DREQ1_MARK, DACK1_MARK,
561
562 /* SYSC */
563 RESETOUTS_MARK, RESETP_PULLUP_MARK, RESETP_PLAIN_MARK,
564
565 /* IRREM */
566 IROUT_MARK,
567
568 /* SDENC */
569 SDENC_CPG_MARK, SDENC_DV_CLKI_MARK,
570
571 /* HDMI */
572 HDMI_HPD_MARK, HDMI_CEC_MARK,
573
574 /* DEBUG */
575 EDEBGREQ_PULLUP_MARK, /* for JTAG */
576 EDEBGREQ_PULLDOWN_MARK,
577
578 TRACEAUD_FROM_VIO_MARK, /* for TRACE/AUD */
579 TRACEAUD_FROM_LCDC0_MARK,
580 TRACEAUD_FROM_MEMC_MARK,
581
582 PINMUX_MARK_END,
583};
584
Laurent Pinchart533743d2013-07-15 13:03:20 +0200585static const u16 pinmux_data[] = {
Laurent Pincharte3d93b42013-07-15 15:14:22 +0200586 PINMUX_DATA_ALL(),
Laurent Pinchartd5b15212012-12-15 23:51:21 +0100587
588 /* Port0 */
589 PINMUX_DATA(DBGMDT2_MARK, PORT0_FN1),
590 PINMUX_DATA(FSIAISLD_PORT0_MARK, PORT0_FN2, MSEL5CR_3_0),
591 PINMUX_DATA(FSIAOSLD1_MARK, PORT0_FN3),
592 PINMUX_DATA(LCD0_D22_PORT0_MARK, PORT0_FN4, MSEL5CR_6_0),
593 PINMUX_DATA(SCIFA7_RXD_MARK, PORT0_FN6),
594 PINMUX_DATA(LCD1_D4_MARK, PORT0_FN7),
595 PINMUX_DATA(IRQ5_PORT0_MARK, PORT0_FN0, MSEL1CR_5_0),
596
597 /* Port1 */
598 PINMUX_DATA(DBGMDT1_MARK, PORT1_FN1),
599 PINMUX_DATA(FMSISLD_PORT1_MARK, PORT1_FN2, MSEL5CR_5_0),
600 PINMUX_DATA(FSIAOSLD2_MARK, PORT1_FN3),
601 PINMUX_DATA(LCD0_D23_PORT1_MARK, PORT1_FN4, MSEL5CR_6_0),
602 PINMUX_DATA(SCIFA7_TXD_MARK, PORT1_FN6),
603 PINMUX_DATA(LCD1_D3_MARK, PORT1_FN7),
604 PINMUX_DATA(IRQ5_PORT1_MARK, PORT1_FN0, MSEL1CR_5_1),
605
606 /* Port2 */
607 PINMUX_DATA(DBGMDT0_MARK, PORT2_FN1),
608 PINMUX_DATA(SCIFB_SCK_PORT2_MARK, PORT2_FN2, MSEL5CR_17_1),
609 PINMUX_DATA(LCD0_D21_PORT2_MARK, PORT2_FN4, MSEL5CR_6_0),
610 PINMUX_DATA(LCD1_D2_MARK, PORT2_FN7),
611 PINMUX_DATA(IRQ0_PORT2_MARK, PORT2_FN0, MSEL1CR_0_1),
612
613 /* Port3 */
614 PINMUX_DATA(DBGMD21_MARK, PORT3_FN1),
615 PINMUX_DATA(SCIFB_RXD_PORT3_MARK, PORT3_FN2, MSEL5CR_17_1),
616 PINMUX_DATA(LCD0_D20_PORT3_MARK, PORT3_FN4, MSEL5CR_6_0),
617 PINMUX_DATA(LCD1_D1_MARK, PORT3_FN7),
618
619 /* Port4 */
620 PINMUX_DATA(DBGMD20_MARK, PORT4_FN1),
621 PINMUX_DATA(SCIFB_TXD_PORT4_MARK, PORT4_FN2, MSEL5CR_17_1),
622 PINMUX_DATA(LCD0_D19_PORT4_MARK, PORT4_FN4, MSEL5CR_6_0),
623 PINMUX_DATA(LCD1_D0_MARK, PORT4_FN7),
624
625 /* Port5 */
626 PINMUX_DATA(DBGMD11_MARK, PORT5_FN1),
627 PINMUX_DATA(BBIF2_TXD2_PORT5_MARK, PORT5_FN2, MSEL5CR_0_0),
628 PINMUX_DATA(FSIAISLD_PORT5_MARK, PORT5_FN4, MSEL5CR_3_1),
629 PINMUX_DATA(RSPI_SSL0_A_MARK, PORT5_FN6),
630 PINMUX_DATA(LCD1_VCPWC_MARK, PORT5_FN7),
631
632 /* Port6 */
633 PINMUX_DATA(DBGMD10_MARK, PORT6_FN1),
634 PINMUX_DATA(BBIF2_TSYNC2_PORT6_MARK, PORT6_FN2, MSEL5CR_0_0),
635 PINMUX_DATA(FMSISLD_PORT6_MARK, PORT6_FN4, MSEL5CR_5_1),
636 PINMUX_DATA(RSPI_SSL1_A_MARK, PORT6_FN6),
637 PINMUX_DATA(LCD1_VEPWC_MARK, PORT6_FN7),
638
639 /* Port7 */
640 PINMUX_DATA(FSIAOLR_MARK, PORT7_FN1),
641
642 /* Port8 */
643 PINMUX_DATA(FSIAOBT_MARK, PORT8_FN1),
644
645 /* Port9 */
646 PINMUX_DATA(FSIAOSLD_MARK, PORT9_FN1),
647 PINMUX_DATA(FSIASPDIF_PORT9_MARK, PORT9_FN2, MSEL5CR_4_0),
648
649 /* Port10 */
650 PINMUX_DATA(FSIAOMC_MARK, PORT10_FN1),
651 PINMUX_DATA(SCIFA5_RXD_PORT10_MARK, PORT10_FN3, MSEL5CR_14_0, MSEL5CR_15_0),
652 PINMUX_DATA(IRQ3_PORT10_MARK, PORT10_FN0, MSEL1CR_3_0),
653
654 /* Port11 */
655 PINMUX_DATA(FSIACK_MARK, PORT11_FN1),
656 PINMUX_DATA(FSIBCK_MARK, PORT11_FN2),
657 PINMUX_DATA(IRQ2_PORT11_MARK, PORT11_FN0, MSEL1CR_2_0),
658
659 /* Port12 */
660 PINMUX_DATA(FSIAILR_MARK, PORT12_FN1),
661 PINMUX_DATA(SCIFA4_RXD_PORT12_MARK, PORT12_FN2, MSEL5CR_12_0, MSEL5CR_11_0),
662 PINMUX_DATA(LCD1_RS_MARK, PORT12_FN6),
663 PINMUX_DATA(LCD1_DISP_MARK, PORT12_FN7),
664 PINMUX_DATA(IRQ2_PORT12_MARK, PORT12_FN0, MSEL1CR_2_1),
665
666 /* Port13 */
667 PINMUX_DATA(FSIAIBT_MARK, PORT13_FN1),
668 PINMUX_DATA(SCIFA4_TXD_PORT13_MARK, PORT13_FN2, MSEL5CR_12_0, MSEL5CR_11_0),
669 PINMUX_DATA(LCD1_RD_MARK, PORT13_FN7),
670 PINMUX_DATA(IRQ0_PORT13_MARK, PORT13_FN0, MSEL1CR_0_0),
671
672 /* Port14 */
673 PINMUX_DATA(FMSOILR_MARK, PORT14_FN1),
674 PINMUX_DATA(FMSIILR_MARK, PORT14_FN2),
675 PINMUX_DATA(VIO_CKO1_MARK, PORT14_FN3),
676 PINMUX_DATA(LCD1_D23_MARK, PORT14_FN7),
677 PINMUX_DATA(IRQ3_PORT14_MARK, PORT14_FN0, MSEL1CR_3_1),
678
679 /* Port15 */
680 PINMUX_DATA(FMSOIBT_MARK, PORT15_FN1),
681 PINMUX_DATA(FMSIIBT_MARK, PORT15_FN2),
682 PINMUX_DATA(VIO_CKO2_MARK, PORT15_FN3),
683 PINMUX_DATA(LCD1_D22_MARK, PORT15_FN7),
684 PINMUX_DATA(IRQ4_PORT15_MARK, PORT15_FN0, MSEL1CR_4_0),
685
686 /* Port16 */
687 PINMUX_DATA(FMSOOLR_MARK, PORT16_FN1),
688 PINMUX_DATA(FMSIOLR_MARK, PORT16_FN2),
689
690 /* Port17 */
691 PINMUX_DATA(FMSOOBT_MARK, PORT17_FN1),
692 PINMUX_DATA(FMSIOBT_MARK, PORT17_FN2),
693
694 /* Port18 */
695 PINMUX_DATA(FMSOSLD_MARK, PORT18_FN1),
696 PINMUX_DATA(FSIASPDIF_PORT18_MARK, PORT18_FN2, MSEL5CR_4_1),
697
698 /* Port19 */
699 PINMUX_DATA(FMSICK_MARK, PORT19_FN1),
700 PINMUX_DATA(CS5A_PORT19_MARK, PORT19_FN7, MSEL5CR_2_1),
701 PINMUX_DATA(IRQ10_MARK, PORT19_FN0),
702
703 /* Port20 */
704 PINMUX_DATA(FMSOCK_MARK, PORT20_FN1),
705 PINMUX_DATA(SCIFA5_TXD_PORT20_MARK, PORT20_FN3, MSEL5CR_15_0, MSEL5CR_14_0),
706 PINMUX_DATA(IRQ1_MARK, PORT20_FN0),
707
708 /* Port21 */
709 PINMUX_DATA(SCIFA1_CTS_MARK, PORT21_FN1),
710 PINMUX_DATA(SCIFA4_SCK_PORT21_MARK, PORT21_FN2, MSEL5CR_10_0),
711 PINMUX_DATA(TPU0TO1_MARK, PORT21_FN4),
712 PINMUX_DATA(VIO1_FIELD_MARK, PORT21_FN5),
713 PINMUX_DATA(STP0_IPD5_MARK, PORT21_FN6),
714 PINMUX_DATA(LCD1_D10_MARK, PORT21_FN7),
715
716 /* Port22 */
717 PINMUX_DATA(SCIFA2_SCK_PORT22_MARK, PORT22_FN1, MSEL5CR_7_0),
718 PINMUX_DATA(SIM_D_PORT22_MARK, PORT22_FN4, MSEL5CR_21_0),
719 PINMUX_DATA(VIO0_D13_PORT22_MARK, PORT22_FN7, MSEL5CR_27_1),
720
721 /* Port23 */
722 PINMUX_DATA(SCIFA1_RTS_MARK, PORT23_FN1),
723 PINMUX_DATA(SCIFA5_SCK_PORT23_MARK, PORT23_FN3, MSEL5CR_13_0),
724 PINMUX_DATA(TPU0TO0_MARK, PORT23_FN4),
725 PINMUX_DATA(VIO_CKO_1_MARK, PORT23_FN5),
726 PINMUX_DATA(STP0_IPD2_MARK, PORT23_FN6),
727 PINMUX_DATA(LCD1_D7_MARK, PORT23_FN7),
728
729 /* Port24 */
730 PINMUX_DATA(VIO0_D15_PORT24_MARK, PORT24_FN1, MSEL5CR_27_0),
731 PINMUX_DATA(VIO1_D7_MARK, PORT24_FN5),
732 PINMUX_DATA(SCIFA6_SCK_MARK, PORT24_FN6),
733 PINMUX_DATA(SDHI2_CD_PORT24_MARK, PORT24_FN7, MSEL5CR_19_0),
734
735 /* Port25 */
736 PINMUX_DATA(VIO0_D14_PORT25_MARK, PORT25_FN1, MSEL5CR_27_0),
737 PINMUX_DATA(VIO1_D6_MARK, PORT25_FN5),
738 PINMUX_DATA(SCIFA6_RXD_MARK, PORT25_FN6),
739 PINMUX_DATA(SDHI2_WP_PORT25_MARK, PORT25_FN7, MSEL5CR_19_0),
740
741 /* Port26 */
742 PINMUX_DATA(VIO0_D13_PORT26_MARK, PORT26_FN1, MSEL5CR_27_0),
743 PINMUX_DATA(VIO1_D5_MARK, PORT26_FN5),
744 PINMUX_DATA(SCIFA6_TXD_MARK, PORT26_FN6),
745
746 /* Port27 - Port39 Function */
747 PINMUX_DATA(VIO0_D7_MARK, PORT27_FN1),
748 PINMUX_DATA(VIO0_D6_MARK, PORT28_FN1),
749 PINMUX_DATA(VIO0_D5_MARK, PORT29_FN1),
750 PINMUX_DATA(VIO0_D4_MARK, PORT30_FN1),
751 PINMUX_DATA(VIO0_D3_MARK, PORT31_FN1),
752 PINMUX_DATA(VIO0_D2_MARK, PORT32_FN1),
753 PINMUX_DATA(VIO0_D1_MARK, PORT33_FN1),
754 PINMUX_DATA(VIO0_D0_MARK, PORT34_FN1),
755 PINMUX_DATA(VIO0_CLK_MARK, PORT35_FN1),
756 PINMUX_DATA(VIO_CKO_MARK, PORT36_FN1),
757 PINMUX_DATA(VIO0_HD_MARK, PORT37_FN1),
758 PINMUX_DATA(VIO0_FIELD_MARK, PORT38_FN1),
759 PINMUX_DATA(VIO0_VD_MARK, PORT39_FN1),
760
761 /* Port38 IRQ */
762 PINMUX_DATA(IRQ25_MARK, PORT38_FN0),
763
764 /* Port40 */
765 PINMUX_DATA(LCD0_D18_PORT40_MARK, PORT40_FN4, MSEL5CR_6_0),
766 PINMUX_DATA(RSPI_CK_A_MARK, PORT40_FN6),
767 PINMUX_DATA(LCD1_LCLK_MARK, PORT40_FN7),
768
769 /* Port41 */
770 PINMUX_DATA(LCD0_D17_MARK, PORT41_FN1),
771 PINMUX_DATA(MSIOF2_SS1_MARK, PORT41_FN2),
772 PINMUX_DATA(IRQ31_PORT41_MARK, PORT41_FN0, MSEL1CR_31_1),
773
774 /* Port42 */
775 PINMUX_DATA(LCD0_D16_MARK, PORT42_FN1),
776 PINMUX_DATA(MSIOF2_MCK1_MARK, PORT42_FN2),
777 PINMUX_DATA(IRQ12_PORT42_MARK, PORT42_FN0, MSEL1CR_12_1),
778
779 /* Port43 */
780 PINMUX_DATA(LCD0_D15_MARK, PORT43_FN1),
781 PINMUX_DATA(MSIOF2_MCK0_MARK, PORT43_FN2),
782 PINMUX_DATA(KEYIN0_PORT43_MARK, PORT43_FN3, MSEL4CR_18_0),
783 PINMUX_DATA(DV_D15_MARK, PORT43_FN6),
784
785 /* Port44 */
786 PINMUX_DATA(LCD0_D14_MARK, PORT44_FN1),
787 PINMUX_DATA(MSIOF2_RSYNC_MARK, PORT44_FN2),
788 PINMUX_DATA(KEYIN1_PORT44_MARK, PORT44_FN3, MSEL4CR_18_0),
789 PINMUX_DATA(DV_D14_MARK, PORT44_FN6),
790
791 /* Port45 */
792 PINMUX_DATA(LCD0_D13_MARK, PORT45_FN1),
793 PINMUX_DATA(MSIOF2_RSCK_MARK, PORT45_FN2),
794 PINMUX_DATA(KEYIN2_PORT45_MARK, PORT45_FN3, MSEL4CR_18_0),
795 PINMUX_DATA(DV_D13_MARK, PORT45_FN6),
796
797 /* Port46 */
798 PINMUX_DATA(LCD0_D12_MARK, PORT46_FN1),
799 PINMUX_DATA(KEYIN3_PORT46_MARK, PORT46_FN3, MSEL4CR_18_0),
800 PINMUX_DATA(DV_D12_MARK, PORT46_FN6),
801
802 /* Port47 */
803 PINMUX_DATA(LCD0_D11_MARK, PORT47_FN1),
804 PINMUX_DATA(KEYIN4_MARK, PORT47_FN3),
805 PINMUX_DATA(DV_D11_MARK, PORT47_FN6),
806
807 /* Port48 */
808 PINMUX_DATA(LCD0_D10_MARK, PORT48_FN1),
809 PINMUX_DATA(KEYIN5_MARK, PORT48_FN3),
810 PINMUX_DATA(DV_D10_MARK, PORT48_FN6),
811
812 /* Port49 */
813 PINMUX_DATA(LCD0_D9_MARK, PORT49_FN1),
814 PINMUX_DATA(KEYIN6_MARK, PORT49_FN3),
815 PINMUX_DATA(DV_D9_MARK, PORT49_FN6),
816 PINMUX_DATA(IRQ30_PORT49_MARK, PORT49_FN0, MSEL1CR_30_1),
817
818 /* Port50 */
819 PINMUX_DATA(LCD0_D8_MARK, PORT50_FN1),
820 PINMUX_DATA(KEYIN7_MARK, PORT50_FN3),
821 PINMUX_DATA(DV_D8_MARK, PORT50_FN6),
822 PINMUX_DATA(IRQ29_PORT50_MARK, PORT50_FN0, MSEL1CR_29_1),
823
824 /* Port51 */
825 PINMUX_DATA(LCD0_D7_MARK, PORT51_FN1),
826 PINMUX_DATA(KEYOUT0_MARK, PORT51_FN3),
827 PINMUX_DATA(DV_D7_MARK, PORT51_FN6),
828
829 /* Port52 */
830 PINMUX_DATA(LCD0_D6_MARK, PORT52_FN1),
831 PINMUX_DATA(KEYOUT1_MARK, PORT52_FN3),
832 PINMUX_DATA(DV_D6_MARK, PORT52_FN6),
833
834 /* Port53 */
835 PINMUX_DATA(LCD0_D5_MARK, PORT53_FN1),
836 PINMUX_DATA(KEYOUT2_MARK, PORT53_FN3),
837 PINMUX_DATA(DV_D5_MARK, PORT53_FN6),
838
839 /* Port54 */
840 PINMUX_DATA(LCD0_D4_MARK, PORT54_FN1),
841 PINMUX_DATA(KEYOUT3_MARK, PORT54_FN3),
842 PINMUX_DATA(DV_D4_MARK, PORT54_FN6),
843
844 /* Port55 */
845 PINMUX_DATA(LCD0_D3_MARK, PORT55_FN1),
846 PINMUX_DATA(KEYOUT4_MARK, PORT55_FN3),
847 PINMUX_DATA(KEYIN3_PORT55_MARK, PORT55_FN4, MSEL4CR_18_1),
848 PINMUX_DATA(DV_D3_MARK, PORT55_FN6),
849
850 /* Port56 */
851 PINMUX_DATA(LCD0_D2_MARK, PORT56_FN1),
852 PINMUX_DATA(KEYOUT5_MARK, PORT56_FN3),
853 PINMUX_DATA(KEYIN2_PORT56_MARK, PORT56_FN4, MSEL4CR_18_1),
854 PINMUX_DATA(DV_D2_MARK, PORT56_FN6),
855 PINMUX_DATA(IRQ28_PORT56_MARK, PORT56_FN0, MSEL1CR_28_1),
856
857 /* Port57 */
858 PINMUX_DATA(LCD0_D1_MARK, PORT57_FN1),
859 PINMUX_DATA(KEYOUT6_MARK, PORT57_FN3),
860 PINMUX_DATA(KEYIN1_PORT57_MARK, PORT57_FN4, MSEL4CR_18_1),
861 PINMUX_DATA(DV_D1_MARK, PORT57_FN6),
862 PINMUX_DATA(IRQ27_PORT57_MARK, PORT57_FN0, MSEL1CR_27_1),
863
864 /* Port58 */
Laurent Pinchartb7983902013-04-19 11:52:59 +0200865 PINMUX_DATA(LCD0_D0_MARK, PORT58_FN1, MSEL3CR_6_0),
Laurent Pinchartd5b15212012-12-15 23:51:21 +0100866 PINMUX_DATA(KEYOUT7_MARK, PORT58_FN3),
867 PINMUX_DATA(KEYIN0_PORT58_MARK, PORT58_FN4, MSEL4CR_18_1),
868 PINMUX_DATA(DV_D0_MARK, PORT58_FN6),
869 PINMUX_DATA(IRQ26_PORT58_MARK, PORT58_FN0, MSEL1CR_26_1),
870
871 /* Port59 */
872 PINMUX_DATA(LCD0_VCPWC_MARK, PORT59_FN1),
873 PINMUX_DATA(BBIF2_TSCK2_PORT59_MARK, PORT59_FN2, MSEL5CR_0_0),
874 PINMUX_DATA(RSPI_MOSI_A_MARK, PORT59_FN6),
875
876 /* Port60 */
877 PINMUX_DATA(LCD0_VEPWC_MARK, PORT60_FN1),
878 PINMUX_DATA(BBIF2_RXD2_PORT60_MARK, PORT60_FN2, MSEL5CR_0_0),
879 PINMUX_DATA(RSPI_MISO_A_MARK, PORT60_FN6),
880
881 /* Port61 */
882 PINMUX_DATA(LCD0_DON_MARK, PORT61_FN1),
883 PINMUX_DATA(MSIOF2_TXD_MARK, PORT61_FN2),
884
885 /* Port62 */
886 PINMUX_DATA(LCD0_DCK_MARK, PORT62_FN1),
887 PINMUX_DATA(LCD0_WR_MARK, PORT62_FN4),
888 PINMUX_DATA(DV_CLK_MARK, PORT62_FN6),
889 PINMUX_DATA(IRQ15_PORT62_MARK, PORT62_FN0, MSEL1CR_15_1),
890
891 /* Port63 */
892 PINMUX_DATA(LCD0_VSYN_MARK, PORT63_FN1),
893 PINMUX_DATA(DV_VSYNC_MARK, PORT63_FN6),
894 PINMUX_DATA(IRQ14_PORT63_MARK, PORT63_FN0, MSEL1CR_14_1),
895
896 /* Port64 */
897 PINMUX_DATA(LCD0_HSYN_MARK, PORT64_FN1),
898 PINMUX_DATA(LCD0_CS_MARK, PORT64_FN4),
899 PINMUX_DATA(DV_HSYNC_MARK, PORT64_FN6),
900 PINMUX_DATA(IRQ13_PORT64_MARK, PORT64_FN0, MSEL1CR_13_1),
901
902 /* Port65 */
903 PINMUX_DATA(LCD0_DISP_MARK, PORT65_FN1),
904 PINMUX_DATA(MSIOF2_TSCK_MARK, PORT65_FN2),
905 PINMUX_DATA(LCD0_RS_MARK, PORT65_FN4),
906
907 /* Port66 */
908 PINMUX_DATA(MEMC_INT_MARK, PORT66_FN1),
909 PINMUX_DATA(TPU0TO2_PORT66_MARK, PORT66_FN3, MSEL5CR_25_0),
910 PINMUX_DATA(MMC0_CLK_PORT66_MARK, PORT66_FN4, MSEL4CR_15_0),
911 PINMUX_DATA(SDHI1_CLK_MARK, PORT66_FN6),
912
913 /* Port67 - Port73 Function1 */
914 PINMUX_DATA(MEMC_CS0_MARK, PORT67_FN1),
915 PINMUX_DATA(MEMC_AD8_MARK, PORT68_FN1),
916 PINMUX_DATA(MEMC_AD9_MARK, PORT69_FN1),
917 PINMUX_DATA(MEMC_AD10_MARK, PORT70_FN1),
918 PINMUX_DATA(MEMC_AD11_MARK, PORT71_FN1),
919 PINMUX_DATA(MEMC_AD12_MARK, PORT72_FN1),
920 PINMUX_DATA(MEMC_AD13_MARK, PORT73_FN1),
921
922 /* Port67 - Port73 Function2 */
923 PINMUX_DATA(MSIOF1_SS1_PORT67_MARK, PORT67_FN2, MSEL4CR_10_1),
924 PINMUX_DATA(MSIOF1_RSCK_MARK, PORT68_FN2),
925 PINMUX_DATA(MSIOF1_RSYNC_MARK, PORT69_FN2),
926 PINMUX_DATA(MSIOF1_MCK0_MARK, PORT70_FN2),
927 PINMUX_DATA(MSIOF1_MCK1_MARK, PORT71_FN2),
928 PINMUX_DATA(MSIOF1_TSCK_PORT72_MARK, PORT72_FN2, MSEL4CR_10_1),
929 PINMUX_DATA(MSIOF1_TSYNC_PORT73_MARK, PORT73_FN2, MSEL4CR_10_1),
930
931 /* Port67 - Port73 Function4 */
932 PINMUX_DATA(MMC0_CMD_PORT67_MARK, PORT67_FN4, MSEL4CR_15_0),
933 PINMUX_DATA(MMC0_D0_PORT68_MARK, PORT68_FN4, MSEL4CR_15_0),
934 PINMUX_DATA(MMC0_D1_PORT69_MARK, PORT69_FN4, MSEL4CR_15_0),
935 PINMUX_DATA(MMC0_D2_PORT70_MARK, PORT70_FN4, MSEL4CR_15_0),
936 PINMUX_DATA(MMC0_D3_PORT71_MARK, PORT71_FN4, MSEL4CR_15_0),
937 PINMUX_DATA(MMC0_D4_PORT72_MARK, PORT72_FN4, MSEL4CR_15_0),
938 PINMUX_DATA(MMC0_D5_PORT73_MARK, PORT73_FN4, MSEL4CR_15_0),
939
940 /* Port67 - Port73 Function6 */
941 PINMUX_DATA(SDHI1_CMD_MARK, PORT67_FN6),
942 PINMUX_DATA(SDHI1_D0_MARK, PORT68_FN6),
943 PINMUX_DATA(SDHI1_D1_MARK, PORT69_FN6),
944 PINMUX_DATA(SDHI1_D2_MARK, PORT70_FN6),
945 PINMUX_DATA(SDHI1_D3_MARK, PORT71_FN6),
946 PINMUX_DATA(SDHI1_CD_MARK, PORT72_FN6),
947 PINMUX_DATA(SDHI1_WP_MARK, PORT73_FN6),
948
949 /* Port67 - Port71 IRQ */
950 PINMUX_DATA(IRQ20_MARK, PORT67_FN0),
951 PINMUX_DATA(IRQ16_PORT68_MARK, PORT68_FN0, MSEL1CR_16_0),
952 PINMUX_DATA(IRQ17_MARK, PORT69_FN0),
953 PINMUX_DATA(IRQ18_MARK, PORT70_FN0),
954 PINMUX_DATA(IRQ19_MARK, PORT71_FN0),
955
956 /* Port74 */
957 PINMUX_DATA(MEMC_AD14_MARK, PORT74_FN1),
958 PINMUX_DATA(MSIOF1_TXD_PORT74_MARK, PORT74_FN2, MSEL4CR_10_1),
959 PINMUX_DATA(MMC0_D6_PORT74_MARK, PORT74_FN4, MSEL4CR_15_0),
960 PINMUX_DATA(STP1_IPD7_MARK, PORT74_FN6),
961 PINMUX_DATA(LCD1_D21_MARK, PORT74_FN7),
962
963 /* Port75 */
964 PINMUX_DATA(MEMC_AD15_MARK, PORT75_FN1),
965 PINMUX_DATA(MSIOF1_RXD_PORT75_MARK, PORT75_FN2, MSEL4CR_10_1),
966 PINMUX_DATA(MMC0_D7_PORT75_MARK, PORT75_FN4, MSEL4CR_15_0),
967 PINMUX_DATA(STP1_IPD6_MARK, PORT75_FN6),
968 PINMUX_DATA(LCD1_D20_MARK, PORT75_FN7),
969
970 /* Port76 - Port80 Function */
971 PINMUX_DATA(SDHI0_CMD_MARK, PORT76_FN1),
972 PINMUX_DATA(SDHI0_D0_MARK, PORT77_FN1),
973 PINMUX_DATA(SDHI0_D1_MARK, PORT78_FN1),
974 PINMUX_DATA(SDHI0_D2_MARK, PORT79_FN1),
975 PINMUX_DATA(SDHI0_D3_MARK, PORT80_FN1),
976
977 /* Port81 */
978 PINMUX_DATA(SDHI0_CD_MARK, PORT81_FN1),
979 PINMUX_DATA(IRQ26_PORT81_MARK, PORT81_FN0, MSEL1CR_26_0),
980
981 /* Port82 - Port88 Function */
982 PINMUX_DATA(SDHI0_CLK_MARK, PORT82_FN1),
983 PINMUX_DATA(SDHI0_WP_MARK, PORT83_FN1),
984 PINMUX_DATA(RESETOUTS_MARK, PORT84_FN1),
985 PINMUX_DATA(USB0_PPON_MARK, PORT85_FN1),
986 PINMUX_DATA(USB0_OCI_MARK, PORT86_FN1),
987 PINMUX_DATA(USB1_PPON_MARK, PORT87_FN1),
988 PINMUX_DATA(USB1_OCI_MARK, PORT88_FN1),
989
990 /* Port89 */
991 PINMUX_DATA(DREQ0_MARK, PORT89_FN1),
992 PINMUX_DATA(BBIF2_TSCK2_PORT89_MARK, PORT89_FN2, MSEL5CR_0_1),
993 PINMUX_DATA(RSPI_SSL3_A_MARK, PORT89_FN6),
994
995 /* Port90 */
996 PINMUX_DATA(DACK0_MARK, PORT90_FN1),
997 PINMUX_DATA(BBIF2_RXD2_PORT90_MARK, PORT90_FN2, MSEL5CR_0_1),
998 PINMUX_DATA(RSPI_SSL2_A_MARK, PORT90_FN6),
999 PINMUX_DATA(WAIT_PORT90_MARK, PORT90_FN7, MSEL5CR_2_1),
1000
1001 /* Port91 */
1002 PINMUX_DATA(MEMC_AD0_MARK, PORT91_FN1),
1003 PINMUX_DATA(BBIF1_RXD_MARK, PORT91_FN2),
1004 PINMUX_DATA(SCIFA5_TXD_PORT91_MARK, PORT91_FN3, MSEL5CR_15_1, MSEL5CR_14_0),
1005 PINMUX_DATA(LCD1_D5_MARK, PORT91_FN7),
1006
1007 /* Port92 */
1008 PINMUX_DATA(MEMC_AD1_MARK, PORT92_FN1),
1009 PINMUX_DATA(BBIF1_TSYNC_MARK, PORT92_FN2),
1010 PINMUX_DATA(SCIFA5_RXD_PORT92_MARK, PORT92_FN3, MSEL5CR_15_1, MSEL5CR_14_0),
1011 PINMUX_DATA(STP0_IPD1_MARK, PORT92_FN6),
1012 PINMUX_DATA(LCD1_D6_MARK, PORT92_FN7),
1013
1014 /* Port93 */
1015 PINMUX_DATA(MEMC_AD2_MARK, PORT93_FN1),
1016 PINMUX_DATA(BBIF1_TSCK_MARK, PORT93_FN2),
1017 PINMUX_DATA(SCIFA4_TXD_PORT93_MARK, PORT93_FN3, MSEL5CR_12_1, MSEL5CR_11_0),
1018 PINMUX_DATA(STP0_IPD3_MARK, PORT93_FN6),
1019 PINMUX_DATA(LCD1_D8_MARK, PORT93_FN7),
1020
1021 /* Port94 */
1022 PINMUX_DATA(MEMC_AD3_MARK, PORT94_FN1),
1023 PINMUX_DATA(BBIF1_TXD_MARK, PORT94_FN2),
1024 PINMUX_DATA(SCIFA4_RXD_PORT94_MARK, PORT94_FN3, MSEL5CR_12_1, MSEL5CR_11_0),
1025 PINMUX_DATA(STP0_IPD4_MARK, PORT94_FN6),
1026 PINMUX_DATA(LCD1_D9_MARK, PORT94_FN7),
1027
1028 /* Port95 */
1029 PINMUX_DATA(MEMC_CS1_MARK, PORT95_FN1, MSEL4CR_6_0),
1030 PINMUX_DATA(MEMC_A1_MARK, PORT95_FN1, MSEL4CR_6_1),
1031
1032 PINMUX_DATA(SCIFA2_CTS_MARK, PORT95_FN2),
1033 PINMUX_DATA(SIM_RST_MARK, PORT95_FN4),
1034 PINMUX_DATA(VIO0_D14_PORT95_MARK, PORT95_FN7, MSEL5CR_27_1),
1035 PINMUX_DATA(IRQ22_MARK, PORT95_FN0),
1036
1037 /* Port96 */
1038 PINMUX_DATA(MEMC_ADV_MARK, PORT96_FN1, MSEL4CR_6_0),
1039 PINMUX_DATA(MEMC_DREQ0_MARK, PORT96_FN1, MSEL4CR_6_1),
1040
1041 PINMUX_DATA(SCIFA2_RTS_MARK, PORT96_FN2),
1042 PINMUX_DATA(SIM_CLK_MARK, PORT96_FN4),
1043 PINMUX_DATA(VIO0_D15_PORT96_MARK, PORT96_FN7, MSEL5CR_27_1),
1044 PINMUX_DATA(IRQ23_MARK, PORT96_FN0),
1045
1046 /* Port97 */
1047 PINMUX_DATA(MEMC_AD4_MARK, PORT97_FN1),
1048 PINMUX_DATA(BBIF1_RSCK_MARK, PORT97_FN2),
1049 PINMUX_DATA(LCD1_CS_MARK, PORT97_FN6),
1050 PINMUX_DATA(LCD1_HSYN_MARK, PORT97_FN7),
1051 PINMUX_DATA(IRQ12_PORT97_MARK, PORT97_FN0, MSEL1CR_12_0),
1052
1053 /* Port98 */
1054 PINMUX_DATA(MEMC_AD5_MARK, PORT98_FN1),
1055 PINMUX_DATA(BBIF1_RSYNC_MARK, PORT98_FN2),
1056 PINMUX_DATA(LCD1_VSYN_MARK, PORT98_FN7),
1057 PINMUX_DATA(IRQ13_PORT98_MARK, PORT98_FN0, MSEL1CR_13_0),
1058
1059 /* Port99 */
1060 PINMUX_DATA(MEMC_AD6_MARK, PORT99_FN1),
1061 PINMUX_DATA(BBIF1_FLOW_MARK, PORT99_FN2),
1062 PINMUX_DATA(LCD1_WR_MARK, PORT99_FN6),
1063 PINMUX_DATA(LCD1_DCK_MARK, PORT99_FN7),
1064 PINMUX_DATA(IRQ14_PORT99_MARK, PORT99_FN0, MSEL1CR_14_0),
1065
1066 /* Port100 */
1067 PINMUX_DATA(MEMC_AD7_MARK, PORT100_FN1),
1068 PINMUX_DATA(BBIF1_RX_FLOW_N_MARK, PORT100_FN2),
1069 PINMUX_DATA(LCD1_DON_MARK, PORT100_FN7),
1070 PINMUX_DATA(IRQ15_PORT100_MARK, PORT100_FN0, MSEL1CR_15_0),
1071
1072 /* Port101 */
1073 PINMUX_DATA(FCE0_MARK, PORT101_FN1),
1074
1075 /* Port102 */
1076 PINMUX_DATA(FRB_MARK, PORT102_FN1),
1077 PINMUX_DATA(LCD0_LCLK_PORT102_MARK, PORT102_FN4, MSEL5CR_6_0),
1078
1079 /* Port103 */
1080 PINMUX_DATA(CS5B_MARK, PORT103_FN1),
1081 PINMUX_DATA(FCE1_MARK, PORT103_FN2),
1082 PINMUX_DATA(MMC1_CLK_PORT103_MARK, PORT103_FN3, MSEL4CR_15_1),
1083
1084 /* Port104 */
1085 PINMUX_DATA(CS6A_MARK, PORT104_FN1),
1086 PINMUX_DATA(MMC1_CMD_PORT104_MARK, PORT104_FN3, MSEL4CR_15_1),
1087 PINMUX_DATA(IRQ11_MARK, PORT104_FN0),
1088
1089 /* Port105 */
1090 PINMUX_DATA(CS5A_PORT105_MARK, PORT105_FN1, MSEL5CR_2_0),
1091 PINMUX_DATA(SCIFA3_RTS_PORT105_MARK, PORT105_FN4, MSEL5CR_8_0),
1092
1093 /* Port106 */
1094 PINMUX_DATA(IOIS16_MARK, PORT106_FN1),
1095 PINMUX_DATA(IDE_EXBUF_ENB_MARK, PORT106_FN6),
1096
1097 /* Port107 - Port115 Function */
1098 PINMUX_DATA(WE3_ICIOWR_MARK, PORT107_FN1),
1099 PINMUX_DATA(WE2_ICIORD_MARK, PORT108_FN1),
1100 PINMUX_DATA(CS0_MARK, PORT109_FN1),
1101 PINMUX_DATA(CS2_MARK, PORT110_FN1),
1102 PINMUX_DATA(CS4_MARK, PORT111_FN1),
1103 PINMUX_DATA(WE1_MARK, PORT112_FN1),
1104 PINMUX_DATA(WE0_FWE_MARK, PORT113_FN1),
1105 PINMUX_DATA(RDWR_MARK, PORT114_FN1),
1106 PINMUX_DATA(RD_FSC_MARK, PORT115_FN1),
1107
1108 /* Port116 */
1109 PINMUX_DATA(A25_MARK, PORT116_FN1),
1110 PINMUX_DATA(MSIOF0_SS2_MARK, PORT116_FN2),
1111 PINMUX_DATA(MSIOF1_SS2_PORT116_MARK, PORT116_FN3, MSEL4CR_10_0),
1112 PINMUX_DATA(SCIFA3_SCK_PORT116_MARK, PORT116_FN4, MSEL5CR_8_0),
1113 PINMUX_DATA(GPO1_MARK, PORT116_FN5),
1114
1115 /* Port117 */
1116 PINMUX_DATA(A24_MARK, PORT117_FN1),
1117 PINMUX_DATA(MSIOF0_SS1_MARK, PORT117_FN2),
1118 PINMUX_DATA(MSIOF1_SS1_PORT117_MARK, PORT117_FN3, MSEL4CR_10_0),
1119 PINMUX_DATA(SCIFA3_CTS_PORT117_MARK, PORT117_FN4, MSEL5CR_8_0),
1120 PINMUX_DATA(GPO0_MARK, PORT117_FN5),
1121
1122 /* Port118 */
1123 PINMUX_DATA(A23_MARK, PORT118_FN1),
1124 PINMUX_DATA(MSIOF0_MCK1_MARK, PORT118_FN2),
1125 PINMUX_DATA(MSIOF1_RXD_PORT118_MARK, PORT118_FN3, MSEL4CR_10_0),
1126 PINMUX_DATA(GPI1_MARK, PORT118_FN5),
1127 PINMUX_DATA(IRQ9_PORT118_MARK, PORT118_FN0, MSEL1CR_9_0),
1128
1129 /* Port119 */
1130 PINMUX_DATA(A22_MARK, PORT119_FN1),
1131 PINMUX_DATA(MSIOF0_MCK0_MARK, PORT119_FN2),
1132 PINMUX_DATA(MSIOF1_TXD_PORT119_MARK, PORT119_FN3, MSEL4CR_10_0),
1133 PINMUX_DATA(GPI0_MARK, PORT119_FN5),
1134 PINMUX_DATA(IRQ8_MARK, PORT119_FN0),
1135
1136 /* Port120 */
1137 PINMUX_DATA(A21_MARK, PORT120_FN1),
1138 PINMUX_DATA(MSIOF0_RSYNC_MARK, PORT120_FN2),
1139 PINMUX_DATA(MSIOF1_TSYNC_PORT120_MARK, PORT120_FN3, MSEL4CR_10_0),
1140 PINMUX_DATA(IRQ7_PORT120_MARK, PORT120_FN0, MSEL1CR_7_1),
1141
1142 /* Port121 */
1143 PINMUX_DATA(A20_MARK, PORT121_FN1),
1144 PINMUX_DATA(MSIOF0_RSCK_MARK, PORT121_FN2),
1145 PINMUX_DATA(MSIOF1_TSCK_PORT121_MARK, PORT121_FN3, MSEL4CR_10_0),
1146 PINMUX_DATA(IRQ6_PORT121_MARK, PORT121_FN0, MSEL1CR_6_0),
1147
1148 /* Port122 */
1149 PINMUX_DATA(A19_MARK, PORT122_FN1),
1150 PINMUX_DATA(MSIOF0_RXD_MARK, PORT122_FN2),
1151
1152 /* Port123 */
1153 PINMUX_DATA(A18_MARK, PORT123_FN1),
1154 PINMUX_DATA(MSIOF0_TSCK_MARK, PORT123_FN2),
1155
1156 /* Port124 */
1157 PINMUX_DATA(A17_MARK, PORT124_FN1),
1158 PINMUX_DATA(MSIOF0_TSYNC_MARK, PORT124_FN2),
1159
1160 /* Port125 - Port141 Function */
1161 PINMUX_DATA(A16_MARK, PORT125_FN1),
1162 PINMUX_DATA(A15_MARK, PORT126_FN1),
1163 PINMUX_DATA(A14_MARK, PORT127_FN1),
1164 PINMUX_DATA(A13_MARK, PORT128_FN1),
1165 PINMUX_DATA(A12_MARK, PORT129_FN1),
1166 PINMUX_DATA(A11_MARK, PORT130_FN1),
1167 PINMUX_DATA(A10_MARK, PORT131_FN1),
1168 PINMUX_DATA(A9_MARK, PORT132_FN1),
1169 PINMUX_DATA(A8_MARK, PORT133_FN1),
1170 PINMUX_DATA(A7_MARK, PORT134_FN1),
1171 PINMUX_DATA(A6_MARK, PORT135_FN1),
1172 PINMUX_DATA(A5_FCDE_MARK, PORT136_FN1),
1173 PINMUX_DATA(A4_FOE_MARK, PORT137_FN1),
1174 PINMUX_DATA(A3_MARK, PORT138_FN1),
1175 PINMUX_DATA(A2_MARK, PORT139_FN1),
1176 PINMUX_DATA(A1_MARK, PORT140_FN1),
1177 PINMUX_DATA(CKO_MARK, PORT141_FN1),
1178
1179 /* Port142 - Port157 Function1 */
1180 PINMUX_DATA(D15_NAF15_MARK, PORT142_FN1),
1181 PINMUX_DATA(D14_NAF14_MARK, PORT143_FN1),
1182 PINMUX_DATA(D13_NAF13_MARK, PORT144_FN1),
1183 PINMUX_DATA(D12_NAF12_MARK, PORT145_FN1),
1184 PINMUX_DATA(D11_NAF11_MARK, PORT146_FN1),
1185 PINMUX_DATA(D10_NAF10_MARK, PORT147_FN1),
1186 PINMUX_DATA(D9_NAF9_MARK, PORT148_FN1),
1187 PINMUX_DATA(D8_NAF8_MARK, PORT149_FN1),
1188 PINMUX_DATA(D7_NAF7_MARK, PORT150_FN1),
1189 PINMUX_DATA(D6_NAF6_MARK, PORT151_FN1),
1190 PINMUX_DATA(D5_NAF5_MARK, PORT152_FN1),
1191 PINMUX_DATA(D4_NAF4_MARK, PORT153_FN1),
1192 PINMUX_DATA(D3_NAF3_MARK, PORT154_FN1),
1193 PINMUX_DATA(D2_NAF2_MARK, PORT155_FN1),
1194 PINMUX_DATA(D1_NAF1_MARK, PORT156_FN1),
1195 PINMUX_DATA(D0_NAF0_MARK, PORT157_FN1),
1196
1197 /* Port142 - Port149 Function3 */
1198 PINMUX_DATA(MMC1_D7_PORT142_MARK, PORT142_FN3, MSEL4CR_15_1),
1199 PINMUX_DATA(MMC1_D6_PORT143_MARK, PORT143_FN3, MSEL4CR_15_1),
1200 PINMUX_DATA(MMC1_D5_PORT144_MARK, PORT144_FN3, MSEL4CR_15_1),
1201 PINMUX_DATA(MMC1_D4_PORT145_MARK, PORT145_FN3, MSEL4CR_15_1),
1202 PINMUX_DATA(MMC1_D3_PORT146_MARK, PORT146_FN3, MSEL4CR_15_1),
1203 PINMUX_DATA(MMC1_D2_PORT147_MARK, PORT147_FN3, MSEL4CR_15_1),
1204 PINMUX_DATA(MMC1_D1_PORT148_MARK, PORT148_FN3, MSEL4CR_15_1),
1205 PINMUX_DATA(MMC1_D0_PORT149_MARK, PORT149_FN3, MSEL4CR_15_1),
1206
1207 /* Port158 */
1208 PINMUX_DATA(D31_MARK, PORT158_FN1),
1209 PINMUX_DATA(SCIFA3_SCK_PORT158_MARK, PORT158_FN2, MSEL5CR_8_1),
1210 PINMUX_DATA(RMII_REF125CK_MARK, PORT158_FN3),
1211 PINMUX_DATA(LCD0_D21_PORT158_MARK, PORT158_FN4, MSEL5CR_6_1),
1212 PINMUX_DATA(IRDA_FIRSEL_MARK, PORT158_FN5),
1213 PINMUX_DATA(IDE_D15_MARK, PORT158_FN6),
1214
1215 /* Port159 */
1216 PINMUX_DATA(D30_MARK, PORT159_FN1),
1217 PINMUX_DATA(SCIFA3_RXD_PORT159_MARK, PORT159_FN2, MSEL5CR_8_1),
1218 PINMUX_DATA(RMII_REF50CK_MARK, PORT159_FN3),
1219 PINMUX_DATA(LCD0_D23_PORT159_MARK, PORT159_FN4, MSEL5CR_6_1),
1220 PINMUX_DATA(IDE_D14_MARK, PORT159_FN6),
1221
1222 /* Port160 */
1223 PINMUX_DATA(D29_MARK, PORT160_FN1),
1224 PINMUX_DATA(SCIFA3_TXD_PORT160_MARK, PORT160_FN2, MSEL5CR_8_1),
1225 PINMUX_DATA(LCD0_D22_PORT160_MARK, PORT160_FN4, MSEL5CR_6_1),
1226 PINMUX_DATA(VIO1_HD_MARK, PORT160_FN5),
1227 PINMUX_DATA(IDE_D13_MARK, PORT160_FN6),
1228
1229 /* Port161 */
1230 PINMUX_DATA(D28_MARK, PORT161_FN1),
1231 PINMUX_DATA(SCIFA3_RTS_PORT161_MARK, PORT161_FN2, MSEL5CR_8_1),
1232 PINMUX_DATA(ET_RX_DV_MARK, PORT161_FN3),
1233 PINMUX_DATA(LCD0_D20_PORT161_MARK, PORT161_FN4, MSEL5CR_6_1),
1234 PINMUX_DATA(IRDA_IN_MARK, PORT161_FN5),
1235 PINMUX_DATA(IDE_D12_MARK, PORT161_FN6),
1236
1237 /* Port162 */
1238 PINMUX_DATA(D27_MARK, PORT162_FN1),
1239 PINMUX_DATA(SCIFA3_CTS_PORT162_MARK, PORT162_FN2, MSEL5CR_8_1),
1240 PINMUX_DATA(LCD0_D19_PORT162_MARK, PORT162_FN4, MSEL5CR_6_1),
1241 PINMUX_DATA(IRDA_OUT_MARK, PORT162_FN5),
1242 PINMUX_DATA(IDE_D11_MARK, PORT162_FN6),
1243
1244 /* Port163 */
1245 PINMUX_DATA(D26_MARK, PORT163_FN1),
1246 PINMUX_DATA(MSIOF2_SS2_MARK, PORT163_FN2),
1247 PINMUX_DATA(ET_COL_MARK, PORT163_FN3),
1248 PINMUX_DATA(LCD0_D18_PORT163_MARK, PORT163_FN4, MSEL5CR_6_1),
1249 PINMUX_DATA(IROUT_MARK, PORT163_FN5),
1250 PINMUX_DATA(IDE_D10_MARK, PORT163_FN6),
1251
1252 /* Port164 */
1253 PINMUX_DATA(D25_MARK, PORT164_FN1),
1254 PINMUX_DATA(MSIOF2_TSYNC_MARK, PORT164_FN2),
1255 PINMUX_DATA(ET_PHY_INT_MARK, PORT164_FN3),
1256 PINMUX_DATA(LCD0_RD_MARK, PORT164_FN4),
1257 PINMUX_DATA(IDE_D9_MARK, PORT164_FN6),
1258
1259 /* Port165 */
1260 PINMUX_DATA(D24_MARK, PORT165_FN1),
1261 PINMUX_DATA(MSIOF2_RXD_MARK, PORT165_FN2),
1262 PINMUX_DATA(LCD0_LCLK_PORT165_MARK, PORT165_FN4, MSEL5CR_6_1),
1263 PINMUX_DATA(IDE_D8_MARK, PORT165_FN6),
1264
1265 /* Port166 - Port171 Function1 */
1266 PINMUX_DATA(D21_MARK, PORT166_FN1),
1267 PINMUX_DATA(D20_MARK, PORT167_FN1),
1268 PINMUX_DATA(D19_MARK, PORT168_FN1),
1269 PINMUX_DATA(D18_MARK, PORT169_FN1),
1270 PINMUX_DATA(D17_MARK, PORT170_FN1),
1271 PINMUX_DATA(D16_MARK, PORT171_FN1),
1272
1273 /* Port166 - Port171 Function3 */
1274 PINMUX_DATA(ET_ETXD5_MARK, PORT166_FN3),
1275 PINMUX_DATA(ET_ETXD4_MARK, PORT167_FN3),
1276 PINMUX_DATA(ET_ETXD3_MARK, PORT168_FN3),
1277 PINMUX_DATA(ET_ETXD2_MARK, PORT169_FN3),
1278 PINMUX_DATA(ET_ETXD1_MARK, PORT170_FN3),
1279 PINMUX_DATA(ET_ETXD0_MARK, PORT171_FN3),
1280
1281 /* Port166 - Port171 Function6 */
1282 PINMUX_DATA(IDE_D5_MARK, PORT166_FN6),
1283 PINMUX_DATA(IDE_D4_MARK, PORT167_FN6),
1284 PINMUX_DATA(IDE_D3_MARK, PORT168_FN6),
1285 PINMUX_DATA(IDE_D2_MARK, PORT169_FN6),
1286 PINMUX_DATA(IDE_D1_MARK, PORT170_FN6),
1287 PINMUX_DATA(IDE_D0_MARK, PORT171_FN6),
1288
1289 /* Port167 - Port171 IRQ */
1290 PINMUX_DATA(IRQ31_PORT167_MARK, PORT167_FN0, MSEL1CR_31_0),
1291 PINMUX_DATA(IRQ27_PORT168_MARK, PORT168_FN0, MSEL1CR_27_0),
1292 PINMUX_DATA(IRQ28_PORT169_MARK, PORT169_FN0, MSEL1CR_28_0),
1293 PINMUX_DATA(IRQ29_PORT170_MARK, PORT170_FN0, MSEL1CR_29_0),
1294 PINMUX_DATA(IRQ30_PORT171_MARK, PORT171_FN0, MSEL1CR_30_0),
1295
1296 /* Port172 */
1297 PINMUX_DATA(D23_MARK, PORT172_FN1),
1298 PINMUX_DATA(SCIFB_RTS_PORT172_MARK, PORT172_FN2, MSEL5CR_17_1),
1299 PINMUX_DATA(ET_ETXD7_MARK, PORT172_FN3),
1300 PINMUX_DATA(IDE_D7_MARK, PORT172_FN6),
1301 PINMUX_DATA(IRQ4_PORT172_MARK, PORT172_FN0, MSEL1CR_4_1),
1302
1303 /* Port173 */
1304 PINMUX_DATA(D22_MARK, PORT173_FN1),
1305 PINMUX_DATA(SCIFB_CTS_PORT173_MARK, PORT173_FN2, MSEL5CR_17_1),
1306 PINMUX_DATA(ET_ETXD6_MARK, PORT173_FN3),
1307 PINMUX_DATA(IDE_D6_MARK, PORT173_FN6),
1308 PINMUX_DATA(IRQ6_PORT173_MARK, PORT173_FN0, MSEL1CR_6_1),
1309
1310 /* Port174 */
1311 PINMUX_DATA(A26_MARK, PORT174_FN1),
1312 PINMUX_DATA(MSIOF0_TXD_MARK, PORT174_FN2),
1313 PINMUX_DATA(ET_RX_CLK_MARK, PORT174_FN3),
1314 PINMUX_DATA(SCIFA3_RXD_PORT174_MARK, PORT174_FN4, MSEL5CR_8_0),
1315
1316 /* Port175 */
1317 PINMUX_DATA(A0_MARK, PORT175_FN1),
1318 PINMUX_DATA(BS_MARK, PORT175_FN2),
1319 PINMUX_DATA(ET_WOL_MARK, PORT175_FN3),
1320 PINMUX_DATA(SCIFA3_TXD_PORT175_MARK, PORT175_FN4, MSEL5CR_8_0),
1321
1322 /* Port176 */
1323 PINMUX_DATA(ET_GTX_CLK_MARK, PORT176_FN3),
1324
1325 /* Port177 */
1326 PINMUX_DATA(WAIT_PORT177_MARK, PORT177_FN1, MSEL5CR_2_0),
1327 PINMUX_DATA(ET_LINK_MARK, PORT177_FN3),
1328 PINMUX_DATA(IDE_IOWR_MARK, PORT177_FN6),
1329 PINMUX_DATA(SDHI2_WP_PORT177_MARK, PORT177_FN7, MSEL5CR_19_1),
1330
1331 /* Port178 */
1332 PINMUX_DATA(VIO0_D12_MARK, PORT178_FN1),
1333 PINMUX_DATA(VIO1_D4_MARK, PORT178_FN5),
1334 PINMUX_DATA(IDE_IORD_MARK, PORT178_FN6),
1335
1336 /* Port179 */
1337 PINMUX_DATA(VIO0_D11_MARK, PORT179_FN1),
1338 PINMUX_DATA(VIO1_D3_MARK, PORT179_FN5),
1339 PINMUX_DATA(IDE_IORDY_MARK, PORT179_FN6),
1340
1341 /* Port180 */
1342 PINMUX_DATA(VIO0_D10_MARK, PORT180_FN1),
1343 PINMUX_DATA(TPU0TO3_MARK, PORT180_FN4),
1344 PINMUX_DATA(VIO1_D2_MARK, PORT180_FN5),
1345 PINMUX_DATA(IDE_INT_MARK, PORT180_FN6),
1346 PINMUX_DATA(IRQ24_MARK, PORT180_FN0),
1347
1348 /* Port181 */
1349 PINMUX_DATA(VIO0_D9_MARK, PORT181_FN1),
1350 PINMUX_DATA(VIO1_D1_MARK, PORT181_FN5),
1351 PINMUX_DATA(IDE_RST_MARK, PORT181_FN6),
1352
1353 /* Port182 */
1354 PINMUX_DATA(VIO0_D8_MARK, PORT182_FN1),
1355 PINMUX_DATA(VIO1_D0_MARK, PORT182_FN5),
1356 PINMUX_DATA(IDE_DIRECTION_MARK, PORT182_FN6),
1357
1358 /* Port183 */
1359 PINMUX_DATA(DREQ1_MARK, PORT183_FN1),
1360 PINMUX_DATA(BBIF2_TXD2_PORT183_MARK, PORT183_FN2, MSEL5CR_0_1),
1361 PINMUX_DATA(ET_TX_EN_MARK, PORT183_FN3),
1362
1363 /* Port184 */
1364 PINMUX_DATA(DACK1_MARK, PORT184_FN1),
1365 PINMUX_DATA(BBIF2_TSYNC2_PORT184_MARK, PORT184_FN2, MSEL5CR_0_1),
1366 PINMUX_DATA(ET_TX_CLK_MARK, PORT184_FN3),
1367
1368 /* Port185 - Port192 Function1 */
1369 PINMUX_DATA(SCIFA1_SCK_MARK, PORT185_FN1),
1370 PINMUX_DATA(SCIFB_RTS_PORT186_MARK, PORT186_FN1, MSEL5CR_17_0),
1371 PINMUX_DATA(SCIFB_CTS_PORT187_MARK, PORT187_FN1, MSEL5CR_17_0),
1372 PINMUX_DATA(SCIFA0_SCK_MARK, PORT188_FN1),
1373 PINMUX_DATA(SCIFB_SCK_PORT190_MARK, PORT190_FN1, MSEL5CR_17_0),
1374 PINMUX_DATA(SCIFB_RXD_PORT191_MARK, PORT191_FN1, MSEL5CR_17_0),
1375 PINMUX_DATA(SCIFB_TXD_PORT192_MARK, PORT192_FN1, MSEL5CR_17_0),
1376
1377 /* Port185 - Port192 Function3 */
1378 PINMUX_DATA(ET_ERXD0_MARK, PORT185_FN3),
1379 PINMUX_DATA(ET_ERXD1_MARK, PORT186_FN3),
1380 PINMUX_DATA(ET_ERXD2_MARK, PORT187_FN3),
1381 PINMUX_DATA(ET_ERXD3_MARK, PORT188_FN3),
1382 PINMUX_DATA(ET_ERXD4_MARK, PORT189_FN3),
1383 PINMUX_DATA(ET_ERXD5_MARK, PORT190_FN3),
1384 PINMUX_DATA(ET_ERXD6_MARK, PORT191_FN3),
1385 PINMUX_DATA(ET_ERXD7_MARK, PORT192_FN3),
1386
1387 /* Port185 - Port192 Function6 */
1388 PINMUX_DATA(STP1_IPCLK_MARK, PORT185_FN6),
1389 PINMUX_DATA(STP1_IPD0_PORT186_MARK, PORT186_FN6, MSEL5CR_23_0),
1390 PINMUX_DATA(STP1_IPEN_PORT187_MARK, PORT187_FN6, MSEL5CR_23_0),
1391 PINMUX_DATA(STP1_IPSYNC_MARK, PORT188_FN6),
1392 PINMUX_DATA(STP0_IPCLK_MARK, PORT189_FN6),
1393 PINMUX_DATA(STP0_IPD0_MARK, PORT190_FN6),
1394 PINMUX_DATA(STP0_IPEN_MARK, PORT191_FN6),
1395 PINMUX_DATA(STP0_IPSYNC_MARK, PORT192_FN6),
1396
1397 /* Port193 */
1398 PINMUX_DATA(SCIFA0_CTS_MARK, PORT193_FN1),
1399 PINMUX_DATA(RMII_CRS_DV_MARK, PORT193_FN3),
1400 PINMUX_DATA(STP1_IPEN_PORT193_MARK, PORT193_FN6, MSEL5CR_23_1), /* ? */
1401 PINMUX_DATA(LCD1_D17_MARK, PORT193_FN7),
1402
1403 /* Port194 */
1404 PINMUX_DATA(SCIFA0_RTS_MARK, PORT194_FN1),
1405 PINMUX_DATA(RMII_RX_ER_MARK, PORT194_FN3),
1406 PINMUX_DATA(STP1_IPD0_PORT194_MARK, PORT194_FN6, MSEL5CR_23_1), /* ? */
1407 PINMUX_DATA(LCD1_D16_MARK, PORT194_FN7),
1408
1409 /* Port195 */
1410 PINMUX_DATA(SCIFA1_RXD_MARK, PORT195_FN1),
1411 PINMUX_DATA(RMII_RXD0_MARK, PORT195_FN3),
1412 PINMUX_DATA(STP1_IPD3_MARK, PORT195_FN6),
1413 PINMUX_DATA(LCD1_D15_MARK, PORT195_FN7),
1414
1415 /* Port196 */
1416 PINMUX_DATA(SCIFA1_TXD_MARK, PORT196_FN1),
1417 PINMUX_DATA(RMII_RXD1_MARK, PORT196_FN3),
1418 PINMUX_DATA(STP1_IPD2_MARK, PORT196_FN6),
1419 PINMUX_DATA(LCD1_D14_MARK, PORT196_FN7),
1420
1421 /* Port197 */
1422 PINMUX_DATA(SCIFA0_RXD_MARK, PORT197_FN1),
1423 PINMUX_DATA(VIO1_CLK_MARK, PORT197_FN5),
1424 PINMUX_DATA(STP1_IPD5_MARK, PORT197_FN6),
1425 PINMUX_DATA(LCD1_D19_MARK, PORT197_FN7),
1426
1427 /* Port198 */
1428 PINMUX_DATA(SCIFA0_TXD_MARK, PORT198_FN1),
1429 PINMUX_DATA(VIO1_VD_MARK, PORT198_FN5),
1430 PINMUX_DATA(STP1_IPD4_MARK, PORT198_FN6),
1431 PINMUX_DATA(LCD1_D18_MARK, PORT198_FN7),
1432
1433 /* Port199 */
1434 PINMUX_DATA(MEMC_NWE_MARK, PORT199_FN1),
1435 PINMUX_DATA(SCIFA2_SCK_PORT199_MARK, PORT199_FN2, MSEL5CR_7_1),
1436 PINMUX_DATA(RMII_TX_EN_MARK, PORT199_FN3),
1437 PINMUX_DATA(SIM_D_PORT199_MARK, PORT199_FN4, MSEL5CR_21_1),
1438 PINMUX_DATA(STP1_IPD1_MARK, PORT199_FN6),
1439 PINMUX_DATA(LCD1_D13_MARK, PORT199_FN7),
1440
1441 /* Port200 */
1442 PINMUX_DATA(MEMC_NOE_MARK, PORT200_FN1),
1443 PINMUX_DATA(SCIFA2_RXD_MARK, PORT200_FN2),
1444 PINMUX_DATA(RMII_TXD0_MARK, PORT200_FN3),
1445 PINMUX_DATA(STP0_IPD7_MARK, PORT200_FN6),
1446 PINMUX_DATA(LCD1_D12_MARK, PORT200_FN7),
1447
1448 /* Port201 */
1449 PINMUX_DATA(MEMC_WAIT_MARK, PORT201_FN1, MSEL4CR_6_0),
1450 PINMUX_DATA(MEMC_DREQ1_MARK, PORT201_FN1, MSEL4CR_6_1),
1451
1452 PINMUX_DATA(SCIFA2_TXD_MARK, PORT201_FN2),
1453 PINMUX_DATA(RMII_TXD1_MARK, PORT201_FN3),
1454 PINMUX_DATA(STP0_IPD6_MARK, PORT201_FN6),
1455 PINMUX_DATA(LCD1_D11_MARK, PORT201_FN7),
1456
1457 /* Port202 */
1458 PINMUX_DATA(MEMC_BUSCLK_MARK, PORT202_FN1, MSEL4CR_6_0),
1459 PINMUX_DATA(MEMC_A0_MARK, PORT202_FN1, MSEL4CR_6_1),
1460
1461 PINMUX_DATA(MSIOF1_SS2_PORT202_MARK, PORT202_FN2, MSEL4CR_10_1),
1462 PINMUX_DATA(RMII_MDC_MARK, PORT202_FN3),
1463 PINMUX_DATA(TPU0TO2_PORT202_MARK, PORT202_FN4, MSEL5CR_25_1),
1464 PINMUX_DATA(IDE_CS0_MARK, PORT202_FN6),
1465 PINMUX_DATA(SDHI2_CD_PORT202_MARK, PORT202_FN7, MSEL5CR_19_1),
1466 PINMUX_DATA(IRQ21_MARK, PORT202_FN0),
1467
1468 /* Port203 - Port208 Function1 */
1469 PINMUX_DATA(SDHI2_CLK_MARK, PORT203_FN1),
1470 PINMUX_DATA(SDHI2_CMD_MARK, PORT204_FN1),
1471 PINMUX_DATA(SDHI2_D0_MARK, PORT205_FN1),
1472 PINMUX_DATA(SDHI2_D1_MARK, PORT206_FN1),
1473 PINMUX_DATA(SDHI2_D2_MARK, PORT207_FN1),
1474 PINMUX_DATA(SDHI2_D3_MARK, PORT208_FN1),
1475
1476 /* Port203 - Port208 Function3 */
1477 PINMUX_DATA(ET_TX_ER_MARK, PORT203_FN3),
1478 PINMUX_DATA(ET_RX_ER_MARK, PORT204_FN3),
1479 PINMUX_DATA(ET_CRS_MARK, PORT205_FN3),
1480 PINMUX_DATA(ET_MDC_MARK, PORT206_FN3),
1481 PINMUX_DATA(ET_MDIO_MARK, PORT207_FN3),
1482 PINMUX_DATA(RMII_MDIO_MARK, PORT208_FN3),
1483
1484 /* Port203 - Port208 Function6 */
1485 PINMUX_DATA(IDE_A2_MARK, PORT203_FN6),
1486 PINMUX_DATA(IDE_A1_MARK, PORT204_FN6),
1487 PINMUX_DATA(IDE_A0_MARK, PORT205_FN6),
1488 PINMUX_DATA(IDE_IODACK_MARK, PORT206_FN6),
1489 PINMUX_DATA(IDE_IODREQ_MARK, PORT207_FN6),
1490 PINMUX_DATA(IDE_CS1_MARK, PORT208_FN6),
1491
1492 /* Port203 - Port208 Function7 */
1493 PINMUX_DATA(SCIFA4_TXD_PORT203_MARK, PORT203_FN7, MSEL5CR_12_0, MSEL5CR_11_1),
1494 PINMUX_DATA(SCIFA4_RXD_PORT204_MARK, PORT204_FN7, MSEL5CR_12_0, MSEL5CR_11_1),
1495 PINMUX_DATA(SCIFA4_SCK_PORT205_MARK, PORT205_FN7, MSEL5CR_10_1),
1496 PINMUX_DATA(SCIFA5_SCK_PORT206_MARK, PORT206_FN7, MSEL5CR_13_1),
1497 PINMUX_DATA(SCIFA5_RXD_PORT207_MARK, PORT207_FN7, MSEL5CR_15_0, MSEL5CR_14_1),
1498 PINMUX_DATA(SCIFA5_TXD_PORT208_MARK, PORT208_FN7, MSEL5CR_15_0, MSEL5CR_14_1),
1499
1500 /* Port209 */
1501 PINMUX_DATA(VBUS_MARK, PORT209_FN1),
1502 PINMUX_DATA(IRQ7_PORT209_MARK, PORT209_FN0, MSEL1CR_7_0),
1503
1504 /* Port210 */
1505 PINMUX_DATA(IRQ9_PORT210_MARK, PORT210_FN0, MSEL1CR_9_1),
1506 PINMUX_DATA(HDMI_HPD_MARK, PORT210_FN1),
1507
1508 /* Port211 */
1509 PINMUX_DATA(IRQ16_PORT211_MARK, PORT211_FN0, MSEL1CR_16_1),
1510 PINMUX_DATA(HDMI_CEC_MARK, PORT211_FN1),
1511
Laurent Pinchartd5b15212012-12-15 23:51:21 +01001512 /* SDENC */
1513 PINMUX_DATA(SDENC_CPG_MARK, MSEL4CR_19_0),
1514 PINMUX_DATA(SDENC_DV_CLKI_MARK, MSEL4CR_19_1),
1515
1516 /* SYSC */
1517 PINMUX_DATA(RESETP_PULLUP_MARK, MSEL4CR_4_0),
1518 PINMUX_DATA(RESETP_PLAIN_MARK, MSEL4CR_4_1),
1519
1520 /* DEBUG */
1521 PINMUX_DATA(EDEBGREQ_PULLDOWN_MARK, MSEL4CR_1_0),
1522 PINMUX_DATA(EDEBGREQ_PULLUP_MARK, MSEL4CR_1_1),
1523
1524 PINMUX_DATA(TRACEAUD_FROM_VIO_MARK, MSEL5CR_30_0, MSEL5CR_29_0),
1525 PINMUX_DATA(TRACEAUD_FROM_LCDC0_MARK, MSEL5CR_30_0, MSEL5CR_29_1),
1526 PINMUX_DATA(TRACEAUD_FROM_MEMC_MARK, MSEL5CR_30_1, MSEL5CR_29_0),
1527};
1528
Laurent Pinchart80da8e02013-04-23 14:24:19 +02001529#define __I (SH_PFC_PIN_CFG_INPUT)
1530#define __O (SH_PFC_PIN_CFG_OUTPUT)
1531#define __IO (SH_PFC_PIN_CFG_INPUT | SH_PFC_PIN_CFG_OUTPUT)
1532#define __PD (SH_PFC_PIN_CFG_PULL_DOWN)
1533#define __PU (SH_PFC_PIN_CFG_PULL_UP)
1534#define __PUD (SH_PFC_PIN_CFG_PULL_DOWN | SH_PFC_PIN_CFG_PULL_UP)
1535
Laurent Pinchartdf020272013-07-15 17:42:48 +02001536#define R8A7740_PIN_I_PD(pin) SH_PFC_PIN_CFG(pin, __I | __PD)
1537#define R8A7740_PIN_I_PU(pin) SH_PFC_PIN_CFG(pin, __I | __PU)
1538#define R8A7740_PIN_I_PU_PD(pin) SH_PFC_PIN_CFG(pin, __I | __PUD)
1539#define R8A7740_PIN_IO(pin) SH_PFC_PIN_CFG(pin, __IO)
1540#define R8A7740_PIN_IO_PD(pin) SH_PFC_PIN_CFG(pin, __IO | __PD)
1541#define R8A7740_PIN_IO_PU(pin) SH_PFC_PIN_CFG(pin, __IO | __PU)
1542#define R8A7740_PIN_IO_PU_PD(pin) SH_PFC_PIN_CFG(pin, __IO | __PUD)
1543#define R8A7740_PIN_O(pin) SH_PFC_PIN_CFG(pin, __O)
1544#define R8A7740_PIN_O_PU_PD(pin) SH_PFC_PIN_CFG(pin, __O | __PUD)
Laurent Pinchart80da8e02013-04-23 14:24:19 +02001545
Laurent Pincharta3db40a62013-01-02 14:53:37 +01001546static struct sh_pfc_pin pinmux_pins[] = {
Laurent Pinchart80da8e02013-04-23 14:24:19 +02001547 /* Table 56-1 (I/O and Pull U/D) */
1548 R8A7740_PIN_IO_PD(0), R8A7740_PIN_IO_PD(1),
1549 R8A7740_PIN_IO_PD(2), R8A7740_PIN_IO_PD(3),
1550 R8A7740_PIN_IO_PD(4), R8A7740_PIN_IO_PD(5),
1551 R8A7740_PIN_IO_PD(6), R8A7740_PIN_IO(7),
1552 R8A7740_PIN_IO(8), R8A7740_PIN_IO(9),
1553 R8A7740_PIN_IO_PD(10), R8A7740_PIN_IO_PD(11),
1554 R8A7740_PIN_IO_PD(12), R8A7740_PIN_IO_PU_PD(13),
1555 R8A7740_PIN_IO_PD(14), R8A7740_PIN_IO_PD(15),
1556 R8A7740_PIN_IO_PD(16), R8A7740_PIN_IO_PD(17),
1557 R8A7740_PIN_IO(18), R8A7740_PIN_IO_PU(19),
1558 R8A7740_PIN_IO_PU_PD(20), R8A7740_PIN_IO_PD(21),
1559 R8A7740_PIN_IO_PU_PD(22), R8A7740_PIN_IO(23),
1560 R8A7740_PIN_IO_PU(24), R8A7740_PIN_IO_PU(25),
1561 R8A7740_PIN_IO_PU(26), R8A7740_PIN_IO_PU(27),
1562 R8A7740_PIN_IO_PU(28), R8A7740_PIN_IO_PU(29),
1563 R8A7740_PIN_IO_PU(30), R8A7740_PIN_IO_PD(31),
1564 R8A7740_PIN_IO_PD(32), R8A7740_PIN_IO_PD(33),
1565 R8A7740_PIN_IO_PD(34), R8A7740_PIN_IO_PU(35),
1566 R8A7740_PIN_IO_PU(36), R8A7740_PIN_IO_PD(37),
1567 R8A7740_PIN_IO_PU(38), R8A7740_PIN_IO_PD(39),
1568 R8A7740_PIN_IO_PU_PD(40), R8A7740_PIN_IO_PD(41),
1569 R8A7740_PIN_IO_PD(42), R8A7740_PIN_IO_PU_PD(43),
1570 R8A7740_PIN_IO_PU_PD(44), R8A7740_PIN_IO_PU_PD(45),
1571 R8A7740_PIN_IO_PU_PD(46), R8A7740_PIN_IO_PU_PD(47),
1572 R8A7740_PIN_IO_PU_PD(48), R8A7740_PIN_IO_PU_PD(49),
1573 R8A7740_PIN_IO_PU_PD(50), R8A7740_PIN_IO_PD(51),
1574 R8A7740_PIN_IO_PD(52), R8A7740_PIN_IO_PD(53),
1575 R8A7740_PIN_IO_PD(54), R8A7740_PIN_IO_PU_PD(55),
1576 R8A7740_PIN_IO_PU_PD(56), R8A7740_PIN_IO_PU_PD(57),
1577 R8A7740_PIN_IO_PU_PD(58), R8A7740_PIN_IO_PU_PD(59),
1578 R8A7740_PIN_IO_PU_PD(60), R8A7740_PIN_IO_PD(61),
1579 R8A7740_PIN_IO_PD(62), R8A7740_PIN_IO_PD(63),
1580 R8A7740_PIN_IO_PD(64), R8A7740_PIN_IO_PD(65),
1581 R8A7740_PIN_IO_PU_PD(66), R8A7740_PIN_IO_PU_PD(67),
1582 R8A7740_PIN_IO_PU_PD(68), R8A7740_PIN_IO_PU_PD(69),
1583 R8A7740_PIN_IO_PU_PD(70), R8A7740_PIN_IO_PU_PD(71),
1584 R8A7740_PIN_IO_PU_PD(72), R8A7740_PIN_IO_PU_PD(73),
1585 R8A7740_PIN_IO_PU_PD(74), R8A7740_PIN_IO_PU_PD(75),
1586 R8A7740_PIN_IO_PU_PD(76), R8A7740_PIN_IO_PU_PD(77),
1587 R8A7740_PIN_IO_PU_PD(78), R8A7740_PIN_IO_PU_PD(79),
1588 R8A7740_PIN_IO_PU_PD(80), R8A7740_PIN_IO_PU_PD(81),
1589 R8A7740_PIN_IO(82), R8A7740_PIN_IO_PU_PD(83),
1590 R8A7740_PIN_IO(84), R8A7740_PIN_IO_PD(85),
1591 R8A7740_PIN_IO_PD(86), R8A7740_PIN_IO_PD(87),
1592 R8A7740_PIN_IO_PD(88), R8A7740_PIN_IO_PD(89),
1593 R8A7740_PIN_IO_PD(90), R8A7740_PIN_IO_PU_PD(91),
1594 R8A7740_PIN_IO_PU_PD(92), R8A7740_PIN_IO_PU_PD(93),
1595 R8A7740_PIN_IO_PU_PD(94), R8A7740_PIN_IO_PU_PD(95),
1596 R8A7740_PIN_IO_PU_PD(96), R8A7740_PIN_IO_PU_PD(97),
1597 R8A7740_PIN_IO_PU_PD(98), R8A7740_PIN_IO_PU_PD(99),
1598 R8A7740_PIN_IO_PU_PD(100), R8A7740_PIN_IO(101),
1599 R8A7740_PIN_IO_PU(102), R8A7740_PIN_IO_PU_PD(103),
1600 R8A7740_PIN_IO_PU(104), R8A7740_PIN_IO_PU(105),
1601 R8A7740_PIN_IO_PU_PD(106), R8A7740_PIN_IO(107),
1602 R8A7740_PIN_IO(108), R8A7740_PIN_IO(109),
1603 R8A7740_PIN_IO(110), R8A7740_PIN_IO(111),
1604 R8A7740_PIN_IO(112), R8A7740_PIN_IO(113),
1605 R8A7740_PIN_IO_PU_PD(114), R8A7740_PIN_IO(115),
1606 R8A7740_PIN_IO_PD(116), R8A7740_PIN_IO_PD(117),
1607 R8A7740_PIN_IO_PD(118), R8A7740_PIN_IO_PD(119),
1608 R8A7740_PIN_IO_PD(120), R8A7740_PIN_IO_PD(121),
1609 R8A7740_PIN_IO_PD(122), R8A7740_PIN_IO_PD(123),
1610 R8A7740_PIN_IO_PD(124), R8A7740_PIN_IO(125),
1611 R8A7740_PIN_IO(126), R8A7740_PIN_IO(127),
1612 R8A7740_PIN_IO(128), R8A7740_PIN_IO(129),
1613 R8A7740_PIN_IO(130), R8A7740_PIN_IO(131),
1614 R8A7740_PIN_IO(132), R8A7740_PIN_IO(133),
1615 R8A7740_PIN_IO(134), R8A7740_PIN_IO(135),
1616 R8A7740_PIN_IO(136), R8A7740_PIN_IO(137),
1617 R8A7740_PIN_IO(138), R8A7740_PIN_IO(139),
1618 R8A7740_PIN_IO(140), R8A7740_PIN_IO(141),
1619 R8A7740_PIN_IO_PU(142), R8A7740_PIN_IO_PU(143),
1620 R8A7740_PIN_IO_PU(144), R8A7740_PIN_IO_PU(145),
1621 R8A7740_PIN_IO_PU(146), R8A7740_PIN_IO_PU(147),
1622 R8A7740_PIN_IO_PU(148), R8A7740_PIN_IO_PU(149),
1623 R8A7740_PIN_IO_PU(150), R8A7740_PIN_IO_PU(151),
1624 R8A7740_PIN_IO_PU(152), R8A7740_PIN_IO_PU(153),
1625 R8A7740_PIN_IO_PU(154), R8A7740_PIN_IO_PU(155),
1626 R8A7740_PIN_IO_PU(156), R8A7740_PIN_IO_PU(157),
1627 R8A7740_PIN_IO_PD(158), R8A7740_PIN_IO_PD(159),
1628 R8A7740_PIN_IO_PU_PD(160), R8A7740_PIN_IO_PD(161),
1629 R8A7740_PIN_IO_PD(162), R8A7740_PIN_IO_PD(163),
1630 R8A7740_PIN_IO_PD(164), R8A7740_PIN_IO_PD(165),
1631 R8A7740_PIN_IO_PU(166), R8A7740_PIN_IO_PU(167),
1632 R8A7740_PIN_IO_PU(168), R8A7740_PIN_IO_PU(169),
1633 R8A7740_PIN_IO_PU(170), R8A7740_PIN_IO_PU(171),
1634 R8A7740_PIN_IO_PD(172), R8A7740_PIN_IO_PD(173),
1635 R8A7740_PIN_IO_PD(174), R8A7740_PIN_IO_PD(175),
1636 R8A7740_PIN_IO_PU(176), R8A7740_PIN_IO_PU_PD(177),
1637 R8A7740_PIN_IO_PU(178), R8A7740_PIN_IO_PD(179),
1638 R8A7740_PIN_IO_PD(180), R8A7740_PIN_IO_PU(181),
1639 R8A7740_PIN_IO_PU(182), R8A7740_PIN_IO(183),
1640 R8A7740_PIN_IO_PD(184), R8A7740_PIN_IO_PD(185),
1641 R8A7740_PIN_IO_PD(186), R8A7740_PIN_IO_PD(187),
1642 R8A7740_PIN_IO_PD(188), R8A7740_PIN_IO_PD(189),
1643 R8A7740_PIN_IO_PD(190), R8A7740_PIN_IO_PD(191),
1644 R8A7740_PIN_IO_PD(192), R8A7740_PIN_IO_PU_PD(193),
1645 R8A7740_PIN_IO_PU_PD(194), R8A7740_PIN_IO_PD(195),
1646 R8A7740_PIN_IO_PU_PD(196), R8A7740_PIN_IO_PD(197),
1647 R8A7740_PIN_IO_PU_PD(198), R8A7740_PIN_IO_PU_PD(199),
1648 R8A7740_PIN_IO_PU_PD(200), R8A7740_PIN_IO_PU(201),
1649 R8A7740_PIN_IO_PU_PD(202), R8A7740_PIN_IO(203),
1650 R8A7740_PIN_IO_PU_PD(204), R8A7740_PIN_IO_PU_PD(205),
1651 R8A7740_PIN_IO_PU_PD(206), R8A7740_PIN_IO_PU_PD(207),
1652 R8A7740_PIN_IO_PU_PD(208), R8A7740_PIN_IO_PD(209),
1653 R8A7740_PIN_IO_PD(210), R8A7740_PIN_IO_PD(211),
Laurent Pincharta373ed02012-11-29 13:24:07 +01001654};
Laurent Pinchartd5b15212012-12-15 23:51:21 +01001655
Laurent Pinchartb7099c42013-04-18 01:04:30 +02001656/* - BSC -------------------------------------------------------------------- */
1657static const unsigned int bsc_data8_pins[] = {
1658 /* D[0:7] */
1659 157, 156, 155, 154, 153, 152, 151, 150,
1660};
1661static const unsigned int bsc_data8_mux[] = {
1662 D0_NAF0_MARK, D1_NAF1_MARK, D2_NAF2_MARK, D3_NAF3_MARK,
1663 D4_NAF4_MARK, D5_NAF5_MARK, D6_NAF6_MARK, D7_NAF7_MARK,
1664};
1665static const unsigned int bsc_data16_pins[] = {
1666 /* D[0:15] */
1667 157, 156, 155, 154, 153, 152, 151, 150,
1668 149, 148, 147, 146, 145, 144, 143, 142,
1669};
1670static const unsigned int bsc_data16_mux[] = {
1671 D0_NAF0_MARK, D1_NAF1_MARK, D2_NAF2_MARK, D3_NAF3_MARK,
1672 D4_NAF4_MARK, D5_NAF5_MARK, D6_NAF6_MARK, D7_NAF7_MARK,
1673 D8_NAF8_MARK, D9_NAF9_MARK, D10_NAF10_MARK, D11_NAF11_MARK,
1674 D12_NAF12_MARK, D13_NAF13_MARK, D14_NAF14_MARK, D15_NAF15_MARK,
1675};
1676static const unsigned int bsc_data32_pins[] = {
1677 /* D[0:31] */
1678 157, 156, 155, 154, 153, 152, 151, 150,
1679 149, 148, 147, 146, 145, 144, 143, 142,
1680 171, 170, 169, 168, 167, 166, 173, 172,
1681 165, 164, 163, 162, 161, 160, 159, 158,
1682};
1683static const unsigned int bsc_data32_mux[] = {
1684 D0_NAF0_MARK, D1_NAF1_MARK, D2_NAF2_MARK, D3_NAF3_MARK,
1685 D4_NAF4_MARK, D5_NAF5_MARK, D6_NAF6_MARK, D7_NAF7_MARK,
1686 D8_NAF8_MARK, D9_NAF9_MARK, D10_NAF10_MARK, D11_NAF11_MARK,
1687 D12_NAF12_MARK, D13_NAF13_MARK, D14_NAF14_MARK, D15_NAF15_MARK,
1688 D16_MARK, D17_MARK, D18_MARK, D19_MARK,
1689 D20_MARK, D21_MARK, D22_MARK, D23_MARK,
1690 D24_MARK, D25_MARK, D26_MARK, D27_MARK,
1691 D28_MARK, D29_MARK, D30_MARK, D31_MARK,
1692};
1693static const unsigned int bsc_cs0_pins[] = {
1694 /* CS */
1695 109,
1696};
1697static const unsigned int bsc_cs0_mux[] = {
1698 CS0_MARK,
1699};
1700static const unsigned int bsc_cs2_pins[] = {
1701 /* CS */
1702 110,
1703};
1704static const unsigned int bsc_cs2_mux[] = {
1705 CS2_MARK,
1706};
1707static const unsigned int bsc_cs4_pins[] = {
1708 /* CS */
1709 111,
1710};
1711static const unsigned int bsc_cs4_mux[] = {
1712 CS4_MARK,
1713};
1714static const unsigned int bsc_cs5a_0_pins[] = {
1715 /* CS */
1716 105,
1717};
1718static const unsigned int bsc_cs5a_0_mux[] = {
1719 CS5A_PORT105_MARK,
1720};
1721static const unsigned int bsc_cs5a_1_pins[] = {
1722 /* CS */
1723 19,
1724};
1725static const unsigned int bsc_cs5a_1_mux[] = {
1726 CS5A_PORT19_MARK,
1727};
1728static const unsigned int bsc_cs5b_pins[] = {
1729 /* CS */
1730 103,
1731};
1732static const unsigned int bsc_cs5b_mux[] = {
1733 CS5B_MARK,
1734};
1735static const unsigned int bsc_cs6a_pins[] = {
1736 /* CS */
1737 104,
1738};
1739static const unsigned int bsc_cs6a_mux[] = {
1740 CS6A_MARK,
1741};
1742static const unsigned int bsc_rd_we8_pins[] = {
1743 /* RD, WE[0] */
1744 115, 113,
1745};
1746static const unsigned int bsc_rd_we8_mux[] = {
1747 RD_FSC_MARK, WE0_FWE_MARK,
1748};
1749static const unsigned int bsc_rd_we16_pins[] = {
1750 /* RD, WE[0:1] */
1751 115, 113, 112,
1752};
1753static const unsigned int bsc_rd_we16_mux[] = {
1754 RD_FSC_MARK, WE0_FWE_MARK, WE1_MARK,
1755};
1756static const unsigned int bsc_rd_we32_pins[] = {
1757 /* RD, WE[0:3] */
1758 115, 113, 112, 108, 107,
1759};
1760static const unsigned int bsc_rd_we32_mux[] = {
1761 RD_FSC_MARK, WE0_FWE_MARK, WE1_MARK, WE2_ICIORD_MARK, WE3_ICIOWR_MARK,
1762};
1763static const unsigned int bsc_bs_pins[] = {
1764 /* BS */
1765 175,
1766};
1767static const unsigned int bsc_bs_mux[] = {
1768 BS_MARK,
1769};
1770static const unsigned int bsc_rdwr_pins[] = {
1771 /* RDWR */
1772 114,
1773};
1774static const unsigned int bsc_rdwr_mux[] = {
1775 RDWR_MARK,
1776};
Laurent Pinchart0ec939b2013-04-18 01:04:30 +02001777/* - CEU0 ------------------------------------------------------------------- */
1778static const unsigned int ceu0_data_0_7_pins[] = {
1779 /* D[0:7] */
1780 34, 33, 32, 31, 30, 29, 28, 27,
1781};
1782static const unsigned int ceu0_data_0_7_mux[] = {
1783 VIO0_D0_MARK, VIO0_D1_MARK, VIO0_D2_MARK, VIO0_D3_MARK,
1784 VIO0_D4_MARK, VIO0_D5_MARK, VIO0_D6_MARK, VIO0_D7_MARK,
1785};
1786static const unsigned int ceu0_data_8_15_0_pins[] = {
1787 /* D[8:15] */
1788 182, 181, 180, 179, 178, 26, 25, 24,
1789};
1790static const unsigned int ceu0_data_8_15_0_mux[] = {
1791 VIO0_D8_MARK, VIO0_D9_MARK, VIO0_D10_MARK, VIO0_D11_MARK,
1792 VIO0_D12_MARK, VIO0_D13_PORT26_MARK, VIO0_D14_PORT25_MARK,
1793 VIO0_D15_PORT24_MARK,
1794};
1795static const unsigned int ceu0_data_8_15_1_pins[] = {
1796 /* D[8:15] */
1797 182, 181, 180, 179, 178, 22, 95, 96,
1798};
1799static const unsigned int ceu0_data_8_15_1_mux[] = {
1800 VIO0_D8_MARK, VIO0_D9_MARK, VIO0_D10_MARK, VIO0_D11_MARK,
1801 VIO0_D12_MARK, VIO0_D13_PORT22_MARK, VIO0_D14_PORT95_MARK,
1802 VIO0_D15_PORT96_MARK,
1803};
1804static const unsigned int ceu0_clk_0_pins[] = {
1805 /* CKO */
1806 36,
1807};
1808static const unsigned int ceu0_clk_0_mux[] = {
1809 VIO_CKO_MARK,
1810};
1811static const unsigned int ceu0_clk_1_pins[] = {
1812 /* CKO */
1813 14,
1814};
1815static const unsigned int ceu0_clk_1_mux[] = {
1816 VIO_CKO1_MARK,
1817};
1818static const unsigned int ceu0_clk_2_pins[] = {
1819 /* CKO */
1820 15,
1821};
1822static const unsigned int ceu0_clk_2_mux[] = {
1823 VIO_CKO2_MARK,
1824};
1825static const unsigned int ceu0_sync_pins[] = {
1826 /* CLK, VD, HD */
1827 35, 39, 37,
1828};
1829static const unsigned int ceu0_sync_mux[] = {
1830 VIO0_CLK_MARK, VIO0_VD_MARK, VIO0_HD_MARK,
1831};
1832static const unsigned int ceu0_field_pins[] = {
1833 /* FIELD */
1834 38,
1835};
1836static const unsigned int ceu0_field_mux[] = {
1837 VIO0_FIELD_MARK,
1838};
1839/* - CEU1 ------------------------------------------------------------------- */
1840static const unsigned int ceu1_data_pins[] = {
1841 /* D[0:7] */
1842 182, 181, 180, 179, 178, 26, 25, 24,
1843};
1844static const unsigned int ceu1_data_mux[] = {
1845 VIO1_D0_MARK, VIO1_D1_MARK, VIO1_D2_MARK, VIO1_D3_MARK,
1846 VIO1_D4_MARK, VIO1_D5_MARK, VIO1_D6_MARK, VIO1_D7_MARK,
1847};
1848static const unsigned int ceu1_clk_pins[] = {
1849 /* CKO */
1850 23,
1851};
1852static const unsigned int ceu1_clk_mux[] = {
1853 VIO_CKO_1_MARK,
1854};
1855static const unsigned int ceu1_sync_pins[] = {
1856 /* CLK, VD, HD */
1857 197, 198, 160,
1858};
1859static const unsigned int ceu1_sync_mux[] = {
1860 VIO1_CLK_MARK, VIO1_VD_MARK, VIO1_HD_MARK,
1861};
1862static const unsigned int ceu1_field_pins[] = {
1863 /* FIELD */
1864 21,
1865};
1866static const unsigned int ceu1_field_mux[] = {
1867 VIO1_FIELD_MARK,
1868};
Laurent Pinchart909dd952013-04-18 01:04:30 +02001869/* - FSIA ------------------------------------------------------------------- */
1870static const unsigned int fsia_mclk_in_pins[] = {
1871 /* CK */
1872 11,
1873};
1874static const unsigned int fsia_mclk_in_mux[] = {
1875 FSIACK_MARK,
1876};
1877static const unsigned int fsia_mclk_out_pins[] = {
1878 /* OMC */
1879 10,
1880};
1881static const unsigned int fsia_mclk_out_mux[] = {
1882 FSIAOMC_MARK,
1883};
1884static const unsigned int fsia_sclk_in_pins[] = {
1885 /* ILR, IBT */
1886 12, 13,
1887};
1888static const unsigned int fsia_sclk_in_mux[] = {
1889 FSIAILR_MARK, FSIAIBT_MARK,
1890};
1891static const unsigned int fsia_sclk_out_pins[] = {
1892 /* OLR, OBT */
1893 7, 8,
1894};
1895static const unsigned int fsia_sclk_out_mux[] = {
1896 FSIAOLR_MARK, FSIAOBT_MARK,
1897};
1898static const unsigned int fsia_data_in_0_pins[] = {
1899 /* ISLD */
1900 0,
1901};
1902static const unsigned int fsia_data_in_0_mux[] = {
1903 FSIAISLD_PORT0_MARK,
1904};
1905static const unsigned int fsia_data_in_1_pins[] = {
1906 /* ISLD */
1907 5,
1908};
1909static const unsigned int fsia_data_in_1_mux[] = {
1910 FSIAISLD_PORT5_MARK,
1911};
1912static const unsigned int fsia_data_out_0_pins[] = {
1913 /* OSLD */
1914 9,
1915};
1916static const unsigned int fsia_data_out_0_mux[] = {
1917 FSIAOSLD_MARK,
1918};
1919static const unsigned int fsia_data_out_1_pins[] = {
1920 /* OSLD */
1921 0,
1922};
1923static const unsigned int fsia_data_out_1_mux[] = {
1924 FSIAOSLD1_MARK,
1925};
1926static const unsigned int fsia_data_out_2_pins[] = {
1927 /* OSLD */
1928 1,
1929};
1930static const unsigned int fsia_data_out_2_mux[] = {
1931 FSIAOSLD2_MARK,
1932};
1933static const unsigned int fsia_spdif_0_pins[] = {
1934 /* SPDIF */
1935 9,
1936};
1937static const unsigned int fsia_spdif_0_mux[] = {
1938 FSIASPDIF_PORT9_MARK,
1939};
1940static const unsigned int fsia_spdif_1_pins[] = {
1941 /* SPDIF */
1942 18,
1943};
1944static const unsigned int fsia_spdif_1_mux[] = {
1945 FSIASPDIF_PORT18_MARK,
1946};
1947/* - FSIB ------------------------------------------------------------------- */
1948static const unsigned int fsib_mclk_in_pins[] = {
1949 /* CK */
1950 11,
1951};
1952static const unsigned int fsib_mclk_in_mux[] = {
1953 FSIBCK_MARK,
1954};
Laurent Pinchartbae11d32013-04-18 01:04:30 +02001955/* - GETHER ----------------------------------------------------------------- */
1956static const unsigned int gether_rmii_pins[] = {
1957 /* RXD[0:1], RX_ER, CRS_DV, TXD[0:1], TX_EN, REF_CLK, MDC, MDIO */
1958 195, 196, 194, 193, 200, 201, 199, 159, 202, 208,
1959};
1960static const unsigned int gether_rmii_mux[] = {
1961 RMII_RXD0_MARK, RMII_RXD1_MARK, RMII_RX_ER_MARK, RMII_CRS_DV_MARK,
1962 RMII_TXD0_MARK, RMII_TXD1_MARK, RMII_TX_EN_MARK, RMII_REF50CK_MARK,
1963 RMII_MDC_MARK, RMII_MDIO_MARK,
1964};
1965static const unsigned int gether_mii_pins[] = {
1966 /* RXD[0:3], RX_CLK, RX_DV, RX_ER
1967 * TXD[0:3], TX_CLK, TX_EN, TX_ER
1968 * CRS, COL, MDC, MDIO,
1969 */
1970 185, 186, 187, 188, 174, 161, 204,
1971 171, 170, 169, 168, 184, 183, 203,
1972 205, 163, 206, 207,
1973};
1974static const unsigned int gether_mii_mux[] = {
1975 ET_ERXD0_MARK, ET_ERXD1_MARK, ET_ERXD2_MARK, ET_ERXD3_MARK,
1976 ET_RX_CLK_MARK, ET_RX_DV_MARK, ET_RX_ER_MARK,
1977 ET_ETXD0_MARK, ET_ETXD1_MARK, ET_ETXD2_MARK, ET_ETXD3_MARK,
1978 ET_TX_CLK_MARK, ET_TX_EN_MARK, ET_TX_ER_MARK,
1979 ET_CRS_MARK, ET_COL_MARK, ET_MDC_MARK, ET_MDIO_MARK,
1980};
1981static const unsigned int gether_gmii_pins[] = {
1982 /* RXD[0:7], RX_CLK, RX_DV, RX_ER
1983 * TXD[0:7], GTX_CLK, TX_CLK, TX_EN, TX_ER
1984 * CRS, COL, MDC, MDIO, REF125CK_MARK,
1985 */
1986 185, 186, 187, 188, 189, 190, 191, 192, 174, 161, 204,
1987 171, 170, 169, 168, 167, 166, 173, 172, 176, 184, 183, 203,
1988 205, 163, 206, 207,
1989};
1990static const unsigned int gether_gmii_mux[] = {
1991 ET_ERXD0_MARK, ET_ERXD1_MARK, ET_ERXD2_MARK, ET_ERXD3_MARK,
1992 ET_ERXD4_MARK, ET_ERXD5_MARK, ET_ERXD6_MARK, ET_ERXD7_MARK,
1993 ET_RX_CLK_MARK, ET_RX_DV_MARK, ET_RX_ER_MARK,
1994 ET_ETXD0_MARK, ET_ETXD1_MARK, ET_ETXD2_MARK, ET_ETXD3_MARK,
1995 ET_ETXD4_MARK, ET_ETXD5_MARK, ET_ETXD6_MARK, ET_ETXD7_MARK,
1996 ET_GTX_CLK_MARK, ET_TX_CLK_MARK, ET_TX_EN_MARK, ET_TX_ER_MARK,
1997 ET_CRS_MARK, ET_COL_MARK, ET_MDC_MARK, ET_MDIO_MARK,
1998 RMII_REF125CK_MARK,
1999};
2000static const unsigned int gether_int_pins[] = {
2001 /* PHY_INT */
2002 164,
2003};
2004static const unsigned int gether_int_mux[] = {
2005 ET_PHY_INT_MARK,
2006};
2007static const unsigned int gether_link_pins[] = {
2008 /* LINK */
2009 177,
2010};
2011static const unsigned int gether_link_mux[] = {
2012 ET_LINK_MARK,
2013};
2014static const unsigned int gether_wol_pins[] = {
2015 /* WOL */
2016 175,
2017};
2018static const unsigned int gether_wol_mux[] = {
2019 ET_WOL_MARK,
2020};
Laurent Pincharta37d6062013-04-18 01:04:30 +02002021/* - HDMI ------------------------------------------------------------------- */
2022static const unsigned int hdmi_pins[] = {
2023 /* HPD, CEC */
2024 210, 211,
2025};
2026static const unsigned int hdmi_mux[] = {
2027 HDMI_HPD_MARK, HDMI_CEC_MARK,
2028};
Bastian Hecht09bbc1f2013-04-09 10:48:50 +00002029/* - INTC ------------------------------------------------------------------- */
2030IRQC_PINS_MUX(0, 0, 2);
2031IRQC_PINS_MUX(0, 1, 13);
2032IRQC_PIN_MUX(1, 20);
2033IRQC_PINS_MUX(2, 0, 11);
2034IRQC_PINS_MUX(2, 1, 12);
2035IRQC_PINS_MUX(3, 0, 10);
2036IRQC_PINS_MUX(3, 1, 14);
2037IRQC_PINS_MUX(4, 0, 15);
2038IRQC_PINS_MUX(4, 1, 172);
2039IRQC_PINS_MUX(5, 0, 0);
2040IRQC_PINS_MUX(5, 1, 1);
2041IRQC_PINS_MUX(6, 0, 121);
2042IRQC_PINS_MUX(6, 1, 173);
2043IRQC_PINS_MUX(7, 0, 120);
2044IRQC_PINS_MUX(7, 1, 209);
2045IRQC_PIN_MUX(8, 119);
2046IRQC_PINS_MUX(9, 0, 118);
2047IRQC_PINS_MUX(9, 1, 210);
2048IRQC_PIN_MUX(10, 19);
2049IRQC_PIN_MUX(11, 104);
2050IRQC_PINS_MUX(12, 0, 42);
2051IRQC_PINS_MUX(12, 1, 97);
2052IRQC_PINS_MUX(13, 0, 64);
2053IRQC_PINS_MUX(13, 1, 98);
2054IRQC_PINS_MUX(14, 0, 63);
2055IRQC_PINS_MUX(14, 1, 99);
2056IRQC_PINS_MUX(15, 0, 62);
2057IRQC_PINS_MUX(15, 1, 100);
2058IRQC_PINS_MUX(16, 0, 68);
2059IRQC_PINS_MUX(16, 1, 211);
2060IRQC_PIN_MUX(17, 69);
2061IRQC_PIN_MUX(18, 70);
2062IRQC_PIN_MUX(19, 71);
2063IRQC_PIN_MUX(20, 67);
2064IRQC_PIN_MUX(21, 202);
2065IRQC_PIN_MUX(22, 95);
2066IRQC_PIN_MUX(23, 96);
2067IRQC_PIN_MUX(24, 180);
2068IRQC_PIN_MUX(25, 38);
2069IRQC_PINS_MUX(26, 0, 58);
2070IRQC_PINS_MUX(26, 1, 81);
2071IRQC_PINS_MUX(27, 0, 57);
2072IRQC_PINS_MUX(27, 1, 168);
2073IRQC_PINS_MUX(28, 0, 56);
2074IRQC_PINS_MUX(28, 1, 169);
2075IRQC_PINS_MUX(29, 0, 50);
2076IRQC_PINS_MUX(29, 1, 170);
2077IRQC_PINS_MUX(30, 0, 49);
2078IRQC_PINS_MUX(30, 1, 171);
2079IRQC_PINS_MUX(31, 0, 41);
2080IRQC_PINS_MUX(31, 1, 167);
2081
Laurent Pinchart06c7dd82013-01-03 13:07:05 +01002082/* - LCD0 ------------------------------------------------------------------- */
2083static const unsigned int lcd0_data8_pins[] = {
2084 /* D[0:7] */
2085 58, 57, 56, 55, 54, 53, 52, 51,
2086};
2087static const unsigned int lcd0_data8_mux[] = {
2088 LCD0_D0_MARK, LCD0_D1_MARK, LCD0_D2_MARK, LCD0_D3_MARK,
2089 LCD0_D4_MARK, LCD0_D5_MARK, LCD0_D6_MARK, LCD0_D7_MARK,
2090};
2091static const unsigned int lcd0_data9_pins[] = {
2092 /* D[0:8] */
2093 58, 57, 56, 55, 54, 53, 52, 51,
2094 50,
2095};
2096static const unsigned int lcd0_data9_mux[] = {
2097 LCD0_D0_MARK, LCD0_D1_MARK, LCD0_D2_MARK, LCD0_D3_MARK,
2098 LCD0_D4_MARK, LCD0_D5_MARK, LCD0_D6_MARK, LCD0_D7_MARK,
2099 LCD0_D8_MARK,
2100};
2101static const unsigned int lcd0_data12_pins[] = {
2102 /* D[0:11] */
2103 58, 57, 56, 55, 54, 53, 52, 51,
2104 50, 49, 48, 47,
2105};
2106static const unsigned int lcd0_data12_mux[] = {
2107 LCD0_D0_MARK, LCD0_D1_MARK, LCD0_D2_MARK, LCD0_D3_MARK,
2108 LCD0_D4_MARK, LCD0_D5_MARK, LCD0_D6_MARK, LCD0_D7_MARK,
2109 LCD0_D8_MARK, LCD0_D9_MARK, LCD0_D10_MARK, LCD0_D11_MARK,
2110};
2111static const unsigned int lcd0_data16_pins[] = {
2112 /* D[0:15] */
2113 58, 57, 56, 55, 54, 53, 52, 51,
2114 50, 49, 48, 47, 46, 45, 44, 43,
2115};
2116static const unsigned int lcd0_data16_mux[] = {
2117 LCD0_D0_MARK, LCD0_D1_MARK, LCD0_D2_MARK, LCD0_D3_MARK,
2118 LCD0_D4_MARK, LCD0_D5_MARK, LCD0_D6_MARK, LCD0_D7_MARK,
2119 LCD0_D8_MARK, LCD0_D9_MARK, LCD0_D10_MARK, LCD0_D11_MARK,
2120 LCD0_D12_MARK, LCD0_D13_MARK, LCD0_D14_MARK, LCD0_D15_MARK,
2121};
2122static const unsigned int lcd0_data18_pins[] = {
2123 /* D[0:17] */
2124 58, 57, 56, 55, 54, 53, 52, 51,
2125 50, 49, 48, 47, 46, 45, 44, 43,
2126 42, 41,
2127};
2128static const unsigned int lcd0_data18_mux[] = {
2129 LCD0_D0_MARK, LCD0_D1_MARK, LCD0_D2_MARK, LCD0_D3_MARK,
2130 LCD0_D4_MARK, LCD0_D5_MARK, LCD0_D6_MARK, LCD0_D7_MARK,
2131 LCD0_D8_MARK, LCD0_D9_MARK, LCD0_D10_MARK, LCD0_D11_MARK,
2132 LCD0_D12_MARK, LCD0_D13_MARK, LCD0_D14_MARK, LCD0_D15_MARK,
2133 LCD0_D16_MARK, LCD0_D17_MARK,
2134};
2135static const unsigned int lcd0_data24_0_pins[] = {
2136 /* D[0:23] */
2137 58, 57, 56, 55, 54, 53, 52, 51,
2138 50, 49, 48, 47, 46, 45, 44, 43,
2139 42, 41, 40, 4, 3, 2, 0, 1,
2140};
2141static const unsigned int lcd0_data24_0_mux[] = {
2142 LCD0_D0_MARK, LCD0_D1_MARK, LCD0_D2_MARK, LCD0_D3_MARK,
2143 LCD0_D4_MARK, LCD0_D5_MARK, LCD0_D6_MARK, LCD0_D7_MARK,
2144 LCD0_D8_MARK, LCD0_D9_MARK, LCD0_D10_MARK, LCD0_D11_MARK,
2145 LCD0_D12_MARK, LCD0_D13_MARK, LCD0_D14_MARK, LCD0_D15_MARK,
2146 LCD0_D16_MARK, LCD0_D17_MARK, LCD0_D18_PORT40_MARK, LCD0_D19_PORT4_MARK,
2147 LCD0_D20_PORT3_MARK, LCD0_D21_PORT2_MARK, LCD0_D22_PORT0_MARK,
2148 LCD0_D23_PORT1_MARK,
2149};
2150static const unsigned int lcd0_data24_1_pins[] = {
2151 /* D[0:23] */
2152 58, 57, 56, 55, 54, 53, 52, 51,
2153 50, 49, 48, 47, 46, 45, 44, 43,
2154 42, 41, 163, 162, 161, 158, 160, 159,
2155};
2156static const unsigned int lcd0_data24_1_mux[] = {
2157 LCD0_D0_MARK, LCD0_D1_MARK, LCD0_D2_MARK, LCD0_D3_MARK,
2158 LCD0_D4_MARK, LCD0_D5_MARK, LCD0_D6_MARK, LCD0_D7_MARK,
2159 LCD0_D8_MARK, LCD0_D9_MARK, LCD0_D10_MARK, LCD0_D11_MARK,
2160 LCD0_D16_MARK, LCD0_D17_MARK, LCD0_D18_PORT163_MARK,
2161 LCD0_D19_PORT162_MARK, LCD0_D20_PORT161_MARK, LCD0_D21_PORT158_MARK,
2162 LCD0_D22_PORT160_MARK, LCD0_D23_PORT159_MARK,
2163};
2164static const unsigned int lcd0_display_pins[] = {
2165 /* DON, VCPWC, VEPWC */
2166 61, 59, 60,
2167};
2168static const unsigned int lcd0_display_mux[] = {
2169 LCD0_DON_MARK, LCD0_VCPWC_MARK, LCD0_VEPWC_MARK,
2170};
2171static const unsigned int lcd0_lclk_0_pins[] = {
2172 /* LCLK */
2173 102,
2174};
2175static const unsigned int lcd0_lclk_0_mux[] = {
2176 LCD0_LCLK_PORT102_MARK,
2177};
2178static const unsigned int lcd0_lclk_1_pins[] = {
2179 /* LCLK */
2180 165,
2181};
2182static const unsigned int lcd0_lclk_1_mux[] = {
2183 LCD0_LCLK_PORT165_MARK,
2184};
2185static const unsigned int lcd0_sync_pins[] = {
2186 /* VSYN, HSYN, DCK, DISP */
2187 63, 64, 62, 65,
2188};
2189static const unsigned int lcd0_sync_mux[] = {
2190 LCD0_VSYN_MARK, LCD0_HSYN_MARK, LCD0_DCK_MARK, LCD0_DISP_MARK,
2191};
2192static const unsigned int lcd0_sys_pins[] = {
2193 /* CS, WR, RD, RS */
2194 64, 62, 164, 65,
2195};
2196static const unsigned int lcd0_sys_mux[] = {
2197 LCD0_CS_MARK, LCD0_WR_MARK, LCD0_RD_MARK, LCD0_RS_MARK,
2198};
2199/* - LCD1 ------------------------------------------------------------------- */
2200static const unsigned int lcd1_data8_pins[] = {
2201 /* D[0:7] */
2202 4, 3, 2, 1, 0, 91, 92, 23,
2203};
2204static const unsigned int lcd1_data8_mux[] = {
2205 LCD1_D0_MARK, LCD1_D1_MARK, LCD1_D2_MARK, LCD1_D3_MARK,
2206 LCD1_D4_MARK, LCD1_D5_MARK, LCD1_D6_MARK, LCD1_D7_MARK,
2207};
2208static const unsigned int lcd1_data9_pins[] = {
2209 /* D[0:8] */
2210 4, 3, 2, 1, 0, 91, 92, 23,
2211 93,
2212};
2213static const unsigned int lcd1_data9_mux[] = {
2214 LCD1_D0_MARK, LCD1_D1_MARK, LCD1_D2_MARK, LCD1_D3_MARK,
2215 LCD1_D4_MARK, LCD1_D5_MARK, LCD1_D6_MARK, LCD1_D7_MARK,
2216 LCD1_D8_MARK,
2217};
2218static const unsigned int lcd1_data12_pins[] = {
2219 /* D[0:12] */
2220 4, 3, 2, 1, 0, 91, 92, 23,
2221 93, 94, 21, 201,
2222};
2223static const unsigned int lcd1_data12_mux[] = {
2224 LCD1_D0_MARK, LCD1_D1_MARK, LCD1_D2_MARK, LCD1_D3_MARK,
2225 LCD1_D4_MARK, LCD1_D5_MARK, LCD1_D6_MARK, LCD1_D7_MARK,
2226 LCD1_D8_MARK, LCD1_D9_MARK, LCD1_D10_MARK, LCD1_D11_MARK,
2227};
2228static const unsigned int lcd1_data16_pins[] = {
2229 /* D[0:15] */
2230 4, 3, 2, 1, 0, 91, 92, 23,
2231 93, 94, 21, 201, 200, 199, 196, 195,
2232};
2233static const unsigned int lcd1_data16_mux[] = {
2234 LCD1_D0_MARK, LCD1_D1_MARK, LCD1_D2_MARK, LCD1_D3_MARK,
2235 LCD1_D4_MARK, LCD1_D5_MARK, LCD1_D6_MARK, LCD1_D7_MARK,
2236 LCD1_D8_MARK, LCD1_D9_MARK, LCD1_D10_MARK, LCD1_D11_MARK,
2237 LCD1_D12_MARK, LCD1_D13_MARK, LCD1_D14_MARK, LCD1_D15_MARK,
2238};
2239static const unsigned int lcd1_data18_pins[] = {
2240 /* D[0:17] */
2241 4, 3, 2, 1, 0, 91, 92, 23,
2242 93, 94, 21, 201, 200, 199, 196, 195,
2243 194, 193,
2244};
2245static const unsigned int lcd1_data18_mux[] = {
2246 LCD1_D0_MARK, LCD1_D1_MARK, LCD1_D2_MARK, LCD1_D3_MARK,
2247 LCD1_D4_MARK, LCD1_D5_MARK, LCD1_D6_MARK, LCD1_D7_MARK,
2248 LCD1_D8_MARK, LCD1_D9_MARK, LCD1_D10_MARK, LCD1_D11_MARK,
2249 LCD1_D12_MARK, LCD1_D13_MARK, LCD1_D14_MARK, LCD1_D15_MARK,
2250 LCD1_D16_MARK, LCD1_D17_MARK,
2251};
2252static const unsigned int lcd1_data24_pins[] = {
2253 /* D[0:23] */
2254 4, 3, 2, 1, 0, 91, 92, 23,
2255 93, 94, 21, 201, 200, 199, 196, 195,
2256 194, 193, 198, 197, 75, 74, 15, 14,
2257};
2258static const unsigned int lcd1_data24_mux[] = {
2259 LCD1_D0_MARK, LCD1_D1_MARK, LCD1_D2_MARK, LCD1_D3_MARK,
2260 LCD1_D4_MARK, LCD1_D5_MARK, LCD1_D6_MARK, LCD1_D7_MARK,
2261 LCD1_D8_MARK, LCD1_D9_MARK, LCD1_D10_MARK, LCD1_D11_MARK,
2262 LCD1_D12_MARK, LCD1_D13_MARK, LCD1_D14_MARK, LCD1_D15_MARK,
2263 LCD1_D16_MARK, LCD1_D17_MARK, LCD1_D18_MARK, LCD1_D19_MARK,
2264 LCD1_D20_MARK, LCD1_D21_MARK, LCD1_D22_MARK, LCD1_D23_MARK,
2265};
2266static const unsigned int lcd1_display_pins[] = {
2267 /* DON, VCPWC, VEPWC */
2268 100, 5, 6,
2269};
2270static const unsigned int lcd1_display_mux[] = {
2271 LCD1_DON_MARK, LCD1_VCPWC_MARK, LCD1_VEPWC_MARK,
2272};
2273static const unsigned int lcd1_lclk_pins[] = {
2274 /* LCLK */
2275 40,
2276};
2277static const unsigned int lcd1_lclk_mux[] = {
2278 LCD1_LCLK_MARK,
2279};
2280static const unsigned int lcd1_sync_pins[] = {
2281 /* VSYN, HSYN, DCK, DISP */
2282 98, 97, 99, 12,
2283};
2284static const unsigned int lcd1_sync_mux[] = {
2285 LCD1_VSYN_MARK, LCD1_HSYN_MARK, LCD1_DCK_MARK, LCD1_DISP_MARK,
2286};
2287static const unsigned int lcd1_sys_pins[] = {
2288 /* CS, WR, RD, RS */
2289 97, 99, 13, 12,
2290};
2291static const unsigned int lcd1_sys_mux[] = {
2292 LCD1_CS_MARK, LCD1_WR_MARK, LCD1_RD_MARK, LCD1_RS_MARK,
2293};
Guennadi Liakhovetski8b2810b2013-01-23 17:37:44 +01002294/* - MMCIF ------------------------------------------------------------------ */
2295static const unsigned int mmc0_data1_0_pins[] = {
2296 /* D[0] */
2297 68,
2298};
2299static const unsigned int mmc0_data1_0_mux[] = {
2300 MMC0_D0_PORT68_MARK,
2301};
2302static const unsigned int mmc0_data4_0_pins[] = {
2303 /* D[0:3] */
2304 68, 69, 70, 71,
2305};
2306static const unsigned int mmc0_data4_0_mux[] = {
2307 MMC0_D0_PORT68_MARK, MMC0_D1_PORT69_MARK, MMC0_D2_PORT70_MARK, MMC0_D3_PORT71_MARK,
2308};
2309static const unsigned int mmc0_data8_0_pins[] = {
2310 /* D[0:7] */
2311 68, 69, 70, 71, 72, 73, 74, 75,
2312};
2313static const unsigned int mmc0_data8_0_mux[] = {
2314 MMC0_D0_PORT68_MARK, MMC0_D1_PORT69_MARK, MMC0_D2_PORT70_MARK, MMC0_D3_PORT71_MARK,
2315 MMC0_D4_PORT72_MARK, MMC0_D5_PORT73_MARK, MMC0_D6_PORT74_MARK, MMC0_D7_PORT75_MARK,
2316};
2317static const unsigned int mmc0_ctrl_0_pins[] = {
2318 /* CMD, CLK */
2319 67, 66,
2320};
2321static const unsigned int mmc0_ctrl_0_mux[] = {
2322 MMC0_CMD_PORT67_MARK, MMC0_CLK_PORT66_MARK,
2323};
2324
2325static const unsigned int mmc0_data1_1_pins[] = {
2326 /* D[0] */
2327 149,
2328};
2329static const unsigned int mmc0_data1_1_mux[] = {
2330 MMC1_D0_PORT149_MARK,
2331};
2332static const unsigned int mmc0_data4_1_pins[] = {
2333 /* D[0:3] */
2334 149, 148, 147, 146,
2335};
2336static const unsigned int mmc0_data4_1_mux[] = {
2337 MMC1_D0_PORT149_MARK, MMC1_D1_PORT148_MARK, MMC1_D2_PORT147_MARK, MMC1_D3_PORT146_MARK,
2338};
2339static const unsigned int mmc0_data8_1_pins[] = {
2340 /* D[0:7] */
2341 149, 148, 147, 146, 145, 144, 143, 142,
2342};
2343static const unsigned int mmc0_data8_1_mux[] = {
2344 MMC1_D0_PORT149_MARK, MMC1_D1_PORT148_MARK, MMC1_D2_PORT147_MARK, MMC1_D3_PORT146_MARK,
2345 MMC1_D4_PORT145_MARK, MMC1_D5_PORT144_MARK, MMC1_D6_PORT143_MARK, MMC1_D7_PORT142_MARK,
2346};
2347static const unsigned int mmc0_ctrl_1_pins[] = {
2348 /* CMD, CLK */
2349 104, 103,
2350};
2351static const unsigned int mmc0_ctrl_1_mux[] = {
2352 MMC1_CMD_PORT104_MARK, MMC1_CLK_PORT103_MARK,
2353};
Laurent Pinchartcdd2c762013-04-18 01:04:30 +02002354/* - SCIFA0 ----------------------------------------------------------------- */
2355static const unsigned int scifa0_data_pins[] = {
2356 /* RXD, TXD */
2357 197, 198,
2358};
2359static const unsigned int scifa0_data_mux[] = {
2360 SCIFA0_RXD_MARK, SCIFA0_TXD_MARK,
2361};
2362static const unsigned int scifa0_clk_pins[] = {
2363 /* SCK */
2364 188,
2365};
2366static const unsigned int scifa0_clk_mux[] = {
2367 SCIFA0_SCK_MARK,
2368};
2369static const unsigned int scifa0_ctrl_pins[] = {
2370 /* RTS, CTS */
2371 194, 193,
2372};
2373static const unsigned int scifa0_ctrl_mux[] = {
2374 SCIFA0_RTS_MARK, SCIFA0_CTS_MARK,
2375};
Bastian Hecht8fbfdbb2013-04-17 10:34:01 +00002376/* - SCIFA1 ----------------------------------------------------------------- */
2377static const unsigned int scifa1_data_pins[] = {
2378 /* RXD, TXD */
2379 195, 196,
2380};
2381static const unsigned int scifa1_data_mux[] = {
2382 SCIFA1_RXD_MARK, SCIFA1_TXD_MARK,
2383};
Laurent Pinchartcdd2c762013-04-18 01:04:30 +02002384static const unsigned int scifa1_clk_pins[] = {
2385 /* SCK */
2386 185,
2387};
2388static const unsigned int scifa1_clk_mux[] = {
2389 SCIFA1_SCK_MARK,
2390};
2391static const unsigned int scifa1_ctrl_pins[] = {
2392 /* RTS, CTS */
2393 23, 21,
2394};
2395static const unsigned int scifa1_ctrl_mux[] = {
2396 SCIFA1_RTS_MARK, SCIFA1_CTS_MARK,
2397};
2398/* - SCIFA2 ----------------------------------------------------------------- */
2399static const unsigned int scifa2_data_pins[] = {
2400 /* RXD, TXD */
2401 200, 201,
2402};
2403static const unsigned int scifa2_data_mux[] = {
2404 SCIFA2_RXD_MARK, SCIFA2_TXD_MARK,
2405};
2406static const unsigned int scifa2_clk_0_pins[] = {
2407 /* SCK */
2408 22,
2409};
2410static const unsigned int scifa2_clk_0_mux[] = {
2411 SCIFA2_SCK_PORT22_MARK,
2412};
2413static const unsigned int scifa2_clk_1_pins[] = {
2414 /* SCK */
2415 199,
2416};
2417static const unsigned int scifa2_clk_1_mux[] = {
2418 SCIFA2_SCK_PORT199_MARK,
2419};
2420static const unsigned int scifa2_ctrl_pins[] = {
2421 /* RTS, CTS */
2422 96, 95,
2423};
2424static const unsigned int scifa2_ctrl_mux[] = {
2425 SCIFA2_RTS_MARK, SCIFA2_CTS_MARK,
2426};
2427/* - SCIFA3 ----------------------------------------------------------------- */
2428static const unsigned int scifa3_data_0_pins[] = {
2429 /* RXD, TXD */
2430 174, 175,
2431};
2432static const unsigned int scifa3_data_0_mux[] = {
2433 SCIFA3_RXD_PORT174_MARK, SCIFA3_TXD_PORT175_MARK,
2434};
2435static const unsigned int scifa3_clk_0_pins[] = {
2436 /* SCK */
2437 116,
2438};
2439static const unsigned int scifa3_clk_0_mux[] = {
2440 SCIFA3_SCK_PORT116_MARK,
2441};
2442static const unsigned int scifa3_ctrl_0_pins[] = {
2443 /* RTS, CTS */
2444 105, 117,
2445};
2446static const unsigned int scifa3_ctrl_0_mux[] = {
2447 SCIFA3_RTS_PORT105_MARK, SCIFA3_CTS_PORT117_MARK,
2448};
2449static const unsigned int scifa3_data_1_pins[] = {
2450 /* RXD, TXD */
2451 159, 160,
2452};
2453static const unsigned int scifa3_data_1_mux[] = {
2454 SCIFA3_RXD_PORT159_MARK, SCIFA3_TXD_PORT160_MARK,
2455};
2456static const unsigned int scifa3_clk_1_pins[] = {
2457 /* SCK */
2458 158,
2459};
2460static const unsigned int scifa3_clk_1_mux[] = {
2461 SCIFA3_SCK_PORT158_MARK,
2462};
2463static const unsigned int scifa3_ctrl_1_pins[] = {
2464 /* RTS, CTS */
2465 161, 162,
2466};
2467static const unsigned int scifa3_ctrl_1_mux[] = {
2468 SCIFA3_RTS_PORT161_MARK, SCIFA3_CTS_PORT162_MARK,
2469};
2470/* - SCIFA4 ----------------------------------------------------------------- */
2471static const unsigned int scifa4_data_0_pins[] = {
2472 /* RXD, TXD */
2473 12, 13,
2474};
2475static const unsigned int scifa4_data_0_mux[] = {
2476 SCIFA4_RXD_PORT12_MARK, SCIFA4_TXD_PORT13_MARK,
2477};
2478static const unsigned int scifa4_data_1_pins[] = {
2479 /* RXD, TXD */
2480 204, 203,
2481};
2482static const unsigned int scifa4_data_1_mux[] = {
2483 SCIFA4_RXD_PORT204_MARK, SCIFA4_TXD_PORT203_MARK,
2484};
2485static const unsigned int scifa4_data_2_pins[] = {
2486 /* RXD, TXD */
2487 94, 93,
2488};
2489static const unsigned int scifa4_data_2_mux[] = {
2490 SCIFA4_RXD_PORT94_MARK, SCIFA4_TXD_PORT93_MARK,
2491};
2492static const unsigned int scifa4_clk_0_pins[] = {
2493 /* SCK */
2494 21,
2495};
2496static const unsigned int scifa4_clk_0_mux[] = {
2497 SCIFA4_SCK_PORT21_MARK,
2498};
2499static const unsigned int scifa4_clk_1_pins[] = {
2500 /* SCK */
2501 205,
2502};
2503static const unsigned int scifa4_clk_1_mux[] = {
2504 SCIFA4_SCK_PORT205_MARK,
2505};
2506/* - SCIFA5 ----------------------------------------------------------------- */
2507static const unsigned int scifa5_data_0_pins[] = {
2508 /* RXD, TXD */
2509 10, 20,
2510};
2511static const unsigned int scifa5_data_0_mux[] = {
2512 SCIFA5_RXD_PORT10_MARK, SCIFA5_TXD_PORT20_MARK,
2513};
2514static const unsigned int scifa5_data_1_pins[] = {
2515 /* RXD, TXD */
2516 207, 208,
2517};
2518static const unsigned int scifa5_data_1_mux[] = {
2519 SCIFA5_RXD_PORT207_MARK, SCIFA5_TXD_PORT208_MARK,
2520};
2521static const unsigned int scifa5_data_2_pins[] = {
2522 /* RXD, TXD */
2523 92, 91,
2524};
2525static const unsigned int scifa5_data_2_mux[] = {
2526 SCIFA5_RXD_PORT92_MARK, SCIFA5_TXD_PORT91_MARK,
2527};
2528static const unsigned int scifa5_clk_0_pins[] = {
2529 /* SCK */
2530 23,
2531};
2532static const unsigned int scifa5_clk_0_mux[] = {
2533 SCIFA5_SCK_PORT23_MARK,
2534};
2535static const unsigned int scifa5_clk_1_pins[] = {
2536 /* SCK */
2537 206,
2538};
2539static const unsigned int scifa5_clk_1_mux[] = {
2540 SCIFA5_SCK_PORT206_MARK,
2541};
2542/* - SCIFA6 ----------------------------------------------------------------- */
2543static const unsigned int scifa6_data_pins[] = {
2544 /* RXD, TXD */
2545 25, 26,
2546};
2547static const unsigned int scifa6_data_mux[] = {
2548 SCIFA6_RXD_MARK, SCIFA6_TXD_MARK,
2549};
2550static const unsigned int scifa6_clk_pins[] = {
2551 /* SCK */
2552 24,
2553};
2554static const unsigned int scifa6_clk_mux[] = {
2555 SCIFA6_SCK_MARK,
2556};
2557/* - SCIFA7 ----------------------------------------------------------------- */
2558static const unsigned int scifa7_data_pins[] = {
2559 /* RXD, TXD */
2560 0, 1,
2561};
2562static const unsigned int scifa7_data_mux[] = {
2563 SCIFA7_RXD_MARK, SCIFA7_TXD_MARK,
2564};
2565/* - SCIFB ------------------------------------------------------------------ */
2566static const unsigned int scifb_data_0_pins[] = {
2567 /* RXD, TXD */
2568 191, 192,
2569};
2570static const unsigned int scifb_data_0_mux[] = {
2571 SCIFB_RXD_PORT191_MARK, SCIFB_TXD_PORT192_MARK,
2572};
2573static const unsigned int scifb_clk_0_pins[] = {
2574 /* SCK */
2575 190,
2576};
2577static const unsigned int scifb_clk_0_mux[] = {
2578 SCIFB_SCK_PORT190_MARK,
2579};
2580static const unsigned int scifb_ctrl_0_pins[] = {
2581 /* RTS, CTS */
2582 186, 187,
2583};
2584static const unsigned int scifb_ctrl_0_mux[] = {
2585 SCIFB_RTS_PORT186_MARK, SCIFB_CTS_PORT187_MARK,
2586};
2587static const unsigned int scifb_data_1_pins[] = {
2588 /* RXD, TXD */
2589 3, 4,
2590};
2591static const unsigned int scifb_data_1_mux[] = {
2592 SCIFB_RXD_PORT3_MARK, SCIFB_TXD_PORT4_MARK,
2593};
2594static const unsigned int scifb_clk_1_pins[] = {
2595 /* SCK */
2596 2,
2597};
2598static const unsigned int scifb_clk_1_mux[] = {
2599 SCIFB_SCK_PORT2_MARK,
2600};
2601static const unsigned int scifb_ctrl_1_pins[] = {
2602 /* RTS, CTS */
2603 172, 173,
2604};
2605static const unsigned int scifb_ctrl_1_mux[] = {
2606 SCIFB_RTS_PORT172_MARK, SCIFB_CTS_PORT173_MARK,
2607};
Guennadi Liakhovetski8b2810b2013-01-23 17:37:44 +01002608/* - SDHI0 ------------------------------------------------------------------ */
2609static const unsigned int sdhi0_data1_pins[] = {
2610 /* D0 */
2611 77,
2612};
2613static const unsigned int sdhi0_data1_mux[] = {
2614 SDHI0_D0_MARK,
2615};
2616static const unsigned int sdhi0_data4_pins[] = {
2617 /* D[0:3] */
2618 77, 78, 79, 80,
2619};
2620static const unsigned int sdhi0_data4_mux[] = {
2621 SDHI0_D0_MARK, SDHI0_D1_MARK, SDHI0_D2_MARK, SDHI0_D3_MARK,
2622};
2623static const unsigned int sdhi0_ctrl_pins[] = {
2624 /* CMD, CLK */
2625 76, 82,
2626};
2627static const unsigned int sdhi0_ctrl_mux[] = {
2628 SDHI0_CMD_MARK, SDHI0_CLK_MARK,
2629};
2630static const unsigned int sdhi0_cd_pins[] = {
2631 /* CD */
2632 81,
2633};
2634static const unsigned int sdhi0_cd_mux[] = {
2635 SDHI0_CD_MARK,
2636};
2637static const unsigned int sdhi0_wp_pins[] = {
2638 /* WP */
2639 83,
2640};
2641static const unsigned int sdhi0_wp_mux[] = {
2642 SDHI0_WP_MARK,
2643};
2644/* - SDHI1 ------------------------------------------------------------------ */
2645static const unsigned int sdhi1_data1_pins[] = {
2646 /* D0 */
2647 68,
2648};
2649static const unsigned int sdhi1_data1_mux[] = {
2650 SDHI1_D0_MARK,
2651};
2652static const unsigned int sdhi1_data4_pins[] = {
2653 /* D[0:3] */
2654 68, 69, 70, 71,
2655};
2656static const unsigned int sdhi1_data4_mux[] = {
2657 SDHI1_D0_MARK, SDHI1_D1_MARK, SDHI1_D2_MARK, SDHI1_D3_MARK,
2658};
2659static const unsigned int sdhi1_ctrl_pins[] = {
2660 /* CMD, CLK */
2661 67, 66,
2662};
2663static const unsigned int sdhi1_ctrl_mux[] = {
2664 SDHI1_CMD_MARK, SDHI1_CLK_MARK,
2665};
2666static const unsigned int sdhi1_cd_pins[] = {
2667 /* CD */
2668 72,
2669};
2670static const unsigned int sdhi1_cd_mux[] = {
2671 SDHI1_CD_MARK,
2672};
2673static const unsigned int sdhi1_wp_pins[] = {
2674 /* WP */
2675 73,
2676};
2677static const unsigned int sdhi1_wp_mux[] = {
2678 SDHI1_WP_MARK,
2679};
2680/* - SDHI2 ------------------------------------------------------------------ */
2681static const unsigned int sdhi2_data1_pins[] = {
2682 /* D0 */
2683 205,
2684};
2685static const unsigned int sdhi2_data1_mux[] = {
2686 SDHI2_D0_MARK,
2687};
2688static const unsigned int sdhi2_data4_pins[] = {
2689 /* D[0:3] */
2690 205, 206, 207, 208,
2691};
2692static const unsigned int sdhi2_data4_mux[] = {
2693 SDHI2_D0_MARK, SDHI2_D1_MARK, SDHI2_D2_MARK, SDHI2_D3_MARK,
2694};
2695static const unsigned int sdhi2_ctrl_pins[] = {
2696 /* CMD, CLK */
2697 204, 203,
2698};
2699static const unsigned int sdhi2_ctrl_mux[] = {
2700 SDHI2_CMD_MARK, SDHI2_CLK_MARK,
2701};
2702static const unsigned int sdhi2_cd_0_pins[] = {
2703 /* CD */
2704 202,
2705};
2706static const unsigned int sdhi2_cd_0_mux[] = {
2707 SDHI2_CD_PORT202_MARK,
2708};
2709static const unsigned int sdhi2_wp_0_pins[] = {
2710 /* WP */
2711 177,
2712};
2713static const unsigned int sdhi2_wp_0_mux[] = {
2714 SDHI2_WP_PORT177_MARK,
2715};
2716static const unsigned int sdhi2_cd_1_pins[] = {
2717 /* CD */
2718 24,
2719};
2720static const unsigned int sdhi2_cd_1_mux[] = {
2721 SDHI2_CD_PORT24_MARK,
2722};
2723static const unsigned int sdhi2_wp_1_pins[] = {
2724 /* WP */
2725 25,
2726};
2727static const unsigned int sdhi2_wp_1_mux[] = {
2728 SDHI2_WP_PORT25_MARK,
2729};
Laurent Pinchartc2ad27e2013-04-23 16:04:07 +02002730/* - TPU0 ------------------------------------------------------------------- */
2731static const unsigned int tpu0_to0_pins[] = {
2732 /* TO */
2733 23,
2734};
2735static const unsigned int tpu0_to0_mux[] = {
2736 TPU0TO0_MARK,
2737};
2738static const unsigned int tpu0_to1_pins[] = {
2739 /* TO */
2740 21,
2741};
2742static const unsigned int tpu0_to1_mux[] = {
2743 TPU0TO1_MARK,
2744};
2745static const unsigned int tpu0_to2_0_pins[] = {
2746 /* TO */
2747 66,
2748};
2749static const unsigned int tpu0_to2_0_mux[] = {
2750 TPU0TO2_PORT66_MARK,
2751};
2752static const unsigned int tpu0_to2_1_pins[] = {
2753 /* TO */
2754 202,
2755};
2756static const unsigned int tpu0_to2_1_mux[] = {
2757 TPU0TO2_PORT202_MARK,
2758};
2759static const unsigned int tpu0_to3_pins[] = {
2760 /* TO */
2761 180,
2762};
2763static const unsigned int tpu0_to3_mux[] = {
2764 TPU0TO3_MARK,
2765};
Laurent Pinchart06c7dd82013-01-03 13:07:05 +01002766
2767static const struct sh_pfc_pin_group pinmux_groups[] = {
Laurent Pinchartb7099c42013-04-18 01:04:30 +02002768 SH_PFC_PIN_GROUP(bsc_data8),
2769 SH_PFC_PIN_GROUP(bsc_data16),
2770 SH_PFC_PIN_GROUP(bsc_data32),
2771 SH_PFC_PIN_GROUP(bsc_cs0),
2772 SH_PFC_PIN_GROUP(bsc_cs2),
2773 SH_PFC_PIN_GROUP(bsc_cs4),
2774 SH_PFC_PIN_GROUP(bsc_cs5a_0),
2775 SH_PFC_PIN_GROUP(bsc_cs5a_1),
2776 SH_PFC_PIN_GROUP(bsc_cs5b),
2777 SH_PFC_PIN_GROUP(bsc_cs6a),
2778 SH_PFC_PIN_GROUP(bsc_rd_we8),
2779 SH_PFC_PIN_GROUP(bsc_rd_we16),
2780 SH_PFC_PIN_GROUP(bsc_rd_we32),
2781 SH_PFC_PIN_GROUP(bsc_bs),
2782 SH_PFC_PIN_GROUP(bsc_rdwr),
Laurent Pinchart0ec939b2013-04-18 01:04:30 +02002783 SH_PFC_PIN_GROUP(ceu0_data_0_7),
2784 SH_PFC_PIN_GROUP(ceu0_data_8_15_0),
2785 SH_PFC_PIN_GROUP(ceu0_data_8_15_1),
2786 SH_PFC_PIN_GROUP(ceu0_clk_0),
2787 SH_PFC_PIN_GROUP(ceu0_clk_1),
2788 SH_PFC_PIN_GROUP(ceu0_clk_2),
2789 SH_PFC_PIN_GROUP(ceu0_sync),
2790 SH_PFC_PIN_GROUP(ceu0_field),
2791 SH_PFC_PIN_GROUP(ceu1_data),
2792 SH_PFC_PIN_GROUP(ceu1_clk),
2793 SH_PFC_PIN_GROUP(ceu1_sync),
2794 SH_PFC_PIN_GROUP(ceu1_field),
Laurent Pinchart909dd952013-04-18 01:04:30 +02002795 SH_PFC_PIN_GROUP(fsia_mclk_in),
2796 SH_PFC_PIN_GROUP(fsia_mclk_out),
2797 SH_PFC_PIN_GROUP(fsia_sclk_in),
2798 SH_PFC_PIN_GROUP(fsia_sclk_out),
2799 SH_PFC_PIN_GROUP(fsia_data_in_0),
2800 SH_PFC_PIN_GROUP(fsia_data_in_1),
2801 SH_PFC_PIN_GROUP(fsia_data_out_0),
2802 SH_PFC_PIN_GROUP(fsia_data_out_1),
2803 SH_PFC_PIN_GROUP(fsia_data_out_2),
2804 SH_PFC_PIN_GROUP(fsia_spdif_0),
2805 SH_PFC_PIN_GROUP(fsia_spdif_1),
2806 SH_PFC_PIN_GROUP(fsib_mclk_in),
Laurent Pinchartbae11d32013-04-18 01:04:30 +02002807 SH_PFC_PIN_GROUP(gether_rmii),
2808 SH_PFC_PIN_GROUP(gether_mii),
2809 SH_PFC_PIN_GROUP(gether_gmii),
2810 SH_PFC_PIN_GROUP(gether_int),
2811 SH_PFC_PIN_GROUP(gether_link),
2812 SH_PFC_PIN_GROUP(gether_wol),
Laurent Pincharta37d6062013-04-18 01:04:30 +02002813 SH_PFC_PIN_GROUP(hdmi),
Bastian Hecht09bbc1f2013-04-09 10:48:50 +00002814 SH_PFC_PIN_GROUP(intc_irq0_0),
2815 SH_PFC_PIN_GROUP(intc_irq0_1),
2816 SH_PFC_PIN_GROUP(intc_irq1),
2817 SH_PFC_PIN_GROUP(intc_irq2_0),
2818 SH_PFC_PIN_GROUP(intc_irq2_1),
2819 SH_PFC_PIN_GROUP(intc_irq3_0),
2820 SH_PFC_PIN_GROUP(intc_irq3_1),
2821 SH_PFC_PIN_GROUP(intc_irq4_0),
2822 SH_PFC_PIN_GROUP(intc_irq4_1),
2823 SH_PFC_PIN_GROUP(intc_irq5_0),
2824 SH_PFC_PIN_GROUP(intc_irq5_1),
2825 SH_PFC_PIN_GROUP(intc_irq6_0),
2826 SH_PFC_PIN_GROUP(intc_irq6_1),
2827 SH_PFC_PIN_GROUP(intc_irq7_0),
2828 SH_PFC_PIN_GROUP(intc_irq7_1),
2829 SH_PFC_PIN_GROUP(intc_irq8),
2830 SH_PFC_PIN_GROUP(intc_irq9_0),
2831 SH_PFC_PIN_GROUP(intc_irq9_1),
2832 SH_PFC_PIN_GROUP(intc_irq10),
2833 SH_PFC_PIN_GROUP(intc_irq11),
2834 SH_PFC_PIN_GROUP(intc_irq12_0),
2835 SH_PFC_PIN_GROUP(intc_irq12_1),
2836 SH_PFC_PIN_GROUP(intc_irq13_0),
2837 SH_PFC_PIN_GROUP(intc_irq13_1),
2838 SH_PFC_PIN_GROUP(intc_irq14_0),
2839 SH_PFC_PIN_GROUP(intc_irq14_1),
2840 SH_PFC_PIN_GROUP(intc_irq15_0),
2841 SH_PFC_PIN_GROUP(intc_irq15_1),
2842 SH_PFC_PIN_GROUP(intc_irq16_0),
2843 SH_PFC_PIN_GROUP(intc_irq16_1),
2844 SH_PFC_PIN_GROUP(intc_irq17),
2845 SH_PFC_PIN_GROUP(intc_irq18),
2846 SH_PFC_PIN_GROUP(intc_irq19),
2847 SH_PFC_PIN_GROUP(intc_irq20),
2848 SH_PFC_PIN_GROUP(intc_irq21),
2849 SH_PFC_PIN_GROUP(intc_irq22),
2850 SH_PFC_PIN_GROUP(intc_irq23),
2851 SH_PFC_PIN_GROUP(intc_irq24),
2852 SH_PFC_PIN_GROUP(intc_irq25),
2853 SH_PFC_PIN_GROUP(intc_irq26_0),
2854 SH_PFC_PIN_GROUP(intc_irq26_1),
2855 SH_PFC_PIN_GROUP(intc_irq27_0),
2856 SH_PFC_PIN_GROUP(intc_irq27_1),
2857 SH_PFC_PIN_GROUP(intc_irq28_0),
2858 SH_PFC_PIN_GROUP(intc_irq28_1),
2859 SH_PFC_PIN_GROUP(intc_irq29_0),
2860 SH_PFC_PIN_GROUP(intc_irq29_1),
2861 SH_PFC_PIN_GROUP(intc_irq30_0),
2862 SH_PFC_PIN_GROUP(intc_irq30_1),
2863 SH_PFC_PIN_GROUP(intc_irq31_0),
2864 SH_PFC_PIN_GROUP(intc_irq31_1),
Laurent Pinchart06c7dd82013-01-03 13:07:05 +01002865 SH_PFC_PIN_GROUP(lcd0_data8),
2866 SH_PFC_PIN_GROUP(lcd0_data9),
2867 SH_PFC_PIN_GROUP(lcd0_data12),
2868 SH_PFC_PIN_GROUP(lcd0_data16),
2869 SH_PFC_PIN_GROUP(lcd0_data18),
2870 SH_PFC_PIN_GROUP(lcd0_data24_0),
2871 SH_PFC_PIN_GROUP(lcd0_data24_1),
2872 SH_PFC_PIN_GROUP(lcd0_display),
2873 SH_PFC_PIN_GROUP(lcd0_lclk_0),
2874 SH_PFC_PIN_GROUP(lcd0_lclk_1),
2875 SH_PFC_PIN_GROUP(lcd0_sync),
2876 SH_PFC_PIN_GROUP(lcd0_sys),
2877 SH_PFC_PIN_GROUP(lcd1_data8),
2878 SH_PFC_PIN_GROUP(lcd1_data9),
2879 SH_PFC_PIN_GROUP(lcd1_data12),
2880 SH_PFC_PIN_GROUP(lcd1_data16),
2881 SH_PFC_PIN_GROUP(lcd1_data18),
2882 SH_PFC_PIN_GROUP(lcd1_data24),
2883 SH_PFC_PIN_GROUP(lcd1_display),
2884 SH_PFC_PIN_GROUP(lcd1_lclk),
2885 SH_PFC_PIN_GROUP(lcd1_sync),
2886 SH_PFC_PIN_GROUP(lcd1_sys),
Guennadi Liakhovetski8b2810b2013-01-23 17:37:44 +01002887 SH_PFC_PIN_GROUP(mmc0_data1_0),
2888 SH_PFC_PIN_GROUP(mmc0_data4_0),
2889 SH_PFC_PIN_GROUP(mmc0_data8_0),
2890 SH_PFC_PIN_GROUP(mmc0_ctrl_0),
2891 SH_PFC_PIN_GROUP(mmc0_data1_1),
2892 SH_PFC_PIN_GROUP(mmc0_data4_1),
2893 SH_PFC_PIN_GROUP(mmc0_data8_1),
2894 SH_PFC_PIN_GROUP(mmc0_ctrl_1),
Laurent Pinchartcdd2c762013-04-18 01:04:30 +02002895 SH_PFC_PIN_GROUP(scifa0_data),
2896 SH_PFC_PIN_GROUP(scifa0_clk),
2897 SH_PFC_PIN_GROUP(scifa0_ctrl),
Bastian Hecht8fbfdbb2013-04-17 10:34:01 +00002898 SH_PFC_PIN_GROUP(scifa1_data),
Laurent Pinchartcdd2c762013-04-18 01:04:30 +02002899 SH_PFC_PIN_GROUP(scifa1_clk),
2900 SH_PFC_PIN_GROUP(scifa1_ctrl),
2901 SH_PFC_PIN_GROUP(scifa2_data),
2902 SH_PFC_PIN_GROUP(scifa2_clk_0),
2903 SH_PFC_PIN_GROUP(scifa2_clk_1),
2904 SH_PFC_PIN_GROUP(scifa2_ctrl),
2905 SH_PFC_PIN_GROUP(scifa3_data_0),
2906 SH_PFC_PIN_GROUP(scifa3_clk_0),
2907 SH_PFC_PIN_GROUP(scifa3_ctrl_0),
2908 SH_PFC_PIN_GROUP(scifa3_data_1),
2909 SH_PFC_PIN_GROUP(scifa3_clk_1),
2910 SH_PFC_PIN_GROUP(scifa3_ctrl_1),
2911 SH_PFC_PIN_GROUP(scifa4_data_0),
2912 SH_PFC_PIN_GROUP(scifa4_data_1),
2913 SH_PFC_PIN_GROUP(scifa4_data_2),
2914 SH_PFC_PIN_GROUP(scifa4_clk_0),
2915 SH_PFC_PIN_GROUP(scifa4_clk_1),
2916 SH_PFC_PIN_GROUP(scifa5_data_0),
2917 SH_PFC_PIN_GROUP(scifa5_data_1),
2918 SH_PFC_PIN_GROUP(scifa5_data_2),
2919 SH_PFC_PIN_GROUP(scifa5_clk_0),
2920 SH_PFC_PIN_GROUP(scifa5_clk_1),
2921 SH_PFC_PIN_GROUP(scifa6_data),
2922 SH_PFC_PIN_GROUP(scifa6_clk),
2923 SH_PFC_PIN_GROUP(scifa7_data),
2924 SH_PFC_PIN_GROUP(scifb_data_0),
2925 SH_PFC_PIN_GROUP(scifb_clk_0),
2926 SH_PFC_PIN_GROUP(scifb_ctrl_0),
2927 SH_PFC_PIN_GROUP(scifb_data_1),
2928 SH_PFC_PIN_GROUP(scifb_clk_1),
2929 SH_PFC_PIN_GROUP(scifb_ctrl_1),
Guennadi Liakhovetski8b2810b2013-01-23 17:37:44 +01002930 SH_PFC_PIN_GROUP(sdhi0_data1),
2931 SH_PFC_PIN_GROUP(sdhi0_data4),
2932 SH_PFC_PIN_GROUP(sdhi0_ctrl),
2933 SH_PFC_PIN_GROUP(sdhi0_cd),
2934 SH_PFC_PIN_GROUP(sdhi0_wp),
2935 SH_PFC_PIN_GROUP(sdhi1_data1),
2936 SH_PFC_PIN_GROUP(sdhi1_data4),
2937 SH_PFC_PIN_GROUP(sdhi1_ctrl),
2938 SH_PFC_PIN_GROUP(sdhi1_cd),
2939 SH_PFC_PIN_GROUP(sdhi1_wp),
2940 SH_PFC_PIN_GROUP(sdhi2_data1),
2941 SH_PFC_PIN_GROUP(sdhi2_data4),
2942 SH_PFC_PIN_GROUP(sdhi2_ctrl),
2943 SH_PFC_PIN_GROUP(sdhi2_cd_0),
2944 SH_PFC_PIN_GROUP(sdhi2_wp_0),
2945 SH_PFC_PIN_GROUP(sdhi2_cd_1),
2946 SH_PFC_PIN_GROUP(sdhi2_wp_1),
Laurent Pinchartc2ad27e2013-04-23 16:04:07 +02002947 SH_PFC_PIN_GROUP(tpu0_to0),
2948 SH_PFC_PIN_GROUP(tpu0_to1),
2949 SH_PFC_PIN_GROUP(tpu0_to2_0),
2950 SH_PFC_PIN_GROUP(tpu0_to2_1),
2951 SH_PFC_PIN_GROUP(tpu0_to3),
Laurent Pinchart06c7dd82013-01-03 13:07:05 +01002952};
2953
Laurent Pinchartb7099c42013-04-18 01:04:30 +02002954static const char * const bsc_groups[] = {
2955 "bsc_data8",
2956 "bsc_data16",
2957 "bsc_data32",
2958 "bsc_cs0",
2959 "bsc_cs2",
2960 "bsc_cs4",
2961 "bsc_cs5a_0",
2962 "bsc_cs5a_1",
2963 "bsc_cs5b",
2964 "bsc_cs6a",
2965 "bsc_rd_we8",
2966 "bsc_rd_we16",
2967 "bsc_rd_we32",
2968 "bsc_bs",
2969 "bsc_rdwr",
2970};
2971
Laurent Pinchart0ec939b2013-04-18 01:04:30 +02002972static const char * const ceu0_groups[] = {
2973 "ceu0_data_0_7",
2974 "ceu0_data_8_15_0",
2975 "ceu0_data_8_15_1",
2976 "ceu0_clk_0",
2977 "ceu0_clk_1",
2978 "ceu0_clk_2",
2979 "ceu0_sync",
2980 "ceu0_field",
2981};
2982
2983static const char * const ceu1_groups[] = {
2984 "ceu1_data",
2985 "ceu1_clk",
2986 "ceu1_sync",
2987 "ceu1_field",
2988};
2989
Laurent Pinchart909dd952013-04-18 01:04:30 +02002990static const char * const fsia_groups[] = {
2991 "fsia_mclk_in",
2992 "fsia_mclk_out",
2993 "fsia_sclk_in",
2994 "fsia_sclk_out",
2995 "fsia_data_in_0",
2996 "fsia_data_in_1",
2997 "fsia_data_out_0",
2998 "fsia_data_out_1",
2999 "fsia_data_out_2",
3000 "fsia_spdif_0",
3001 "fsia_spdif_1",
3002};
3003
3004static const char * const fsib_groups[] = {
3005 "fsib_mclk_in",
3006};
3007
Laurent Pinchartbae11d32013-04-18 01:04:30 +02003008static const char * const gether_groups[] = {
3009 "gether_rmii",
3010 "gether_mii",
3011 "gether_gmii",
3012 "gether_int",
3013 "gether_link",
3014 "gether_wol",
3015};
3016
Laurent Pincharta37d6062013-04-18 01:04:30 +02003017static const char * const hdmi_groups[] = {
3018 "hdmi",
3019};
3020
Bastian Hecht09bbc1f2013-04-09 10:48:50 +00003021static const char * const intc_groups[] = {
3022 "intc_irq0_0",
3023 "intc_irq0_1",
3024 "intc_irq1",
3025 "intc_irq2_0",
3026 "intc_irq2_1",
3027 "intc_irq3_0",
3028 "intc_irq3_1",
3029 "intc_irq4_0",
3030 "intc_irq4_1",
3031 "intc_irq5_0",
3032 "intc_irq5_1",
3033 "intc_irq6_0",
3034 "intc_irq6_1",
3035 "intc_irq7_0",
3036 "intc_irq7_1",
3037 "intc_irq8",
3038 "intc_irq9_0",
3039 "intc_irq9_1",
3040 "intc_irq10",
3041 "intc_irq11",
3042 "intc_irq12_0",
3043 "intc_irq12_1",
3044 "intc_irq13_0",
3045 "intc_irq13_1",
3046 "intc_irq14_0",
3047 "intc_irq14_1",
3048 "intc_irq15_0",
3049 "intc_irq15_1",
3050 "intc_irq16_0",
3051 "intc_irq16_1",
3052 "intc_irq17",
3053 "intc_irq18",
3054 "intc_irq19",
3055 "intc_irq20",
3056 "intc_irq21",
3057 "intc_irq22",
3058 "intc_irq23",
3059 "intc_irq24",
3060 "intc_irq25",
3061 "intc_irq26_0",
3062 "intc_irq26_1",
3063 "intc_irq27_0",
3064 "intc_irq27_1",
3065 "intc_irq28_0",
3066 "intc_irq28_1",
3067 "intc_irq29_0",
3068 "intc_irq29_1",
3069 "intc_irq30_0",
3070 "intc_irq30_1",
3071 "intc_irq31_0",
3072 "intc_irq31_1",
3073};
3074
Laurent Pinchart06c7dd82013-01-03 13:07:05 +01003075static const char * const lcd0_groups[] = {
3076 "lcd0_data8",
3077 "lcd0_data9",
3078 "lcd0_data12",
3079 "lcd0_data16",
3080 "lcd0_data18",
3081 "lcd0_data24_0",
3082 "lcd0_data24_1",
3083 "lcd0_display",
3084 "lcd0_lclk_0",
3085 "lcd0_lclk_1",
3086 "lcd0_sync",
3087 "lcd0_sys",
3088};
3089
3090static const char * const lcd1_groups[] = {
3091 "lcd1_data8",
3092 "lcd1_data9",
3093 "lcd1_data12",
3094 "lcd1_data16",
3095 "lcd1_data18",
3096 "lcd1_data24",
3097 "lcd1_display",
3098 "lcd1_lclk",
3099 "lcd1_sync",
3100 "lcd1_sys",
3101};
3102
Guennadi Liakhovetski8b2810b2013-01-23 17:37:44 +01003103static const char * const mmc0_groups[] = {
3104 "mmc0_data1_0",
3105 "mmc0_data4_0",
3106 "mmc0_data8_0",
3107 "mmc0_ctrl_0",
3108 "mmc0_data1_1",
3109 "mmc0_data4_1",
3110 "mmc0_data8_1",
3111 "mmc0_ctrl_1",
3112};
3113
Laurent Pinchartcdd2c762013-04-18 01:04:30 +02003114static const char * const scifa0_groups[] = {
3115 "scifa0_data",
3116 "scifa0_clk",
3117 "scifa0_ctrl",
3118};
3119
Bastian Hecht8fbfdbb2013-04-17 10:34:01 +00003120static const char * const scifa1_groups[] = {
3121 "scifa1_data",
Laurent Pinchartcdd2c762013-04-18 01:04:30 +02003122 "scifa1_clk",
3123 "scifa1_ctrl",
3124};
3125
3126static const char * const scifa2_groups[] = {
3127 "scifa2_data",
3128 "scifa2_clk_0",
3129 "scifa2_clk_1",
3130 "scifa2_ctrl",
3131};
3132
3133static const char * const scifa3_groups[] = {
3134 "scifa3_data_0",
3135 "scifa3_clk_0",
3136 "scifa3_ctrl_0",
3137 "scifa3_data_1",
3138 "scifa3_clk_1",
3139 "scifa3_ctrl_1",
3140};
3141
3142static const char * const scifa4_groups[] = {
3143 "scifa4_data_0",
3144 "scifa4_data_1",
3145 "scifa4_data_2",
3146 "scifa4_clk_0",
3147 "scifa4_clk_1",
3148};
3149
3150static const char * const scifa5_groups[] = {
3151 "scifa5_data_0",
3152 "scifa5_data_1",
3153 "scifa5_data_2",
3154 "scifa5_clk_0",
3155 "scifa5_clk_1",
3156};
3157
3158static const char * const scifa6_groups[] = {
3159 "scifa6_data",
3160 "scifa6_clk",
3161};
3162
3163static const char * const scifa7_groups[] = {
3164 "scifa7_data",
3165};
3166
3167static const char * const scifb_groups[] = {
3168 "scifb_data_0",
3169 "scifb_clk_0",
3170 "scifb_ctrl_0",
3171 "scifb_data_1",
3172 "scifb_clk_1",
3173 "scifb_ctrl_1",
Bastian Hecht8fbfdbb2013-04-17 10:34:01 +00003174};
3175
Guennadi Liakhovetski8b2810b2013-01-23 17:37:44 +01003176static const char * const sdhi0_groups[] = {
3177 "sdhi0_data1",
3178 "sdhi0_data4",
3179 "sdhi0_ctrl",
3180 "sdhi0_cd",
3181 "sdhi0_wp",
3182};
3183
3184static const char * const sdhi1_groups[] = {
3185 "sdhi1_data1",
3186 "sdhi1_data4",
3187 "sdhi1_ctrl",
3188 "sdhi1_cd",
3189 "sdhi1_wp",
3190};
3191
3192static const char * const sdhi2_groups[] = {
3193 "sdhi2_data1",
3194 "sdhi2_data4",
3195 "sdhi2_ctrl",
3196 "sdhi2_cd_0",
3197 "sdhi2_wp_0",
3198 "sdhi2_cd_1",
3199 "sdhi2_wp_1",
3200};
3201
Laurent Pinchartc2ad27e2013-04-23 16:04:07 +02003202static const char * const tpu0_groups[] = {
3203 "tpu0_to0",
3204 "tpu0_to1",
3205 "tpu0_to2_0",
3206 "tpu0_to2_1",
3207 "tpu0_to3",
3208};
3209
Laurent Pinchart06c7dd82013-01-03 13:07:05 +01003210static const struct sh_pfc_function pinmux_functions[] = {
Laurent Pinchartb7099c42013-04-18 01:04:30 +02003211 SH_PFC_FUNCTION(bsc),
Laurent Pinchart0ec939b2013-04-18 01:04:30 +02003212 SH_PFC_FUNCTION(ceu0),
3213 SH_PFC_FUNCTION(ceu1),
Laurent Pinchart909dd952013-04-18 01:04:30 +02003214 SH_PFC_FUNCTION(fsia),
3215 SH_PFC_FUNCTION(fsib),
Laurent Pinchartbae11d32013-04-18 01:04:30 +02003216 SH_PFC_FUNCTION(gether),
Laurent Pincharta37d6062013-04-18 01:04:30 +02003217 SH_PFC_FUNCTION(hdmi),
Laurent Pinchartd0316962013-04-18 10:54:18 +02003218 SH_PFC_FUNCTION(intc),
Laurent Pinchart06c7dd82013-01-03 13:07:05 +01003219 SH_PFC_FUNCTION(lcd0),
3220 SH_PFC_FUNCTION(lcd1),
Guennadi Liakhovetski8b2810b2013-01-23 17:37:44 +01003221 SH_PFC_FUNCTION(mmc0),
Laurent Pinchartcdd2c762013-04-18 01:04:30 +02003222 SH_PFC_FUNCTION(scifa0),
Bastian Hecht8fbfdbb2013-04-17 10:34:01 +00003223 SH_PFC_FUNCTION(scifa1),
Laurent Pinchartcdd2c762013-04-18 01:04:30 +02003224 SH_PFC_FUNCTION(scifa2),
3225 SH_PFC_FUNCTION(scifa3),
3226 SH_PFC_FUNCTION(scifa4),
3227 SH_PFC_FUNCTION(scifa5),
3228 SH_PFC_FUNCTION(scifa6),
3229 SH_PFC_FUNCTION(scifa7),
3230 SH_PFC_FUNCTION(scifb),
Guennadi Liakhovetski8b2810b2013-01-23 17:37:44 +01003231 SH_PFC_FUNCTION(sdhi0),
3232 SH_PFC_FUNCTION(sdhi1),
3233 SH_PFC_FUNCTION(sdhi2),
Laurent Pinchartc2ad27e2013-04-23 16:04:07 +02003234 SH_PFC_FUNCTION(tpu0),
Laurent Pinchart06c7dd82013-01-03 13:07:05 +01003235};
3236
Laurent Pinchart80da8e02013-04-23 14:24:19 +02003237#undef PORTCR
3238#define PORTCR(nr, reg) \
3239 { \
3240 PINMUX_CFG_REG("PORT" nr "CR", reg, 8, 4) { \
3241 _PCRH(PORT##nr##_IN, 0, 0, PORT##nr##_OUT), \
3242 PORT##nr##_FN0, PORT##nr##_FN1, \
3243 PORT##nr##_FN2, PORT##nr##_FN3, \
3244 PORT##nr##_FN4, PORT##nr##_FN5, \
3245 PORT##nr##_FN6, PORT##nr##_FN7 } \
3246 }
3247
Laurent Pinchartcd3c1be2013-02-16 18:47:05 +01003248static const struct pinmux_cfg_reg pinmux_config_regs[] = {
Laurent Pinchartd5b15212012-12-15 23:51:21 +01003249 PORTCR(0, 0xe6050000), /* PORT0CR */
3250 PORTCR(1, 0xe6050001), /* PORT1CR */
3251 PORTCR(2, 0xe6050002), /* PORT2CR */
3252 PORTCR(3, 0xe6050003), /* PORT3CR */
3253 PORTCR(4, 0xe6050004), /* PORT4CR */
3254 PORTCR(5, 0xe6050005), /* PORT5CR */
3255 PORTCR(6, 0xe6050006), /* PORT6CR */
3256 PORTCR(7, 0xe6050007), /* PORT7CR */
3257 PORTCR(8, 0xe6050008), /* PORT8CR */
3258 PORTCR(9, 0xe6050009), /* PORT9CR */
3259 PORTCR(10, 0xe605000a), /* PORT10CR */
3260 PORTCR(11, 0xe605000b), /* PORT11CR */
3261 PORTCR(12, 0xe605000c), /* PORT12CR */
3262 PORTCR(13, 0xe605000d), /* PORT13CR */
3263 PORTCR(14, 0xe605000e), /* PORT14CR */
3264 PORTCR(15, 0xe605000f), /* PORT15CR */
3265 PORTCR(16, 0xe6050010), /* PORT16CR */
3266 PORTCR(17, 0xe6050011), /* PORT17CR */
3267 PORTCR(18, 0xe6050012), /* PORT18CR */
3268 PORTCR(19, 0xe6050013), /* PORT19CR */
3269 PORTCR(20, 0xe6050014), /* PORT20CR */
3270 PORTCR(21, 0xe6050015), /* PORT21CR */
3271 PORTCR(22, 0xe6050016), /* PORT22CR */
3272 PORTCR(23, 0xe6050017), /* PORT23CR */
3273 PORTCR(24, 0xe6050018), /* PORT24CR */
3274 PORTCR(25, 0xe6050019), /* PORT25CR */
3275 PORTCR(26, 0xe605001a), /* PORT26CR */
3276 PORTCR(27, 0xe605001b), /* PORT27CR */
3277 PORTCR(28, 0xe605001c), /* PORT28CR */
3278 PORTCR(29, 0xe605001d), /* PORT29CR */
3279 PORTCR(30, 0xe605001e), /* PORT30CR */
3280 PORTCR(31, 0xe605001f), /* PORT31CR */
3281 PORTCR(32, 0xe6050020), /* PORT32CR */
3282 PORTCR(33, 0xe6050021), /* PORT33CR */
3283 PORTCR(34, 0xe6050022), /* PORT34CR */
3284 PORTCR(35, 0xe6050023), /* PORT35CR */
3285 PORTCR(36, 0xe6050024), /* PORT36CR */
3286 PORTCR(37, 0xe6050025), /* PORT37CR */
3287 PORTCR(38, 0xe6050026), /* PORT38CR */
3288 PORTCR(39, 0xe6050027), /* PORT39CR */
3289 PORTCR(40, 0xe6050028), /* PORT40CR */
3290 PORTCR(41, 0xe6050029), /* PORT41CR */
3291 PORTCR(42, 0xe605002a), /* PORT42CR */
3292 PORTCR(43, 0xe605002b), /* PORT43CR */
3293 PORTCR(44, 0xe605002c), /* PORT44CR */
3294 PORTCR(45, 0xe605002d), /* PORT45CR */
3295 PORTCR(46, 0xe605002e), /* PORT46CR */
3296 PORTCR(47, 0xe605002f), /* PORT47CR */
3297 PORTCR(48, 0xe6050030), /* PORT48CR */
3298 PORTCR(49, 0xe6050031), /* PORT49CR */
3299 PORTCR(50, 0xe6050032), /* PORT50CR */
3300 PORTCR(51, 0xe6050033), /* PORT51CR */
3301 PORTCR(52, 0xe6050034), /* PORT52CR */
3302 PORTCR(53, 0xe6050035), /* PORT53CR */
3303 PORTCR(54, 0xe6050036), /* PORT54CR */
3304 PORTCR(55, 0xe6050037), /* PORT55CR */
3305 PORTCR(56, 0xe6050038), /* PORT56CR */
3306 PORTCR(57, 0xe6050039), /* PORT57CR */
3307 PORTCR(58, 0xe605003a), /* PORT58CR */
3308 PORTCR(59, 0xe605003b), /* PORT59CR */
3309 PORTCR(60, 0xe605003c), /* PORT60CR */
3310 PORTCR(61, 0xe605003d), /* PORT61CR */
3311 PORTCR(62, 0xe605003e), /* PORT62CR */
3312 PORTCR(63, 0xe605003f), /* PORT63CR */
3313 PORTCR(64, 0xe6050040), /* PORT64CR */
3314 PORTCR(65, 0xe6050041), /* PORT65CR */
3315 PORTCR(66, 0xe6050042), /* PORT66CR */
3316 PORTCR(67, 0xe6050043), /* PORT67CR */
3317 PORTCR(68, 0xe6050044), /* PORT68CR */
3318 PORTCR(69, 0xe6050045), /* PORT69CR */
3319 PORTCR(70, 0xe6050046), /* PORT70CR */
3320 PORTCR(71, 0xe6050047), /* PORT71CR */
3321 PORTCR(72, 0xe6050048), /* PORT72CR */
3322 PORTCR(73, 0xe6050049), /* PORT73CR */
3323 PORTCR(74, 0xe605004a), /* PORT74CR */
3324 PORTCR(75, 0xe605004b), /* PORT75CR */
3325 PORTCR(76, 0xe605004c), /* PORT76CR */
3326 PORTCR(77, 0xe605004d), /* PORT77CR */
3327 PORTCR(78, 0xe605004e), /* PORT78CR */
3328 PORTCR(79, 0xe605004f), /* PORT79CR */
3329 PORTCR(80, 0xe6050050), /* PORT80CR */
3330 PORTCR(81, 0xe6050051), /* PORT81CR */
3331 PORTCR(82, 0xe6050052), /* PORT82CR */
3332 PORTCR(83, 0xe6050053), /* PORT83CR */
3333
3334 PORTCR(84, 0xe6051054), /* PORT84CR */
3335 PORTCR(85, 0xe6051055), /* PORT85CR */
3336 PORTCR(86, 0xe6051056), /* PORT86CR */
3337 PORTCR(87, 0xe6051057), /* PORT87CR */
3338 PORTCR(88, 0xe6051058), /* PORT88CR */
3339 PORTCR(89, 0xe6051059), /* PORT89CR */
3340 PORTCR(90, 0xe605105a), /* PORT90CR */
3341 PORTCR(91, 0xe605105b), /* PORT91CR */
3342 PORTCR(92, 0xe605105c), /* PORT92CR */
3343 PORTCR(93, 0xe605105d), /* PORT93CR */
3344 PORTCR(94, 0xe605105e), /* PORT94CR */
3345 PORTCR(95, 0xe605105f), /* PORT95CR */
3346 PORTCR(96, 0xe6051060), /* PORT96CR */
3347 PORTCR(97, 0xe6051061), /* PORT97CR */
3348 PORTCR(98, 0xe6051062), /* PORT98CR */
3349 PORTCR(99, 0xe6051063), /* PORT99CR */
3350 PORTCR(100, 0xe6051064), /* PORT100CR */
3351 PORTCR(101, 0xe6051065), /* PORT101CR */
3352 PORTCR(102, 0xe6051066), /* PORT102CR */
3353 PORTCR(103, 0xe6051067), /* PORT103CR */
3354 PORTCR(104, 0xe6051068), /* PORT104CR */
3355 PORTCR(105, 0xe6051069), /* PORT105CR */
3356 PORTCR(106, 0xe605106a), /* PORT106CR */
3357 PORTCR(107, 0xe605106b), /* PORT107CR */
3358 PORTCR(108, 0xe605106c), /* PORT108CR */
3359 PORTCR(109, 0xe605106d), /* PORT109CR */
3360 PORTCR(110, 0xe605106e), /* PORT110CR */
3361 PORTCR(111, 0xe605106f), /* PORT111CR */
3362 PORTCR(112, 0xe6051070), /* PORT112CR */
3363 PORTCR(113, 0xe6051071), /* PORT113CR */
3364 PORTCR(114, 0xe6051072), /* PORT114CR */
3365
3366 PORTCR(115, 0xe6052073), /* PORT115CR */
3367 PORTCR(116, 0xe6052074), /* PORT116CR */
3368 PORTCR(117, 0xe6052075), /* PORT117CR */
3369 PORTCR(118, 0xe6052076), /* PORT118CR */
3370 PORTCR(119, 0xe6052077), /* PORT119CR */
3371 PORTCR(120, 0xe6052078), /* PORT120CR */
3372 PORTCR(121, 0xe6052079), /* PORT121CR */
3373 PORTCR(122, 0xe605207a), /* PORT122CR */
3374 PORTCR(123, 0xe605207b), /* PORT123CR */
3375 PORTCR(124, 0xe605207c), /* PORT124CR */
3376 PORTCR(125, 0xe605207d), /* PORT125CR */
3377 PORTCR(126, 0xe605207e), /* PORT126CR */
3378 PORTCR(127, 0xe605207f), /* PORT127CR */
3379 PORTCR(128, 0xe6052080), /* PORT128CR */
3380 PORTCR(129, 0xe6052081), /* PORT129CR */
3381 PORTCR(130, 0xe6052082), /* PORT130CR */
3382 PORTCR(131, 0xe6052083), /* PORT131CR */
3383 PORTCR(132, 0xe6052084), /* PORT132CR */
3384 PORTCR(133, 0xe6052085), /* PORT133CR */
3385 PORTCR(134, 0xe6052086), /* PORT134CR */
3386 PORTCR(135, 0xe6052087), /* PORT135CR */
3387 PORTCR(136, 0xe6052088), /* PORT136CR */
3388 PORTCR(137, 0xe6052089), /* PORT137CR */
3389 PORTCR(138, 0xe605208a), /* PORT138CR */
3390 PORTCR(139, 0xe605208b), /* PORT139CR */
3391 PORTCR(140, 0xe605208c), /* PORT140CR */
3392 PORTCR(141, 0xe605208d), /* PORT141CR */
3393 PORTCR(142, 0xe605208e), /* PORT142CR */
3394 PORTCR(143, 0xe605208f), /* PORT143CR */
3395 PORTCR(144, 0xe6052090), /* PORT144CR */
3396 PORTCR(145, 0xe6052091), /* PORT145CR */
3397 PORTCR(146, 0xe6052092), /* PORT146CR */
3398 PORTCR(147, 0xe6052093), /* PORT147CR */
3399 PORTCR(148, 0xe6052094), /* PORT148CR */
3400 PORTCR(149, 0xe6052095), /* PORT149CR */
3401 PORTCR(150, 0xe6052096), /* PORT150CR */
3402 PORTCR(151, 0xe6052097), /* PORT151CR */
3403 PORTCR(152, 0xe6052098), /* PORT152CR */
3404 PORTCR(153, 0xe6052099), /* PORT153CR */
3405 PORTCR(154, 0xe605209a), /* PORT154CR */
3406 PORTCR(155, 0xe605209b), /* PORT155CR */
3407 PORTCR(156, 0xe605209c), /* PORT156CR */
3408 PORTCR(157, 0xe605209d), /* PORT157CR */
3409 PORTCR(158, 0xe605209e), /* PORT158CR */
3410 PORTCR(159, 0xe605209f), /* PORT159CR */
3411 PORTCR(160, 0xe60520a0), /* PORT160CR */
3412 PORTCR(161, 0xe60520a1), /* PORT161CR */
3413 PORTCR(162, 0xe60520a2), /* PORT162CR */
3414 PORTCR(163, 0xe60520a3), /* PORT163CR */
3415 PORTCR(164, 0xe60520a4), /* PORT164CR */
3416 PORTCR(165, 0xe60520a5), /* PORT165CR */
3417 PORTCR(166, 0xe60520a6), /* PORT166CR */
3418 PORTCR(167, 0xe60520a7), /* PORT167CR */
3419 PORTCR(168, 0xe60520a8), /* PORT168CR */
3420 PORTCR(169, 0xe60520a9), /* PORT169CR */
3421 PORTCR(170, 0xe60520aa), /* PORT170CR */
3422 PORTCR(171, 0xe60520ab), /* PORT171CR */
3423 PORTCR(172, 0xe60520ac), /* PORT172CR */
3424 PORTCR(173, 0xe60520ad), /* PORT173CR */
3425 PORTCR(174, 0xe60520ae), /* PORT174CR */
3426 PORTCR(175, 0xe60520af), /* PORT175CR */
3427 PORTCR(176, 0xe60520b0), /* PORT176CR */
3428 PORTCR(177, 0xe60520b1), /* PORT177CR */
3429 PORTCR(178, 0xe60520b2), /* PORT178CR */
3430 PORTCR(179, 0xe60520b3), /* PORT179CR */
3431 PORTCR(180, 0xe60520b4), /* PORT180CR */
3432 PORTCR(181, 0xe60520b5), /* PORT181CR */
3433 PORTCR(182, 0xe60520b6), /* PORT182CR */
3434 PORTCR(183, 0xe60520b7), /* PORT183CR */
3435 PORTCR(184, 0xe60520b8), /* PORT184CR */
3436 PORTCR(185, 0xe60520b9), /* PORT185CR */
3437 PORTCR(186, 0xe60520ba), /* PORT186CR */
3438 PORTCR(187, 0xe60520bb), /* PORT187CR */
3439 PORTCR(188, 0xe60520bc), /* PORT188CR */
3440 PORTCR(189, 0xe60520bd), /* PORT189CR */
3441 PORTCR(190, 0xe60520be), /* PORT190CR */
3442 PORTCR(191, 0xe60520bf), /* PORT191CR */
3443 PORTCR(192, 0xe60520c0), /* PORT192CR */
3444 PORTCR(193, 0xe60520c1), /* PORT193CR */
3445 PORTCR(194, 0xe60520c2), /* PORT194CR */
3446 PORTCR(195, 0xe60520c3), /* PORT195CR */
3447 PORTCR(196, 0xe60520c4), /* PORT196CR */
3448 PORTCR(197, 0xe60520c5), /* PORT197CR */
3449 PORTCR(198, 0xe60520c6), /* PORT198CR */
3450 PORTCR(199, 0xe60520c7), /* PORT199CR */
3451 PORTCR(200, 0xe60520c8), /* PORT200CR */
3452 PORTCR(201, 0xe60520c9), /* PORT201CR */
3453 PORTCR(202, 0xe60520ca), /* PORT202CR */
3454 PORTCR(203, 0xe60520cb), /* PORT203CR */
3455 PORTCR(204, 0xe60520cc), /* PORT204CR */
3456 PORTCR(205, 0xe60520cd), /* PORT205CR */
3457 PORTCR(206, 0xe60520ce), /* PORT206CR */
3458 PORTCR(207, 0xe60520cf), /* PORT207CR */
3459 PORTCR(208, 0xe60520d0), /* PORT208CR */
3460 PORTCR(209, 0xe60520d1), /* PORT209CR */
3461
3462 PORTCR(210, 0xe60530d2), /* PORT210CR */
3463 PORTCR(211, 0xe60530d3), /* PORT211CR */
3464
3465 { PINMUX_CFG_REG("MSEL1CR", 0xe605800c, 32, 1) {
3466 MSEL1CR_31_0, MSEL1CR_31_1,
3467 MSEL1CR_30_0, MSEL1CR_30_1,
3468 MSEL1CR_29_0, MSEL1CR_29_1,
3469 MSEL1CR_28_0, MSEL1CR_28_1,
3470 MSEL1CR_27_0, MSEL1CR_27_1,
3471 MSEL1CR_26_0, MSEL1CR_26_1,
3472 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3473 0, 0, 0, 0, 0, 0, 0, 0,
3474 MSEL1CR_16_0, MSEL1CR_16_1,
3475 MSEL1CR_15_0, MSEL1CR_15_1,
3476 MSEL1CR_14_0, MSEL1CR_14_1,
3477 MSEL1CR_13_0, MSEL1CR_13_1,
3478 MSEL1CR_12_0, MSEL1CR_12_1,
3479 0, 0, 0, 0,
3480 MSEL1CR_9_0, MSEL1CR_9_1,
3481 0, 0,
3482 MSEL1CR_7_0, MSEL1CR_7_1,
3483 MSEL1CR_6_0, MSEL1CR_6_1,
3484 MSEL1CR_5_0, MSEL1CR_5_1,
3485 MSEL1CR_4_0, MSEL1CR_4_1,
3486 MSEL1CR_3_0, MSEL1CR_3_1,
3487 MSEL1CR_2_0, MSEL1CR_2_1,
3488 0, 0,
3489 MSEL1CR_0_0, MSEL1CR_0_1,
3490 }
3491 },
3492 { PINMUX_CFG_REG("MSEL3CR", 0xE6058020, 32, 1) {
3493 0, 0, 0, 0, 0, 0, 0, 0,
3494 0, 0, 0, 0, 0, 0, 0, 0,
3495 0, 0, 0, 0, 0, 0, 0, 0,
3496 0, 0, 0, 0, 0, 0, 0, 0,
3497 MSEL3CR_15_0, MSEL3CR_15_1,
3498 0, 0, 0, 0, 0, 0, 0, 0,
3499 0, 0, 0, 0, 0, 0, 0, 0,
3500 MSEL3CR_6_0, MSEL3CR_6_1,
3501 0, 0, 0, 0, 0, 0, 0, 0,
3502 0, 0, 0, 0,
3503 }
3504 },
3505 { PINMUX_CFG_REG("MSEL4CR", 0xE6058024, 32, 1) {
3506 0, 0, 0, 0, 0, 0, 0, 0,
3507 0, 0, 0, 0, 0, 0, 0, 0,
3508 0, 0, 0, 0, 0, 0, 0, 0,
3509 MSEL4CR_19_0, MSEL4CR_19_1,
3510 MSEL4CR_18_0, MSEL4CR_18_1,
3511 0, 0, 0, 0,
3512 MSEL4CR_15_0, MSEL4CR_15_1,
3513 0, 0, 0, 0, 0, 0, 0, 0,
3514 MSEL4CR_10_0, MSEL4CR_10_1,
3515 0, 0, 0, 0, 0, 0,
3516 MSEL4CR_6_0, MSEL4CR_6_1,
3517 0, 0,
3518 MSEL4CR_4_0, MSEL4CR_4_1,
3519 0, 0, 0, 0,
3520 MSEL4CR_1_0, MSEL4CR_1_1,
3521 0, 0,
3522 }
3523 },
3524 { PINMUX_CFG_REG("MSEL5CR", 0xE6058028, 32, 1) {
3525 MSEL5CR_31_0, MSEL5CR_31_1,
3526 MSEL5CR_30_0, MSEL5CR_30_1,
3527 MSEL5CR_29_0, MSEL5CR_29_1,
3528 0, 0,
3529 MSEL5CR_27_0, MSEL5CR_27_1,
3530 0, 0,
3531 MSEL5CR_25_0, MSEL5CR_25_1,
3532 0, 0,
3533 MSEL5CR_23_0, MSEL5CR_23_1,
3534 0, 0,
3535 MSEL5CR_21_0, MSEL5CR_21_1,
3536 0, 0,
3537 MSEL5CR_19_0, MSEL5CR_19_1,
3538 0, 0,
3539 MSEL5CR_17_0, MSEL5CR_17_1,
3540 0, 0,
3541 MSEL5CR_15_0, MSEL5CR_15_1,
3542 MSEL5CR_14_0, MSEL5CR_14_1,
3543 MSEL5CR_13_0, MSEL5CR_13_1,
3544 MSEL5CR_12_0, MSEL5CR_12_1,
3545 MSEL5CR_11_0, MSEL5CR_11_1,
3546 MSEL5CR_10_0, MSEL5CR_10_1,
3547 0, 0,
3548 MSEL5CR_8_0, MSEL5CR_8_1,
3549 MSEL5CR_7_0, MSEL5CR_7_1,
3550 MSEL5CR_6_0, MSEL5CR_6_1,
3551 MSEL5CR_5_0, MSEL5CR_5_1,
3552 MSEL5CR_4_0, MSEL5CR_4_1,
3553 MSEL5CR_3_0, MSEL5CR_3_1,
3554 MSEL5CR_2_0, MSEL5CR_2_1,
3555 0, 0,
3556 MSEL5CR_0_0, MSEL5CR_0_1,
3557 }
3558 },
3559 { },
3560};
3561
Laurent Pinchartcd3c1be2013-02-16 18:47:05 +01003562static const struct pinmux_data_reg pinmux_data_regs[] = {
Laurent Pinchartd5b15212012-12-15 23:51:21 +01003563 { PINMUX_DATA_REG("PORTL031_000DR", 0xe6054800, 32) {
3564 PORT31_DATA, PORT30_DATA, PORT29_DATA, PORT28_DATA,
3565 PORT27_DATA, PORT26_DATA, PORT25_DATA, PORT24_DATA,
3566 PORT23_DATA, PORT22_DATA, PORT21_DATA, PORT20_DATA,
3567 PORT19_DATA, PORT18_DATA, PORT17_DATA, PORT16_DATA,
3568 PORT15_DATA, PORT14_DATA, PORT13_DATA, PORT12_DATA,
3569 PORT11_DATA, PORT10_DATA, PORT9_DATA, PORT8_DATA,
3570 PORT7_DATA, PORT6_DATA, PORT5_DATA, PORT4_DATA,
3571 PORT3_DATA, PORT2_DATA, PORT1_DATA, PORT0_DATA }
3572 },
3573 { PINMUX_DATA_REG("PORTL063_032DR", 0xe6054804, 32) {
3574 PORT63_DATA, PORT62_DATA, PORT61_DATA, PORT60_DATA,
3575 PORT59_DATA, PORT58_DATA, PORT57_DATA, PORT56_DATA,
3576 PORT55_DATA, PORT54_DATA, PORT53_DATA, PORT52_DATA,
3577 PORT51_DATA, PORT50_DATA, PORT49_DATA, PORT48_DATA,
3578 PORT47_DATA, PORT46_DATA, PORT45_DATA, PORT44_DATA,
3579 PORT43_DATA, PORT42_DATA, PORT41_DATA, PORT40_DATA,
3580 PORT39_DATA, PORT38_DATA, PORT37_DATA, PORT36_DATA,
3581 PORT35_DATA, PORT34_DATA, PORT33_DATA, PORT32_DATA }
3582 },
3583 { PINMUX_DATA_REG("PORTL095_064DR", 0xe6054808, 32) {
3584 0, 0, 0, 0,
3585 0, 0, 0, 0,
3586 0, 0, 0, 0,
3587 PORT83_DATA, PORT82_DATA, PORT81_DATA, PORT80_DATA,
3588 PORT79_DATA, PORT78_DATA, PORT77_DATA, PORT76_DATA,
3589 PORT75_DATA, PORT74_DATA, PORT73_DATA, PORT72_DATA,
3590 PORT71_DATA, PORT70_DATA, PORT69_DATA, PORT68_DATA,
3591 PORT67_DATA, PORT66_DATA, PORT65_DATA, PORT64_DATA }
3592 },
3593 { PINMUX_DATA_REG("PORTD095_064DR", 0xe6055808, 32) {
3594 PORT95_DATA, PORT94_DATA, PORT93_DATA, PORT92_DATA,
3595 PORT91_DATA, PORT90_DATA, PORT89_DATA, PORT88_DATA,
3596 PORT87_DATA, PORT86_DATA, PORT85_DATA, PORT84_DATA,
3597 0, 0, 0, 0,
3598 0, 0, 0, 0,
3599 0, 0, 0, 0,
3600 0, 0, 0, 0,
3601 0, 0, 0, 0 }
3602 },
3603 { PINMUX_DATA_REG("PORTD127_096DR", 0xe605580c, 32) {
3604 0, 0, 0, 0,
3605 0, 0, 0, 0,
3606 0, 0, 0, 0,
3607 0, PORT114_DATA, PORT113_DATA, PORT112_DATA,
3608 PORT111_DATA, PORT110_DATA, PORT109_DATA, PORT108_DATA,
3609 PORT107_DATA, PORT106_DATA, PORT105_DATA, PORT104_DATA,
3610 PORT103_DATA, PORT102_DATA, PORT101_DATA, PORT100_DATA,
3611 PORT99_DATA, PORT98_DATA, PORT97_DATA, PORT96_DATA }
3612 },
3613 { PINMUX_DATA_REG("PORTR127_096DR", 0xe605680C, 32) {
3614 PORT127_DATA, PORT126_DATA, PORT125_DATA, PORT124_DATA,
3615 PORT123_DATA, PORT122_DATA, PORT121_DATA, PORT120_DATA,
3616 PORT119_DATA, PORT118_DATA, PORT117_DATA, PORT116_DATA,
3617 PORT115_DATA, 0, 0, 0,
3618 0, 0, 0, 0,
3619 0, 0, 0, 0,
3620 0, 0, 0, 0,
3621 0, 0, 0, 0 }
3622 },
3623 { PINMUX_DATA_REG("PORTR159_128DR", 0xe6056810, 32) {
3624 PORT159_DATA, PORT158_DATA, PORT157_DATA, PORT156_DATA,
3625 PORT155_DATA, PORT154_DATA, PORT153_DATA, PORT152_DATA,
3626 PORT151_DATA, PORT150_DATA, PORT149_DATA, PORT148_DATA,
3627 PORT147_DATA, PORT146_DATA, PORT145_DATA, PORT144_DATA,
3628 PORT143_DATA, PORT142_DATA, PORT141_DATA, PORT140_DATA,
3629 PORT139_DATA, PORT138_DATA, PORT137_DATA, PORT136_DATA,
3630 PORT135_DATA, PORT134_DATA, PORT133_DATA, PORT132_DATA,
3631 PORT131_DATA, PORT130_DATA, PORT129_DATA, PORT128_DATA }
3632 },
3633 { PINMUX_DATA_REG("PORTR191_160DR", 0xe6056814, 32) {
3634 PORT191_DATA, PORT190_DATA, PORT189_DATA, PORT188_DATA,
3635 PORT187_DATA, PORT186_DATA, PORT185_DATA, PORT184_DATA,
3636 PORT183_DATA, PORT182_DATA, PORT181_DATA, PORT180_DATA,
3637 PORT179_DATA, PORT178_DATA, PORT177_DATA, PORT176_DATA,
3638 PORT175_DATA, PORT174_DATA, PORT173_DATA, PORT172_DATA,
3639 PORT171_DATA, PORT170_DATA, PORT169_DATA, PORT168_DATA,
3640 PORT167_DATA, PORT166_DATA, PORT165_DATA, PORT164_DATA,
3641 PORT163_DATA, PORT162_DATA, PORT161_DATA, PORT160_DATA }
3642 },
3643 { PINMUX_DATA_REG("PORTR223_192DR", 0xe6056818, 32) {
3644 0, 0, 0, 0,
3645 0, 0, 0, 0,
3646 0, 0, 0, 0,
3647 0, 0, PORT209_DATA, PORT208_DATA,
3648 PORT207_DATA, PORT206_DATA, PORT205_DATA, PORT204_DATA,
3649 PORT203_DATA, PORT202_DATA, PORT201_DATA, PORT200_DATA,
3650 PORT199_DATA, PORT198_DATA, PORT197_DATA, PORT196_DATA,
3651 PORT195_DATA, PORT194_DATA, PORT193_DATA, PORT192_DATA }
3652 },
3653 { PINMUX_DATA_REG("PORTU223_192DR", 0xe6057818, 32) {
3654 0, 0, 0, 0,
3655 0, 0, 0, 0,
3656 0, 0, 0, 0,
3657 PORT211_DATA, PORT210_DATA, 0, 0,
3658 0, 0, 0, 0,
3659 0, 0, 0, 0,
3660 0, 0, 0, 0,
3661 0, 0, 0, 0 }
3662 },
3663 { },
3664};
3665
Laurent Pinchartcd3c1be2013-02-16 18:47:05 +01003666static const struct pinmux_irq pinmux_irqs[] = {
Laurent Pinchart7d568452013-04-23 00:36:40 +02003667 PINMUX_IRQ(irq_pin(0), 2, 13), /* IRQ0A */
3668 PINMUX_IRQ(irq_pin(1), 20), /* IRQ1A */
3669 PINMUX_IRQ(irq_pin(2), 11, 12), /* IRQ2A */
3670 PINMUX_IRQ(irq_pin(3), 10, 14), /* IRQ3A */
3671 PINMUX_IRQ(irq_pin(4), 15, 172), /* IRQ4A */
3672 PINMUX_IRQ(irq_pin(5), 0, 1), /* IRQ5A */
3673 PINMUX_IRQ(irq_pin(6), 121, 173), /* IRQ6A */
3674 PINMUX_IRQ(irq_pin(7), 120, 209), /* IRQ7A */
3675 PINMUX_IRQ(irq_pin(8), 119), /* IRQ8A */
3676 PINMUX_IRQ(irq_pin(9), 118, 210), /* IRQ9A */
3677 PINMUX_IRQ(irq_pin(10), 19), /* IRQ10A */
3678 PINMUX_IRQ(irq_pin(11), 104), /* IRQ11A */
3679 PINMUX_IRQ(irq_pin(12), 42, 97), /* IRQ12A */
3680 PINMUX_IRQ(irq_pin(13), 64, 98), /* IRQ13A */
3681 PINMUX_IRQ(irq_pin(14), 63, 99), /* IRQ14A */
3682 PINMUX_IRQ(irq_pin(15), 62, 100), /* IRQ15A */
3683 PINMUX_IRQ(irq_pin(16), 68, 211), /* IRQ16A */
3684 PINMUX_IRQ(irq_pin(17), 69), /* IRQ17A */
3685 PINMUX_IRQ(irq_pin(18), 70), /* IRQ18A */
3686 PINMUX_IRQ(irq_pin(19), 71), /* IRQ19A */
3687 PINMUX_IRQ(irq_pin(20), 67), /* IRQ20A */
3688 PINMUX_IRQ(irq_pin(21), 202), /* IRQ21A */
3689 PINMUX_IRQ(irq_pin(22), 95), /* IRQ22A */
3690 PINMUX_IRQ(irq_pin(23), 96), /* IRQ23A */
3691 PINMUX_IRQ(irq_pin(24), 180), /* IRQ24A */
3692 PINMUX_IRQ(irq_pin(25), 38), /* IRQ25A */
3693 PINMUX_IRQ(irq_pin(26), 58, 81), /* IRQ26A */
3694 PINMUX_IRQ(irq_pin(27), 57, 168), /* IRQ27A */
3695 PINMUX_IRQ(irq_pin(28), 56, 169), /* IRQ28A */
3696 PINMUX_IRQ(irq_pin(29), 50, 170), /* IRQ29A */
3697 PINMUX_IRQ(irq_pin(30), 49, 171), /* IRQ30A */
3698 PINMUX_IRQ(irq_pin(31), 41, 167), /* IRQ31A */
Laurent Pinchartd5b15212012-12-15 23:51:21 +01003699};
3700
Laurent Pinchart80da8e02013-04-23 14:24:19 +02003701#define PORTnCR_PULMD_OFF (0 << 6)
3702#define PORTnCR_PULMD_DOWN (2 << 6)
3703#define PORTnCR_PULMD_UP (3 << 6)
3704#define PORTnCR_PULMD_MASK (3 << 6)
3705
3706struct r8a7740_portcr_group {
3707 unsigned int end_pin;
3708 unsigned int offset;
3709};
3710
3711static const struct r8a7740_portcr_group r8a7740_portcr_offsets[] = {
3712 { 83, 0x0000 }, { 114, 0x1000 }, { 209, 0x2000 }, { 211, 0x3000 },
3713};
3714
3715static void __iomem *r8a7740_pinmux_portcr(struct sh_pfc *pfc, unsigned int pin)
3716{
3717 unsigned int i;
3718
3719 for (i = 0; i < ARRAY_SIZE(r8a7740_portcr_offsets); ++i) {
3720 const struct r8a7740_portcr_group *group =
3721 &r8a7740_portcr_offsets[i];
3722
3723 if (i <= group->end_pin)
3724 return pfc->window->virt + group->offset + pin;
3725 }
3726
3727 return NULL;
3728}
3729
3730static unsigned int r8a7740_pinmux_get_bias(struct sh_pfc *pfc, unsigned int pin)
3731{
3732 void __iomem *addr = r8a7740_pinmux_portcr(pfc, pin);
3733 u32 value = ioread8(addr) & PORTnCR_PULMD_MASK;
3734
3735 switch (value) {
3736 case PORTnCR_PULMD_UP:
3737 return PIN_CONFIG_BIAS_PULL_UP;
3738 case PORTnCR_PULMD_DOWN:
3739 return PIN_CONFIG_BIAS_PULL_DOWN;
3740 case PORTnCR_PULMD_OFF:
3741 default:
3742 return PIN_CONFIG_BIAS_DISABLE;
3743 }
3744}
3745
3746static void r8a7740_pinmux_set_bias(struct sh_pfc *pfc, unsigned int pin,
3747 unsigned int bias)
3748{
3749 void __iomem *addr = r8a7740_pinmux_portcr(pfc, pin);
3750 u32 value = ioread8(addr) & ~PORTnCR_PULMD_MASK;
3751
3752 switch (bias) {
3753 case PIN_CONFIG_BIAS_PULL_UP:
3754 value |= PORTnCR_PULMD_UP;
3755 break;
3756 case PIN_CONFIG_BIAS_PULL_DOWN:
3757 value |= PORTnCR_PULMD_DOWN;
3758 break;
3759 }
3760
3761 iowrite8(value, addr);
3762}
3763
3764static const struct sh_pfc_soc_operations r8a7740_pinmux_ops = {
3765 .get_bias = r8a7740_pinmux_get_bias,
3766 .set_bias = r8a7740_pinmux_set_bias,
3767};
3768
Laurent Pinchartcd3c1be2013-02-16 18:47:05 +01003769const struct sh_pfc_soc_info r8a7740_pinmux_info = {
Laurent Pinchartd5b15212012-12-15 23:51:21 +01003770 .name = "r8a7740_pfc",
Laurent Pinchart80da8e02013-04-23 14:24:19 +02003771 .ops = &r8a7740_pinmux_ops,
3772
Laurent Pinchartd5b15212012-12-15 23:51:21 +01003773 .input = { PINMUX_INPUT_BEGIN,
3774 PINMUX_INPUT_END },
Laurent Pinchartd5b15212012-12-15 23:51:21 +01003775 .output = { PINMUX_OUTPUT_BEGIN,
3776 PINMUX_OUTPUT_END },
Laurent Pinchartd5b15212012-12-15 23:51:21 +01003777 .function = { PINMUX_FUNCTION_BEGIN,
3778 PINMUX_FUNCTION_END },
3779
Laurent Pincharta373ed02012-11-29 13:24:07 +01003780 .pins = pinmux_pins,
3781 .nr_pins = ARRAY_SIZE(pinmux_pins),
Laurent Pinchart06c7dd82013-01-03 13:07:05 +01003782 .groups = pinmux_groups,
3783 .nr_groups = ARRAY_SIZE(pinmux_groups),
3784 .functions = pinmux_functions,
3785 .nr_functions = ARRAY_SIZE(pinmux_functions),
3786
Laurent Pinchartd5b15212012-12-15 23:51:21 +01003787 .cfg_regs = pinmux_config_regs,
3788 .data_regs = pinmux_data_regs,
3789
3790 .gpio_data = pinmux_data,
3791 .gpio_data_size = ARRAY_SIZE(pinmux_data),
3792
3793 .gpio_irq = pinmux_irqs,
3794 .gpio_irq_size = ARRAY_SIZE(pinmux_irqs),
3795};