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