blob: 13bf97bc3043634d419e8d6d8b3ef00612d77113 [file] [log] [blame]
Tom Rini83d290c2018-05-06 17:58:06 -04001// SPDX-License-Identifier: GPL-2.0
Nobuhiro Iwamatsufafcfc52014-06-24 17:10:02 +09002/*
3 * arch/arm/cpu/armv7/rmobile/pfc-r8a7794.c
4 * This file is r8a7794 processor support - PFC hardware block.
5 *
6 * Copyright (C) 2014 Renesas Electronics Corporation
Nobuhiro Iwamatsufafcfc52014-06-24 17:10:02 +09007 */
8
9#include <common.h>
10#include <sh_pfc.h>
11#include <asm/gpio.h>
12
13#define CPU_32_PORT(fn, pfx, sfx) \
14 PORT_10(fn, pfx, sfx), PORT_10(fn, pfx##1, sfx), \
15 PORT_10(fn, pfx##2, sfx), PORT_1(fn, pfx##30, sfx), \
16 PORT_1(fn, pfx##31, sfx)
17
18#define CPU_26_PORT(fn, pfx, sfx) \
19 PORT_10(fn, pfx, sfx), PORT_10(fn, pfx##1, sfx), \
20 PORT_1(fn, pfx##20, sfx), PORT_1(fn, pfx##21, sfx), \
21 PORT_1(fn, pfx##22, sfx), PORT_1(fn, pfx##23, sfx), \
22 PORT_1(fn, pfx##24, sfx), PORT_1(fn, pfx##25, sfx)
23
24#define CPU_28_PORT(fn, pfx, sfx) \
25 PORT_10(fn, pfx, sfx), PORT_10(fn, pfx##1, sfx), \
26 PORT_1(fn, pfx##20, sfx), PORT_1(fn, pfx##21, sfx), \
27 PORT_1(fn, pfx##22, sfx), PORT_1(fn, pfx##23, sfx), \
28 PORT_1(fn, pfx##24, sfx), PORT_1(fn, pfx##25, sfx), \
29 PORT_1(fn, pfx##26, sfx), PORT_1(fn, pfx##27, sfx)
30
31/*
32 * GP_0_0_DATA -> GP_6_25_DATA
33 * (except for GP1[26],GP1[27],GP1[28],GP1[29]),GP1[30],GP1[31]
34 * GP5[28],GP5[29]),GP5[30],GP5[31],GP6[26],GP6[27],GP6[28],
35 * GP6[29]),GP6[30],GP6[31])
36 */
37#define CPU_ALL_PORT(fn, pfx, sfx) \
38 CPU_32_PORT(fn, pfx##_0_, sfx), \
39 CPU_26_PORT(fn, pfx##_1_, sfx), \
40 CPU_32_PORT(fn, pfx##_2_, sfx), \
41 CPU_32_PORT(fn, pfx##_3_, sfx), \
42 CPU_32_PORT(fn, pfx##_4_, sfx), \
43 CPU_28_PORT(fn, pfx##_5_, sfx), \
44 CPU_26_PORT(fn, pfx##_6_, sfx)
45
46#define _GP_GPIO(pfx, sfx) PINMUX_GPIO(GPIO_GP##pfx, GP##pfx##_DATA)
47#define _GP_DATA(pfx, sfx) PINMUX_DATA(GP##pfx##_DATA, GP##pfx##_FN, \
48 GP##pfx##_IN, GP##pfx##_OUT)
49
50#define _GP_INOUTSEL(pfx, sfx) GP##pfx##_IN, GP##pfx##_OUT
51#define _GP_INDT(pfx, sfx) GP##pfx##_DATA
52
53#define GP_ALL(str) CPU_ALL_PORT(_PORT_ALL, GP, str)
54#define PINMUX_GPIO_GP_ALL() CPU_ALL_PORT(_GP_GPIO, , unused)
55#define PINMUX_DATA_GP_ALL() CPU_ALL_PORT(_GP_DATA, , unused)
56
57
58#define PORT_10_REV(fn, pfx, sfx) \
59 PORT_1(fn, pfx##9, sfx), PORT_1(fn, pfx##8, sfx), \
60 PORT_1(fn, pfx##7, sfx), PORT_1(fn, pfx##6, sfx), \
61 PORT_1(fn, pfx##5, sfx), PORT_1(fn, pfx##4, sfx), \
62 PORT_1(fn, pfx##3, sfx), PORT_1(fn, pfx##2, sfx), \
63 PORT_1(fn, pfx##1, sfx), PORT_1(fn, pfx##0, sfx)
64
65#define CPU_32_PORT_REV(fn, pfx, sfx) \
66 PORT_1(fn, pfx##31, sfx), PORT_1(fn, pfx##30, sfx), \
67 PORT_10_REV(fn, pfx##2, sfx), PORT_10_REV(fn, pfx##1, sfx), \
68 PORT_10_REV(fn, pfx, sfx)
69
70#define GP_INOUTSEL(bank) CPU_32_PORT_REV(_GP_INOUTSEL, _##bank##_, unused)
71#define GP_INDT(bank) CPU_32_PORT_REV(_GP_INDT, _##bank##_, unused)
72
73#define PINMUX_IPSR_DATA(ipsr, fn) PINMUX_DATA(fn##_MARK, FN_##ipsr, FN_##fn)
74#define PINMUX_IPSR_MODSEL_DATA(ipsr, fn, ms) PINMUX_DATA(fn##_MARK, FN_##ms, \
75 FN_##ipsr, FN_##fn)
76
77enum {
78 PINMUX_RESERVED = 0,
79
80 PINMUX_DATA_BEGIN,
81 GP_ALL(DATA),
82 PINMUX_DATA_END,
83
84 PINMUX_INPUT_BEGIN,
85 GP_ALL(IN),
86 PINMUX_INPUT_END,
87
88 PINMUX_OUTPUT_BEGIN,
89 GP_ALL(OUT),
90 PINMUX_OUTPUT_END,
91
92 PINMUX_FUNCTION_BEGIN,
93 GP_ALL(FN),
94
95 /* GPSR0 */
96 FN_IP0_23_22, FN_IP0_24, FN_IP0_25, FN_IP0_27_26, FN_IP0_29_28,
97 FN_IP0_31_30, FN_IP1_1_0, FN_IP1_3_2, FN_IP1_5_4, FN_IP1_7_6,
98 FN_IP1_10_8, FN_IP1_12_11, FN_IP1_14_13, FN_IP1_17_15, FN_IP1_19_18,
99 FN_IP1_21_20, FN_IP1_23_22, FN_IP1_24, FN_A2, FN_IP1_26, FN_IP1_27,
100 FN_IP1_29_28, FN_IP1_31_30, FN_IP2_1_0, FN_IP2_3_2, FN_IP2_5_4,
101 FN_IP2_7_6, FN_IP2_9_8, FN_IP2_11_10, FN_IP2_13_12, FN_IP2_15_14,
102 FN_IP2_17_16,
103
104 /* GPSR1 */
105 FN_IP2_20_18, FN_IP2_23_21, FN_IP2_26_24, FN_IP2_29_27, FN_IP2_31_30,
106 FN_IP3_1_0, FN_IP3_3_2, FN_IP3_5_4, FN_IP3_7_6, FN_IP3_9_8, FN_IP3_10,
107 FN_IP3_11, FN_IP3_12, FN_IP3_14_13, FN_IP3_17_15, FN_IP3_20_18,
108 FN_IP3_23_21, FN_IP3_26_24, FN_IP3_29_27, FN_IP3_30, FN_IP3_31,
109 FN_WE0_N, FN_WE1_N, FN_IP4_1_0 , FN_IP7_31, FN_DACK0,
110
111 /* GPSR2 */
112 FN_IP4_4_2, FN_IP4_7_5, FN_IP4_9_8, FN_IP4_11_10, FN_IP4_13_12,
113 FN_IP4_15_14, FN_IP4_17_16, FN_IP4_19_18, FN_IP4_22_20, FN_IP4_25_23,
114 FN_IP4_27_26, FN_IP4_29_28, FN_IP4_31_30, FN_IP5_1_0, FN_IP5_3_2,
115 FN_IP5_5_4, FN_IP5_8_6, FN_IP5_11_9, FN_IP5_13_12, FN_IP5_15_14,
116 FN_IP5_17_16, FN_IP5_19_18, FN_IP5_21_20, FN_IP5_23_22, FN_IP5_25_24,
117 FN_IP5_27_26, FN_IP5_29_28, FN_IP5_31_30, FN_IP6_1_0, FN_IP6_3_2,
118 FN_IP6_5_4, FN_IP6_7_6,
119
120 /* GPSR3 */
121 FN_IP6_8, FN_IP6_9, FN_IP6_10, FN_IP6_11, FN_IP6_12, FN_IP6_13,
122 FN_IP6_14, FN_IP6_15, FN_IP6_16, FN_IP6_19_17, FN_IP6_22_20,
123 FN_IP6_25_23, FN_IP6_28_26, FN_IP6_31_29, FN_IP7_2_0, FN_IP7_5_3,
124 FN_IP7_8_6, FN_IP7_11_9, FN_IP7_14_12, FN_IP7_17_15, FN_IP7_20_18,
125 FN_IP7_23_21, FN_IP7_26_24, FN_IP7_29_27, FN_IP8_2_0, FN_IP8_5_3,
126 FN_IP8_8_6, FN_IP8_11_9, FN_IP8_14_12, FN_IP8_16_15, FN_IP8_19_17,
127 FN_IP8_22_20,
128
129 /* GPSR4 */
130 FN_IP8_25_23, FN_IP8_28_26, FN_IP8_31_29, FN_IP9_2_0, FN_IP9_5_3,
131 FN_IP9_8_6, FN_IP9_11_9, FN_IP9_14_12, FN_IP9_16_15, FN_IP9_18_17,
132 FN_IP9_21_19, FN_IP9_24_22, FN_IP9_27_25, FN_IP9_30_28, FN_IP10_2_0,
133 FN_IP10_5_3, FN_IP10_8_6, FN_IP10_11_9, FN_IP10_14_12, FN_IP10_17_15,
134 FN_IP10_20_18, FN_IP10_23_21, FN_IP10_26_24, FN_IP10_29_27,
135 FN_IP10_31_30, FN_IP11_2_0, FN_IP11_5_3, FN_IP11_7_6, FN_IP11_10_8,
136 FN_IP11_13_11, FN_IP11_15_14, FN_IP11_17_16,
137
138 /* GPSR5 */
139 FN_IP11_20_18, FN_IP11_23_21, FN_IP11_26_24, FN_IP11_29_27, FN_IP12_2_0,
140 FN_IP12_5_3, FN_IP12_8_6, FN_IP12_10_9, FN_IP12_12_11, FN_IP12_14_13,
141 FN_IP12_17_15, FN_IP12_20_18, FN_IP12_23_21, FN_IP12_26_24,
142 FN_IP12_29_27, FN_IP13_2_0, FN_IP13_5_3, FN_IP13_8_6, FN_IP13_11_9,
143 FN_IP13_14_12, FN_IP13_17_15, FN_IP13_20_18, FN_IP13_23_21,
144 FN_IP13_26_24, FN_USB0_PWEN, FN_USB0_OVC, FN_USB1_PWEN, FN_USB1_OVC,
145
146 /* GPSR6 */
147 FN_SD0_CLK, FN_SD0_CMD, FN_SD0_DATA0, FN_SD0_DATA1, FN_SD0_DATA2,
148 FN_SD0_DATA3, FN_SD0_CD, FN_SD0_WP, FN_SD1_CLK, FN_SD1_CMD,
149 FN_SD1_DATA0, FN_SD1_DATA1, FN_SD1_DATA2, FN_SD1_DATA3, FN_IP0_0,
150 FN_IP0_9_8, FN_IP0_10, FN_IP0_11, FN_IP0_12, FN_IP0_13, FN_IP0_14,
151 FN_IP0_15, FN_IP0_16, FN_IP0_17, FN_IP0_19_18, FN_IP0_21_20,
152
Nobuhiro Iwamatsu25f96132014-11-19 14:26:33 +0900153 /* IPSR0 */
154 FN_SD1_CD, FN_CAN0_RX, FN_SD1_WP, FN_IRQ7, FN_CAN0_TX, FN_MMC_CLK,
155 FN_SD2_CLK, FN_MMC_CMD, FN_SD2_CMD, FN_MMC_D0, FN_SD2_DATA0, FN_MMC_D1,
156 FN_SD2_DATA1, FN_MMC_D2, FN_SD2_DATA2, FN_MMC_D3, FN_SD2_DATA3,
157 FN_MMC_D4, FN_SD2_CD, FN_MMC_D5, FN_SD2_WP, FN_MMC_D6, FN_SCIF0_RXD,
158 FN_I2C2_SCL_B, FN_CAN1_RX, FN_MMC_D7, FN_SCIF0_TXD, FN_I2C2_SDA_B,
159 FN_CAN1_TX, FN_D0, FN_SCIFA3_SCK_B, FN_IRQ4, FN_D1, FN_SCIFA3_RXD_B,
160 FN_D2, FN_SCIFA3_TXD_B, FN_D3, FN_I2C3_SCL_B, FN_SCIF5_RXD_B, FN_D4,
161 FN_I2C3_SDA_B, FN_SCIF5_TXD_B, FN_D5, FN_SCIF4_RXD_B, FN_I2C0_SCL_D,
162
Nobuhiro Iwamatsufafcfc52014-06-24 17:10:02 +0900163 /*
Nobuhiro Iwamatsu25f96132014-11-19 14:26:33 +0900164 * From IPSR1 to IPSR5 have been removed because they does not use.
Nobuhiro Iwamatsufafcfc52014-06-24 17:10:02 +0900165 */
166
167 /* IPSR6 */
168 FN_DU0_EXVSYNC_DU0_VSYNC, FN_QSTB_QHE, FN_CC50_STATE28,
169 FN_DU0_EXODDF_DU0_ODDF_DISP_CDE, FN_QCPV_QDE, FN_CC50_STATE29,
170 FN_DU0_DISP, FN_QPOLA, FN_CC50_STATE30, FN_DU0_CDE, FN_QPOLB,
171 FN_CC50_STATE31, FN_VI0_CLK, FN_AVB_RX_CLK, FN_VI0_DATA0_VI0_B0,
172 FN_AVB_RX_DV, FN_VI0_DATA1_VI0_B1, FN_AVB_RXD0, FN_VI0_DATA2_VI0_B2,
173 FN_AVB_RXD1, FN_VI0_DATA3_VI0_B3, FN_AVB_RXD2, FN_VI0_DATA4_VI0_B4,
174 FN_AVB_RXD3, FN_VI0_DATA5_VI0_B5, FN_AVB_RXD4, FN_VI0_DATA6_VI0_B6,
175 FN_AVB_RXD5, FN_VI0_DATA7_VI0_B7, FN_AVB_RXD6, FN_VI0_CLKENB,
176 FN_I2C3_SCL, FN_SCIFA5_RXD_C, FN_IETX_C, FN_AVB_RXD7, FN_VI0_FIELD,
177 FN_I2C3_SDA, FN_SCIFA5_TXD_C, FN_IECLK_C, FN_AVB_RX_ER, FN_VI0_HSYNC_N,
178 FN_SCIF0_RXD_B, FN_I2C0_SCL_C, FN_IERX_C, FN_AVB_COL, FN_VI0_VSYNC_N,
179 FN_SCIF0_TXD_B, FN_I2C0_SDA_C, FN_AUDIO_CLKOUT_B, FN_AVB_TX_EN,
180 FN_ETH_MDIO, FN_VI0_G0, FN_MSIOF2_RXD_B, FN_IIC0_SCL_D, FN_AVB_TX_CLK,
181 FN_ADIDATA, FN_AD_DI,
182
183 /* IPSR7 */
184 FN_ETH_CRS_DV, FN_VI0_G1, FN_MSIOF2_TXD_B, FN_IIC0_SDA_D, FN_AVB_TXD0,
185 FN_ADICS_SAMP, FN_AD_DO, FN_ETH_RX_ER, FN_VI0_G2, FN_MSIOF2_SCK_B,
186 FN_CAN0_RX_B, FN_AVB_TXD1, FN_ADICLK, FN_AD_CLK, FN_ETH_RXD0, FN_VI0_G3,
187 FN_MSIOF2_SYNC_B, FN_CAN0_TX_B, FN_AVB_TXD2, FN_ADICHS0, FN_AD_NCS_N,
188 FN_ETH_RXD1, FN_VI0_G4, FN_MSIOF2_SS1_B, FN_SCIF4_RXD_D, FN_AVB_TXD3,
189 FN_ADICHS1, FN_ETH_LINK, FN_VI0_G5, FN_MSIOF2_SS2_B, FN_SCIF4_TXD_D,
190 FN_AVB_TXD4, FN_ADICHS2, FN_ETH_REFCLK, FN_VI0_G6, FN_SCIF2_SCK_C,
191 FN_AVB_TXD5, FN_SSI_SCK5_B, FN_ETH_TXD1, FN_VI0_G7, FN_SCIF2_RXD_C,
192 FN_IIC1_SCL_D, FN_AVB_TXD6, FN_SSI_WS5_B, FN_ETH_TX_EN, FN_VI0_R0,
193 FN_SCIF2_TXD_C, FN_IIC1_SDA_D, FN_AVB_TXD7, FN_SSI_SDATA5_B,
194 FN_ETH_MAGIC, FN_VI0_R1, FN_SCIF3_SCK_B, FN_AVB_TX_ER, FN_SSI_SCK6_B,
195 FN_ETH_TXD0, FN_VI0_R2, FN_SCIF3_RXD_B, FN_I2C4_SCL_E, FN_AVB_GTX_CLK,
196 FN_SSI_WS6_B, FN_DREQ0_N, FN_SCIFB1_RXD,
197
198 /* IPSR8 */
199 FN_ETH_MDC, FN_VI0_R3, FN_SCIF3_TXD_B, FN_I2C4_SDA_E, FN_AVB_MDC,
200 FN_SSI_SDATA6_B, FN_HSCIF0_HRX, FN_VI0_R4, FN_I2C1_SCL_C,
201 FN_AUDIO_CLKA_B, FN_AVB_MDIO, FN_SSI_SCK78_B, FN_HSCIF0_HTX,
202 FN_VI0_R5, FN_I2C1_SDA_C, FN_AUDIO_CLKB_B, FN_AVB_LINK, FN_SSI_WS78_B,
203 FN_HSCIF0_HCTS_N, FN_VI0_R6, FN_SCIF0_RXD_D, FN_I2C0_SCL_E,
204 FN_AVB_MAGIC, FN_SSI_SDATA7_B, FN_HSCIF0_HRTS_N, FN_VI0_R7,
205 FN_SCIF0_TXD_D, FN_I2C0_SDA_E, FN_AVB_PHY_INT, FN_SSI_SDATA8_B,
206 FN_HSCIF0_HSCK, FN_SCIF_CLK_B, FN_AVB_CRS, FN_AUDIO_CLKC_B,
207 FN_I2C0_SCL, FN_SCIF0_RXD_C, FN_PWM5, FN_TCLK1_B, FN_AVB_GTXREFCLK,
208 FN_CAN1_RX_D, FN_TPUTO0_B, FN_I2C0_SDA, FN_SCIF0_TXD_C, FN_TPUTO0,
209 FN_CAN_CLK, FN_DVC_MUTE, FN_CAN1_TX_D, FN_I2C1_SCL, FN_SCIF4_RXD,
210 FN_PWM5_B, FN_DU1_DR0, FN_RIF1_SYNC_B, FN_TS_SDATA_D, FN_TPUTO1_B,
211 FN_I2C1_SDA, FN_SCIF4_TXD, FN_IRQ5, FN_DU1_DR1, FN_RIF1_CLK_B,
212 FN_TS_SCK_D, FN_BPFCLK_C, FN_MSIOF0_RXD, FN_SCIF5_RXD, FN_I2C2_SCL_C,
213 FN_DU1_DR2, FN_RIF1_D0_B, FN_TS_SDEN_D, FN_FMCLK_C, FN_RDS_CLK,
214
215 /*
216 * From IPSR9 to IPSR10 have been removed because they does not use.
217 */
218
219 /* IPSR11 */
220 FN_SSI_WS5, FN_SCIFA3_RXD, FN_I2C3_SCL_C, FN_DU1_DOTCLKOUT0,
221 FN_CAN_DEBUGOUT11, FN_SSI_SDATA5, FN_SCIFA3_TXD, FN_I2C3_SDA_C,
222 FN_DU1_DOTCLKOUT1, FN_CAN_DEBUGOUT12, FN_SSI_SCK6, FN_SCIFA1_SCK_B,
223 FN_DU1_EXHSYNC_DU1_HSYNC, FN_CAN_DEBUGOUT13, FN_SSI_WS6,
224 FN_SCIFA1_RXD_B, FN_I2C4_SCL_C, FN_DU1_EXVSYNC_DU1_VSYNC,
225 FN_CAN_DEBUGOUT14, FN_SSI_SDATA6, FN_SCIFA1_TXD_B, FN_I2C4_SDA_C,
226 FN_DU1_EXODDF_DU1_ODDF_DISP_CDE, FN_CAN_DEBUGOUT15, FN_SSI_SCK78,
227 FN_SCIFA2_SCK_B, FN_IIC0_SDA_C, FN_DU1_DISP, FN_SSI_WS78,
228 FN_SCIFA2_RXD_B, FN_IIC0_SCL_C, FN_DU1_CDE, FN_SSI_SDATA7,
229 FN_SCIFA2_TXD_B, FN_IRQ8, FN_AUDIO_CLKA_D, FN_CAN_CLK_D, FN_PCMOE_N,
230 FN_SSI_SCK0129, FN_MSIOF1_RXD_B, FN_SCIF5_RXD_D, FN_ADIDATA_B,
231 FN_AD_DI_B, FN_PCMWE_N, FN_SSI_WS0129, FN_MSIOF1_TXD_B, FN_SCIF5_TXD_D,
232 FN_ADICS_SAMP_B, FN_AD_DO_B, FN_SSI_SDATA0, FN_MSIOF1_SCK_B, FN_PWM0_B,
233 FN_ADICLK_B, FN_AD_CLK_B,
234
235 /*
236 * From IPSR12 to IPSR13 have been removed because they does not use.
237 */
238
239 /* MOD_SEL */
240 FN_SEL_ADG_0, FN_SEL_ADG_1, FN_SEL_ADG_2, FN_SEL_ADG_3,
241 FN_SEL_ADI_0, FN_SEL_ADI_1, FN_SEL_CAN_0, FN_SEL_CAN_1,
242 FN_SEL_CAN_2, FN_SEL_CAN_3, FN_SEL_DARC_0, FN_SEL_DARC_1,
243 FN_SEL_DARC_2, FN_SEL_DARC_3, FN_SEL_DARC_4, FN_SEL_DR0_0,
244 FN_SEL_DR0_1, FN_SEL_DR1_0, FN_SEL_DR1_1, FN_SEL_DR2_0, FN_SEL_DR2_1,
245 FN_SEL_DR3_0, FN_SEL_DR3_1, FN_SEL_ETH_0, FN_SEL_ETH_1, FN_SEL_FSN_0,
246 FN_SEL_FSN_1, FN_SEL_I2C00_0, FN_SEL_I2C00_1, FN_SEL_I2C00_2,
247 FN_SEL_I2C00_3, FN_SEL_I2C00_4, FN_SEL_I2C01_0, FN_SEL_I2C01_1,
248 FN_SEL_I2C01_2, FN_SEL_I2C01_3, FN_SEL_I2C01_4, FN_SEL_I2C02_0,
249 FN_SEL_I2C02_1, FN_SEL_I2C02_2, FN_SEL_I2C02_3, FN_SEL_I2C02_4,
250 FN_SEL_I2C03_0, FN_SEL_I2C03_1, FN_SEL_I2C03_2, FN_SEL_I2C03_3,
251 FN_SEL_I2C03_4, FN_SEL_I2C04_0, FN_SEL_I2C04_1, FN_SEL_I2C04_2,
252 FN_SEL_I2C04_3, FN_SEL_I2C04_4, FN_SEL_IIC00_0, FN_SEL_IIC00_1,
253 FN_SEL_IIC00_2, FN_SEL_IIC00_3, FN_SEL_AVB_0, FN_SEL_AVB_1,
254
255 /* MOD_SEL2 */
256 FN_SEL_IEB_0, FN_SEL_IEB_1, FN_SEL_IEB_2, FN_SEL_IIC01_0,
257 FN_SEL_IIC01_1, FN_SEL_IIC01_2, FN_SEL_IIC01_3, FN_SEL_LBS_0,
258 FN_SEL_LBS_1, FN_SEL_MSI1_0, FN_SEL_MSI1_1, FN_SEL_MSI2_0,
259 FN_SEL_MSI2_1, FN_SEL_RAD_0, FN_SEL_RAD_1, FN_SEL_RCN_0,
260 FN_SEL_RCN_1, FN_SEL_RSP_0, FN_SEL_RSP_1, FN_SEL_SCIFA0_0,
261 FN_SEL_SCIFA0_1, FN_SEL_SCIFA0_2, FN_SEL_SCIFA0_3, FN_SEL_SCIFA1_0,
262 FN_SEL_SCIFA1_1, FN_SEL_SCIFA1_2, FN_SEL_SCIFA2_0, FN_SEL_SCIFA2_1,
263 FN_SEL_SCIFA3_0, FN_SEL_SCIFA3_1, FN_SEL_SCIFA4_0, FN_SEL_SCIFA4_1,
264 FN_SEL_SCIFA4_2, FN_SEL_SCIFA4_3, FN_SEL_SCIFA5_0, FN_SEL_SCIFA5_1,
265 FN_SEL_SCIFA5_2, FN_SEL_SCIFA5_3, FN_SEL_SPDM_0, FN_SEL_SPDM_1,
266 FN_SEL_TMU_0, FN_SEL_TMU_1, FN_SEL_TSIF0_0, FN_SEL_TSIF0_1,
267 FN_SEL_TSIF0_2, FN_SEL_TSIF0_3, FN_SEL_CAN0_0, FN_SEL_CAN0_1,
268 FN_SEL_CAN0_2, FN_SEL_CAN0_3, FN_SEL_CAN1_0, FN_SEL_CAN1_1,
269 FN_SEL_CAN1_2, FN_SEL_CAN1_3, FN_SEL_HSCIF0_0, FN_SEL_HSCIF0_1,
270 FN_SEL_HSCIF1_0, FN_SEL_HSCIF1_1, FN_SEL_RDS_0, FN_SEL_RDS_1,
271 FN_SEL_RDS_2, FN_SEL_RDS_3,
272
273 /* MOD_SEL3 */
274 FN_SEL_SCIF0_0, FN_SEL_SCIF0_1, FN_SEL_SCIF0_2, FN_SEL_SCIF0_3,
275 FN_SEL_SCIF1_0, FN_SEL_SCIF1_1, FN_SEL_SCIF1_2, FN_SEL_SCIF2_0,
276 FN_SEL_SCIF2_1, FN_SEL_SCIF2_2, FN_SEL_SCIF3_0, FN_SEL_SCIF3_1,
277 FN_SEL_SCIF4_0, FN_SEL_SCIF4_1, FN_SEL_SCIF4_2, FN_SEL_SCIF4_3,
278 FN_SEL_SCIF4_4, FN_SEL_SCIF5_0, FN_SEL_SCIF5_1, FN_SEL_SCIF5_2,
279 FN_SEL_SCIF5_3, FN_SEL_SSI1_0, FN_SEL_SSI1_1, FN_SEL_SSI2_0,
280 FN_SEL_SSI2_1, FN_SEL_SSI4_0, FN_SEL_SSI4_1, FN_SEL_SSI5_0,
281 FN_SEL_SSI5_1, FN_SEL_SSI6_0, FN_SEL_SSI6_1, FN_SEL_SSI7_0,
282 FN_SEL_SSI7_1, FN_SEL_SSI8_0, FN_SEL_SSI8_1, FN_SEL_SSI9_0,
283 FN_SEL_SSI9_1,
284 PINMUX_FUNCTION_END,
285
286 PINMUX_MARK_BEGIN,
287 A2_MARK, WE0_N_MARK, WE1_N_MARK, DACK0_MARK,
288
289 USB0_PWEN_MARK, USB0_OVC_MARK, USB1_PWEN_MARK, USB1_OVC_MARK,
290
291 SD0_CLK_MARK, SD0_CMD_MARK, SD0_DATA0_MARK, SD0_DATA1_MARK,
292 SD0_DATA2_MARK, SD0_DATA3_MARK, SD0_CD_MARK, SD0_WP_MARK,
293
294 SD1_CLK_MARK, SD1_CMD_MARK, SD1_DATA0_MARK, SD1_DATA1_MARK,
295 SD1_DATA2_MARK, SD1_DATA3_MARK,
296
Nobuhiro Iwamatsu25f96132014-11-19 14:26:33 +0900297 /* IPSR0 */
298 SD1_CD_MARK, CAN0_RX_MARK, SD1_WP_MARK, IRQ7_MARK, CAN0_TX_MARK,
299 MMC_CLK_MARK, SD2_CLK_MARK, MMC_CMD_MARK, SD2_CMD_MARK, MMC_D0_MARK,
300 SD2_DATA0_MARK, MMC_D1_MARK, SD2_DATA1_MARK, MMC_D2_MARK,
301 SD2_DATA2_MARK, MMC_D3_MARK, SD2_DATA3_MARK, MMC_D4_MARK, SD2_CD_MARK,
302 MMC_D5_MARK, SD2_WP_MARK, MMC_D6_MARK, SCIF0_RXD_MARK, I2C2_SCL_B_MARK,
303 CAN1_RX_MARK, MMC_D7_MARK, SCIF0_TXD_MARK, I2C2_SDA_B_MARK,
304 CAN1_TX_MARK, D0_MARK, SCIFA3_SCK_B_MARK, IRQ4_MARK, D1_MARK,
305 SCIFA3_RXD_B_MARK, D2_MARK, SCIFA3_TXD_B_MARK, D3_MARK, I2C3_SCL_B_MARK,
306 SCIF5_RXD_B_MARK, D4_MARK, I2C3_SDA_B_MARK, SCIF5_TXD_B_MARK, D5_MARK,
307 SCIF4_RXD_B_MARK, I2C0_SCL_D_MARK,
308
Nobuhiro Iwamatsufafcfc52014-06-24 17:10:02 +0900309 /*
Nobuhiro Iwamatsu25f96132014-11-19 14:26:33 +0900310 * From IPSR1 to IPSR5 have been removed because they does not use.
Nobuhiro Iwamatsufafcfc52014-06-24 17:10:02 +0900311 */
312
313 /* IPSR6 */
314 DU0_EXVSYNC_DU0_VSYNC_MARK, QSTB_QHE_MARK, CC50_STATE28_MARK,
315 DU0_EXODDF_DU0_ODDF_DISP_CDE_MARK, QCPV_QDE_MARK, CC50_STATE29_MARK,
316 DU0_DISP_MARK, QPOLA_MARK, CC50_STATE30_MARK, DU0_CDE_MARK, QPOLB_MARK,
317 CC50_STATE31_MARK, VI0_CLK_MARK, AVB_RX_CLK_MARK, VI0_DATA0_VI0_B0_MARK,
318 AVB_RX_DV_MARK, VI0_DATA1_VI0_B1_MARK, AVB_RXD0_MARK,
319 VI0_DATA2_VI0_B2_MARK, AVB_RXD1_MARK, VI0_DATA3_VI0_B3_MARK,
320 AVB_RXD2_MARK, VI0_DATA4_VI0_B4_MARK, AVB_RXD3_MARK,
321 VI0_DATA5_VI0_B5_MARK, AVB_RXD4_MARK, VI0_DATA6_VI0_B6_MARK,
322 AVB_RXD5_MARK, VI0_DATA7_VI0_B7_MARK, AVB_RXD6_MARK, VI0_CLKENB_MARK,
323 I2C3_SCL_MARK, SCIFA5_RXD_C_MARK, IETX_C_MARK, AVB_RXD7_MARK,
324 VI0_FIELD_MARK, I2C3_SDA_MARK, SCIFA5_TXD_C_MARK, IECLK_C_MARK,
325 AVB_RX_ER_MARK, VI0_HSYNC_N_MARK, SCIF0_RXD_B_MARK, I2C0_SCL_C_MARK,
326 IERX_C_MARK, AVB_COL_MARK, VI0_VSYNC_N_MARK, SCIF0_TXD_B_MARK,
327 I2C0_SDA_C_MARK, AUDIO_CLKOUT_B_MARK, AVB_TX_EN_MARK, ETH_MDIO_MARK,
328 VI0_G0_MARK, MSIOF2_RXD_B_MARK, IIC0_SCL_D_MARK, AVB_TX_CLK_MARK,
329 ADIDATA_MARK, AD_DI_MARK,
330
331 /* IPSR7 */
332 ETH_CRS_DV_MARK, VI0_G1_MARK, MSIOF2_TXD_B_MARK, IIC0_SDA_D_MARK,
333 AVB_TXD0_MARK, ADICS_SAMP_MARK, AD_DO_MARK, ETH_RX_ER_MARK, VI0_G2_MARK,
334 MSIOF2_SCK_B_MARK, CAN0_RX_B_MARK, AVB_TXD1_MARK, ADICLK_MARK,
335 AD_CLK_MARK, ETH_RXD0_MARK, VI0_G3_MARK, MSIOF2_SYNC_B_MARK,
336 CAN0_TX_B_MARK, AVB_TXD2_MARK, ADICHS0_MARK, AD_NCS_N_MARK,
337 ETH_RXD1_MARK, VI0_G4_MARK, MSIOF2_SS1_B_MARK, SCIF4_RXD_D_MARK,
338 AVB_TXD3_MARK, ADICHS1_MARK, ETH_LINK_MARK, VI0_G5_MARK,
339 MSIOF2_SS2_B_MARK, SCIF4_TXD_D_MARK, AVB_TXD4_MARK, ADICHS2_MARK,
340 ETH_REFCLK_MARK, VI0_G6_MARK, SCIF2_SCK_C_MARK, AVB_TXD5_MARK,
341 SSI_SCK5_B_MARK, ETH_TXD1_MARK, VI0_G7_MARK, SCIF2_RXD_C_MARK,
342 IIC1_SCL_D_MARK, AVB_TXD6_MARK, SSI_WS5_B_MARK, ETH_TX_EN_MARK,
343 VI0_R0_MARK, SCIF2_TXD_C_MARK, IIC1_SDA_D_MARK, AVB_TXD7_MARK,
344 SSI_SDATA5_B_MARK, ETH_MAGIC_MARK, VI0_R1_MARK, SCIF3_SCK_B_MARK,
345 AVB_TX_ER_MARK, SSI_SCK6_B_MARK, ETH_TXD0_MARK, VI0_R2_MARK,
346 SCIF3_RXD_B_MARK, I2C4_SCL_E_MARK, AVB_GTX_CLK_MARK, SSI_WS6_B_MARK,
347 DREQ0_N_MARK, SCIFB1_RXD_MARK,
348
349 /* IPSR8 */
350 ETH_MDC_MARK, VI0_R3_MARK, SCIF3_TXD_B_MARK, I2C4_SDA_E_MARK,
351 AVB_MDC_MARK, SSI_SDATA6_B_MARK, HSCIF0_HRX_MARK, VI0_R4_MARK,
352 I2C1_SCL_C_MARK, AUDIO_CLKA_B_MARK, AVB_MDIO_MARK, SSI_SCK78_B_MARK,
353 HSCIF0_HTX_MARK, VI0_R5_MARK, I2C1_SDA_C_MARK, AUDIO_CLKB_B_MARK,
354 AVB_LINK_MARK, SSI_WS78_B_MARK, HSCIF0_HCTS_N_MARK, VI0_R6_MARK,
355 SCIF0_RXD_D_MARK, I2C0_SCL_E_MARK, AVB_MAGIC_MARK, SSI_SDATA7_B_MARK,
356 HSCIF0_HRTS_N_MARK, VI0_R7_MARK, SCIF0_TXD_D_MARK, I2C0_SDA_E_MARK,
357 AVB_PHY_INT_MARK, SSI_SDATA8_B_MARK,
358 HSCIF0_HSCK_MARK, SCIF_CLK_B_MARK, AVB_CRS_MARK, AUDIO_CLKC_B_MARK,
359 I2C0_SCL_MARK, SCIF0_RXD_C_MARK, PWM5_MARK, TCLK1_B_MARK,
360 AVB_GTXREFCLK_MARK, CAN1_RX_D_MARK, TPUTO0_B_MARK, I2C0_SDA_MARK,
361 SCIF0_TXD_C_MARK, TPUTO0_MARK, CAN_CLK_MARK, DVC_MUTE_MARK,
362 CAN1_TX_D_MARK, I2C1_SCL_MARK, SCIF4_RXD_MARK, PWM5_B_MARK,
363 DU1_DR0_MARK, RIF1_SYNC_B_MARK, TS_SDATA_D_MARK, TPUTO1_B_MARK,
364 I2C1_SDA_MARK, SCIF4_TXD_MARK, IRQ5_MARK, DU1_DR1_MARK, RIF1_CLK_B_MARK,
365 TS_SCK_D_MARK, BPFCLK_C_MARK, MSIOF0_RXD_MARK, SCIF5_RXD_MARK,
366 I2C2_SCL_C_MARK, DU1_DR2_MARK, RIF1_D0_B_MARK, TS_SDEN_D_MARK,
367 FMCLK_C_MARK, RDS_CLK_MARK,
368
369 /*
370 * From IPSR9 to IPSR10 have been removed because they does not use.
371 */
372
373 /* IPSR11 */
374 SSI_WS5_MARK, SCIFA3_RXD_MARK, I2C3_SCL_C_MARK, DU1_DOTCLKOUT0_MARK,
375 CAN_DEBUGOUT11_MARK, SSI_SDATA5_MARK, SCIFA3_TXD_MARK, I2C3_SDA_C_MARK,
376 DU1_DOTCLKOUT1_MARK, CAN_DEBUGOUT12_MARK, SSI_SCK6_MARK,
377 SCIFA1_SCK_B_MARK, DU1_EXHSYNC_DU1_HSYNC_MARK, CAN_DEBUGOUT13_MARK,
378 SSI_WS6_MARK, SCIFA1_RXD_B_MARK, I2C4_SCL_C_MARK,
379 DU1_EXVSYNC_DU1_VSYNC_MARK, CAN_DEBUGOUT14_MARK, SSI_SDATA6_MARK,
380 SCIFA1_TXD_B_MARK, I2C4_SDA_C_MARK, DU1_EXODDF_DU1_ODDF_DISP_CDE_MARK,
381 CAN_DEBUGOUT15_MARK, SSI_SCK78_MARK, SCIFA2_SCK_B_MARK, IIC0_SDA_C_MARK,
382 DU1_DISP_MARK, SSI_WS78_MARK, SCIFA2_RXD_B_MARK, IIC0_SCL_C_MARK,
383 DU1_CDE_MARK, SSI_SDATA7_MARK, SCIFA2_TXD_B_MARK, IRQ8_MARK,
384 AUDIO_CLKA_D_MARK, CAN_CLK_D_MARK, PCMOE_N_MARK, SSI_SCK0129_MARK,
385 MSIOF1_RXD_B_MARK, SCIF5_RXD_D_MARK, ADIDATA_B_MARK, AD_DI_B_MARK,
386 PCMWE_N_MARK, SSI_WS0129_MARK, MSIOF1_TXD_B_MARK, SCIF5_TXD_D_MARK,
387 ADICS_SAMP_B_MARK, AD_DO_B_MARK, SSI_SDATA0_MARK, MSIOF1_SCK_B_MARK,
388 PWM0_B_MARK, ADICLK_B_MARK, AD_CLK_B_MARK,
389
390 /*
391 * From IPSR12 to IPSR13 have been removed because they does not use.
392 */
393
394 PINMUX_MARK_END,
395};
396
397static pinmux_enum_t pinmux_data[] = {
398 PINMUX_DATA_GP_ALL(), /* PINMUX_DATA(GP_M_N_DATA, GP_M_N_FN...), */
399
400 PINMUX_DATA(A2_MARK, FN_A2),
401 PINMUX_DATA(WE0_N_MARK, FN_WE0_N),
402 PINMUX_DATA(WE1_N_MARK, FN_WE1_N),
403 PINMUX_DATA(DACK0_MARK, FN_DACK0),
404 PINMUX_DATA(USB0_PWEN_MARK, FN_USB0_PWEN),
405 PINMUX_DATA(USB0_OVC_MARK, FN_USB0_OVC),
406 PINMUX_DATA(USB1_PWEN_MARK, FN_USB1_PWEN),
407 PINMUX_DATA(USB1_OVC_MARK, FN_USB1_OVC),
408 PINMUX_DATA(SD0_CLK_MARK, FN_SD0_CLK),
409 PINMUX_DATA(SD0_CMD_MARK, FN_SD0_CMD),
410 PINMUX_DATA(SD0_DATA0_MARK, FN_SD0_DATA0),
411 PINMUX_DATA(SD0_DATA1_MARK, FN_SD0_DATA1),
412 PINMUX_DATA(SD0_DATA2_MARK, FN_SD0_DATA2),
413 PINMUX_DATA(SD0_DATA3_MARK, FN_SD0_DATA3),
414 PINMUX_DATA(SD0_CD_MARK, FN_SD0_CD),
415 PINMUX_DATA(SD0_WP_MARK, FN_SD0_WP),
416 PINMUX_DATA(SD1_CLK_MARK, FN_SD1_CLK),
417 PINMUX_DATA(SD1_CMD_MARK, FN_SD1_CMD),
418 PINMUX_DATA(SD1_DATA0_MARK, FN_SD1_DATA0),
419 PINMUX_DATA(SD1_DATA1_MARK, FN_SD1_DATA1),
420 PINMUX_DATA(SD1_DATA2_MARK, FN_SD1_DATA2),
421 PINMUX_DATA(SD1_DATA3_MARK, FN_SD1_DATA3),
422
Nobuhiro Iwamatsu25f96132014-11-19 14:26:33 +0900423 /* IPSR0 */
424 PINMUX_IPSR_DATA(IP0_0, SD1_CD),
425 PINMUX_IPSR_MODSEL_DATA(IP0_0, CAN0_RX, SEL_CAN0_0),
426 PINMUX_IPSR_DATA(IP0_9_8, SD1_WP),
427 PINMUX_IPSR_DATA(IP0_9_8, IRQ7),
428 PINMUX_IPSR_MODSEL_DATA(IP0_9_8, CAN0_TX, SEL_CAN0_0),
429 PINMUX_IPSR_DATA(IP0_10, MMC_CLK),
430 PINMUX_IPSR_DATA(IP0_10, SD2_CLK),
431 PINMUX_IPSR_DATA(IP0_11, MMC_CMD),
432 PINMUX_IPSR_DATA(IP0_11, SD2_CMD),
433 PINMUX_IPSR_DATA(IP0_12, MMC_D0),
434 PINMUX_IPSR_DATA(IP0_12, SD2_DATA0),
435 PINMUX_IPSR_DATA(IP0_13, MMC_D1),
436 PINMUX_IPSR_DATA(IP0_13, SD2_DATA1),
437 PINMUX_IPSR_DATA(IP0_14, MMC_D2),
438 PINMUX_IPSR_DATA(IP0_14, SD2_DATA2),
439 PINMUX_IPSR_DATA(IP0_15, MMC_D3),
440 PINMUX_IPSR_DATA(IP0_15, SD2_DATA3),
441 PINMUX_IPSR_DATA(IP0_16, MMC_D4),
442 PINMUX_IPSR_DATA(IP0_16, SD2_CD),
443 PINMUX_IPSR_DATA(IP0_17, MMC_D5),
444 PINMUX_IPSR_DATA(IP0_17, SD2_WP),
445 PINMUX_IPSR_DATA(IP0_19_18, MMC_D6),
446 PINMUX_IPSR_MODSEL_DATA(IP0_19_18, SCIF0_RXD, SEL_SCIF0_0),
447 PINMUX_IPSR_MODSEL_DATA(IP0_19_18, I2C2_SCL_B, SEL_I2C02_1),
448 PINMUX_IPSR_MODSEL_DATA(IP0_19_18, CAN1_RX, SEL_CAN1_0),
449 PINMUX_IPSR_DATA(IP0_21_20, MMC_D7),
450 PINMUX_IPSR_MODSEL_DATA(IP0_21_20, SCIF0_TXD, SEL_SCIF0_0),
451 PINMUX_IPSR_MODSEL_DATA(IP0_21_20, I2C2_SDA_B, SEL_I2C02_1),
452 PINMUX_IPSR_MODSEL_DATA(IP0_21_20, CAN1_TX, SEL_CAN1_0),
453 PINMUX_IPSR_DATA(IP0_23_22, D0),
454 PINMUX_IPSR_MODSEL_DATA(IP0_23_22, SCIFA3_SCK_B, SEL_SCIFA3_1),
455 PINMUX_IPSR_DATA(IP0_23_22, IRQ4),
456 PINMUX_IPSR_DATA(IP0_24, D1),
457 PINMUX_IPSR_MODSEL_DATA(IP0_24, SCIFA3_RXD_B, SEL_SCIFA3_1),
458 PINMUX_IPSR_DATA(IP0_25, D2),
459 PINMUX_IPSR_MODSEL_DATA(IP0_25, SCIFA3_TXD_B, SEL_SCIFA3_1),
460 PINMUX_IPSR_DATA(IP0_27_26, D3),
461 PINMUX_IPSR_MODSEL_DATA(IP0_27_26, I2C3_SCL_B, SEL_I2C03_1),
462 PINMUX_IPSR_MODSEL_DATA(IP0_27_26, SCIF5_RXD_B, SEL_SCIF5_1),
463 PINMUX_IPSR_DATA(IP0_29_28, D4),
464 PINMUX_IPSR_MODSEL_DATA(IP0_29_28, I2C3_SDA_B, SEL_I2C03_1),
465 PINMUX_IPSR_MODSEL_DATA(IP0_29_28, SCIF5_TXD_B, SEL_SCIF5_1),
466 PINMUX_IPSR_DATA(IP0_31_30, D5),
467 PINMUX_IPSR_MODSEL_DATA(IP0_31_30, SCIF4_RXD_B, SEL_SCIF4_1),
468 PINMUX_IPSR_MODSEL_DATA(IP0_31_30, I2C0_SCL_D, SEL_I2C00_3),
469
Nobuhiro Iwamatsufafcfc52014-06-24 17:10:02 +0900470 /*
Nobuhiro Iwamatsu25f96132014-11-19 14:26:33 +0900471 * From IPSR1 to IPSR5 have been removed because they does not use.
Nobuhiro Iwamatsufafcfc52014-06-24 17:10:02 +0900472 */
473
474 /* IPSR6 */
475 PINMUX_IPSR_DATA(IP6_1_0, DU0_EXVSYNC_DU0_VSYNC),
476 PINMUX_IPSR_DATA(IP6_1_0, QSTB_QHE),
477 PINMUX_IPSR_DATA(IP6_1_0, CC50_STATE28),
478 PINMUX_IPSR_DATA(IP6_3_2, DU0_EXODDF_DU0_ODDF_DISP_CDE),
479 PINMUX_IPSR_DATA(IP6_3_2, QCPV_QDE),
480 PINMUX_IPSR_DATA(IP6_3_2, CC50_STATE29),
481 PINMUX_IPSR_DATA(IP6_5_4, DU0_DISP),
482 PINMUX_IPSR_DATA(IP6_5_4, QPOLA),
483 PINMUX_IPSR_DATA(IP6_5_4, CC50_STATE30),
484 PINMUX_IPSR_DATA(IP6_7_6, DU0_CDE),
485 PINMUX_IPSR_DATA(IP6_7_6, QPOLB),
486 PINMUX_IPSR_DATA(IP6_7_6, CC50_STATE31),
487 PINMUX_IPSR_DATA(IP6_8, VI0_CLK),
488 PINMUX_IPSR_DATA(IP6_8, AVB_RX_CLK),
489 PINMUX_IPSR_DATA(IP6_9, VI0_DATA0_VI0_B0),
490 PINMUX_IPSR_DATA(IP6_9, AVB_RX_DV),
491 PINMUX_IPSR_DATA(IP6_10, VI0_DATA1_VI0_B1),
492 PINMUX_IPSR_DATA(IP6_10, AVB_RXD0),
493 PINMUX_IPSR_DATA(IP6_11, VI0_DATA2_VI0_B2),
494 PINMUX_IPSR_DATA(IP6_11, AVB_RXD1),
495 PINMUX_IPSR_DATA(IP6_12, VI0_DATA3_VI0_B3),
496 PINMUX_IPSR_DATA(IP6_12, AVB_RXD2),
497 PINMUX_IPSR_DATA(IP6_13, VI0_DATA4_VI0_B4),
498 PINMUX_IPSR_DATA(IP6_13, AVB_RXD3),
499 PINMUX_IPSR_DATA(IP6_14, VI0_DATA5_VI0_B5),
500 PINMUX_IPSR_DATA(IP6_14, AVB_RXD4),
501 PINMUX_IPSR_DATA(IP6_15, VI0_DATA6_VI0_B6),
502 PINMUX_IPSR_DATA(IP6_15, AVB_RXD5),
503 PINMUX_IPSR_DATA(IP6_16, VI0_DATA7_VI0_B7),
504 PINMUX_IPSR_DATA(IP6_16, AVB_RXD6),
505 PINMUX_IPSR_DATA(IP6_19_17, VI0_CLKENB),
506 PINMUX_IPSR_MODSEL_DATA(IP6_19_17, I2C3_SCL, SEL_I2C03_0),
507 PINMUX_IPSR_MODSEL_DATA(IP6_19_17, SCIFA5_RXD_C, SEL_SCIFA5_2),
508 PINMUX_IPSR_MODSEL_DATA(IP6_19_17, IETX_C, SEL_IEB_2),
509 PINMUX_IPSR_DATA(IP6_19_17, AVB_RXD7),
510 PINMUX_IPSR_DATA(IP6_22_20, VI0_FIELD),
511 PINMUX_IPSR_MODSEL_DATA(IP6_22_20, I2C3_SDA, SEL_I2C03_0),
512 PINMUX_IPSR_MODSEL_DATA(IP6_22_20, SCIFA5_TXD_C, SEL_SCIFA5_2),
513 PINMUX_IPSR_MODSEL_DATA(IP6_22_20, IECLK_C, SEL_IEB_2),
514 PINMUX_IPSR_DATA(IP6_22_20, AVB_RX_ER),
515 PINMUX_IPSR_DATA(IP6_25_23, VI0_HSYNC_N),
516 PINMUX_IPSR_MODSEL_DATA(IP6_25_23, SCIF0_RXD_B, SEL_SCIF0_1),
517 PINMUX_IPSR_MODSEL_DATA(IP6_25_23, I2C0_SCL_C, SEL_I2C00_2),
518 PINMUX_IPSR_MODSEL_DATA(IP6_25_23, IERX_C, SEL_IEB_2),
519 PINMUX_IPSR_DATA(IP6_25_23, AVB_COL),
520 PINMUX_IPSR_DATA(IP6_28_26, VI0_VSYNC_N),
521 PINMUX_IPSR_MODSEL_DATA(IP6_28_26, SCIF0_TXD_B, SEL_SCIF0_1),
522 PINMUX_IPSR_MODSEL_DATA(IP6_28_26, I2C0_SDA_C, SEL_I2C00_2),
523 PINMUX_IPSR_MODSEL_DATA(IP6_28_26, AUDIO_CLKOUT_B, SEL_ADG_1),
524 PINMUX_IPSR_DATA(IP6_28_26, AVB_TX_EN),
525 PINMUX_IPSR_MODSEL_DATA(IP6_31_29, ETH_MDIO, SEL_ETH_0),
526 PINMUX_IPSR_DATA(IP6_31_29, VI0_G0),
527 PINMUX_IPSR_MODSEL_DATA(IP6_31_29, MSIOF2_RXD_B, SEL_MSI2_1),
528 PINMUX_IPSR_MODSEL_DATA(IP6_31_29, IIC0_SCL_D, SEL_IIC00_3),
529 PINMUX_IPSR_DATA(IP6_31_29, AVB_TX_CLK),
530 PINMUX_IPSR_MODSEL_DATA(IP6_31_29, ADIDATA, SEL_RAD_0),
531 PINMUX_IPSR_MODSEL_DATA(IP6_31_29, AD_DI, SEL_ADI_0),
532
533 /* IPSR7 */
534 PINMUX_IPSR_MODSEL_DATA(IP7_2_0, ETH_CRS_DV, SEL_ETH_0),
535 PINMUX_IPSR_DATA(IP7_2_0, VI0_G1),
536 PINMUX_IPSR_MODSEL_DATA(IP7_2_0, MSIOF2_TXD_B, SEL_MSI2_1),
537 PINMUX_IPSR_MODSEL_DATA(IP7_2_0, IIC0_SDA_D, SEL_IIC00_3),
538 PINMUX_IPSR_DATA(IP7_2_0, AVB_TXD0),
539 PINMUX_IPSR_MODSEL_DATA(IP7_2_0, ADICS_SAMP, SEL_RAD_0),
540 PINMUX_IPSR_MODSEL_DATA(IP7_2_0, AD_DO, SEL_ADI_0),
541 PINMUX_IPSR_MODSEL_DATA(IP7_5_3, ETH_RX_ER, SEL_ETH_0),
542 PINMUX_IPSR_DATA(IP7_5_3, VI0_G2),
543 PINMUX_IPSR_MODSEL_DATA(IP7_5_3, MSIOF2_SCK_B, SEL_MSI2_1),
544 PINMUX_IPSR_MODSEL_DATA(IP7_5_3, CAN0_RX_B, SEL_CAN0_1),
545 PINMUX_IPSR_DATA(IP7_5_3, AVB_TXD1),
546 PINMUX_IPSR_MODSEL_DATA(IP7_5_3, ADICLK, SEL_RAD_0),
547 PINMUX_IPSR_MODSEL_DATA(IP7_5_3, AD_CLK, SEL_ADI_0),
548 PINMUX_IPSR_MODSEL_DATA(IP7_8_6, ETH_RXD0, SEL_ETH_0),
549 PINMUX_IPSR_DATA(IP7_8_6, VI0_G3),
550 PINMUX_IPSR_MODSEL_DATA(IP7_8_6, MSIOF2_SYNC_B, SEL_MSI2_1),
551 PINMUX_IPSR_MODSEL_DATA(IP7_8_6, CAN0_TX_B, SEL_CAN0_1),
552 PINMUX_IPSR_DATA(IP7_8_6, AVB_TXD2),
553 PINMUX_IPSR_MODSEL_DATA(IP7_8_6, ADICHS0, SEL_RAD_0),
554 PINMUX_IPSR_MODSEL_DATA(IP7_8_6, AD_NCS_N, SEL_ADI_0),
555 PINMUX_IPSR_MODSEL_DATA(IP7_11_9, ETH_RXD1, SEL_ETH_0),
556 PINMUX_IPSR_DATA(IP7_11_9, VI0_G4),
557 PINMUX_IPSR_MODSEL_DATA(IP7_11_9, MSIOF2_SS1_B, SEL_MSI2_1),
558 PINMUX_IPSR_MODSEL_DATA(IP7_11_9, SCIF4_RXD_D, SEL_SCIF4_3),
559 PINMUX_IPSR_DATA(IP7_11_9, AVB_TXD3),
560 PINMUX_IPSR_MODSEL_DATA(IP7_11_9, ADICHS1, SEL_RAD_0),
561 PINMUX_IPSR_MODSEL_DATA(IP7_14_12, ETH_LINK, SEL_ETH_0),
562 PINMUX_IPSR_DATA(IP7_14_12, VI0_G5),
563 PINMUX_IPSR_MODSEL_DATA(IP7_14_12, MSIOF2_SS2_B, SEL_MSI2_1),
564 PINMUX_IPSR_MODSEL_DATA(IP7_14_12, SCIF4_TXD_D, SEL_SCIF4_3),
565 PINMUX_IPSR_DATA(IP7_14_12, AVB_TXD4),
566 PINMUX_IPSR_MODSEL_DATA(IP7_14_12, ADICHS2, SEL_RAD_0),
567 PINMUX_IPSR_MODSEL_DATA(IP7_17_15, ETH_REFCLK, SEL_ETH_0),
568 PINMUX_IPSR_DATA(IP7_17_15, VI0_G6),
569 PINMUX_IPSR_MODSEL_DATA(IP7_17_15, SCIF2_SCK_C, SEL_SCIF2_2),
570 PINMUX_IPSR_DATA(IP7_17_15, AVB_TXD5),
571 PINMUX_IPSR_MODSEL_DATA(IP7_17_15, SSI_SCK5_B, SEL_SSI5_1),
572 PINMUX_IPSR_MODSEL_DATA(IP7_20_18, ETH_TXD1, SEL_ETH_0),
573 PINMUX_IPSR_DATA(IP7_20_18, VI0_G7),
574 PINMUX_IPSR_MODSEL_DATA(IP7_20_18, SCIF2_RXD_C, SEL_SCIF2_2),
575 PINMUX_IPSR_MODSEL_DATA(IP7_20_18, IIC1_SCL_D, SEL_IIC01_3),
576 PINMUX_IPSR_DATA(IP7_20_18, AVB_TXD6),
577 PINMUX_IPSR_MODSEL_DATA(IP7_20_18, SSI_WS5_B, SEL_SSI5_1),
578 PINMUX_IPSR_MODSEL_DATA(IP7_23_21, ETH_TX_EN, SEL_ETH_0),
579 PINMUX_IPSR_DATA(IP7_23_21, VI0_R0),
580 PINMUX_IPSR_MODSEL_DATA(IP7_23_21, SCIF2_TXD_C, SEL_SCIF2_2),
581 PINMUX_IPSR_MODSEL_DATA(IP7_23_21, IIC1_SDA_D, SEL_IIC01_3),
582 PINMUX_IPSR_DATA(IP7_23_21, AVB_TXD7),
583 PINMUX_IPSR_MODSEL_DATA(IP7_23_21, SSI_SDATA5_B, SEL_SSI5_1),
584 PINMUX_IPSR_MODSEL_DATA(IP7_26_24, ETH_MAGIC, SEL_ETH_0),
585 PINMUX_IPSR_DATA(IP7_26_24, VI0_R1),
586 PINMUX_IPSR_MODSEL_DATA(IP7_26_24, SCIF3_SCK_B, SEL_SCIF3_1),
587 PINMUX_IPSR_DATA(IP7_26_24, AVB_TX_ER),
588 PINMUX_IPSR_MODSEL_DATA(IP7_26_24, SSI_SCK6_B, SEL_SSI6_1),
589 PINMUX_IPSR_MODSEL_DATA(IP7_29_27, ETH_TXD0, SEL_ETH_0),
590 PINMUX_IPSR_DATA(IP7_29_27, VI0_R2),
591 PINMUX_IPSR_MODSEL_DATA(IP7_29_27, SCIF3_RXD_B, SEL_SCIF3_1),
592 PINMUX_IPSR_MODSEL_DATA(IP7_29_27, I2C4_SCL_E, SEL_I2C04_4),
593 PINMUX_IPSR_DATA(IP7_29_27, AVB_GTX_CLK),
594 PINMUX_IPSR_MODSEL_DATA(IP7_29_27, SSI_WS6_B, SEL_SSI6_1),
595 PINMUX_IPSR_DATA(IP7_31, DREQ0_N),
596 PINMUX_IPSR_DATA(IP7_31, SCIFB1_RXD),
597
598 /* IPSR8 */
599 PINMUX_IPSR_MODSEL_DATA(IP8_2_0, ETH_MDC, SEL_ETH_0),
600 PINMUX_IPSR_DATA(IP8_2_0, VI0_R3),
601 PINMUX_IPSR_MODSEL_DATA(IP8_2_0, SCIF3_TXD_B, SEL_SCIF3_1),
602 PINMUX_IPSR_MODSEL_DATA(IP8_2_0, I2C4_SDA_E, SEL_I2C04_4),
603 PINMUX_IPSR_DATA(IP8_2_0, AVB_MDC),
604 PINMUX_IPSR_MODSEL_DATA(IP8_2_0, SSI_SDATA6_B, SEL_SSI6_1),
605 PINMUX_IPSR_MODSEL_DATA(IP8_5_3, HSCIF0_HRX, SEL_HSCIF0_0),
606 PINMUX_IPSR_DATA(IP8_5_3, VI0_R4),
607 PINMUX_IPSR_MODSEL_DATA(IP8_5_3, I2C1_SCL_C, SEL_I2C01_2),
608 PINMUX_IPSR_MODSEL_DATA(IP8_5_3, AUDIO_CLKA_B, SEL_ADG_1),
609 PINMUX_IPSR_DATA(IP8_5_3, AVB_MDIO),
610 PINMUX_IPSR_MODSEL_DATA(IP8_5_3, SSI_SCK78_B, SEL_SSI7_1),
611 PINMUX_IPSR_MODSEL_DATA(IP8_8_6, HSCIF0_HTX, SEL_HSCIF0_0),
612 PINMUX_IPSR_DATA(IP8_8_6, VI0_R5),
613 PINMUX_IPSR_MODSEL_DATA(IP8_8_6, I2C1_SDA_C, SEL_I2C01_2),
614 PINMUX_IPSR_MODSEL_DATA(IP8_8_6, AUDIO_CLKB_B, SEL_ADG_1),
615 PINMUX_IPSR_DATA(IP8_5_3, AVB_LINK),
616 PINMUX_IPSR_MODSEL_DATA(IP8_8_6, SSI_WS78_B, SEL_SSI7_1),
617 PINMUX_IPSR_DATA(IP8_11_9, HSCIF0_HCTS_N),
618 PINMUX_IPSR_DATA(IP8_11_9, VI0_R6),
619 PINMUX_IPSR_MODSEL_DATA(IP8_11_9, SCIF0_RXD_D, SEL_SCIF0_3),
620 PINMUX_IPSR_MODSEL_DATA(IP8_11_9, I2C0_SCL_E, SEL_I2C00_4),
621 PINMUX_IPSR_DATA(IP8_11_9, AVB_MAGIC),
622 PINMUX_IPSR_MODSEL_DATA(IP8_11_9, SSI_SDATA7_B, SEL_SSI7_1),
623 PINMUX_IPSR_DATA(IP8_14_12, HSCIF0_HRTS_N),
624 PINMUX_IPSR_DATA(IP8_14_12, VI0_R7),
625 PINMUX_IPSR_MODSEL_DATA(IP8_14_12, SCIF0_TXD_D, SEL_SCIF0_3),
626 PINMUX_IPSR_MODSEL_DATA(IP8_14_12, I2C0_SDA_E, SEL_I2C00_4),
627 PINMUX_IPSR_DATA(IP8_14_12, AVB_PHY_INT),
628 PINMUX_IPSR_MODSEL_DATA(IP8_14_12, SSI_SDATA8_B, SEL_SSI8_1),
629 PINMUX_IPSR_MODSEL_DATA(IP8_16_15, HSCIF0_HSCK, SEL_HSCIF0_0),
630 PINMUX_IPSR_MODSEL_DATA(IP8_16_15, SCIF_CLK_B, SEL_SCIF0_1),
631 PINMUX_IPSR_DATA(IP8_16_15, AVB_CRS),
632 PINMUX_IPSR_MODSEL_DATA(IP8_16_15, AUDIO_CLKC_B, SEL_ADG_1),
633 PINMUX_IPSR_MODSEL_DATA(IP8_19_17, I2C0_SCL, SEL_I2C00_0),
634 PINMUX_IPSR_MODSEL_DATA(IP8_19_17, SCIF0_RXD_C, SEL_SCIF0_2),
635 PINMUX_IPSR_DATA(IP8_19_17, PWM5),
636 PINMUX_IPSR_MODSEL_DATA(IP8_19_17, TCLK1_B, SEL_TMU_1),
637 PINMUX_IPSR_DATA(IP8_19_17, AVB_GTXREFCLK),
638 PINMUX_IPSR_MODSEL_DATA(IP8_19_17, CAN1_RX_D, SEL_CAN1_3),
639 PINMUX_IPSR_DATA(IP8_19_17, TPUTO0_B),
640 PINMUX_IPSR_MODSEL_DATA(IP8_22_20, I2C0_SDA, SEL_I2C00_0),
641 PINMUX_IPSR_MODSEL_DATA(IP8_22_20, SCIF0_TXD_C, SEL_SCIF0_2),
642 PINMUX_IPSR_DATA(IP8_22_20, TPUTO0),
643 PINMUX_IPSR_MODSEL_DATA(IP8_22_20, CAN_CLK, SEL_CAN_0),
644 PINMUX_IPSR_DATA(IP8_22_20, DVC_MUTE),
645 PINMUX_IPSR_MODSEL_DATA(IP8_22_20, CAN1_TX_D, SEL_CAN1_3),
646 PINMUX_IPSR_MODSEL_DATA(IP8_25_23, I2C1_SCL, SEL_I2C01_0),
647 PINMUX_IPSR_MODSEL_DATA(IP8_25_23, SCIF4_RXD, SEL_SCIF4_0),
648 PINMUX_IPSR_DATA(IP8_25_23, PWM5_B),
649 PINMUX_IPSR_DATA(IP8_25_23, DU1_DR0),
650 PINMUX_IPSR_MODSEL_DATA(IP8_25_23, RIF1_SYNC_B, SEL_DR2_1),
651 PINMUX_IPSR_MODSEL_DATA(IP8_25_23, TS_SDATA_D, SEL_TSIF0_3),
652 PINMUX_IPSR_DATA(IP8_25_23, TPUTO1_B),
653 PINMUX_IPSR_MODSEL_DATA(IP8_28_26, I2C1_SDA, SEL_I2C01_0),
654 PINMUX_IPSR_MODSEL_DATA(IP8_28_26, SCIF4_TXD, SEL_SCIF4_0),
655 PINMUX_IPSR_DATA(IP8_28_26, IRQ5),
656 PINMUX_IPSR_DATA(IP8_28_26, DU1_DR1),
657 PINMUX_IPSR_MODSEL_DATA(IP8_28_26, RIF1_CLK_B, SEL_DR2_1),
658 PINMUX_IPSR_MODSEL_DATA(IP8_28_26, TS_SCK_D, SEL_TSIF0_3),
659 PINMUX_IPSR_MODSEL_DATA(IP8_28_26, BPFCLK_C, SEL_DARC_2),
660 PINMUX_IPSR_DATA(IP8_31_29, MSIOF0_RXD),
661 PINMUX_IPSR_MODSEL_DATA(IP8_31_29, SCIF5_RXD, SEL_SCIF5_0),
662 PINMUX_IPSR_MODSEL_DATA(IP8_31_29, I2C2_SCL_C, SEL_I2C02_2),
663 PINMUX_IPSR_DATA(IP8_31_29, DU1_DR2),
664 PINMUX_IPSR_MODSEL_DATA(IP8_31_29, RIF1_D0_B, SEL_DR2_1),
665 PINMUX_IPSR_MODSEL_DATA(IP8_31_29, TS_SDEN_D, SEL_TSIF0_3),
666 PINMUX_IPSR_MODSEL_DATA(IP8_31_29, FMCLK_C, SEL_DARC_2),
667 PINMUX_IPSR_MODSEL_DATA(IP8_31_29, RDS_CLK, SEL_RDS_0),
668
669 /*
670 * From IPSR9 to IPSR10 have been removed because they does not use.
671 */
672
673 /* IPSR11 */
674 PINMUX_IPSR_MODSEL_DATA(IP11_2_0, SSI_WS5, SEL_SSI5_0),
675 PINMUX_IPSR_MODSEL_DATA(IP11_2_0, SCIFA3_RXD, SEL_SCIFA3_0),
676 PINMUX_IPSR_MODSEL_DATA(IP11_2_0, I2C3_SCL_C, SEL_I2C03_2),
677 PINMUX_IPSR_DATA(IP11_2_0, DU1_DOTCLKOUT0),
678 PINMUX_IPSR_DATA(IP11_2_0, CAN_DEBUGOUT11),
679 PINMUX_IPSR_MODSEL_DATA(IP11_5_3, SSI_SDATA5, SEL_SSI5_0),
680 PINMUX_IPSR_MODSEL_DATA(IP11_5_3, SCIFA3_TXD, SEL_SCIFA3_0),
681 PINMUX_IPSR_MODSEL_DATA(IP11_5_3, I2C3_SDA_C, SEL_I2C03_2),
682 PINMUX_IPSR_DATA(IP11_5_3, DU1_DOTCLKOUT1),
683 PINMUX_IPSR_DATA(IP11_5_3, CAN_DEBUGOUT12),
684 PINMUX_IPSR_MODSEL_DATA(IP11_7_6, SSI_SCK6, SEL_SSI6_0),
685 PINMUX_IPSR_MODSEL_DATA(IP11_7_6, SCIFA1_SCK_B, SEL_SCIFA1_1),
686 PINMUX_IPSR_DATA(IP11_7_6, DU1_EXHSYNC_DU1_HSYNC),
687 PINMUX_IPSR_DATA(IP11_7_6, CAN_DEBUGOUT13),
688 PINMUX_IPSR_MODSEL_DATA(IP11_10_8, SSI_WS6, SEL_SSI6_0),
689 PINMUX_IPSR_MODSEL_DATA(IP11_10_8, SCIFA1_RXD_B, SEL_SCIFA1_1),
690 PINMUX_IPSR_MODSEL_DATA(IP11_10_8, I2C4_SCL_C, SEL_I2C04_2),
691 PINMUX_IPSR_DATA(IP11_10_8, DU1_EXVSYNC_DU1_VSYNC),
692 PINMUX_IPSR_DATA(IP11_10_8, CAN_DEBUGOUT14),
693 PINMUX_IPSR_MODSEL_DATA(IP11_13_11, SSI_SDATA6, SEL_SSI6_0),
694 PINMUX_IPSR_MODSEL_DATA(IP11_13_11, SCIFA1_TXD_B, SEL_SCIFA1_1),
695 PINMUX_IPSR_MODSEL_DATA(IP11_13_11, I2C4_SDA_C, SEL_I2C04_2),
696 PINMUX_IPSR_DATA(IP11_13_11, DU1_EXODDF_DU1_ODDF_DISP_CDE),
697 PINMUX_IPSR_DATA(IP11_13_11, CAN_DEBUGOUT15),
698 PINMUX_IPSR_MODSEL_DATA(IP11_15_14, SSI_SCK78, SEL_SSI7_0),
699 PINMUX_IPSR_MODSEL_DATA(IP11_15_14, SCIFA2_SCK_B, SEL_SCIFA2_1),
700 PINMUX_IPSR_MODSEL_DATA(IP11_15_14, IIC0_SDA_C, SEL_IIC00_2),
701 PINMUX_IPSR_DATA(IP11_15_14, DU1_DISP),
702 PINMUX_IPSR_MODSEL_DATA(IP11_17_16, SSI_WS78, SEL_SSI7_0),
703 PINMUX_IPSR_MODSEL_DATA(IP11_17_16, SCIFA2_RXD_B, SEL_SCIFA2_1),
704 PINMUX_IPSR_MODSEL_DATA(IP11_17_16, IIC0_SCL_C, SEL_IIC00_2),
705 PINMUX_IPSR_DATA(IP11_17_16, DU1_CDE),
706 PINMUX_IPSR_MODSEL_DATA(IP11_20_18, SSI_SDATA7, SEL_SSI7_0),
707 PINMUX_IPSR_MODSEL_DATA(IP11_20_18, SCIFA2_TXD_B, SEL_SCIFA2_1),
708 PINMUX_IPSR_DATA(IP11_20_18, IRQ8),
709 PINMUX_IPSR_MODSEL_DATA(IP11_20_18, AUDIO_CLKA_D, SEL_ADG_3),
710 PINMUX_IPSR_MODSEL_DATA(IP11_20_18, CAN_CLK_D, SEL_CAN_3),
711 PINMUX_IPSR_DATA(IP11_20_18, PCMOE_N),
712 PINMUX_IPSR_DATA(IP11_23_21, SSI_SCK0129),
713 PINMUX_IPSR_MODSEL_DATA(IP11_23_21, MSIOF1_RXD_B, SEL_MSI1_1),
714 PINMUX_IPSR_MODSEL_DATA(IP11_23_21, SCIF5_RXD_D, SEL_SCIF5_3),
715 PINMUX_IPSR_MODSEL_DATA(IP11_23_21, ADIDATA_B, SEL_RAD_1),
716 PINMUX_IPSR_MODSEL_DATA(IP11_23_21, AD_DI_B, SEL_ADI_1),
717 PINMUX_IPSR_DATA(IP11_23_21, PCMWE_N),
718 PINMUX_IPSR_DATA(IP11_26_24, SSI_WS0129),
719 PINMUX_IPSR_MODSEL_DATA(IP11_26_24, MSIOF1_TXD_B, SEL_MSI1_1),
720 PINMUX_IPSR_MODSEL_DATA(IP11_26_24, SCIF5_TXD_D, SEL_SCIF5_3),
721 PINMUX_IPSR_MODSEL_DATA(IP11_26_24, ADICS_SAMP_B, SEL_RAD_1),
722 PINMUX_IPSR_MODSEL_DATA(IP11_26_24, AD_DO_B, SEL_ADI_1),
723 PINMUX_IPSR_DATA(IP11_29_27, SSI_SDATA0),
724 PINMUX_IPSR_MODSEL_DATA(IP11_29_27, MSIOF1_SCK_B, SEL_MSI1_1),
725 PINMUX_IPSR_DATA(IP11_29_27, PWM0_B),
726 PINMUX_IPSR_MODSEL_DATA(IP11_29_27, ADICLK_B, SEL_RAD_1),
727 PINMUX_IPSR_MODSEL_DATA(IP11_29_27, AD_CLK_B, SEL_ADI_1),
728
729 /*
730 * From IPSR12 to IPSR13 have been removed because they does not use.
731 */
732};
733
734static struct pinmux_gpio pinmux_gpios[] = {
735 PINMUX_GPIO_GP_ALL(),
736
737 GPIO_FN(A2), GPIO_FN(WE0_N), GPIO_FN(WE1_N), GPIO_FN(DACK0),
738 GPIO_FN(USB0_PWEN), GPIO_FN(USB0_OVC), GPIO_FN(USB1_PWEN),
739 GPIO_FN(USB1_OVC), GPIO_FN(SD0_CLK), GPIO_FN(SD0_CMD),
740 GPIO_FN(SD0_DATA0), GPIO_FN(SD0_DATA1), GPIO_FN(SD0_DATA2),
741 GPIO_FN(SD0_DATA3), GPIO_FN(SD0_CD), GPIO_FN(SD0_WP),
742 GPIO_FN(SD1_CLK), GPIO_FN(SD1_CMD), GPIO_FN(SD1_DATA0),
743 GPIO_FN(SD1_DATA1), GPIO_FN(SD1_DATA2), GPIO_FN(SD1_DATA3),
744
Nobuhiro Iwamatsu25f96132014-11-19 14:26:33 +0900745 /* IPSR0 */
746 GPIO_FN(SD1_CD), GPIO_FN(CAN0_RX), GPIO_FN(SD1_WP), GPIO_FN(IRQ7),
747 GPIO_FN(CAN0_TX), GPIO_FN(MMC_CLK), GPIO_FN(SD2_CLK), GPIO_FN(MMC_CMD),
748 GPIO_FN(SD2_CMD), GPIO_FN(MMC_D0), GPIO_FN(SD2_DATA0), GPIO_FN(MMC_D1),
749 GPIO_FN(SD2_DATA1), GPIO_FN(MMC_D2), GPIO_FN(SD2_DATA2),
750 GPIO_FN(MMC_D3), GPIO_FN(SD2_DATA3), GPIO_FN(MMC_D4),
751 GPIO_FN(SD2_CD), GPIO_FN(MMC_D5), GPIO_FN(SD2_WP), GPIO_FN(MMC_D6),
752 GPIO_FN(SCIF0_RXD), GPIO_FN(I2C2_SCL_B), GPIO_FN(CAN1_RX),
753 GPIO_FN(MMC_D7), GPIO_FN(SCIF0_TXD), GPIO_FN(I2C2_SDA_B),
754 GPIO_FN(CAN1_TX), GPIO_FN(D0), GPIO_FN(SCIFA3_SCK_B), GPIO_FN(IRQ4),
755 GPIO_FN(D1), GPIO_FN(SCIFA3_RXD_B), GPIO_FN(D2), GPIO_FN(SCIFA3_TXD_B),
756 GPIO_FN(D3), GPIO_FN(I2C3_SCL_B), GPIO_FN(SCIF5_RXD_B), GPIO_FN(D4),
757 GPIO_FN(I2C3_SDA_B), GPIO_FN(SCIF5_TXD_B), GPIO_FN(D5),
758 GPIO_FN(SCIF4_RXD_B), GPIO_FN(I2C0_SCL_D),
759
Nobuhiro Iwamatsufafcfc52014-06-24 17:10:02 +0900760 /*
Nobuhiro Iwamatsu25f96132014-11-19 14:26:33 +0900761 * From IPSR1 to IPSR5 have been removed because they does not use.
Nobuhiro Iwamatsufafcfc52014-06-24 17:10:02 +0900762 */
763
764 /* IPSR6 */
765 GPIO_FN(DU0_EXVSYNC_DU0_VSYNC), GPIO_FN(QSTB_QHE),
766 GPIO_FN(CC50_STATE28), GPIO_FN(DU0_EXODDF_DU0_ODDF_DISP_CDE),
767 GPIO_FN(QCPV_QDE), GPIO_FN(CC50_STATE29), GPIO_FN(DU0_DISP),
768 GPIO_FN(QPOLA), GPIO_FN(CC50_STATE30), GPIO_FN(DU0_CDE), GPIO_FN(QPOLB),
769 GPIO_FN(CC50_STATE31), GPIO_FN(VI0_CLK), GPIO_FN(AVB_RX_CLK),
770 GPIO_FN(VI0_DATA0_VI0_B0), GPIO_FN(AVB_RX_DV),
771 GPIO_FN(VI0_DATA1_VI0_B1), GPIO_FN(AVB_RXD0), GPIO_FN(VI0_DATA2_VI0_B2),
772 GPIO_FN(AVB_RXD1), GPIO_FN(VI0_DATA3_VI0_B3), GPIO_FN(AVB_RXD2),
773 GPIO_FN(VI0_DATA4_VI0_B4), GPIO_FN(AVB_RXD3), GPIO_FN(VI0_DATA5_VI0_B5),
774 GPIO_FN(AVB_RXD4), GPIO_FN(VI0_DATA6_VI0_B6), GPIO_FN(AVB_RXD5),
775 GPIO_FN(VI0_DATA7_VI0_B7), GPIO_FN(AVB_RXD6), GPIO_FN(VI0_CLKENB),
776 GPIO_FN(I2C3_SCL), GPIO_FN(SCIFA5_RXD_C), GPIO_FN(IETX_C),
777 GPIO_FN(AVB_RXD7), GPIO_FN(VI0_FIELD), GPIO_FN(I2C3_SDA),
778 GPIO_FN(SCIFA5_TXD_C), GPIO_FN(IECLK_C), GPIO_FN(AVB_RX_ER),
779 GPIO_FN(VI0_HSYNC_N), GPIO_FN(SCIF0_RXD_B), GPIO_FN(I2C0_SCL_C),
780 GPIO_FN(IERX_C), GPIO_FN(AVB_COL), GPIO_FN(VI0_VSYNC_N),
781 GPIO_FN(SCIF0_TXD_B), GPIO_FN(I2C0_SDA_C), GPIO_FN(AUDIO_CLKOUT_B),
782 GPIO_FN(AVB_TX_EN), GPIO_FN(ETH_MDIO), GPIO_FN(VI0_G0),
783 GPIO_FN(MSIOF2_RXD_B), GPIO_FN(IIC0_SCL_D), GPIO_FN(AVB_TX_CLK),
784 GPIO_FN(ADIDATA), GPIO_FN(AD_DI),
785
786 /* IPSR7 */
787 GPIO_FN(ETH_CRS_DV), GPIO_FN(VI0_G1), GPIO_FN(MSIOF2_TXD_B),
788 GPIO_FN(IIC0_SDA_D), GPIO_FN(AVB_TXD0), GPIO_FN(ADICS_SAMP),
789 GPIO_FN(AD_DO), GPIO_FN(ETH_RX_ER), GPIO_FN(VI0_G2),
790 GPIO_FN(MSIOF2_SCK_B), GPIO_FN(CAN0_RX_B), GPIO_FN(AVB_TXD1),
791 GPIO_FN(ADICLK), GPIO_FN(AD_CLK), GPIO_FN(ETH_RXD0), GPIO_FN(VI0_G3),
792 GPIO_FN(MSIOF2_SYNC_B), GPIO_FN(CAN0_TX_B), GPIO_FN(AVB_TXD2),
793 GPIO_FN(ADICHS0), GPIO_FN(AD_NCS_N), GPIO_FN(ETH_RXD1),
794 GPIO_FN(VI0_G4), GPIO_FN(MSIOF2_SS1_B), GPIO_FN(SCIF4_RXD_D),
795 GPIO_FN(AVB_TXD3), GPIO_FN(ADICHS1), GPIO_FN(ETH_LINK), GPIO_FN(VI0_G5),
796 GPIO_FN(MSIOF2_SS2_B), GPIO_FN(SCIF4_TXD_D), GPIO_FN(AVB_TXD4),
797 GPIO_FN(ADICHS2), GPIO_FN(ETH_REFCLK), GPIO_FN(VI0_G6),
798 GPIO_FN(SCIF2_SCK_C), GPIO_FN(AVB_TXD5), GPIO_FN(SSI_SCK5_B),
799 GPIO_FN(ETH_TXD1), GPIO_FN(VI0_G7), GPIO_FN(SCIF2_RXD_C),
800 GPIO_FN(IIC1_SCL_D), GPIO_FN(AVB_TXD6), GPIO_FN(SSI_WS5_B),
801 GPIO_FN(ETH_TX_EN), GPIO_FN(VI0_R0), GPIO_FN(SCIF2_TXD_C),
802 GPIO_FN(IIC1_SDA_D), GPIO_FN(AVB_TXD7), GPIO_FN(SSI_SDATA5_B),
803 GPIO_FN(ETH_MAGIC), GPIO_FN(VI0_R1), GPIO_FN(SCIF3_SCK_B),
804 GPIO_FN(AVB_TX_ER), GPIO_FN(SSI_SCK6_B), GPIO_FN(ETH_TXD0),
805 GPIO_FN(VI0_R2), GPIO_FN(SCIF3_RXD_B), GPIO_FN(I2C4_SCL_E),
806 GPIO_FN(AVB_GTX_CLK), GPIO_FN(SSI_WS6_B), GPIO_FN(DREQ0_N),
807 GPIO_FN(SCIFB1_RXD),
808
809 /* IPSR8 */
810 GPIO_FN(ETH_MDC), GPIO_FN(VI0_R3), GPIO_FN(SCIF3_TXD_B),
811 GPIO_FN(I2C4_SDA_E), GPIO_FN(AVB_MDC), GPIO_FN(SSI_SDATA6_B),
812 GPIO_FN(HSCIF0_HRX), GPIO_FN(VI0_R4), GPIO_FN(I2C1_SCL_C),
813 GPIO_FN(AUDIO_CLKA_B), GPIO_FN(AVB_MDIO), GPIO_FN(SSI_SCK78_B),
814 GPIO_FN(HSCIF0_HTX), GPIO_FN(VI0_R5), GPIO_FN(I2C1_SDA_C),
815 GPIO_FN(AUDIO_CLKB_B), GPIO_FN(AVB_LINK), GPIO_FN(SSI_WS78_B),
816 GPIO_FN(HSCIF0_HCTS_N), GPIO_FN(VI0_R6), GPIO_FN(SCIF0_RXD_D),
817 GPIO_FN(I2C0_SCL_E), GPIO_FN(AVB_MAGIC), GPIO_FN(SSI_SDATA7_B),
818 GPIO_FN(HSCIF0_HRTS_N), GPIO_FN(VI0_R7), GPIO_FN(SCIF0_TXD_D),
819 GPIO_FN(I2C0_SDA_E), GPIO_FN(AVB_PHY_INT), GPIO_FN(SSI_SDATA8_B),
820 GPIO_FN(HSCIF0_HSCK), GPIO_FN(SCIF_CLK_B), GPIO_FN(AVB_CRS),
821 GPIO_FN(AUDIO_CLKC_B), GPIO_FN(I2C0_SCL), GPIO_FN(SCIF0_RXD_C),
822 GPIO_FN(PWM5), GPIO_FN(TCLK1_B), GPIO_FN(AVB_GTXREFCLK),
823 GPIO_FN(CAN1_RX_D), GPIO_FN(TPUTO0_B), GPIO_FN(I2C0_SDA),
824 GPIO_FN(SCIF0_TXD_C), GPIO_FN(TPUTO0), GPIO_FN(CAN_CLK),
825 GPIO_FN(DVC_MUTE), GPIO_FN(CAN1_TX_D), GPIO_FN(I2C1_SCL),
826 GPIO_FN(SCIF4_RXD), GPIO_FN(PWM5_B), GPIO_FN(DU1_DR0),
827 GPIO_FN(RIF1_SYNC_B), GPIO_FN(TS_SDATA_D), GPIO_FN(TPUTO1_B),
828 GPIO_FN(I2C1_SDA), GPIO_FN(SCIF4_TXD), GPIO_FN(IRQ5),
829 GPIO_FN(DU1_DR1), GPIO_FN(RIF1_CLK_B), GPIO_FN(TS_SCK_D),
830 GPIO_FN(BPFCLK_C), GPIO_FN(MSIOF0_RXD), GPIO_FN(SCIF5_RXD),
831 GPIO_FN(I2C2_SCL_C), GPIO_FN(DU1_DR2), GPIO_FN(RIF1_D0_B),
832 GPIO_FN(TS_SDEN_D), GPIO_FN(FMCLK_C), GPIO_FN(RDS_CLK),
833
834 /*
835 * From IPSR9 to IPSR10 have been removed because they does not use.
836 */
837
838 /* IPSR11 */
839 GPIO_FN(SSI_WS5), GPIO_FN(SCIFA3_RXD), GPIO_FN(I2C3_SCL_C),
840 GPIO_FN(DU1_DOTCLKOUT0), GPIO_FN(CAN_DEBUGOUT11), GPIO_FN(SSI_SDATA5),
841 GPIO_FN(SCIFA3_TXD), GPIO_FN(I2C3_SDA_C), GPIO_FN(DU1_DOTCLKOUT1),
842 GPIO_FN(CAN_DEBUGOUT12), GPIO_FN(SSI_SCK6), GPIO_FN(SCIFA1_SCK_B),
843 GPIO_FN(DU1_EXHSYNC_DU1_HSYNC), GPIO_FN(CAN_DEBUGOUT13),
844 GPIO_FN(SSI_WS6), GPIO_FN(SCIFA1_RXD_B), GPIO_FN(I2C4_SCL_C),
845 GPIO_FN(DU1_EXVSYNC_DU1_VSYNC), GPIO_FN(CAN_DEBUGOUT14),
846 GPIO_FN(SSI_SDATA6), GPIO_FN(SCIFA1_TXD_B), GPIO_FN(I2C4_SDA_C),
847 GPIO_FN(DU1_EXODDF_DU1_ODDF_DISP_CDE), GPIO_FN(CAN_DEBUGOUT15),
848 GPIO_FN(SSI_SCK78), GPIO_FN(SCIFA2_SCK_B), GPIO_FN(IIC0_SDA_C),
849 GPIO_FN(DU1_DISP), GPIO_FN(SSI_WS78), GPIO_FN(SCIFA2_RXD_B),
850 GPIO_FN(IIC0_SCL_C), GPIO_FN(DU1_CDE), GPIO_FN(SSI_SDATA7),
851 GPIO_FN(SCIFA2_TXD_B), GPIO_FN(IRQ8), GPIO_FN(AUDIO_CLKA_D),
852 GPIO_FN(CAN_CLK_D), GPIO_FN(PCMOE_N), GPIO_FN(SSI_SCK0129),
853 GPIO_FN(MSIOF1_RXD_B), GPIO_FN(SCIF5_RXD_D), GPIO_FN(ADIDATA_B),
854 GPIO_FN(AD_DI_B), GPIO_FN(PCMWE_N), GPIO_FN(SSI_WS0129),
855 GPIO_FN(MSIOF1_TXD_B), GPIO_FN(SCIF5_TXD_D), GPIO_FN(ADICS_SAMP_B),
856 GPIO_FN(AD_DO_B), GPIO_FN(SSI_SDATA0), GPIO_FN(MSIOF1_SCK_B),
857 GPIO_FN(PWM0_B), GPIO_FN(ADICLK_B), GPIO_FN(AD_CLK_B),
858
859 /*
860 * From IPSR12 to IPSR13 have been removed because they does not use.
861 */
862};
863
864static struct pinmux_cfg_reg pinmux_config_regs[] = {
865 { PINMUX_CFG_REG("GPSR0", 0xE6060004, 32, 1) {
866 GP_0_31_FN, FN_IP2_17_16,
867 GP_0_30_FN, FN_IP2_15_14,
868 GP_0_29_FN, FN_IP2_13_12,
869 GP_0_28_FN, FN_IP2_11_10,
870 GP_0_27_FN, FN_IP2_9_8,
871 GP_0_26_FN, FN_IP2_7_6,
872 GP_0_25_FN, FN_IP2_5_4,
873 GP_0_24_FN, FN_IP2_3_2,
874 GP_0_23_FN, FN_IP2_1_0,
875 GP_0_22_FN, FN_IP1_31_30,
876 GP_0_21_FN, FN_IP1_29_28,
877 GP_0_20_FN, FN_IP1_27,
878 GP_0_19_FN, FN_IP1_26,
879 GP_0_18_FN, FN_A2,
880 GP_0_17_FN, FN_IP1_24,
881 GP_0_16_FN, FN_IP1_23_22,
882 GP_0_15_FN, FN_IP1_21_20,
883 GP_0_14_FN, FN_IP1_19_18,
884 GP_0_13_FN, FN_IP1_17_15,
885 GP_0_12_FN, FN_IP1_14_13,
886 GP_0_11_FN, FN_IP1_12_11,
887 GP_0_10_FN, FN_IP1_10_8,
888 GP_0_9_FN, FN_IP1_7_6,
889 GP_0_8_FN, FN_IP1_5_4,
890 GP_0_7_FN, FN_IP1_3_2,
891 GP_0_6_FN, FN_IP1_1_0,
892 GP_0_5_FN, FN_IP0_31_30,
893 GP_0_4_FN, FN_IP0_29_28,
894 GP_0_3_FN, FN_IP0_27_26,
895 GP_0_2_FN, FN_IP0_25,
896 GP_0_1_FN, FN_IP0_24,
897 GP_0_0_FN, FN_IP0_23_22, }
898 },
899 { PINMUX_CFG_REG("GPSR1", 0xE6060008, 32, 1) {
900 0, 0,
901 0, 0,
902 0, 0,
903 0, 0,
904 0, 0,
905 0, 0,
906 GP_1_25_FN, FN_DACK0,
907 GP_1_24_FN, FN_IP7_31,
908 GP_1_23_FN, FN_IP4_1_0,
909 GP_1_22_FN, FN_WE1_N,
910 GP_1_21_FN, FN_WE0_N,
911 GP_1_20_FN, FN_IP3_31,
912 GP_1_19_FN, FN_IP3_30,
913 GP_1_18_FN, FN_IP3_29_27,
914 GP_1_17_FN, FN_IP3_26_24,
915 GP_1_16_FN, FN_IP3_23_21,
916 GP_1_15_FN, FN_IP3_20_18,
917 GP_1_14_FN, FN_IP3_17_15,
918 GP_1_13_FN, FN_IP3_14_13,
919 GP_1_12_FN, FN_IP3_12,
920 GP_1_11_FN, FN_IP3_11,
921 GP_1_10_FN, FN_IP3_10,
922 GP_1_9_FN, FN_IP3_9_8,
923 GP_1_8_FN, FN_IP3_7_6,
924 GP_1_7_FN, FN_IP3_5_4,
925 GP_1_6_FN, FN_IP3_3_2,
926 GP_1_5_FN, FN_IP3_1_0,
927 GP_1_4_FN, FN_IP2_31_30,
928 GP_1_3_FN, FN_IP2_29_27,
929 GP_1_2_FN, FN_IP2_26_24,
930 GP_1_1_FN, FN_IP2_23_21,
931 GP_1_0_FN, FN_IP2_20_18, }
932 },
933 { PINMUX_CFG_REG("GPSR2", 0xE606000C, 32, 1) {
934 GP_2_31_FN, FN_IP6_7_6,
935 GP_2_30_FN, FN_IP6_5_4,
936 GP_2_29_FN, FN_IP6_3_2,
937 GP_2_28_FN, FN_IP6_1_0,
938 GP_2_27_FN, FN_IP5_31_30,
939 GP_2_26_FN, FN_IP5_29_28,
940 GP_2_25_FN, FN_IP5_27_26,
941 GP_2_24_FN, FN_IP5_25_24,
942 GP_2_23_FN, FN_IP5_23_22,
943 GP_2_22_FN, FN_IP5_21_20,
944 GP_2_21_FN, FN_IP5_19_18,
945 GP_2_20_FN, FN_IP5_17_16,
946 GP_2_19_FN, FN_IP5_15_14,
947 GP_2_18_FN, FN_IP5_13_12,
948 GP_2_17_FN, FN_IP5_11_9,
949 GP_2_16_FN, FN_IP5_8_6,
950 GP_2_15_FN, FN_IP5_5_4,
951 GP_2_14_FN, FN_IP5_3_2,
952 GP_2_13_FN, FN_IP5_1_0,
953 GP_2_12_FN, FN_IP4_31_30,
954 GP_2_11_FN, FN_IP4_29_28,
955 GP_2_10_FN, FN_IP4_27_26,
956 GP_2_9_FN, FN_IP4_25_23,
957 GP_2_8_FN, FN_IP4_22_20,
958 GP_2_7_FN, FN_IP4_19_18,
959 GP_2_6_FN, FN_IP4_17_16,
960 GP_2_5_FN, FN_IP4_15_14,
961 GP_2_4_FN, FN_IP4_13_12,
962 GP_2_3_FN, FN_IP4_11_10,
963 GP_2_2_FN, FN_IP4_9_8,
964 GP_2_1_FN, FN_IP4_7_5,
965 GP_2_0_FN, FN_IP4_4_2 }
966 },
967 { PINMUX_CFG_REG("GPSR3", 0xE6060010, 32, 1) {
968 GP_3_31_FN, FN_IP8_22_20,
969 GP_3_30_FN, FN_IP8_19_17,
970 GP_3_29_FN, FN_IP8_16_15,
971 GP_3_28_FN, FN_IP8_14_12,
972 GP_3_27_FN, FN_IP8_11_9,
973 GP_3_26_FN, FN_IP8_8_6,
974 GP_3_25_FN, FN_IP8_5_3,
975 GP_3_24_FN, FN_IP8_2_0,
976 GP_3_23_FN, FN_IP7_29_27,
977 GP_3_22_FN, FN_IP7_26_24,
978 GP_3_21_FN, FN_IP7_23_21,
979 GP_3_20_FN, FN_IP7_20_18,
980 GP_3_19_FN, FN_IP7_17_15,
981 GP_3_18_FN, FN_IP7_14_12,
982 GP_3_17_FN, FN_IP7_11_9,
983 GP_3_16_FN, FN_IP7_8_6,
984 GP_3_15_FN, FN_IP7_5_3,
985 GP_3_14_FN, FN_IP7_2_0,
986 GP_3_13_FN, FN_IP6_31_29,
987 GP_3_12_FN, FN_IP6_28_26,
988 GP_3_11_FN, FN_IP6_25_23,
989 GP_3_10_FN, FN_IP6_22_20,
990 GP_3_9_FN, FN_IP6_19_17,
991 GP_3_8_FN, FN_IP6_16,
992 GP_3_7_FN, FN_IP6_15,
993 GP_3_6_FN, FN_IP6_14,
994 GP_3_5_FN, FN_IP6_13,
995 GP_3_4_FN, FN_IP6_12,
996 GP_3_3_FN, FN_IP6_11,
997 GP_3_2_FN, FN_IP6_10,
998 GP_3_1_FN, FN_IP6_9,
999 GP_3_0_FN, FN_IP6_8 }
1000 },
1001 { PINMUX_CFG_REG("GPSR4", 0xE6060014, 32, 1) {
1002 GP_4_31_FN, FN_IP11_17_16,
1003 GP_4_30_FN, FN_IP11_15_14,
1004 GP_4_29_FN, FN_IP11_13_11,
1005 GP_4_28_FN, FN_IP11_10_8,
1006 GP_4_27_FN, FN_IP11_7_6,
1007 GP_4_26_FN, FN_IP11_5_3,
1008 GP_4_25_FN, FN_IP11_2_0,
1009 GP_4_24_FN, FN_IP10_31_30,
1010 GP_4_23_FN, FN_IP10_29_27,
1011 GP_4_22_FN, FN_IP10_26_24,
1012 GP_4_21_FN, FN_IP10_23_21,
1013 GP_4_20_FN, FN_IP10_20_18,
1014 GP_4_19_FN, FN_IP10_17_15,
1015 GP_4_18_FN, FN_IP10_14_12,
1016 GP_4_17_FN, FN_IP10_11_9,
1017 GP_4_16_FN, FN_IP10_8_6,
1018 GP_4_15_FN, FN_IP10_5_3,
1019 GP_4_14_FN, FN_IP10_2_0,
1020 GP_4_13_FN, FN_IP9_30_28,
1021 GP_4_12_FN, FN_IP9_27_25,
1022 GP_4_11_FN, FN_IP9_24_22,
1023 GP_4_10_FN, FN_IP9_21_19,
1024 GP_4_9_FN, FN_IP9_18_17,
1025 GP_4_8_FN, FN_IP9_16_15,
1026 GP_4_7_FN, FN_IP9_14_12,
1027 GP_4_6_FN, FN_IP9_11_9,
1028 GP_4_5_FN, FN_IP9_8_6,
1029 GP_4_4_FN, FN_IP9_5_3,
1030 GP_4_3_FN, FN_IP9_2_0,
1031 GP_4_2_FN, FN_IP8_31_29,
1032 GP_4_1_FN, FN_IP8_28_26,
1033 GP_4_0_FN, FN_IP8_25_23 }
1034 },
1035 { PINMUX_CFG_REG("GPSR5", 0xE6060018, 32, 1) {
1036 0, 0,
1037 0, 0,
1038 0, 0,
1039 0, 0,
1040 GP_5_27_FN, FN_USB1_OVC,
1041 GP_5_26_FN, FN_USB1_PWEN,
1042 GP_5_25_FN, FN_USB0_OVC,
1043 GP_5_24_FN, FN_USB0_PWEN,
1044 GP_5_23_FN, FN_IP13_26_24,
1045 GP_5_22_FN, FN_IP13_23_21,
1046 GP_5_21_FN, FN_IP13_20_18,
1047 GP_5_20_FN, FN_IP13_17_15,
1048 GP_5_19_FN, FN_IP13_14_12,
1049 GP_5_18_FN, FN_IP13_11_9,
1050 GP_5_17_FN, FN_IP13_8_6,
1051 GP_5_16_FN, FN_IP13_5_3,
1052 GP_5_15_FN, FN_IP13_2_0,
1053 GP_5_14_FN, FN_IP12_29_27,
1054 GP_5_13_FN, FN_IP12_26_24,
1055 GP_5_12_FN, FN_IP12_23_21,
1056 GP_5_11_FN, FN_IP12_20_18,
1057 GP_5_10_FN, FN_IP12_17_15,
1058 GP_5_9_FN, FN_IP12_14_13,
1059 GP_5_8_FN, FN_IP12_12_11,
1060 GP_5_7_FN, FN_IP12_10_9,
1061 GP_5_6_FN, FN_IP12_8_6,
1062 GP_5_5_FN, FN_IP12_5_3,
1063 GP_5_4_FN, FN_IP12_2_0,
1064 GP_5_3_FN, FN_IP11_29_27,
1065 GP_5_2_FN, FN_IP11_26_24,
1066 GP_5_1_FN, FN_IP11_23_21,
1067 GP_5_0_FN, FN_IP11_20_18 }
1068 },
1069 { PINMUX_CFG_REG("GPSR6", 0xE606001C, 32, 1) {
1070 0, 0,
1071 0, 0,
1072 0, 0,
1073 0, 0,
1074 0, 0,
1075 0, 0,
1076 GP_6_25_FN, FN_IP0_21_20,
1077 GP_6_24_FN, FN_IP0_19_18,
1078 GP_6_23_FN, FN_IP0_17,
1079 GP_6_22_FN, FN_IP0_16,
1080 GP_6_21_FN, FN_IP0_15,
1081 GP_6_20_FN, FN_IP0_14,
1082 GP_6_19_FN, FN_IP0_13,
1083 GP_6_18_FN, FN_IP0_12,
1084 GP_6_17_FN, FN_IP0_11,
1085 GP_6_16_FN, FN_IP0_10,
1086 GP_6_15_FN, FN_IP0_9_8,
1087 GP_6_14_FN, FN_IP0_0,
1088 GP_6_13_FN, FN_SD1_DATA3,
1089 GP_6_12_FN, FN_SD1_DATA2,
1090 GP_6_11_FN, FN_SD1_DATA1,
1091 GP_6_10_FN, FN_SD1_DATA0,
1092 GP_6_9_FN, FN_SD1_CMD,
1093 GP_6_8_FN, FN_SD1_CLK,
1094 GP_6_7_FN, FN_SD0_WP,
1095 GP_6_6_FN, FN_SD0_CD,
1096 GP_6_5_FN, FN_SD0_DATA3,
1097 GP_6_4_FN, FN_SD0_DATA2,
1098 GP_6_3_FN, FN_SD0_DATA1,
1099 GP_6_2_FN, FN_SD0_DATA0,
1100 GP_6_1_FN, FN_SD0_CMD,
1101 GP_6_0_FN, FN_SD0_CLK }
1102 },
Nobuhiro Iwamatsu25f96132014-11-19 14:26:33 +09001103 { PINMUX_CFG_REG_VAR("IPSR0", 0xE6060020, 32,
1104 2, 2, 2, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1,
1105 2, 1, 1, 1, 1, 1, 1, 1, 1) {
1106 /* IP0_31_30 [2] */
1107 FN_D5, FN_SCIF4_RXD_B, FN_I2C0_SCL_D, 0,
1108 /* IP0_29_28 [2] */
1109 FN_D4, FN_I2C3_SDA_B, FN_SCIF5_TXD_B, 0,
1110 /* IP0_27_26 [2] */
1111 FN_D3, FN_I2C3_SCL_B, FN_SCIF5_RXD_B, 0,
1112 /* IP0_25 [1] */
1113 FN_D2, FN_SCIFA3_TXD_B,
1114 /* IP0_24 [1] */
1115 FN_D1, FN_SCIFA3_RXD_B,
1116 /* IP0_23_22 [2] */
1117 FN_D0, FN_SCIFA3_SCK_B, FN_IRQ4, 0,
1118 /* IP0_21_20 [2] */
1119 FN_MMC_D7, FN_SCIF0_TXD, FN_I2C2_SDA_B, FN_CAN1_TX,
1120 /* IP0_19_18 [2] */
1121 FN_MMC_D6, FN_SCIF0_RXD, FN_I2C2_SCL_B, FN_CAN1_RX,
1122 /* IP0_17 [1] */
1123 FN_MMC_D5, FN_SD2_WP,
1124 /* IP0_16 [1] */
1125 FN_MMC_D4, FN_SD2_CD,
1126 /* IP0_15 [1] */
1127 FN_MMC_D3, FN_SD2_DATA3,
1128 /* IP0_14 [1] */
1129 FN_MMC_D2, FN_SD2_DATA2,
1130 /* IP0_13 [1] */
1131 FN_MMC_D1, FN_SD2_DATA1,
1132 /* IP0_12 [1] */
1133 FN_MMC_D0, FN_SD2_DATA0,
1134 /* IP0_11 [1] */
1135 FN_MMC_CMD, FN_SD2_CMD,
1136 /* IP0_10 [1] */
1137 FN_MMC_CLK, FN_SD2_CLK,
1138 /* IP0_9_8 [2] */
1139 FN_SD1_WP, FN_IRQ7, FN_CAN0_TX, 0,
1140 /* IP0_7 [1] */
1141 0, 0,
1142 /* IP0_6 [1] */
1143 0, 0,
1144 /* IP0_5 [1] */
1145 0, 0,
1146 /* IP0_4 [1] */
1147 0, 0,
1148 /* IP0_3 [1] */
1149 0, 0,
1150 /* IP0_2 [1] */
1151 0, 0,
1152 /* IP0_1 [1] */
1153 0, 0,
1154 /* IP0_0 [1] */
1155 FN_SD1_CD, FN_CAN0_RX, }
1156 },
Nobuhiro Iwamatsufafcfc52014-06-24 17:10:02 +09001157
1158 /*
Nobuhiro Iwamatsu25f96132014-11-19 14:26:33 +09001159 * From IPSR1 to IPSR5 have been removed because they does not use.
Nobuhiro Iwamatsufafcfc52014-06-24 17:10:02 +09001160 */
1161
1162 { PINMUX_CFG_REG_VAR("IPSR6", 0xE6060038, 32,
1163 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2,
1164 2, 2) {
1165 /* IP6_31_29 [3] */
1166 FN_ETH_MDIO, FN_VI0_G0, FN_MSIOF2_RXD_B, FN_IIC0_SCL_D,
1167 FN_AVB_TX_CLK, FN_ADIDATA, FN_AD_DI, 0,
1168 /* IP6_28_26 [3] */
1169 FN_VI0_VSYNC_N, FN_SCIF0_TXD_B, FN_I2C0_SDA_C,
1170 FN_AUDIO_CLKOUT_B, FN_AVB_TX_EN, 0, 0, 0,
1171 /* IP6_25_23 [3] */
1172 FN_VI0_HSYNC_N, FN_SCIF0_RXD_B, FN_I2C0_SCL_C, FN_IERX_C,
1173 FN_AVB_COL, 0, 0, 0,
1174 /* IP6_22_20 [3] */
1175 FN_VI0_FIELD, FN_I2C3_SDA, FN_SCIFA5_TXD_C, FN_IECLK_C,
1176 FN_AVB_RX_ER, 0, 0, 0,
1177 /* IP6_19_17 [3] */
1178 FN_VI0_CLKENB, FN_I2C3_SCL, FN_SCIFA5_RXD_C, FN_IETX_C,
1179 FN_AVB_RXD7, 0, 0, 0,
1180 /* IP6_16 [1] */
1181 FN_VI0_DATA7_VI0_B7, FN_AVB_RXD6,
1182 /* IP6_15 [1] */
1183 FN_VI0_DATA6_VI0_B6, FN_AVB_RXD5,
1184 /* IP6_14 [1] */
1185 FN_VI0_DATA5_VI0_B5, FN_AVB_RXD4,
1186 /* IP6_13 [1] */
1187 FN_VI0_DATA4_VI0_B4, FN_AVB_RXD3,
1188 /* IP6_12 [1] */
1189 FN_VI0_DATA3_VI0_B3, FN_AVB_RXD2,
1190 /* IP6_11 [1] */
1191 FN_VI0_DATA2_VI0_B2, FN_AVB_RXD1,
1192 /* IP6_10 [1] */
1193 FN_VI0_DATA1_VI0_B1, FN_AVB_RXD0,
1194 /* IP6_9 [1] */
1195 FN_VI0_DATA0_VI0_B0, FN_AVB_RX_DV,
1196 /* IP6_8 [1] */
1197 FN_VI0_CLK, FN_AVB_RX_CLK,
1198 /* IP6_7_6 [2] */
1199 FN_DU0_CDE, FN_QPOLB, FN_CC50_STATE31, 0,
1200 /* IP6_5_4 [2] */
1201 FN_DU0_DISP, FN_QPOLA, FN_CC50_STATE30, 0,
1202 /* IP6_3_2 [2] */
1203 FN_DU0_EXODDF_DU0_ODDF_DISP_CDE, FN_QCPV_QDE, FN_CC50_STATE29,
1204 /* IP6_1_0 [2] */
1205 FN_DU0_EXVSYNC_DU0_VSYNC, FN_QSTB_QHE, FN_CC50_STATE28, 0, }
1206 },
1207 { PINMUX_CFG_REG_VAR("IPSR7", 0xE606003C, 32,
1208 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3) {
1209 /* IP7_31 [1] */
1210 FN_DREQ0_N, FN_SCIFB1_RXD,
1211 /* IP7_30 [1] */
1212 0, 0,
1213 /* IP7_29_27 [3] */
1214 FN_ETH_TXD0, FN_VI0_R2, FN_SCIF3_RXD_B, FN_I2C4_SCL_E,
1215 FN_AVB_GTX_CLK, FN_SSI_WS6_B, 0, 0,
1216 /* IP7_26_24 [3] */
1217 FN_ETH_MAGIC, FN_VI0_R1, FN_SCIF3_SCK_B, FN_AVB_TX_ER,
1218 FN_SSI_SCK6_B, 0, 0, 0,
1219 /* IP7_23_21 [3] */
1220 FN_ETH_TX_EN, FN_VI0_R0, FN_SCIF2_TXD_C, FN_IIC1_SDA_D,
1221 FN_AVB_TXD7, FN_SSI_SDATA5_B, 0, 0,
1222 /* IP7_20_18 [3] */
1223 FN_ETH_TXD1, FN_VI0_G7, FN_SCIF2_RXD_C, FN_IIC1_SCL_D,
1224 FN_AVB_TXD6, FN_SSI_WS5_B, 0, 0,
1225 /* IP7_17_15 [3] */
1226 FN_ETH_REFCLK, FN_VI0_G6, FN_SCIF2_SCK_C, FN_AVB_TXD5,
1227 FN_SSI_SCK5_B, 0, 0, 0,
1228 /* IP7_14_12 [3] */
1229 FN_ETH_LINK, FN_VI0_G5, FN_MSIOF2_SS2_B, FN_SCIF4_TXD_D,
1230 FN_AVB_TXD4, FN_ADICHS2, 0, 0,
1231 /* IP7_11_9 [3] */
1232 FN_ETH_RXD1, FN_VI0_G4, FN_MSIOF2_SS1_B, FN_SCIF4_RXD_D,
1233 FN_AVB_TXD3, FN_ADICHS1, 0, 0,
1234 /* IP7_8_6 [3] */
1235 FN_ETH_RXD0, FN_VI0_G3, FN_MSIOF2_SYNC_B, FN_CAN0_TX_B,
1236 FN_AVB_TXD2, FN_ADICHS0, FN_AD_NCS_N, 0,
1237 /* IP7_5_3 [3] */
1238 FN_ETH_RX_ER, FN_VI0_G2, FN_MSIOF2_SCK_B, FN_CAN0_RX_B,
1239 FN_AVB_TXD1, FN_ADICLK, FN_AD_CLK, 0,
1240 /* IP7_2_0 [3] */
1241 FN_ETH_CRS_DV, FN_VI0_G1, FN_MSIOF2_TXD_B, FN_IIC0_SDA_D,
1242 FN_AVB_TXD0, FN_ADICS_SAMP, FN_AD_DO, 0, }
1243 },
1244 { PINMUX_CFG_REG_VAR("IPSR8", 0xE6060040, 32,
1245 3, 3, 3, 3, 3, 2, 3, 3, 3, 3, 3) {
1246 /* IP8_31_29 [3] */
1247 FN_MSIOF0_RXD, FN_SCIF5_RXD, FN_I2C2_SCL_C, FN_DU1_DR2,
1248 FN_RIF1_D0_B, FN_TS_SDEN_D, FN_FMCLK_C, FN_RDS_CLK,
1249 /* IP8_28_26 [3] */
1250 FN_I2C1_SDA, FN_SCIF4_TXD, FN_IRQ5, FN_DU1_DR1,
1251 FN_RIF1_CLK_B, FN_TS_SCK_D, FN_BPFCLK_C, 0,
1252 /* IP8_25_23 [3] */
1253 FN_I2C1_SCL, FN_SCIF4_RXD, FN_PWM5_B, FN_DU1_DR0,
1254 FN_RIF1_SYNC_B, FN_TS_SDATA_D, FN_TPUTO1_B, 0,
1255 /* IP8_22_20 [3] */
1256 FN_I2C0_SDA, FN_SCIF0_TXD_C, FN_TPUTO0, FN_CAN_CLK,
1257 FN_DVC_MUTE, FN_CAN1_TX_D, 0, 0,
1258 /* IP8_19_17 [3] */
1259 FN_I2C0_SCL, FN_SCIF0_RXD_C, FN_PWM5, FN_TCLK1_B,
1260 FN_AVB_GTXREFCLK, FN_CAN1_RX_D, FN_TPUTO0_B, 0,
1261 /* IP8_16_15 [2] */
1262 FN_HSCIF0_HSCK, FN_SCIF_CLK_B, FN_AVB_CRS, FN_AUDIO_CLKC_B,
1263 /* IP8_14_12 [3] */
1264 FN_HSCIF0_HRTS_N, FN_VI0_R7, FN_SCIF0_TXD_D, FN_I2C0_SDA_E,
1265 FN_AVB_PHY_INT, FN_SSI_SDATA8_B, 0, 0,
1266 /* IP8_11_9 [3] */
1267 FN_HSCIF0_HCTS_N, FN_VI0_R6, FN_SCIF0_RXD_D, FN_I2C0_SCL_E,
1268 FN_AVB_MAGIC, FN_SSI_SDATA7_B, 0, 0,
1269 /* IP8_8_6 [3] */
1270 FN_HSCIF0_HTX, FN_VI0_R5, FN_I2C1_SDA_C, FN_AUDIO_CLKB_B,
1271 FN_AVB_LINK, FN_SSI_WS78_B, 0, 0,
1272 /* IP8_5_3 [3] */
1273 FN_HSCIF0_HRX, FN_VI0_R4, FN_I2C1_SCL_C, FN_AUDIO_CLKA_B,
1274 FN_AVB_MDIO, FN_SSI_SCK78_B, 0, 0,
1275 /* IP8_2_0 [3] */
1276 FN_ETH_MDC, FN_VI0_R3, FN_SCIF3_TXD_B, FN_I2C4_SDA_E,
1277 FN_AVB_MDC, FN_SSI_SDATA6_B, 0, 0, }
1278 },
1279
1280 /*
1281 * From IPSR9 to IPSR10 have been removed because they does not use.
1282 */
1283
1284 { PINMUX_CFG_REG_VAR("IPSR11", 0xE606004C, 32,
1285 2, 3, 3, 3, 3, 2, 2, 3, 3, 2, 3, 3) {
1286 /* IP11_31_30 [2] */
1287 0, 0, 0, 0,
1288 /* IP11_29_27 [3] */
1289 FN_SSI_SDATA0, FN_MSIOF1_SCK_B, FN_PWM0_B, FN_ADICLK_B,
1290 FN_AD_CLK_B, 0, 0, 0,
1291 /* IP11_26_24 [3] */
1292 FN_SSI_WS0129, FN_MSIOF1_TXD_B, FN_SCIF5_TXD_D, FN_ADICS_SAMP_B,
1293 FN_AD_DO_B, 0, 0, 0,
1294 /* IP11_23_21 [3] */
1295 FN_SSI_SCK0129, FN_MSIOF1_RXD_B, FN_SCIF5_RXD_D, FN_ADIDATA_B,
1296 FN_AD_DI_B, FN_PCMWE_N, 0, 0,
1297 /* IP11_20_18 [3] */
1298 FN_SSI_SDATA7, FN_SCIFA2_TXD_B, FN_IRQ8, FN_AUDIO_CLKA_D,
1299 FN_CAN_CLK_D, FN_PCMOE_N, 0, 0,
1300 /* IP11_17_16 [2] */
1301 FN_SSI_WS78, FN_SCIFA2_RXD_B, FN_IIC0_SCL_C, FN_DU1_CDE,
1302 /* IP11_15_14 [2] */
1303 FN_SSI_SCK78, FN_SCIFA2_SCK_B, FN_IIC0_SDA_C, FN_DU1_DISP,
1304 /* IP11_13_11 [3] */
1305 FN_SSI_SDATA6, FN_SCIFA1_TXD_B, FN_I2C4_SDA_C,
1306 FN_DU1_EXODDF_DU1_ODDF_DISP_CDE, FN_CAN_DEBUGOUT15, 0, 0, 0,
1307 /* IP11_10_8 [3] */
1308 FN_SSI_WS6, FN_SCIFA1_RXD_B, FN_I2C4_SCL_C,
1309 FN_DU1_EXVSYNC_DU1_VSYNC, FN_CAN_DEBUGOUT14, 0, 0, 0,
1310 /* IP11_7_6 [2] */
1311 FN_SSI_SCK6, FN_SCIFA1_SCK_B, FN_DU1_EXHSYNC_DU1_HSYNC,
1312 FN_CAN_DEBUGOUT13,
1313 /* IP11_5_3 [3] */
1314 FN_SSI_SDATA5, FN_SCIFA3_TXD, FN_I2C3_SDA_C, FN_DU1_DOTCLKOUT1,
1315 FN_CAN_DEBUGOUT12, 0, 0, 0,
1316 /* IP11_2_0 [3] */
1317 FN_SSI_WS5, FN_SCIFA3_RXD, FN_I2C3_SCL_C, FN_DU1_DOTCLKOUT0,
1318 FN_CAN_DEBUGOUT11, 0, 0, 0, }
1319 },
1320
1321 /*
1322 * From IPSR12 to IPSR13 have been removed because they does not use.
1323 */
1324
1325 { PINMUX_CFG_REG_VAR("MOD_SEL", 0xE6060090, 32,
1326 2, 1, 2, 3, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3,
1327 2, 1) {
1328 /* SEL_ADG [2] */
1329 FN_SEL_ADG_0, FN_SEL_ADG_1, FN_SEL_ADG_2, FN_SEL_ADG_3,
1330 /* SEL_ADI [1] */
1331 FN_SEL_ADI_0, FN_SEL_ADI_1,
1332 /* SEL_CAN [2] */
1333 FN_SEL_CAN_0, FN_SEL_CAN_1, FN_SEL_CAN_2, FN_SEL_CAN_3,
1334 /* SEL_DARC [3] */
1335 FN_SEL_DARC_0, FN_SEL_DARC_1, FN_SEL_DARC_2, FN_SEL_DARC_3,
1336 FN_SEL_DARC_4, 0, 0, 0,
1337 /* SEL_DR0 [1] */
1338 FN_SEL_DR0_0, FN_SEL_DR0_1,
1339 /* SEL_DR1 [1] */
1340 FN_SEL_DR1_0, FN_SEL_DR1_1,
1341 /* SEL_DR2 [1] */
1342 FN_SEL_DR2_0, FN_SEL_DR2_1,
1343 /* SEL_DR3 [1] */
1344 FN_SEL_DR3_0, FN_SEL_DR3_1,
1345 /* SEL_ETH [1] */
1346 FN_SEL_ETH_0, FN_SEL_ETH_1,
1347 /* SLE_FSN [1] */
1348 FN_SEL_FSN_0, FN_SEL_FSN_1,
1349 /* SEL_IC200 [3] */
1350 FN_SEL_I2C00_0, FN_SEL_I2C00_1, FN_SEL_I2C00_2, FN_SEL_I2C00_3,
1351 FN_SEL_I2C00_4, 0, 0, 0,
1352 /* SEL_I2C01 [3] */
1353 FN_SEL_I2C01_0, FN_SEL_I2C01_1, FN_SEL_I2C01_2, FN_SEL_I2C01_3,
1354 FN_SEL_I2C01_4, 0, 0, 0,
1355 /* SEL_I2C02 [3] */
1356 FN_SEL_I2C02_0, FN_SEL_I2C02_1, FN_SEL_I2C02_2, FN_SEL_I2C02_3,
1357 FN_SEL_I2C02_4, 0, 0, 0,
1358 /* SEL_I2C03 [3] */
1359 FN_SEL_I2C03_0, FN_SEL_I2C03_1, FN_SEL_I2C03_2, FN_SEL_I2C03_3,
1360 FN_SEL_I2C03_4, 0, 0, 0,
1361 /* SEL_I2C04 [3] */
1362 FN_SEL_I2C04_0, FN_SEL_I2C04_1, FN_SEL_I2C04_2, FN_SEL_I2C04_3,
1363 FN_SEL_I2C04_4, 0, 0, 0,
1364 /* SEL_IIC00 [2] */
1365 FN_SEL_IIC00_0, FN_SEL_IIC00_1, FN_SEL_IIC00_2, FN_SEL_IIC00_3,
1366 /* SEL_AVB [1] */
1367 FN_SEL_AVB_0, FN_SEL_AVB_1, }
1368 },
1369 { PINMUX_CFG_REG_VAR("MOD_SEL2", 0xE6060094, 32,
1370 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 1, 1,
1371 2, 2, 2, 1, 1, 2) {
1372 /* SEL_IEB [2] */
1373 FN_SEL_IEB_0, FN_SEL_IEB_1, FN_SEL_IEB_2, 0,
1374 /* SEL_IIC0 [2] */
1375 FN_SEL_IIC01_0, FN_SEL_IIC01_1, FN_SEL_IIC01_2, FN_SEL_IIC01_3,
1376 /* SEL_LBS [1] */
1377 FN_SEL_LBS_0, FN_SEL_LBS_1,
1378 /* SEL_MSI1 [1] */
1379 FN_SEL_MSI1_0, FN_SEL_MSI1_1,
1380 /* SEL_MSI2 [1] */
1381 FN_SEL_MSI2_0, FN_SEL_MSI2_1,
1382 /* SEL_RAD [1] */
1383 FN_SEL_RAD_0, FN_SEL_RAD_1,
1384 /* SEL_RCN [1] */
1385 FN_SEL_RCN_0, FN_SEL_RCN_1,
1386 /* SEL_RSP [1] */
1387 FN_SEL_RSP_0, FN_SEL_RSP_1,
1388 /* SEL_SCIFA0 [2] */
1389 FN_SEL_SCIFA0_0, FN_SEL_SCIFA0_1, FN_SEL_SCIFA0_2,
1390 FN_SEL_SCIFA0_3,
1391 /* SEL_SCIFA1 [2] */
1392 FN_SEL_SCIFA1_0, FN_SEL_SCIFA1_1, FN_SEL_SCIFA1_2, 0,
1393 /* SEL_SCIFA2 [1] */
1394 FN_SEL_SCIFA2_0, FN_SEL_SCIFA2_1,
1395 /* SEL_SCIFA3 [1] */
1396 FN_SEL_SCIFA3_0, FN_SEL_SCIFA3_1,
1397 /* SEL_SCIFA4 [2] */
1398 FN_SEL_SCIFA4_0, FN_SEL_SCIFA4_1, FN_SEL_SCIFA4_2,
1399 FN_SEL_SCIFA4_3,
1400 /* SEL_SCIFA5 [2] */
1401 FN_SEL_SCIFA5_0, FN_SEL_SCIFA5_1, FN_SEL_SCIFA5_2,
1402 FN_SEL_SCIFA5_3,
1403 /* SEL_SPDM [1] */
1404 FN_SEL_SPDM_0, FN_SEL_SPDM_1,
1405 /* SEL_TMU [1] */
1406 FN_SEL_TMU_0, FN_SEL_TMU_1,
1407 /* SEL_TSIF0 [2] */
1408 FN_SEL_TSIF0_0, FN_SEL_TSIF0_1, FN_SEL_TSIF0_2, FN_SEL_TSIF0_3,
1409 /* SEL_CAN0 [2] */
1410 FN_SEL_CAN0_0, FN_SEL_CAN0_1, FN_SEL_CAN0_2, FN_SEL_CAN0_3,
1411 /* SEL_CAN1 [2] */
1412 FN_SEL_CAN1_0, FN_SEL_CAN1_1, FN_SEL_CAN1_2, FN_SEL_CAN1_3,
1413 /* SEL_HSCIF0 [1] */
1414 FN_SEL_HSCIF0_0, FN_SEL_HSCIF0_1,
1415 /* SEL_HSCIF1 [1] */
1416 FN_SEL_HSCIF1_0, FN_SEL_HSCIF1_1,
1417 /* SEL_RDS [2] */
1418 FN_SEL_RDS_0, FN_SEL_RDS_1, FN_SEL_RDS_2, FN_SEL_RDS_3, }
1419 },
1420 { PINMUX_CFG_REG_VAR("MOD_SEL3", 0xE6060098, 32,
1421 2, 2, 2, 1, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1,
1422 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1) {
1423 /* SEL_SCIF0 [2] */
1424 FN_SEL_SCIF0_0, FN_SEL_SCIF0_1, FN_SEL_SCIF0_2, FN_SEL_SCIF0_3,
1425 /* SEL_SCIF1 [2] */
1426 FN_SEL_SCIF1_0, FN_SEL_SCIF1_1, FN_SEL_SCIF1_2, 0,
1427 /* SEL_SCIF2 [2] */
1428 FN_SEL_SCIF2_0, FN_SEL_SCIF2_1, FN_SEL_SCIF2_2, 0,
1429 /* SEL_SCIF3 [1] */
1430 FN_SEL_SCIF3_0, FN_SEL_SCIF3_1,
1431 /* SEL_SCIF4 [3] */
1432 FN_SEL_SCIF4_0, FN_SEL_SCIF4_1, FN_SEL_SCIF4_2, FN_SEL_SCIF4_3,
1433 FN_SEL_SCIF4_4, 0, 0, 0,
1434 /* SEL_SCIF5 [2] */
1435 FN_SEL_SCIF5_0, FN_SEL_SCIF5_1, FN_SEL_SCIF5_2, FN_SEL_SCIF5_3,
1436 /* SEL_SSI1 [1] */
1437 FN_SEL_SSI1_0, FN_SEL_SSI1_1,
1438 /* SEL_SSI2 [1] */
1439 FN_SEL_SSI2_0, FN_SEL_SSI2_1,
1440 /* SEL_SSI4 [1] */
1441 FN_SEL_SSI4_0, FN_SEL_SSI4_1,
1442 /* SEL_SSI5 [1] */
1443 FN_SEL_SSI5_0, FN_SEL_SSI5_1,
1444 /* SEL_SSI6 [1] */
1445 FN_SEL_SSI6_0, FN_SEL_SSI6_1,
1446 /* SEL_SSI7 [1] */
1447 FN_SEL_SSI7_0, FN_SEL_SSI7_1,
1448 /* SEL_SSI8 [1] */
1449 FN_SEL_SSI8_0, FN_SEL_SSI8_1,
1450 /* SEL_SSI9 [1] */
1451 FN_SEL_SSI9_0, FN_SEL_SSI9_1,
1452 /* RESEVED [1] */
1453 0, 0,
1454 /* RESEVED [1] */
1455 0, 0,
1456 /* RESEVED [1] */
1457 0, 0,
1458 /* RESEVED [1] */
1459 0, 0,
1460 /* RESEVED [1] */
1461 0, 0,
1462 /* RESEVED [1] */
1463 0, 0,
1464 /* RESEVED [1] */
1465 0, 0,
1466 /* RESEVED [1] */
1467 0, 0,
1468 /* RESEVED [1] */
1469 0, 0,
1470 /* RESEVED [1] */
1471 0, 0,
1472 /* RESEVED [1] */
1473 0, 0,
1474 /* RESEVED [1] */
1475 0, 0, }
1476 },
1477 { PINMUX_CFG_REG("INOUTSEL0", 0xE6050004, 32, 1) { GP_INOUTSEL(0) } },
1478 { PINMUX_CFG_REG("INOUTSEL1", 0xE6051004, 32, 1) {
1479 0, 0,
1480 0, 0,
1481 0, 0,
1482 0, 0,
1483 0, 0,
1484 0, 0,
1485 GP_1_25_IN, GP_1_25_OUT,
1486 GP_1_24_IN, GP_1_24_OUT,
1487 GP_1_23_IN, GP_1_23_OUT,
1488 GP_1_22_IN, GP_1_22_OUT,
1489 GP_1_21_IN, GP_1_21_OUT,
1490 GP_1_20_IN, GP_1_20_OUT,
1491 GP_1_19_IN, GP_1_19_OUT,
1492 GP_1_18_IN, GP_1_18_OUT,
1493 GP_1_17_IN, GP_1_17_OUT,
1494 GP_1_16_IN, GP_1_16_OUT,
1495 GP_1_15_IN, GP_1_15_OUT,
1496 GP_1_14_IN, GP_1_14_OUT,
1497 GP_1_13_IN, GP_1_13_OUT,
1498 GP_1_12_IN, GP_1_12_OUT,
1499 GP_1_11_IN, GP_1_11_OUT,
1500 GP_1_10_IN, GP_1_10_OUT,
1501 GP_1_9_IN, GP_1_9_OUT,
1502 GP_1_8_IN, GP_1_8_OUT,
1503 GP_1_7_IN, GP_1_7_OUT,
1504 GP_1_6_IN, GP_1_6_OUT,
1505 GP_1_5_IN, GP_1_5_OUT,
1506 GP_1_4_IN, GP_1_4_OUT,
1507 GP_1_3_IN, GP_1_3_OUT,
1508 GP_1_2_IN, GP_1_2_OUT,
1509 GP_1_1_IN, GP_1_1_OUT,
1510 GP_1_0_IN, GP_1_0_OUT, }
1511 },
1512 { PINMUX_CFG_REG("INOUTSEL2", 0xE6052004, 32, 1) { GP_INOUTSEL(2) } },
1513 { PINMUX_CFG_REG("INOUTSEL3", 0xE6053004, 32, 1) { GP_INOUTSEL(3) } },
1514 { PINMUX_CFG_REG("INOUTSEL4", 0xE6054004, 32, 1) { GP_INOUTSEL(4) } },
1515 { PINMUX_CFG_REG("INOUTSEL5", 0xE6055004, 32, 1) {
1516 0, 0,
1517 0, 0,
1518 0, 0,
1519 0, 0,
1520 GP_5_27_IN, GP_5_27_OUT,
1521 GP_5_26_IN, GP_5_26_OUT,
1522 GP_5_25_IN, GP_5_25_OUT,
1523 GP_5_24_IN, GP_5_24_OUT,
1524 GP_5_23_IN, GP_5_23_OUT,
1525 GP_5_22_IN, GP_5_22_OUT,
1526 GP_5_21_IN, GP_5_21_OUT,
1527 GP_5_20_IN, GP_5_20_OUT,
1528 GP_5_19_IN, GP_5_19_OUT,
1529 GP_5_18_IN, GP_5_18_OUT,
1530 GP_5_17_IN, GP_5_17_OUT,
1531 GP_5_16_IN, GP_5_16_OUT,
1532 GP_5_15_IN, GP_5_15_OUT,
1533 GP_5_14_IN, GP_5_14_OUT,
1534 GP_5_13_IN, GP_5_13_OUT,
1535 GP_5_12_IN, GP_5_12_OUT,
1536 GP_5_11_IN, GP_5_11_OUT,
1537 GP_5_10_IN, GP_5_10_OUT,
1538 GP_5_9_IN, GP_5_9_OUT,
1539 GP_5_8_IN, GP_5_8_OUT,
1540 GP_5_7_IN, GP_5_7_OUT,
1541 GP_5_6_IN, GP_5_6_OUT,
1542 GP_5_5_IN, GP_5_5_OUT,
1543 GP_5_4_IN, GP_5_4_OUT,
1544 GP_5_3_IN, GP_5_3_OUT,
1545 GP_5_2_IN, GP_5_2_OUT,
1546 GP_5_1_IN, GP_5_1_OUT,
1547 GP_5_0_IN, GP_5_0_OUT, }
1548 },
1549 { PINMUX_CFG_REG("INOUTSEL6", 0xE6055404, 32, 1) {
1550 0, 0,
1551 0, 0,
1552 0, 0,
1553 0, 0,
1554 0, 0,
1555 0, 0,
1556 GP_6_25_IN, GP_6_25_OUT,
1557 GP_6_24_IN, GP_6_24_OUT,
1558 GP_6_23_IN, GP_6_23_OUT,
1559 GP_6_22_IN, GP_6_22_OUT,
1560 GP_6_21_IN, GP_6_21_OUT,
1561 GP_6_20_IN, GP_6_20_OUT,
1562 GP_6_19_IN, GP_6_19_OUT,
1563 GP_6_18_IN, GP_6_18_OUT,
1564 GP_6_17_IN, GP_6_17_OUT,
1565 GP_6_16_IN, GP_6_16_OUT,
1566 GP_6_15_IN, GP_6_15_OUT,
1567 GP_6_14_IN, GP_6_14_OUT,
1568 GP_6_13_IN, GP_6_13_OUT,
1569 GP_6_12_IN, GP_6_12_OUT,
1570 GP_6_11_IN, GP_6_11_OUT,
1571 GP_6_10_IN, GP_6_10_OUT,
1572 GP_6_9_IN, GP_6_9_OUT,
1573 GP_6_8_IN, GP_6_8_OUT,
1574 GP_6_7_IN, GP_6_7_OUT,
1575 GP_6_6_IN, GP_6_6_OUT,
1576 GP_6_5_IN, GP_6_5_OUT,
1577 GP_6_4_IN, GP_6_4_OUT,
1578 GP_6_3_IN, GP_6_3_OUT,
1579 GP_6_2_IN, GP_6_2_OUT,
1580 GP_6_1_IN, GP_6_1_OUT,
1581 GP_6_0_IN, GP_6_0_OUT, }
1582 },
1583 { },
1584};
1585
1586static struct pinmux_data_reg pinmux_data_regs[] = {
1587 { PINMUX_DATA_REG("INDT0", 0xE6050008, 32) { GP_INDT(0) } },
1588 { PINMUX_DATA_REG("INDT1", 0xE6051008, 32) {
1589 0, 0, 0, 0,
1590 0, 0, GP_1_25_DATA, GP_1_24_DATA,
1591 GP_1_23_DATA, GP_1_22_DATA, GP_1_21_DATA, GP_1_20_DATA,
1592 GP_1_19_DATA, GP_1_18_DATA, GP_1_17_DATA, GP_1_16_DATA,
1593 GP_1_15_DATA, GP_1_14_DATA, GP_1_13_DATA, GP_1_12_DATA,
1594 GP_1_11_DATA, GP_1_10_DATA, GP_1_9_DATA, GP_1_8_DATA,
1595 GP_1_7_DATA, GP_1_6_DATA, GP_1_5_DATA, GP_1_4_DATA,
1596 GP_1_3_DATA, GP_1_2_DATA, GP_1_1_DATA, GP_1_0_DATA }
1597 },
1598 { PINMUX_DATA_REG("INDT2", 0xE6052008, 32) { GP_INDT(2) } },
1599 { PINMUX_DATA_REG("INDT3", 0xE6053008, 32) { GP_INDT(3) } },
1600 { PINMUX_DATA_REG("INDT4", 0xE6054008, 32) { GP_INDT(4) } },
1601 { PINMUX_DATA_REG("INDT5", 0xE6055008, 32) {
1602 0, 0, 0, 0,
1603 GP_5_27_DATA, GP_5_26_DATA, GP_5_25_DATA, GP_5_24_DATA,
1604 GP_5_23_DATA, GP_5_22_DATA, GP_5_21_DATA, GP_5_20_DATA,
1605 GP_5_19_DATA, GP_5_18_DATA, GP_5_17_DATA, GP_5_16_DATA,
1606 GP_5_15_DATA, GP_5_14_DATA, GP_5_13_DATA, GP_5_12_DATA,
1607 GP_5_11_DATA, GP_5_10_DATA, GP_5_9_DATA, GP_5_8_DATA,
1608 GP_5_7_DATA, GP_5_6_DATA, GP_5_5_DATA, GP_5_4_DATA,
1609 GP_5_3_DATA, GP_5_2_DATA, GP_5_1_DATA, GP_5_0_DATA }
1610 },
1611 { PINMUX_DATA_REG("INDT6", 0xE6055408, 32) {
1612 0, 0, 0, 0,
1613 0, 0, GP_6_25_DATA, GP_6_24_DATA,
1614 GP_6_23_DATA, GP_6_22_DATA, GP_6_21_DATA, GP_6_20_DATA,
1615 GP_6_19_DATA, GP_6_18_DATA, GP_6_17_DATA, GP_6_16_DATA,
1616 GP_6_15_DATA, GP_6_14_DATA, GP_6_13_DATA, GP_6_12_DATA,
1617 GP_6_11_DATA, GP_6_10_DATA, GP_6_9_DATA, GP_6_8_DATA,
1618 GP_6_7_DATA, GP_6_6_DATA, GP_6_5_DATA, GP_6_4_DATA,
1619 GP_6_3_DATA, GP_6_2_DATA, GP_6_1_DATA, GP_6_0_DATA }
1620 },
1621 { },
1622};
1623
1624static struct pinmux_info r8a7794_pinmux_info = {
1625 .name = "r8a7794_pfc",
1626
1627 .unlock_reg = 0xe6060000, /* PMMR */
1628
1629 .reserved_id = PINMUX_RESERVED,
1630 .data = { PINMUX_DATA_BEGIN, PINMUX_DATA_END },
1631 .input = { PINMUX_INPUT_BEGIN, PINMUX_INPUT_END },
1632 .output = { PINMUX_OUTPUT_BEGIN, PINMUX_OUTPUT_END },
1633 .mark = { PINMUX_MARK_BEGIN, PINMUX_MARK_END },
1634 .function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END },
1635
1636 .first_gpio = GPIO_GP_0_0,
1637 .last_gpio = GPIO_FN_AD_CLK_B,
1638
1639 .gpios = pinmux_gpios,
1640 .cfg_regs = pinmux_config_regs,
1641 .data_regs = pinmux_data_regs,
1642
1643 .gpio_data = pinmux_data,
1644 .gpio_data_size = ARRAY_SIZE(pinmux_data),
1645};
1646
1647void r8a7794_pinmux_init(void)
1648{
1649 register_pinmux(&r8a7794_pinmux_info);
1650}