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