2 * Pin Function Controller Support
4 * Copyright (C) 2015 Niklas Söderlund
6 * This file is subject to the terms and conditions of the GNU General Public
7 * License. See the file "COPYING" in the main directory of this archive
10 #include <linux/init.h>
11 #include <linux/kernel.h>
15 #define CPU_ALL_PORT(fn, pfx, sfx) \
16 PORT_10(0, fn, pfx, sfx), PORT_90(0, fn, pfx, sfx), \
17 PORT_10(100, fn, pfx##10, sfx), PORT_10(110, fn, pfx##11, sfx), \
18 PORT_10(120, fn, pfx##12, sfx), PORT_10(130, fn, pfx##13, sfx), \
19 PORT_10(140, fn, pfx##14, sfx), PORT_1(150, fn, pfx##150, sfx), \
20 PORT_1(151, fn, pfx##151, sfx), PORT_1(152, fn, pfx##152, sfx), \
21 PORT_1(153, fn, pfx##153, sfx), PORT_1(154, fn, pfx##154, sfx), \
22 PORT_1(155, fn, pfx##155, sfx), PORT_1(156, fn, pfx##156, sfx), \
23 PORT_1(157, fn, pfx##157, sfx), PORT_1(158, fn, pfx##158, sfx)
32 PINMUX_FUNCTION_BEGIN
,
36 FN_LCD3_1_0_PORT18
, FN_LCD3_1_0_PORT20
, FN_LCD3_1_0_PORT21
,
37 FN_LCD3_1_0_PORT22
, FN_LCD3_1_0_PORT23
,
38 FN_JT_SEL
, FN_ERR_RST_REQB
, FN_REF_CLKO
, FN_EXT_CLKI
, FN_LCD3_PXCLKB
,
41 FN_LCD3_9_8_PORT38
, FN_LCD3_9_8_PORT39
, FN_LCD3_11_10_PORT40
,
42 FN_LCD3_11_10_PORT41
, FN_LCD3_11_10_PORT42
, FN_LCD3_11_10_PORT43
,
43 FN_IIC_1_0_PORT46
, FN_IIC_1_0_PORT47
,
44 FN_LCD3_R0
, FN_LCD3_R1
, FN_LCD3_R2
, FN_LCD3_R3
, FN_LCD3_R4
, FN_LCD3_R5
,
45 FN_IIC0_SCL
, FN_IIC0_SDA
, FN_SD_CKI
, FN_SDI0_CKO
, FN_SDI0_CKI
,
46 FN_SDI0_CMD
, FN_SDI0_DATA0
, FN_SDI0_DATA1
, FN_SDI0_DATA2
,
47 FN_SDI0_DATA3
, FN_SDI0_DATA4
, FN_SDI0_DATA5
, FN_SDI0_DATA6
,
48 FN_SDI0_DATA7
, FN_SDI1_CKO
, FN_SDI1_CKI
, FN_SDI1_CMD
,
51 FN_AB_1_0_PORT71
, FN_AB_1_0_PORT72
, FN_AB_1_0_PORT73
,
52 FN_AB_1_0_PORT74
, FN_AB_1_0_PORT75
, FN_AB_1_0_PORT76
,
53 FN_AB_1_0_PORT77
, FN_AB_1_0_PORT78
, FN_AB_1_0_PORT79
,
54 FN_AB_1_0_PORT80
, FN_AB_1_0_PORT81
, FN_AB_1_0_PORT82
,
55 FN_AB_1_0_PORT83
, FN_AB_1_0_PORT84
, FN_AB_3_2_PORT85
,
56 FN_AB_3_2_PORT86
, FN_AB_3_2_PORT87
, FN_AB_3_2_PORT88
,
57 FN_AB_5_4_PORT89
, FN_AB_5_4_PORT90
, FN_AB_7_6_PORT91
,
58 FN_AB_7_6_PORT92
, FN_AB_1_0_PORT93
, FN_AB_1_0_PORT94
,
60 FN_SDI1_DATA0
, FN_SDI1_DATA1
, FN_SDI1_DATA2
, FN_SDI1_DATA3
,
61 FN_AB_CLK
, FN_AB_CSB0
, FN_AB_CSB1
,
64 FN_AB_13_12_PORT104
, FN_AB_13_12_PORT103
, FN_AB_11_10_PORT102
,
65 FN_AB_11_10_PORT101
, FN_AB_11_10_PORT100
, FN_AB_9_8_PORT99
,
66 FN_AB_9_8_PORT98
, FN_AB_9_8_PORT97
,
67 FN_USI_1_0_PORT109
, FN_USI_1_0_PORT110
, FN_USI_1_0_PORT111
,
68 FN_USI_1_0_PORT112
, FN_USI_3_2_PORT113
, FN_USI_3_2_PORT114
,
69 FN_USI_5_4_PORT115
, FN_USI_5_4_PORT116
, FN_USI_5_4_PORT117
,
70 FN_USI_5_4_PORT118
, FN_USI_7_6_PORT119
, FN_USI_9_8_PORT120
,
72 FN_AB_A20
, FN_USI0_CS1
, FN_USI0_CS2
, FN_USI1_DI
,
74 FN_NTSC_CLK
, FN_NTSC_DATA0
, FN_NTSC_DATA1
, FN_NTSC_DATA2
,
75 FN_NTSC_DATA3
, FN_NTSC_DATA4
,
78 FN_HSI_1_0_PORT143
, FN_HSI_1_0_PORT144
, FN_HSI_1_0_PORT145
,
79 FN_HSI_1_0_PORT146
, FN_HSI_1_0_PORT147
, FN_HSI_1_0_PORT148
,
80 FN_HSI_1_0_PORT149
, FN_HSI_1_0_PORT150
,
81 FN_UART_1_0_PORT157
, FN_UART_1_0_PORT158
,
82 FN_NTSC_DATA5
, FN_NTSC_DATA6
, FN_NTSC_DATA7
, FN_CAM_CLKO
,
83 FN_CAM_CLKI
, FN_CAM_VS
, FN_CAM_HS
, FN_CAM_YUV0
,
84 FN_CAM_YUV1
, FN_CAM_YUV2
, FN_CAM_YUV3
, FN_CAM_YUV4
,
85 FN_CAM_YUV5
, FN_CAM_YUV6
, FN_CAM_YUV7
,
86 FN_JT_TDO
, FN_JT_TDOEN
, FN_LOWPWR
, FN_USB_VBUS
, FN_UART1_RX
,
90 FN_SEL_LCD3_1_0_00
, FN_SEL_LCD3_1_0_01
,
91 FN_SEL_LCD3_9_8_00
, FN_SEL_LCD3_9_8_10
,
92 FN_SEL_LCD3_11_10_00
, FN_SEL_LCD3_11_10_01
, FN_SEL_LCD3_11_10_10
,
95 FN_SEL_IIC_1_0_00
, FN_SEL_IIC_1_0_01
,
98 FN_SEL_AB_1_0_00
, FN_SEL_AB_1_0_10
, FN_SEL_AB_3_2_00
,
99 FN_SEL_AB_3_2_01
, FN_SEL_AB_3_2_10
, FN_SEL_AB_3_2_11
,
100 FN_SEL_AB_5_4_00
, FN_SEL_AB_5_4_01
, FN_SEL_AB_5_4_10
,
101 FN_SEL_AB_5_4_11
, FN_SEL_AB_7_6_00
, FN_SEL_AB_7_6_01
,
103 FN_SEL_AB_9_8_00
, FN_SEL_AB_9_8_01
, FN_SEL_AB_9_8_10
,
104 FN_SEL_AB_11_10_00
, FN_SEL_AB_11_10_10
,
105 FN_SEL_AB_13_12_00
, FN_SEL_AB_13_12_10
,
108 FN_SEL_USI_1_0_00
, FN_SEL_USI_1_0_01
,
109 FN_SEL_USI_3_2_00
, FN_SEL_USI_3_2_01
,
110 FN_SEL_USI_5_4_00
, FN_SEL_USI_5_4_01
,
111 FN_SEL_USI_7_6_00
, FN_SEL_USI_7_6_01
,
112 FN_SEL_USI_9_8_00
, FN_SEL_USI_9_8_01
,
115 FN_SEL_HSI_1_0_00
, FN_SEL_HSI_1_0_01
,
117 /* CHG_PINSEL_UART */
118 FN_SEL_UART_1_0_00
, FN_SEL_UART_1_0_01
,
125 JT_SEL_MARK
, ERR_RST_REQB_MARK
, REF_CLKO_MARK
, EXT_CLKI_MARK
,
126 LCD3_PXCLKB_MARK
, SD_CKI_MARK
,
129 LCD3_R0_MARK
, LCD3_R1_MARK
, LCD3_R2_MARK
, LCD3_R3_MARK
, LCD3_R4_MARK
,
130 LCD3_R5_MARK
, IIC0_SCL_MARK
, IIC0_SDA_MARK
, SDI0_CKO_MARK
,
131 SDI0_CKI_MARK
, SDI0_CMD_MARK
, SDI0_DATA0_MARK
, SDI0_DATA1_MARK
,
132 SDI0_DATA2_MARK
, SDI0_DATA3_MARK
, SDI0_DATA4_MARK
, SDI0_DATA5_MARK
,
133 SDI0_DATA6_MARK
, SDI0_DATA7_MARK
, SDI1_CKO_MARK
, SDI1_CKI_MARK
,
137 SDI1_DATA0_MARK
, SDI1_DATA1_MARK
, SDI1_DATA2_MARK
, SDI1_DATA3_MARK
,
138 AB_CLK_MARK
, AB_CSB0_MARK
, AB_CSB1_MARK
,
141 AB_A20_MARK
, USI0_CS1_MARK
, USI0_CS2_MARK
, USI1_DI_MARK
,
143 NTSC_CLK_MARK
, NTSC_DATA0_MARK
, NTSC_DATA1_MARK
, NTSC_DATA2_MARK
,
144 NTSC_DATA3_MARK
, NTSC_DATA4_MARK
,
147 NTSC_DATA5_MARK
, NTSC_DATA6_MARK
, NTSC_DATA7_MARK
, CAM_CLKO_MARK
,
148 CAM_CLKI_MARK
, CAM_VS_MARK
, CAM_HS_MARK
, CAM_YUV0_MARK
,
149 CAM_YUV1_MARK
, CAM_YUV2_MARK
, CAM_YUV3_MARK
, CAM_YUV4_MARK
,
150 CAM_YUV5_MARK
, CAM_YUV6_MARK
, CAM_YUV7_MARK
,
151 JT_TDO_MARK
, JT_TDOEN_MARK
, USB_VBUS_MARK
, LOWPWR_MARK
,
152 UART1_RX_MARK
, UART1_TX_MARK
,
154 /* CHG_PINSEL_LCD3 */
155 LCD3_PXCLK_MARK
, LCD3_CLK_I_MARK
, LCD3_HS_MARK
, LCD3_VS_MARK
,
156 LCD3_DE_MARK
, LCD3_R6_MARK
, LCD3_R7_MARK
, LCD3_G0_MARK
, LCD3_G1_MARK
,
157 LCD3_G2_MARK
, LCD3_G3_MARK
, LCD3_G4_MARK
, LCD3_G5_MARK
, LCD3_G6_MARK
,
158 LCD3_G7_MARK
, LCD3_B0_MARK
, LCD3_B1_MARK
, LCD3_B2_MARK
, LCD3_B3_MARK
,
159 LCD3_B4_MARK
, LCD3_B5_MARK
, LCD3_B6_MARK
, LCD3_B7_MARK
,
160 YUV3_CLK_O_MARK
, YUV3_CLK_I_MARK
, YUV3_HS_MARK
, YUV3_VS_MARK
,
161 YUV3_DE_MARK
, YUV3_D0_MARK
, YUV3_D1_MARK
, YUV3_D2_MARK
, YUV3_D3_MARK
,
162 YUV3_D4_MARK
, YUV3_D5_MARK
, YUV3_D6_MARK
, YUV3_D7_MARK
, YUV3_D8_MARK
,
163 YUV3_D9_MARK
, YUV3_D10_MARK
, YUV3_D11_MARK
, YUV3_D12_MARK
,
164 YUV3_D13_MARK
, YUV3_D14_MARK
, YUV3_D15_MARK
,
165 TP33_CLK_MARK
, TP33_CTRL_MARK
, TP33_DATA0_MARK
, TP33_DATA1_MARK
,
166 TP33_DATA2_MARK
, TP33_DATA3_MARK
, TP33_DATA4_MARK
, TP33_DATA5_MARK
,
167 TP33_DATA6_MARK
, TP33_DATA7_MARK
, TP33_DATA8_MARK
, TP33_DATA9_MARK
,
168 TP33_DATA10_MARK
, TP33_DATA11_MARK
, TP33_DATA12_MARK
, TP33_DATA13_MARK
,
169 TP33_DATA14_MARK
, TP33_DATA15_MARK
,
172 IIC1_SCL_MARK
, IIC1_SDA_MARK
, UART3_RX_MARK
, UART3_TX_MARK
,
175 AB_CSB2_MARK
, AB_CSB3_MARK
, AB_RDB_MARK
, AB_WRB_MARK
,
176 AB_WAIT_MARK
, AB_ADV_MARK
, AB_AD0_MARK
, AB_AD1_MARK
,
177 AB_AD2_MARK
, AB_AD3_MARK
, AB_AD4_MARK
, AB_AD5_MARK
,
178 AB_AD6_MARK
, AB_AD7_MARK
, AB_AD8_MARK
, AB_AD9_MARK
,
179 AB_AD10_MARK
, AB_AD11_MARK
, AB_AD12_MARK
, AB_AD13_MARK
,
180 AB_AD14_MARK
, AB_AD15_MARK
, AB_A17_MARK
, AB_A18_MARK
,
181 AB_A19_MARK
, AB_A21_MARK
, AB_A22_MARK
, AB_A23_MARK
,
182 AB_A24_MARK
, AB_A25_MARK
, AB_A26_MARK
, AB_A27_MARK
,
183 AB_A28_MARK
, AB_BEN0_MARK
, AB_BEN1_MARK
,
184 DTV_BCLK_A_MARK
, DTV_PSYNC_A_MARK
, DTV_VALID_A_MARK
,
186 SDI2_CKO_MARK
, SDI2_CKI_MARK
, SDI2_CMD_MARK
,
187 SDI2_DATA0_MARK
, SDI2_DATA1_MARK
, SDI2_DATA2_MARK
,
189 CF_CSB0_MARK
, CF_CSB1_MARK
, CF_IORDB_MARK
,
190 CF_IOWRB_MARK
, CF_IORDY_MARK
, CF_RESET_MARK
,
191 CF_D00_MARK
, CF_D01_MARK
, CF_D02_MARK
, CF_D03_MARK
,
192 CF_D04_MARK
, CF_D05_MARK
, CF_D06_MARK
, CF_D07_MARK
,
193 CF_D08_MARK
, CF_D09_MARK
, CF_D10_MARK
, CF_D11_MARK
,
194 CF_D12_MARK
, CF_D13_MARK
, CF_D14_MARK
, CF_D15_MARK
,
195 CF_A00_MARK
, CF_A01_MARK
, CF_A02_MARK
,
196 CF_INTRQ_MARK
, CF_INPACKB_MARK
, CF_CDB1_MARK
, CF_CDB2_MARK
,
197 USI5_CLK_A_MARK
, USI5_DI_A_MARK
, USI5_DO_A_MARK
,
198 USI5_CS0_A_MARK
, USI5_CS1_A_MARK
, USI5_CS2_A_MARK
,
201 USI0_CS3_MARK
, USI0_CS4_MARK
, USI0_CS5_MARK
,
203 USI2_CLK_MARK
, USI2_DI_MARK
, USI2_DO_MARK
,
204 USI2_CS0_MARK
, USI2_CS1_MARK
, USI2_CS2_MARK
,
205 USI3_CLK_MARK
, USI3_DI_MARK
, USI3_DO_MARK
,
207 USI4_CLK_MARK
, USI4_DI_MARK
, USI4_DO_MARK
,
208 USI4_CS0_MARK
, USI4_CS1_MARK
,
209 PWM0_MARK
, PWM1_MARK
,
210 DTV_BCLK_B_MARK
, DTV_PSYNC_B_MARK
, DTV_VALID_B_MARK
,
214 USI5_CLK_B_MARK
, USI5_DO_B_MARK
, USI5_CS0_B_MARK
, USI5_CS1_B_MARK
,
215 USI5_CS2_B_MARK
, USI5_CS3_B_MARK
, USI5_CS4_B_MARK
, USI5_DI_B_MARK
,
217 /* CHG_PINSEL_UART */
218 UART1_CTSB_MARK
, UART1_RTSB_MARK
,
219 UART2_RX_MARK
, UART2_TX_MARK
,
224 /* Pin numbers for pins without a corresponding GPIO port number are computed
225 * from the row and column numbers with a 1000 offset to avoid collisions with
226 * GPIO port numbers. */
227 #define PIN_NUMBER(row, col) (1000+((row)-1)*23+(col)-1)
229 /* Expand to a list of sh_pfc_pin entries (named PORT#).
230 * NOTE: No config are recorded since the driver do not handle pinconf. */
231 #define __PIN_CFG(pn, pfx, sfx) SH_PFC_PIN_CFG(pfx, 0)
232 #define PINMUX_EMEV_GPIO_ALL() CPU_ALL_PORT(__PIN_CFG, , unused)
234 static const struct sh_pfc_pin pinmux_pins
[] = {
235 PINMUX_EMEV_GPIO_ALL(),
237 /* Pins not associated with a GPIO port */
238 SH_PFC_PIN_NAMED(2, 14, B14
),
239 SH_PFC_PIN_NAMED(2, 15, B15
),
240 SH_PFC_PIN_NAMED(2, 16, B16
),
241 SH_PFC_PIN_NAMED(2, 17, B17
),
242 SH_PFC_PIN_NAMED(3, 14, C14
),
243 SH_PFC_PIN_NAMED(3, 15, C15
),
244 SH_PFC_PIN_NAMED(3, 16, C16
),
245 SH_PFC_PIN_NAMED(3, 17, C17
),
246 SH_PFC_PIN_NAMED(4, 14, D14
),
247 SH_PFC_PIN_NAMED(4, 15, D15
),
248 SH_PFC_PIN_NAMED(4, 16, D16
),
249 SH_PFC_PIN_NAMED(4, 17, D17
),
252 /* Expand to a list of name_DATA, name_FN marks */
253 #define __PORT_DATA(pn, pfx, sfx) PINMUX_DATA(PORT##pfx##_DATA, PORT##pfx##_FN)
254 #define PINMUX_EMEV_DATA_ALL() CPU_ALL_PORT(__PORT_DATA, , unused)
256 static const u16 pinmux_data
[] = {
257 PINMUX_EMEV_DATA_ALL(), /* PINMUX_DATA(PORTN_DATA, PORTN_FN), */
261 PINMUX_SINGLE(JT_SEL
),
263 PINMUX_SINGLE(ERR_RST_REQB
),
265 PINMUX_SINGLE(REF_CLKO
),
267 PINMUX_SINGLE(EXT_CLKI
),
269 PINMUX_IPSR_NOFN(LCD3_1_0_PORT18
, LCD3_PXCLK
, SEL_LCD3_1_0_00
),
270 PINMUX_IPSR_NOFN(LCD3_1_0_PORT18
, YUV3_CLK_O
, SEL_LCD3_1_0_01
),
272 PINMUX_SINGLE(LCD3_PXCLKB
),
274 PINMUX_IPSR_NOFN(LCD3_1_0_PORT20
, LCD3_CLK_I
, SEL_LCD3_1_0_00
),
275 PINMUX_IPSR_NOFN(LCD3_1_0_PORT20
, YUV3_CLK_I
, SEL_LCD3_1_0_01
),
277 PINMUX_IPSR_NOFN(LCD3_1_0_PORT21
, LCD3_HS
, SEL_LCD3_1_0_00
),
278 PINMUX_IPSR_NOFN(LCD3_1_0_PORT21
, YUV3_HS
, SEL_LCD3_1_0_01
),
280 PINMUX_IPSR_NOFN(LCD3_1_0_PORT22
, LCD3_VS
, SEL_LCD3_1_0_00
),
281 PINMUX_IPSR_NOFN(LCD3_1_0_PORT22
, YUV3_VS
, SEL_LCD3_1_0_01
),
283 PINMUX_IPSR_NOFN(LCD3_1_0_PORT23
, LCD3_DE
, SEL_LCD3_1_0_00
),
284 PINMUX_IPSR_NOFN(LCD3_1_0_PORT23
, YUV3_DE
, SEL_LCD3_1_0_01
),
288 PINMUX_SINGLE(LCD3_R0
),
290 PINMUX_SINGLE(LCD3_R1
),
292 PINMUX_SINGLE(LCD3_R2
),
294 PINMUX_SINGLE(LCD3_R3
),
296 PINMUX_SINGLE(LCD3_R4
),
298 PINMUX_SINGLE(LCD3_R5
),
300 PINMUX_IPSR_NOFN(LCD3_9_8_PORT38
, LCD3_R6
, SEL_LCD3_9_8_00
),
301 PINMUX_IPSR_NOFN(LCD3_9_8_PORT38
, TP33_CLK
, SEL_LCD3_9_8_10
),
303 PINMUX_IPSR_NOFN(LCD3_9_8_PORT39
, LCD3_R7
, SEL_LCD3_9_8_00
),
304 PINMUX_IPSR_NOFN(LCD3_9_8_PORT39
, TP33_CTRL
, SEL_LCD3_9_8_10
),
306 PINMUX_IPSR_NOFN(LCD3_11_10_PORT40
, LCD3_G0
, SEL_LCD3_11_10_00
),
307 PINMUX_IPSR_NOFN(LCD3_11_10_PORT40
, YUV3_D0
, SEL_LCD3_11_10_01
),
308 PINMUX_IPSR_NOFN(LCD3_11_10_PORT40
, TP33_DATA0
, SEL_LCD3_11_10_10
),
310 PINMUX_IPSR_NOFN(LCD3_11_10_PORT41
, LCD3_G1
, SEL_LCD3_11_10_00
),
311 PINMUX_IPSR_NOFN(LCD3_11_10_PORT41
, YUV3_D1
, SEL_LCD3_11_10_01
),
312 PINMUX_IPSR_NOFN(LCD3_11_10_PORT41
, TP33_DATA1
, SEL_LCD3_11_10_10
),
314 PINMUX_DATA(LCD3_G2_MARK
, FN_SEL_LCD3_11_10_00
),
315 PINMUX_DATA(YUV3_D2_MARK
, FN_SEL_LCD3_11_10_01
),
316 PINMUX_DATA(TP33_DATA2_MARK
, FN_SEL_LCD3_11_10_10
),
318 PINMUX_DATA(LCD3_G3_MARK
, FN_SEL_LCD3_11_10_00
),
319 PINMUX_DATA(YUV3_D3_MARK
, FN_SEL_LCD3_11_10_01
),
320 PINMUX_DATA(TP33_DATA3_MARK
, FN_SEL_LCD3_11_10_10
),
322 PINMUX_DATA(LCD3_G4_MARK
, FN_SEL_LCD3_11_10_00
),
323 PINMUX_DATA(YUV3_D4_MARK
, FN_SEL_LCD3_11_10_01
),
324 PINMUX_DATA(TP33_DATA4_MARK
, FN_SEL_LCD3_11_10_10
),
326 PINMUX_DATA(LCD3_G5_MARK
, FN_SEL_LCD3_11_10_00
),
327 PINMUX_DATA(YUV3_D5_MARK
, FN_SEL_LCD3_11_10_01
),
328 PINMUX_DATA(TP33_DATA5_MARK
, FN_SEL_LCD3_11_10_10
),
330 PINMUX_DATA(LCD3_G6_MARK
, FN_SEL_LCD3_11_10_00
),
331 PINMUX_DATA(YUV3_D6_MARK
, FN_SEL_LCD3_11_10_01
),
332 PINMUX_DATA(TP33_DATA6_MARK
, FN_SEL_LCD3_11_10_10
),
334 PINMUX_DATA(LCD3_G7_MARK
, FN_SEL_LCD3_11_10_00
),
335 PINMUX_DATA(YUV3_D7_MARK
, FN_SEL_LCD3_11_10_01
),
336 PINMUX_DATA(TP33_DATA7_MARK
, FN_SEL_LCD3_11_10_10
),
338 PINMUX_IPSR_NOFN(LCD3_11_10_PORT42
, LCD3_B0
, SEL_LCD3_11_10_00
),
339 PINMUX_IPSR_NOFN(LCD3_11_10_PORT42
, YUV3_D8
, SEL_LCD3_11_10_01
),
340 PINMUX_IPSR_NOFN(LCD3_11_10_PORT42
, TP33_DATA8
, SEL_LCD3_11_10_10
),
342 PINMUX_IPSR_NOFN(LCD3_11_10_PORT43
, LCD3_B1
, SEL_LCD3_11_10_00
),
343 PINMUX_IPSR_NOFN(LCD3_11_10_PORT43
, YUV3_D9
, SEL_LCD3_11_10_01
),
344 PINMUX_IPSR_NOFN(LCD3_11_10_PORT43
, TP33_DATA9
, SEL_LCD3_11_10_10
),
346 PINMUX_IPSR_NOFN(LCD3_11_10_PORT43
, LCD3_B2
, SEL_LCD3_11_10_00
),
347 PINMUX_IPSR_NOFN(LCD3_11_10_PORT43
, YUV3_D10
, SEL_LCD3_11_10_01
),
348 PINMUX_IPSR_NOFN(LCD3_11_10_PORT43
, TP33_DATA10
, SEL_LCD3_11_10_10
),
350 PINMUX_IPSR_NOFN(LCD3_11_10_PORT43
, LCD3_B3
, SEL_LCD3_11_10_00
),
351 PINMUX_IPSR_NOFN(LCD3_11_10_PORT43
, YUV3_D11
, SEL_LCD3_11_10_01
),
352 PINMUX_IPSR_NOFN(LCD3_11_10_PORT43
, TP33_DATA11
, SEL_LCD3_11_10_10
),
354 PINMUX_IPSR_NOFN(LCD3_11_10_PORT43
, LCD3_B4
, SEL_LCD3_11_10_00
),
355 PINMUX_IPSR_NOFN(LCD3_11_10_PORT43
, YUV3_D12
, SEL_LCD3_11_10_01
),
356 PINMUX_IPSR_NOFN(LCD3_11_10_PORT43
, TP33_DATA12
, SEL_LCD3_11_10_10
),
358 PINMUX_IPSR_NOFN(LCD3_11_10_PORT43
, LCD3_B5
, SEL_LCD3_11_10_00
),
359 PINMUX_IPSR_NOFN(LCD3_11_10_PORT43
, YUV3_D13
, SEL_LCD3_11_10_01
),
360 PINMUX_IPSR_NOFN(LCD3_11_10_PORT43
, TP33_DATA13
, SEL_LCD3_11_10_10
),
362 PINMUX_IPSR_NOFN(LCD3_11_10_PORT43
, LCD3_B6
, SEL_LCD3_11_10_00
),
363 PINMUX_IPSR_NOFN(LCD3_11_10_PORT43
, YUV3_D14
, SEL_LCD3_11_10_01
),
364 PINMUX_IPSR_NOFN(LCD3_11_10_PORT43
, TP33_DATA14
, SEL_LCD3_11_10_10
),
366 PINMUX_IPSR_NOFN(LCD3_11_10_PORT43
, LCD3_B7
, SEL_LCD3_11_10_00
),
367 PINMUX_IPSR_NOFN(LCD3_11_10_PORT43
, YUV3_D15
, SEL_LCD3_11_10_01
),
368 PINMUX_IPSR_NOFN(LCD3_11_10_PORT43
, TP33_DATA15
, SEL_LCD3_11_10_10
),
370 PINMUX_SINGLE(IIC0_SCL
),
372 PINMUX_SINGLE(IIC0_SDA
),
374 PINMUX_IPSR_NOFN(IIC_1_0_PORT46
, IIC1_SCL
, SEL_IIC_1_0_00
),
375 PINMUX_IPSR_NOFN(IIC_1_0_PORT46
, UART3_RX
, SEL_IIC_1_0_01
),
377 PINMUX_IPSR_NOFN(IIC_1_0_PORT47
, IIC1_SDA
, SEL_IIC_1_0_00
),
378 PINMUX_IPSR_NOFN(IIC_1_0_PORT47
, UART3_TX
, SEL_IIC_1_0_01
),
380 PINMUX_SINGLE(SD_CKI
),
382 PINMUX_SINGLE(SDI0_CKO
),
384 PINMUX_SINGLE(SDI0_CKI
),
386 PINMUX_SINGLE(SDI0_CMD
),
388 PINMUX_SINGLE(SDI0_DATA0
),
390 PINMUX_SINGLE(SDI0_DATA1
),
392 PINMUX_SINGLE(SDI0_DATA2
),
394 PINMUX_SINGLE(SDI0_DATA3
),
396 PINMUX_SINGLE(SDI0_DATA4
),
398 PINMUX_SINGLE(SDI0_DATA5
),
400 PINMUX_SINGLE(SDI0_DATA6
),
402 PINMUX_SINGLE(SDI0_DATA7
),
404 PINMUX_SINGLE(SDI1_CKO
),
406 PINMUX_SINGLE(SDI1_CKI
),
408 PINMUX_SINGLE(SDI1_CMD
),
412 PINMUX_SINGLE(SDI1_DATA0
),
414 PINMUX_SINGLE(SDI1_DATA1
),
416 PINMUX_SINGLE(SDI1_DATA2
),
418 PINMUX_SINGLE(SDI1_DATA3
),
420 PINMUX_SINGLE(AB_CLK
),
422 PINMUX_SINGLE(AB_CSB0
),
424 PINMUX_SINGLE(AB_CSB1
),
426 PINMUX_IPSR_NOFN(AB_1_0_PORT71
, AB_CSB2
, SEL_AB_1_0_00
),
427 PINMUX_IPSR_NOFN(AB_1_0_PORT71
, CF_CSB0
, SEL_AB_1_0_10
),
429 PINMUX_IPSR_NOFN(AB_1_0_PORT72
, AB_CSB3
, SEL_AB_1_0_00
),
430 PINMUX_IPSR_NOFN(AB_1_0_PORT72
, CF_CSB1
, SEL_AB_1_0_10
),
432 PINMUX_IPSR_NOFN(AB_1_0_PORT73
, AB_RDB
, SEL_AB_1_0_00
),
433 PINMUX_IPSR_NOFN(AB_1_0_PORT73
, CF_IORDB
, SEL_AB_1_0_10
),
435 PINMUX_IPSR_NOFN(AB_1_0_PORT74
, AB_WRB
, SEL_AB_1_0_00
),
436 PINMUX_IPSR_NOFN(AB_1_0_PORT74
, CF_IOWRB
, SEL_AB_1_0_10
),
438 PINMUX_IPSR_NOFN(AB_1_0_PORT75
, AB_WAIT
, SEL_AB_1_0_00
),
439 PINMUX_IPSR_NOFN(AB_1_0_PORT75
, CF_IORDY
, SEL_AB_1_0_10
),
441 PINMUX_IPSR_NOFN(AB_1_0_PORT76
, AB_ADV
, SEL_AB_1_0_00
),
442 PINMUX_IPSR_NOFN(AB_1_0_PORT76
, CF_RESET
, SEL_AB_1_0_10
),
444 PINMUX_IPSR_NOFN(AB_1_0_PORT77
, AB_AD0
, SEL_AB_1_0_00
),
445 PINMUX_IPSR_NOFN(AB_1_0_PORT77
, CF_D00
, SEL_AB_1_0_10
),
447 PINMUX_IPSR_NOFN(AB_1_0_PORT78
, AB_AD1
, SEL_AB_1_0_00
),
448 PINMUX_IPSR_NOFN(AB_1_0_PORT78
, CF_D01
, SEL_AB_1_0_10
),
450 PINMUX_IPSR_NOFN(AB_1_0_PORT79
, AB_AD2
, SEL_AB_1_0_00
),
451 PINMUX_IPSR_NOFN(AB_1_0_PORT79
, CF_D02
, SEL_AB_1_0_10
),
453 PINMUX_IPSR_NOFN(AB_1_0_PORT80
, AB_AD3
, SEL_AB_1_0_00
),
454 PINMUX_IPSR_NOFN(AB_1_0_PORT80
, CF_D03
, SEL_AB_1_0_10
),
456 PINMUX_IPSR_NOFN(AB_1_0_PORT81
, AB_AD4
, SEL_AB_1_0_00
),
457 PINMUX_IPSR_NOFN(AB_1_0_PORT81
, CF_D04
, SEL_AB_1_0_10
),
459 PINMUX_IPSR_NOFN(AB_1_0_PORT82
, AB_AD5
, SEL_AB_1_0_00
),
460 PINMUX_IPSR_NOFN(AB_1_0_PORT82
, CF_D05
, SEL_AB_1_0_10
),
462 PINMUX_IPSR_NOFN(AB_1_0_PORT83
, AB_AD6
, SEL_AB_1_0_00
),
463 PINMUX_IPSR_NOFN(AB_1_0_PORT83
, CF_D06
, SEL_AB_1_0_10
),
465 PINMUX_IPSR_NOFN(AB_1_0_PORT84
, AB_AD7
, SEL_AB_1_0_00
),
466 PINMUX_IPSR_NOFN(AB_1_0_PORT84
, CF_D07
, SEL_AB_1_0_10
),
468 PINMUX_IPSR_NOFN(AB_3_2_PORT85
, AB_AD8
, SEL_AB_3_2_00
),
469 PINMUX_IPSR_NOFN(AB_3_2_PORT85
, DTV_BCLK_A
, SEL_AB_3_2_01
),
470 PINMUX_IPSR_NOFN(AB_3_2_PORT85
, CF_D08
, SEL_AB_3_2_10
),
471 PINMUX_IPSR_NOFN(AB_3_2_PORT85
, USI5_CLK_A
, SEL_AB_3_2_11
),
473 PINMUX_IPSR_NOFN(AB_3_2_PORT86
, AB_AD9
, SEL_AB_3_2_00
),
474 PINMUX_IPSR_NOFN(AB_3_2_PORT86
, DTV_PSYNC_A
, SEL_AB_3_2_01
),
475 PINMUX_IPSR_NOFN(AB_3_2_PORT86
, CF_D09
, SEL_AB_3_2_10
),
476 PINMUX_IPSR_NOFN(AB_3_2_PORT86
, USI5_DI_A
, SEL_AB_3_2_11
),
478 PINMUX_IPSR_NOFN(AB_3_2_PORT87
, AB_AD10
, SEL_AB_3_2_00
),
479 PINMUX_IPSR_NOFN(AB_3_2_PORT87
, DTV_VALID_A
, SEL_AB_3_2_01
),
480 PINMUX_IPSR_NOFN(AB_3_2_PORT87
, CF_D10
, SEL_AB_3_2_10
),
481 PINMUX_IPSR_NOFN(AB_3_2_PORT87
, USI5_DO_A
, SEL_AB_3_2_11
),
483 PINMUX_IPSR_NOFN(AB_3_2_PORT88
, AB_AD11
, SEL_AB_3_2_00
),
484 PINMUX_IPSR_NOFN(AB_3_2_PORT88
, DTV_DATA_A
, SEL_AB_3_2_01
),
485 PINMUX_IPSR_NOFN(AB_3_2_PORT88
, CF_D11
, SEL_AB_3_2_10
),
486 PINMUX_IPSR_NOFN(AB_3_2_PORT88
, USI5_CS0_A
, SEL_AB_3_2_11
),
488 PINMUX_IPSR_NOFN(AB_5_4_PORT89
, AB_AD12
, SEL_AB_5_4_00
),
489 PINMUX_IPSR_NOFN(AB_5_4_PORT89
, SDI2_DATA0
, SEL_AB_5_4_01
),
490 PINMUX_IPSR_NOFN(AB_5_4_PORT89
, CF_D12
, SEL_AB_5_4_10
),
491 PINMUX_IPSR_NOFN(AB_5_4_PORT89
, USI5_CS1_A
, SEL_AB_5_4_11
),
493 PINMUX_IPSR_NOFN(AB_5_4_PORT90
, AB_AD13
, SEL_AB_5_4_00
),
494 PINMUX_IPSR_NOFN(AB_5_4_PORT90
, SDI2_DATA1
, SEL_AB_5_4_01
),
495 PINMUX_IPSR_NOFN(AB_5_4_PORT90
, CF_D13
, SEL_AB_5_4_10
),
496 PINMUX_IPSR_NOFN(AB_5_4_PORT90
, USI5_CS2_A
, SEL_AB_5_4_11
),
498 PINMUX_IPSR_NOFN(AB_7_6_PORT91
, AB_AD14
, SEL_AB_7_6_00
),
499 PINMUX_IPSR_NOFN(AB_7_6_PORT91
, SDI2_DATA2
, SEL_AB_7_6_01
),
500 PINMUX_IPSR_NOFN(AB_7_6_PORT91
, CF_D14
, SEL_AB_7_6_10
),
502 PINMUX_IPSR_NOFN(AB_7_6_PORT92
, AB_AD15
, SEL_AB_7_6_00
),
503 PINMUX_IPSR_NOFN(AB_7_6_PORT92
, SDI2_DATA3
, SEL_AB_7_6_01
),
504 PINMUX_IPSR_NOFN(AB_7_6_PORT92
, CF_D15
, SEL_AB_7_6_10
),
506 PINMUX_IPSR_NOFN(AB_1_0_PORT93
, AB_A17
, SEL_AB_1_0_00
),
507 PINMUX_IPSR_NOFN(AB_1_0_PORT93
, CF_A00
, SEL_AB_1_0_10
),
509 PINMUX_IPSR_NOFN(AB_1_0_PORT94
, AB_A18
, SEL_AB_1_0_00
),
510 PINMUX_IPSR_NOFN(AB_1_0_PORT94
, CF_A01
, SEL_AB_1_0_10
),
512 PINMUX_IPSR_NOFN(AB_1_0_PORT95
, AB_A19
, SEL_AB_1_0_00
),
513 PINMUX_IPSR_NOFN(AB_1_0_PORT95
, CF_A02
, SEL_AB_1_0_10
),
517 PINMUX_SINGLE(AB_A20
),
519 PINMUX_IPSR_NOFN(AB_9_8_PORT97
, AB_A21
, SEL_AB_9_8_00
),
520 PINMUX_IPSR_NOFN(AB_9_8_PORT97
, SDI2_CKO
, SEL_AB_9_8_01
),
521 PINMUX_IPSR_NOFN(AB_9_8_PORT97
, CF_INTRQ
, SEL_AB_9_8_10
),
523 PINMUX_IPSR_NOFN(AB_9_8_PORT98
, AB_A22
, SEL_AB_9_8_00
),
524 PINMUX_IPSR_NOFN(AB_9_8_PORT98
, SDI2_CKI
, SEL_AB_9_8_01
),
526 PINMUX_IPSR_NOFN(AB_9_8_PORT99
, AB_A23
, SEL_AB_9_8_00
),
527 PINMUX_IPSR_NOFN(AB_9_8_PORT99
, SDI2_CMD
, SEL_AB_9_8_01
),
529 PINMUX_IPSR_NOFN(AB_11_10_PORT100
, AB_A24
, SEL_AB_11_10_00
),
530 PINMUX_IPSR_NOFN(AB_11_10_PORT100
, CF_INPACKB
, SEL_AB_11_10_10
),
532 PINMUX_IPSR_NOFN(AB_11_10_PORT101
, AB_A25
, SEL_AB_11_10_00
),
533 PINMUX_IPSR_NOFN(AB_11_10_PORT101
, CF_CDB1
, SEL_AB_11_10_10
),
535 PINMUX_IPSR_NOFN(AB_11_10_PORT102
, AB_A26
, SEL_AB_11_10_00
),
536 PINMUX_IPSR_NOFN(AB_11_10_PORT102
, CF_CDB2
, SEL_AB_11_10_10
),
538 PINMUX_IPSR_NOFN(AB_13_12_PORT103
, AB_A27
, SEL_AB_13_12_00
),
539 PINMUX_IPSR_NOFN(AB_13_12_PORT103
, AB_BEN0
, SEL_AB_13_12_10
),
541 PINMUX_IPSR_NOFN(AB_13_12_PORT104
, AB_A28
, SEL_AB_13_12_00
),
542 PINMUX_IPSR_NOFN(AB_13_12_PORT104
, AB_BEN1
, SEL_AB_13_12_10
),
544 PINMUX_SINGLE(USI0_CS1
),
546 PINMUX_SINGLE(USI0_CS2
),
548 PINMUX_SINGLE(USI1_DI
),
550 PINMUX_SINGLE(USI1_DO
),
552 PINMUX_IPSR_NOFN(USI_1_0_PORT109
, USI2_CLK
, SEL_USI_1_0_00
),
553 PINMUX_IPSR_NOFN(USI_1_0_PORT109
, DTV_BCLK_B
, SEL_USI_1_0_01
),
555 PINMUX_IPSR_NOFN(USI_1_0_PORT110
, USI2_DI
, SEL_USI_1_0_00
),
556 PINMUX_IPSR_NOFN(USI_1_0_PORT110
, DTV_PSYNC_B
, SEL_USI_1_0_01
),
558 PINMUX_IPSR_NOFN(USI_1_0_PORT111
, USI2_DO
, SEL_USI_1_0_00
),
559 PINMUX_IPSR_NOFN(USI_1_0_PORT111
, DTV_VALID_B
, SEL_USI_1_0_01
),
561 PINMUX_IPSR_NOFN(USI_1_0_PORT112
, USI2_CS0
, SEL_USI_1_0_00
),
562 PINMUX_IPSR_NOFN(USI_1_0_PORT112
, DTV_DATA_B
, SEL_USI_1_0_01
),
564 PINMUX_IPSR_NOFN(USI_3_2_PORT113
, USI2_CS1
, SEL_USI_3_2_00
),
565 PINMUX_IPSR_NOFN(USI_3_2_PORT113
, USI4_CS0
, SEL_USI_3_2_01
),
567 PINMUX_IPSR_NOFN(USI_3_2_PORT114
, USI2_CS2
, SEL_USI_3_2_00
),
568 PINMUX_IPSR_NOFN(USI_3_2_PORT114
, USI4_CS1
, SEL_USI_3_2_01
),
570 PINMUX_IPSR_NOFN(USI_5_4_PORT115
, USI3_CLK
, SEL_USI_5_4_00
),
571 PINMUX_IPSR_NOFN(USI_5_4_PORT115
, USI0_CS3
, SEL_USI_5_4_01
),
573 PINMUX_IPSR_NOFN(USI_5_4_PORT116
, USI3_DI
, SEL_USI_5_4_00
),
574 PINMUX_IPSR_NOFN(USI_5_4_PORT116
, USI0_CS4
, SEL_USI_5_4_01
),
576 PINMUX_IPSR_NOFN(USI_5_4_PORT117
, USI3_DO
, SEL_USI_5_4_00
),
577 PINMUX_IPSR_NOFN(USI_5_4_PORT117
, USI0_CS5
, SEL_USI_5_4_01
),
579 PINMUX_IPSR_NOFN(USI_5_4_PORT118
, USI3_CS0
, SEL_USI_5_4_00
),
580 PINMUX_IPSR_NOFN(USI_5_4_PORT118
, USI0_CS6
, SEL_USI_5_4_01
),
582 PINMUX_IPSR_NOFN(USI_7_6_PORT119
, USI4_CLK
, SEL_USI_7_6_01
),
584 PINMUX_IPSR_NOFN(USI_9_8_PORT120
, PWM0
, SEL_USI_9_8_00
),
585 PINMUX_IPSR_NOFN(USI_9_8_PORT120
, USI4_DI
, SEL_USI_9_8_01
),
587 PINMUX_IPSR_NOFN(USI_9_8_PORT121
, PWM1
, SEL_USI_9_8_00
),
588 PINMUX_IPSR_NOFN(USI_9_8_PORT121
, USI4_DO
, SEL_USI_9_8_01
),
590 PINMUX_SINGLE(NTSC_CLK
),
592 PINMUX_SINGLE(NTSC_DATA0
),
594 PINMUX_SINGLE(NTSC_DATA1
),
596 PINMUX_SINGLE(NTSC_DATA2
),
598 PINMUX_SINGLE(NTSC_DATA3
),
600 PINMUX_SINGLE(NTSC_DATA4
),
604 PINMUX_SINGLE(NTSC_DATA5
),
606 PINMUX_SINGLE(NTSC_DATA6
),
608 PINMUX_SINGLE(NTSC_DATA7
),
610 PINMUX_SINGLE(CAM_CLKO
),
612 PINMUX_SINGLE(CAM_CLKI
),
614 PINMUX_SINGLE(CAM_VS
),
616 PINMUX_SINGLE(CAM_HS
),
618 PINMUX_SINGLE(CAM_YUV0
),
620 PINMUX_SINGLE(CAM_YUV1
),
622 PINMUX_SINGLE(CAM_YUV2
),
624 PINMUX_SINGLE(CAM_YUV3
),
626 PINMUX_SINGLE(CAM_YUV4
),
628 PINMUX_SINGLE(CAM_YUV5
),
630 PINMUX_SINGLE(CAM_YUV6
),
632 PINMUX_SINGLE(CAM_YUV7
),
634 PINMUX_IPSR_NOFN(HSI_1_0_PORT143
, USI5_CLK_B
, SEL_HSI_1_0_01
),
636 PINMUX_IPSR_NOFN(HSI_1_0_PORT144
, USI5_DO_B
, SEL_HSI_1_0_01
),
638 PINMUX_IPSR_NOFN(HSI_1_0_PORT145
, USI5_CS0_B
, SEL_HSI_1_0_01
),
640 PINMUX_IPSR_NOFN(HSI_1_0_PORT146
, USI5_CS1_B
, SEL_HSI_1_0_01
),
642 PINMUX_IPSR_NOFN(HSI_1_0_PORT147
, USI5_CS2_B
, SEL_HSI_1_0_01
),
644 PINMUX_IPSR_NOFN(HSI_1_0_PORT148
, USI5_CS3_B
, SEL_HSI_1_0_01
),
646 PINMUX_IPSR_NOFN(HSI_1_0_PORT149
, USI5_CS4_B
, SEL_HSI_1_0_01
),
648 PINMUX_IPSR_NOFN(HSI_1_0_PORT150
, USI5_DI_B
, SEL_HSI_1_0_01
),
650 PINMUX_SINGLE(JT_TDO
),
652 PINMUX_SINGLE(JT_TDOEN
),
654 PINMUX_SINGLE(USB_VBUS
),
656 PINMUX_SINGLE(LOWPWR
),
658 PINMUX_SINGLE(UART1_RX
),
660 PINMUX_SINGLE(UART1_TX
),
662 PINMUX_IPSR_NOFN(UART_1_0_PORT157
, UART1_CTSB
, SEL_UART_1_0_00
),
663 PINMUX_IPSR_NOFN(UART_1_0_PORT157
, UART2_RX
, SEL_UART_1_0_01
),
665 PINMUX_IPSR_NOFN(UART_1_0_PORT158
, UART1_RTSB
, SEL_UART_1_0_00
),
666 PINMUX_IPSR_NOFN(UART_1_0_PORT158
, UART2_TX
, SEL_UART_1_0_01
),
670 #define EMEV_MUX_PIN(name, pin, mark) \
671 static const unsigned int name##_pins[] = { pin }; \
672 static const unsigned int name##_mux[] = { mark##_MARK }
674 /* = [ System ] =========== */
675 EMEV_MUX_PIN(err_rst_reqb
, 3, ERR_RST_REQB
);
676 EMEV_MUX_PIN(ref_clko
, 4, REF_CLKO
);
677 EMEV_MUX_PIN(ext_clki
, 5, EXT_CLKI
);
678 EMEV_MUX_PIN(lowpwr
, 154, LOWPWR
);
680 /* = [ External Memory] === */
681 static const unsigned int ab_main_pins
[] = {
690 static const unsigned int ab_main_mux
[] = {
691 AB_RDB_MARK
, AB_WRB_MARK
,
692 AB_AD0_MARK
, AB_AD1_MARK
, AB_AD2_MARK
, AB_AD3_MARK
,
693 AB_AD4_MARK
, AB_AD5_MARK
, AB_AD6_MARK
, AB_AD7_MARK
,
694 AB_AD8_MARK
, AB_AD9_MARK
, AB_AD10_MARK
, AB_AD11_MARK
,
695 AB_AD12_MARK
, AB_AD13_MARK
, AB_AD14_MARK
, AB_AD15_MARK
,
698 EMEV_MUX_PIN(ab_clk
, 68, AB_CLK
);
699 EMEV_MUX_PIN(ab_csb0
, 69, AB_CSB0
);
700 EMEV_MUX_PIN(ab_csb1
, 70, AB_CSB1
);
701 EMEV_MUX_PIN(ab_csb2
, 71, AB_CSB2
);
702 EMEV_MUX_PIN(ab_csb3
, 72, AB_CSB3
);
703 EMEV_MUX_PIN(ab_wait
, 75, AB_WAIT
);
704 EMEV_MUX_PIN(ab_adv
, 76, AB_ADV
);
705 EMEV_MUX_PIN(ab_a17
, 93, AB_A17
);
706 EMEV_MUX_PIN(ab_a18
, 94, AB_A18
);
707 EMEV_MUX_PIN(ab_a19
, 95, AB_A19
);
708 EMEV_MUX_PIN(ab_a20
, 96, AB_A20
);
709 EMEV_MUX_PIN(ab_a21
, 97, AB_A21
);
710 EMEV_MUX_PIN(ab_a22
, 98, AB_A22
);
711 EMEV_MUX_PIN(ab_a23
, 99, AB_A23
);
712 EMEV_MUX_PIN(ab_a24
, 100, AB_A24
);
713 EMEV_MUX_PIN(ab_a25
, 101, AB_A25
);
714 EMEV_MUX_PIN(ab_a26
, 102, AB_A26
);
715 EMEV_MUX_PIN(ab_a27
, 103, AB_A27
);
716 EMEV_MUX_PIN(ab_a28
, 104, AB_A28
);
717 EMEV_MUX_PIN(ab_ben0
, 103, AB_BEN0
);
718 EMEV_MUX_PIN(ab_ben1
, 104, AB_BEN1
);
720 /* = [ CAM ] ============== */
721 EMEV_MUX_PIN(cam_clko
, 131, CAM_CLKO
);
722 static const unsigned int cam_pins
[] = {
729 static const unsigned int cam_mux
[] = {
730 CAM_CLKI_MARK
, CAM_VS_MARK
, CAM_HS_MARK
,
731 CAM_YUV0_MARK
, CAM_YUV1_MARK
, CAM_YUV2_MARK
, CAM_YUV3_MARK
,
732 CAM_YUV4_MARK
, CAM_YUV5_MARK
, CAM_YUV6_MARK
, CAM_YUV7_MARK
,
735 /* = [ CF ] -============== */
736 static const unsigned int cf_ctrl_pins
[] = {
737 /* CSB0, CSB1, IORDB, IOWRB, IORDY, RESET,
738 * A00, A01, A02, INTRQ, INPACKB, CDB1, CDB2 */
744 static const unsigned int cf_ctrl_mux
[] = {
745 CF_CSB0_MARK
, CF_CSB1_MARK
, CF_IORDB_MARK
, CF_IOWRB_MARK
,
746 CF_IORDY_MARK
, CF_RESET_MARK
, CF_A00_MARK
, CF_A01_MARK
,
747 CF_A02_MARK
, CF_INTRQ_MARK
, CF_INPACKB_MARK
, CF_CDB1_MARK
,
751 static const unsigned int cf_data8_pins
[] = {
756 static const unsigned int cf_data8_mux
[] = {
757 CF_D00_MARK
, CF_D01_MARK
, CF_D02_MARK
, CF_D03_MARK
,
758 CF_D04_MARK
, CF_D05_MARK
, CF_D06_MARK
, CF_D07_MARK
,
760 static const unsigned int cf_data16_pins
[] = {
767 static const unsigned int cf_data16_mux
[] = {
768 CF_D00_MARK
, CF_D01_MARK
, CF_D02_MARK
, CF_D03_MARK
,
769 CF_D04_MARK
, CF_D05_MARK
, CF_D06_MARK
, CF_D07_MARK
,
770 CF_D08_MARK
, CF_D09_MARK
, CF_D10_MARK
, CF_D11_MARK
,
771 CF_D12_MARK
, CF_D13_MARK
, CF_D14_MARK
, CF_D15_MARK
,
774 /* = [ DTV ] ============== */
775 static const unsigned int dtv_a_pins
[] = {
776 /* BCLK, PSYNC, VALID, DATA */
779 static const unsigned int dtv_a_mux
[] = {
780 DTV_BCLK_A_MARK
, DTV_PSYNC_A_MARK
, DTV_VALID_A_MARK
, DTV_DATA_A_MARK
,
783 static const unsigned int dtv_b_pins
[] = {
784 /* BCLK, PSYNC, VALID, DATA */
787 static const unsigned int dtv_b_mux
[] = {
788 DTV_BCLK_B_MARK
, DTV_PSYNC_B_MARK
, DTV_VALID_B_MARK
, DTV_DATA_B_MARK
,
791 /* = [ IIC0 ] ============= */
792 static const unsigned int iic0_pins
[] = {
796 static const unsigned int iic0_mux
[] = {
797 IIC0_SCL_MARK
, IIC0_SDA_MARK
,
800 /* = [ IIC1 ] ============= */
801 static const unsigned int iic1_pins
[] = {
805 static const unsigned int iic1_mux
[] = {
806 IIC1_SCL_MARK
, IIC1_SDA_MARK
,
809 /* = [ JTAG ] ============= */
810 static const unsigned int jtag_pins
[] = {
811 /* SEL, TDO, TDOEN */
814 static const unsigned int jtag_mux
[] = {
815 JT_SEL_MARK
, JT_TDO_MARK
, JT_TDOEN_MARK
,
818 /* = [ LCD/YUV ] ========== */
819 EMEV_MUX_PIN(lcd3_pxclk
, 18, LCD3_PXCLK
);
820 EMEV_MUX_PIN(lcd3_pxclkb
, 19, LCD3_PXCLKB
);
821 EMEV_MUX_PIN(lcd3_clk_i
, 20, LCD3_CLK_I
);
823 static const unsigned int lcd3_sync_pins
[] = {
827 static const unsigned int lcd3_sync_mux
[] = {
828 LCD3_HS_MARK
, LCD3_VS_MARK
, LCD3_DE_MARK
,
831 static const unsigned int lcd3_rgb888_pins
[] = {
832 /* R[0:7], G[0:7], B[0:7] */
835 40, 41, PIN_NUMBER(2, 17), PIN_NUMBER(3, 17),
836 PIN_NUMBER(4, 17), PIN_NUMBER(2, 16), PIN_NUMBER(3, 16),
838 42, 43, PIN_NUMBER(2, 15), PIN_NUMBER(3, 15),
839 PIN_NUMBER(4, 15), PIN_NUMBER(2, 14), PIN_NUMBER(3, 14),
842 static const unsigned int lcd3_rgb888_mux
[] = {
843 LCD3_R0_MARK
, LCD3_R1_MARK
, LCD3_R2_MARK
, LCD3_R3_MARK
,
844 LCD3_R4_MARK
, LCD3_R5_MARK
, LCD3_R6_MARK
, LCD3_R7_MARK
,
845 LCD3_G0_MARK
, LCD3_G1_MARK
, LCD3_G2_MARK
, LCD3_G3_MARK
,
846 LCD3_G4_MARK
, LCD3_G5_MARK
, LCD3_G6_MARK
, LCD3_G7_MARK
,
847 LCD3_B0_MARK
, LCD3_B1_MARK
, LCD3_B2_MARK
, LCD3_B3_MARK
,
848 LCD3_B4_MARK
, LCD3_B5_MARK
, LCD3_B6_MARK
, LCD3_B7_MARK
,
851 EMEV_MUX_PIN(yuv3_clk_i
, 20, YUV3_CLK_I
);
852 static const unsigned int yuv3_pins
[] = {
853 /* CLK_O, HS, VS, DE */
856 40, 41, PIN_NUMBER(2, 17), PIN_NUMBER(3, 17),
857 PIN_NUMBER(4, 17), PIN_NUMBER(2, 16), PIN_NUMBER(3, 16),
859 42, 43, PIN_NUMBER(2, 15), PIN_NUMBER(3, 15),
860 PIN_NUMBER(4, 15), PIN_NUMBER(2, 14), PIN_NUMBER(3, 14),
863 static const unsigned int yuv3_mux
[] = {
864 YUV3_CLK_O_MARK
, YUV3_HS_MARK
, YUV3_VS_MARK
, YUV3_DE_MARK
,
865 YUV3_D0_MARK
, YUV3_D1_MARK
, YUV3_D2_MARK
, YUV3_D3_MARK
,
866 YUV3_D4_MARK
, YUV3_D5_MARK
, YUV3_D6_MARK
, YUV3_D7_MARK
,
867 YUV3_D8_MARK
, YUV3_D9_MARK
, YUV3_D10_MARK
, YUV3_D11_MARK
,
868 YUV3_D12_MARK
, YUV3_D13_MARK
, YUV3_D14_MARK
, YUV3_D15_MARK
,
871 /* = [ NTSC ] ============= */
872 EMEV_MUX_PIN(ntsc_clk
, 122, NTSC_CLK
);
873 static const unsigned int ntsc_data_pins
[] = {
878 static const unsigned int ntsc_data_mux
[] = {
879 NTSC_DATA0_MARK
, NTSC_DATA1_MARK
, NTSC_DATA2_MARK
, NTSC_DATA3_MARK
,
880 NTSC_DATA4_MARK
, NTSC_DATA5_MARK
, NTSC_DATA6_MARK
, NTSC_DATA7_MARK
,
883 /* = [ PWM0 ] ============= */
884 EMEV_MUX_PIN(pwm0
, 120, PWM0
);
886 /* = [ PWM1 ] ============= */
887 EMEV_MUX_PIN(pwm1
, 121, PWM1
);
889 /* = [ SD ] =============== */
890 EMEV_MUX_PIN(sd_cki
, 48, SD_CKI
);
892 /* = [ SDIO0 ] ============ */
893 static const unsigned int sdi0_ctrl_pins
[] = {
897 static const unsigned int sdi0_ctrl_mux
[] = {
898 SDI0_CKO_MARK
, SDI0_CKI_MARK
, SDI0_CMD_MARK
,
901 static const unsigned int sdi0_data1_pins
[] = {
905 static const unsigned int sdi0_data1_mux
[] = {
908 static const unsigned int sdi0_data4_pins
[] = {
912 static const unsigned int sdi0_data4_mux
[] = {
913 SDI0_DATA0_MARK
, SDI0_DATA1_MARK
, SDI0_DATA2_MARK
, SDI0_DATA3_MARK
,
915 static const unsigned int sdi0_data8_pins
[] = {
920 static const unsigned int sdi0_data8_mux
[] = {
921 SDI0_DATA0_MARK
, SDI0_DATA1_MARK
, SDI0_DATA2_MARK
, SDI0_DATA3_MARK
,
922 SDI0_DATA4_MARK
, SDI0_DATA5_MARK
, SDI0_DATA6_MARK
, SDI0_DATA7_MARK
,
925 /* = [ SDIO1 ] ============ */
926 static const unsigned int sdi1_ctrl_pins
[] = {
930 static const unsigned int sdi1_ctrl_mux
[] = {
931 SDI1_CKO_MARK
, SDI1_CKI_MARK
, SDI1_CMD_MARK
,
934 static const unsigned int sdi1_data1_pins
[] = {
938 static const unsigned int sdi1_data1_mux
[] = {
941 static const unsigned int sdi1_data4_pins
[] = {
945 static const unsigned int sdi1_data4_mux
[] = {
946 SDI1_DATA0_MARK
, SDI1_DATA1_MARK
, SDI1_DATA2_MARK
, SDI1_DATA3_MARK
,
949 /* = [ SDIO2 ] ============ */
950 static const unsigned int sdi2_ctrl_pins
[] = {
954 static const unsigned int sdi2_ctrl_mux
[] = {
955 SDI2_CKO_MARK
, SDI2_CKI_MARK
, SDI2_CMD_MARK
,
958 static const unsigned int sdi2_data1_pins
[] = {
962 static const unsigned int sdi2_data1_mux
[] = {
965 static const unsigned int sdi2_data4_pins
[] = {
969 static const unsigned int sdi2_data4_mux
[] = {
970 SDI2_DATA0_MARK
, SDI2_DATA1_MARK
, SDI2_DATA2_MARK
, SDI2_DATA3_MARK
,
973 /* = [ TP33 ] ============= */
974 static const unsigned int tp33_pins
[] = {
977 /* TP33_DATA[0:15] */
978 40, 41, PIN_NUMBER(2, 17), PIN_NUMBER(3, 17),
979 PIN_NUMBER(4, 17), PIN_NUMBER(2, 16), PIN_NUMBER(3, 16),
981 42, 43, PIN_NUMBER(2, 15), PIN_NUMBER(3, 15),
982 PIN_NUMBER(4, 15), PIN_NUMBER(2, 14), PIN_NUMBER(3, 14),
985 static const unsigned int tp33_mux
[] = {
986 TP33_CLK_MARK
, TP33_CTRL_MARK
,
987 TP33_DATA0_MARK
, TP33_DATA1_MARK
, TP33_DATA2_MARK
, TP33_DATA3_MARK
,
988 TP33_DATA4_MARK
, TP33_DATA5_MARK
, TP33_DATA6_MARK
, TP33_DATA7_MARK
,
989 TP33_DATA8_MARK
, TP33_DATA9_MARK
, TP33_DATA10_MARK
, TP33_DATA11_MARK
,
990 TP33_DATA12_MARK
, TP33_DATA13_MARK
, TP33_DATA14_MARK
, TP33_DATA15_MARK
,
993 /* = [ UART1 ] ============ */
994 static const unsigned int uart1_data_pins
[] = {
998 static const unsigned int uart1_data_mux
[] = {
999 UART1_RX_MARK
, UART1_TX_MARK
,
1002 static const unsigned int uart1_ctrl_pins
[] = {
1006 static const unsigned int uart1_ctrl_mux
[] = {
1007 UART1_CTSB_MARK
, UART1_RTSB_MARK
,
1010 /* = [ UART2 ] ============ */
1011 static const unsigned int uart2_data_pins
[] = {
1015 static const unsigned int uart2_data_mux
[] = {
1016 UART2_RX_MARK
, UART2_TX_MARK
,
1019 /* = [ UART3 ] ============ */
1020 static const unsigned int uart3_data_pins
[] = {
1024 static const unsigned int uart3_data_mux
[] = {
1025 UART3_RX_MARK
, UART3_TX_MARK
,
1028 /* = [ USB ] ============== */
1029 EMEV_MUX_PIN(usb_vbus
, 153, USB_VBUS
);
1031 /* = [ USI0 ] ============== */
1032 EMEV_MUX_PIN(usi0_cs1
, 105, USI0_CS1
);
1033 EMEV_MUX_PIN(usi0_cs2
, 106, USI0_CS2
);
1034 EMEV_MUX_PIN(usi0_cs3
, 115, USI0_CS3
);
1035 EMEV_MUX_PIN(usi0_cs4
, 116, USI0_CS4
);
1036 EMEV_MUX_PIN(usi0_cs5
, 117, USI0_CS5
);
1037 EMEV_MUX_PIN(usi0_cs6
, 118, USI0_CS6
);
1039 /* = [ USI1 ] ============== */
1040 static const unsigned int usi1_pins
[] = {
1044 static const unsigned int usi1_mux
[] = {
1045 USI1_DI_MARK
, USI1_DO_MARK
,
1048 /* = [ USI2 ] ============== */
1049 static const unsigned int usi2_pins
[] = {
1053 static const unsigned int usi2_mux
[] = {
1054 USI2_CLK_MARK
, USI2_DI_MARK
, USI2_DO_MARK
,
1056 EMEV_MUX_PIN(usi2_cs0
, 112, USI2_CS0
);
1057 EMEV_MUX_PIN(usi2_cs1
, 113, USI2_CS1
);
1058 EMEV_MUX_PIN(usi2_cs2
, 114, USI2_CS2
);
1060 /* = [ USI3 ] ============== */
1061 static const unsigned int usi3_pins
[] = {
1065 static const unsigned int usi3_mux
[] = {
1066 USI3_CLK_MARK
, USI3_DI_MARK
, USI3_DO_MARK
,
1068 EMEV_MUX_PIN(usi3_cs0
, 118, USI3_CS0
);
1070 /* = [ USI4 ] ============== */
1071 static const unsigned int usi4_pins
[] = {
1075 static const unsigned int usi4_mux
[] = {
1076 USI4_CLK_MARK
, USI4_DI_MARK
, USI4_DO_MARK
,
1078 EMEV_MUX_PIN(usi4_cs0
, 113, USI4_CS0
);
1079 EMEV_MUX_PIN(usi4_cs1
, 114, USI4_CS1
);
1081 /* = [ USI5 ] ============== */
1082 static const unsigned int usi5_a_pins
[] = {
1086 static const unsigned int usi5_a_mux
[] = {
1087 USI5_CLK_A_MARK
, USI5_DI_A_MARK
, USI5_DO_A_MARK
,
1089 EMEV_MUX_PIN(usi5_cs0_a
, 88, USI5_CS0_A
);
1090 EMEV_MUX_PIN(usi5_cs1_a
, 89, USI5_CS1_A
);
1091 EMEV_MUX_PIN(usi5_cs2_a
, 90, USI5_CS2_A
);
1093 static const unsigned int usi5_b_pins
[] = {
1097 static const unsigned int usi5_b_mux
[] = {
1098 USI5_CLK_B_MARK
, USI5_DI_B_MARK
, USI5_DO_B_MARK
,
1100 EMEV_MUX_PIN(usi5_cs0_b
, 145, USI5_CS0_B
);
1101 EMEV_MUX_PIN(usi5_cs1_b
, 146, USI5_CS1_B
);
1102 EMEV_MUX_PIN(usi5_cs2_b
, 147, USI5_CS2_B
);
1103 EMEV_MUX_PIN(usi5_cs3_b
, 148, USI5_CS3_B
);
1104 EMEV_MUX_PIN(usi5_cs4_b
, 149, USI5_CS4_B
);
1106 static const struct sh_pfc_pin_group pinmux_groups
[] = {
1107 SH_PFC_PIN_GROUP(err_rst_reqb
),
1108 SH_PFC_PIN_GROUP(ref_clko
),
1109 SH_PFC_PIN_GROUP(ext_clki
),
1110 SH_PFC_PIN_GROUP(lowpwr
),
1112 SH_PFC_PIN_GROUP(ab_main
),
1113 SH_PFC_PIN_GROUP(ab_clk
),
1114 SH_PFC_PIN_GROUP(ab_csb0
),
1115 SH_PFC_PIN_GROUP(ab_csb1
),
1116 SH_PFC_PIN_GROUP(ab_csb2
),
1117 SH_PFC_PIN_GROUP(ab_csb3
),
1118 SH_PFC_PIN_GROUP(ab_wait
),
1119 SH_PFC_PIN_GROUP(ab_adv
),
1120 SH_PFC_PIN_GROUP(ab_a17
),
1121 SH_PFC_PIN_GROUP(ab_a18
),
1122 SH_PFC_PIN_GROUP(ab_a19
),
1123 SH_PFC_PIN_GROUP(ab_a20
),
1124 SH_PFC_PIN_GROUP(ab_a21
),
1125 SH_PFC_PIN_GROUP(ab_a22
),
1126 SH_PFC_PIN_GROUP(ab_a23
),
1127 SH_PFC_PIN_GROUP(ab_a24
),
1128 SH_PFC_PIN_GROUP(ab_a25
),
1129 SH_PFC_PIN_GROUP(ab_a26
),
1130 SH_PFC_PIN_GROUP(ab_a27
),
1131 SH_PFC_PIN_GROUP(ab_a28
),
1132 SH_PFC_PIN_GROUP(ab_ben0
),
1133 SH_PFC_PIN_GROUP(ab_ben1
),
1135 SH_PFC_PIN_GROUP(cam_clko
),
1136 SH_PFC_PIN_GROUP(cam
),
1138 SH_PFC_PIN_GROUP(cf_ctrl
),
1139 SH_PFC_PIN_GROUP(cf_data8
),
1140 SH_PFC_PIN_GROUP(cf_data16
),
1142 SH_PFC_PIN_GROUP(dtv_a
),
1143 SH_PFC_PIN_GROUP(dtv_b
),
1145 SH_PFC_PIN_GROUP(iic0
),
1147 SH_PFC_PIN_GROUP(iic1
),
1149 SH_PFC_PIN_GROUP(jtag
),
1151 SH_PFC_PIN_GROUP(lcd3_pxclk
),
1152 SH_PFC_PIN_GROUP(lcd3_pxclkb
),
1153 SH_PFC_PIN_GROUP(lcd3_clk_i
),
1154 SH_PFC_PIN_GROUP(lcd3_sync
),
1155 SH_PFC_PIN_GROUP(lcd3_rgb888
),
1156 SH_PFC_PIN_GROUP(yuv3_clk_i
),
1157 SH_PFC_PIN_GROUP(yuv3
),
1159 SH_PFC_PIN_GROUP(ntsc_clk
),
1160 SH_PFC_PIN_GROUP(ntsc_data
),
1162 SH_PFC_PIN_GROUP(pwm0
),
1164 SH_PFC_PIN_GROUP(pwm1
),
1166 SH_PFC_PIN_GROUP(sd_cki
),
1168 SH_PFC_PIN_GROUP(sdi0_ctrl
),
1169 SH_PFC_PIN_GROUP(sdi0_data1
),
1170 SH_PFC_PIN_GROUP(sdi0_data4
),
1171 SH_PFC_PIN_GROUP(sdi0_data8
),
1173 SH_PFC_PIN_GROUP(sdi1_ctrl
),
1174 SH_PFC_PIN_GROUP(sdi1_data1
),
1175 SH_PFC_PIN_GROUP(sdi1_data4
),
1177 SH_PFC_PIN_GROUP(sdi2_ctrl
),
1178 SH_PFC_PIN_GROUP(sdi2_data1
),
1179 SH_PFC_PIN_GROUP(sdi2_data4
),
1181 SH_PFC_PIN_GROUP(tp33
),
1183 SH_PFC_PIN_GROUP(uart1_data
),
1184 SH_PFC_PIN_GROUP(uart1_ctrl
),
1186 SH_PFC_PIN_GROUP(uart2_data
),
1188 SH_PFC_PIN_GROUP(uart3_data
),
1190 SH_PFC_PIN_GROUP(usb_vbus
),
1192 SH_PFC_PIN_GROUP(usi0_cs1
),
1193 SH_PFC_PIN_GROUP(usi0_cs2
),
1194 SH_PFC_PIN_GROUP(usi0_cs3
),
1195 SH_PFC_PIN_GROUP(usi0_cs4
),
1196 SH_PFC_PIN_GROUP(usi0_cs5
),
1197 SH_PFC_PIN_GROUP(usi0_cs6
),
1199 SH_PFC_PIN_GROUP(usi1
),
1201 SH_PFC_PIN_GROUP(usi2
),
1202 SH_PFC_PIN_GROUP(usi2_cs0
),
1203 SH_PFC_PIN_GROUP(usi2_cs1
),
1204 SH_PFC_PIN_GROUP(usi2_cs2
),
1206 SH_PFC_PIN_GROUP(usi3
),
1207 SH_PFC_PIN_GROUP(usi3_cs0
),
1209 SH_PFC_PIN_GROUP(usi4
),
1210 SH_PFC_PIN_GROUP(usi4_cs0
),
1211 SH_PFC_PIN_GROUP(usi4_cs1
),
1213 SH_PFC_PIN_GROUP(usi5_a
),
1214 SH_PFC_PIN_GROUP(usi5_cs0_a
),
1215 SH_PFC_PIN_GROUP(usi5_cs1_a
),
1216 SH_PFC_PIN_GROUP(usi5_cs2_a
),
1217 SH_PFC_PIN_GROUP(usi5_b
),
1218 SH_PFC_PIN_GROUP(usi5_cs0_b
),
1219 SH_PFC_PIN_GROUP(usi5_cs1_b
),
1220 SH_PFC_PIN_GROUP(usi5_cs2_b
),
1221 SH_PFC_PIN_GROUP(usi5_cs3_b
),
1222 SH_PFC_PIN_GROUP(usi5_cs4_b
),
1225 static const char * const ab_groups
[] = {
1250 static const char * const cam_groups
[] = {
1255 static const char * const cf_groups
[] = {
1261 static const char * const dtv_groups
[] = {
1266 static const char * const iic0_groups
[] = {
1270 static const char * const iic1_groups
[] = {
1274 static const char * const jtag_groups
[] = {
1278 static const char * const lcd_groups
[] = {
1288 static const char * const ntsc_groups
[] = {
1293 static const char * const pwm0_groups
[] = {
1297 static const char * const pwm1_groups
[] = {
1301 static const char * const sd_groups
[] = {
1305 static const char * const sdi0_groups
[] = {
1312 static const char * const sdi1_groups
[] = {
1318 static const char * const sdi2_groups
[] = {
1324 static const char * const tp33_groups
[] = {
1328 static const char * const uart1_groups
[] = {
1333 static const char * const uart2_groups
[] = {
1337 static const char * const uart3_groups
[] = {
1341 static const char * const usb_groups
[] = {
1345 static const char * const usi0_groups
[] = {
1354 static const char * const usi1_groups
[] = {
1358 static const char * const usi2_groups
[] = {
1365 static const char * const usi3_groups
[] = {
1370 static const char * const usi4_groups
[] = {
1376 static const char * const usi5_groups
[] = {
1389 static const struct sh_pfc_function pinmux_functions
[] = {
1390 SH_PFC_FUNCTION(ab
),
1391 SH_PFC_FUNCTION(cam
),
1392 SH_PFC_FUNCTION(cf
),
1393 SH_PFC_FUNCTION(dtv
),
1394 SH_PFC_FUNCTION(iic0
),
1395 SH_PFC_FUNCTION(iic1
),
1396 SH_PFC_FUNCTION(jtag
),
1397 SH_PFC_FUNCTION(lcd
),
1398 SH_PFC_FUNCTION(ntsc
),
1399 SH_PFC_FUNCTION(pwm0
),
1400 SH_PFC_FUNCTION(pwm1
),
1401 SH_PFC_FUNCTION(sd
),
1402 SH_PFC_FUNCTION(sdi0
),
1403 SH_PFC_FUNCTION(sdi1
),
1404 SH_PFC_FUNCTION(sdi2
),
1405 SH_PFC_FUNCTION(tp33
),
1406 SH_PFC_FUNCTION(uart1
),
1407 SH_PFC_FUNCTION(uart2
),
1408 SH_PFC_FUNCTION(uart3
),
1409 SH_PFC_FUNCTION(usb
),
1410 SH_PFC_FUNCTION(usi0
),
1411 SH_PFC_FUNCTION(usi1
),
1412 SH_PFC_FUNCTION(usi2
),
1413 SH_PFC_FUNCTION(usi3
),
1414 SH_PFC_FUNCTION(usi4
),
1415 SH_PFC_FUNCTION(usi5
),
1418 static const struct pinmux_cfg_reg pinmux_config_regs
[] = {
1419 { PINMUX_CFG_REG("GPSR0", 0xe0140200, 32, 1) {
1420 0, PORT31_FN
, /* PIN: J18 */
1421 0, PORT30_FN
, /* PIN: H18 */
1422 0, PORT29_FN
, /* PIN: G18 */
1423 0, PORT28_FN
, /* PIN: F18 */
1424 0, PORT27_FN
, /* PIN: F17 */
1425 0, PORT26_FN
, /* PIN: F16 */
1426 0, PORT25_FN
, /* PIN: E20 */
1427 0, PORT24_FN
, /* PIN: D20 */
1428 FN_LCD3_1_0_PORT23
, PORT23_FN
, /* PIN: D19 */
1429 FN_LCD3_1_0_PORT22
, PORT22_FN
, /* PIN: C20 */
1430 FN_LCD3_1_0_PORT21
, PORT21_FN
, /* PIN: B21 */
1431 FN_LCD3_1_0_PORT20
, PORT20_FN
, /* PIN: A21 */
1432 FN_LCD3_PXCLKB
, PORT19_FN
, /* PIN: C21 */
1433 FN_LCD3_1_0_PORT18
, PORT18_FN
, /* PIN: B22 */
1434 0, PORT17_FN
, /* PIN: W20 */
1435 0, PORT16_FN
, /* PIN: W21 */
1436 0, PORT15_FN
, /* PIN: Y19 */
1437 0, PORT14_FN
, /* PIN: Y20 */
1438 0, PORT13_FN
, /* PIN: Y21 */
1439 0, PORT12_FN
, /* PIN: AA20 */
1440 0, PORT11_FN
, /* PIN: AA21 */
1441 0, PORT10_FN
, /* PIN: AA22 */
1442 0, PORT9_FN
, /* PIN: V15 */
1443 0, PORT8_FN
, /* PIN: V16 */
1444 0, PORT7_FN
, /* PIN: V17 */
1445 0, PORT6_FN
, /* PIN: V18 */
1446 FN_EXT_CLKI
, PORT5_FN
, /* PIN: U8 */
1447 FN_REF_CLKO
, PORT4_FN
, /* PIN: V8 */
1448 FN_ERR_RST_REQB
, PORT3_FN
, /* PIN: U9 */
1449 FN_JT_SEL
, PORT2_FN
, /* PIN: V9 */
1450 0, PORT1_FN
, /* PIN: U10 */
1451 0, PORT0_FN
, /* PIN: V10 */
1454 { PINMUX_CFG_REG("GPSR1", 0xe0140204, 32, 1) {
1455 FN_SDI1_CMD
, PORT63_FN
, /* PIN: AC21 */
1456 FN_SDI1_CKI
, PORT62_FN
, /* PIN: AA23 */
1457 FN_SDI1_CKO
, PORT61_FN
, /* PIN: AB22 */
1458 FN_SDI0_DATA7
, PORT60_FN
, /* PIN: Y16 */
1459 FN_SDI0_DATA6
, PORT59_FN
, /* PIN: AA16 */
1460 FN_SDI0_DATA5
, PORT58_FN
, /* PIN: Y15 */
1461 FN_SDI0_DATA4
, PORT57_FN
, /* PIN: AA15 */
1462 FN_SDI0_DATA3
, PORT56_FN
, /* PIN: Y14 */
1463 FN_SDI0_DATA2
, PORT55_FN
, /* PIN: AA14 */
1464 FN_SDI0_DATA1
, PORT54_FN
, /* PIN: Y13 */
1465 FN_SDI0_DATA0
, PORT53_FN
, /* PIN: AA13 */
1466 FN_SDI0_CMD
, PORT52_FN
, /* PIN: Y12 */
1467 FN_SDI0_CKI
, PORT51_FN
, /* PIN: AC18 */
1468 FN_SDI0_CKO
, PORT50_FN
, /* PIN: AB18 */
1469 0, PORT49_FN
, /* PIN: AB16 */
1470 FN_SD_CKI
, PORT48_FN
, /* PIN: AC19 */
1471 FN_IIC_1_0_PORT47
, PORT47_FN
, /* PIN: Y8 */
1472 FN_IIC_1_0_PORT46
, PORT46_FN
, /* PIN: Y9 */
1473 FN_IIC0_SDA
, PORT45_FN
, /* PIN: AA8 */
1474 FN_IIC0_SCL
, PORT44_FN
, /* PIN: AA9 */
1475 FN_LCD3_11_10_PORT43
, PORT43_FN
, /* PIN: A15 */
1476 FN_LCD3_11_10_PORT42
, PORT42_FN
, /* PIN: A16 */
1477 FN_LCD3_11_10_PORT41
, PORT41_FN
, /* PIN: A17 */
1478 FN_LCD3_11_10_PORT40
, PORT40_FN
, /* PIN: A18 */
1479 FN_LCD3_9_8_PORT39
, PORT39_FN
, /* PIN: D18 */
1480 FN_LCD3_9_8_PORT38
, PORT38_FN
, /* PIN: C18 */
1481 FN_LCD3_R5
, PORT37_FN
, /* PIN: B18 */
1482 FN_LCD3_R4
, PORT36_FN
, /* PIN: C19 */
1483 FN_LCD3_R3
, PORT35_FN
, /* PIN: B19 */
1484 FN_LCD3_R2
, PORT34_FN
, /* PIN: A19 */
1485 FN_LCD3_R1
, PORT33_FN
, /* PIN: B20 */
1486 FN_LCD3_R0
, PORT32_FN
, /* PIN: A20 */
1489 { PINMUX_CFG_REG("GPSR2", 0xe0140208, 32, 1) {
1490 FN_AB_1_0_PORT95
, PORT95_FN
, /* PIN: L21 */
1491 FN_AB_1_0_PORT94
, PORT94_FN
, /* PIN: K21 */
1492 FN_AB_1_0_PORT93
, PORT93_FN
, /* PIN: J21 */
1493 FN_AB_7_6_PORT92
, PORT92_FN
, /* PIN: J22 */
1494 FN_AB_7_6_PORT91
, PORT91_FN
, /* PIN: H21 */
1495 FN_AB_5_4_PORT90
, PORT90_FN
, /* PIN: H22 */
1496 FN_AB_5_4_PORT89
, PORT89_FN
, /* PIN: H23 */
1497 FN_AB_3_2_PORT88
, PORT88_FN
, /* PIN: G21 */
1498 FN_AB_3_2_PORT87
, PORT87_FN
, /* PIN: G22 */
1499 FN_AB_3_2_PORT86
, PORT86_FN
, /* PIN: G23 */
1500 FN_AB_3_2_PORT85
, PORT85_FN
, /* PIN: F21 */
1501 FN_AB_1_0_PORT84
, PORT84_FN
, /* PIN: F22 */
1502 FN_AB_1_0_PORT83
, PORT83_FN
, /* PIN: F23 */
1503 FN_AB_1_0_PORT82
, PORT82_FN
, /* PIN: E22 */
1504 FN_AB_1_0_PORT81
, PORT81_FN
, /* PIN: E23 */
1505 FN_AB_1_0_PORT80
, PORT80_FN
, /* PIN: D22 */
1506 FN_AB_1_0_PORT79
, PORT79_FN
, /* PIN: D23 */
1507 FN_AB_1_0_PORT78
, PORT78_FN
, /* PIN: C22 */
1508 FN_AB_1_0_PORT77
, PORT77_FN
, /* PIN: C23 */
1509 FN_AB_1_0_PORT76
, PORT76_FN
, /* PIN: K20 */
1510 FN_AB_1_0_PORT75
, PORT75_FN
, /* PIN: L20 */
1511 FN_AB_1_0_PORT74
, PORT74_FN
, /* PIN: H20 */
1512 FN_AB_1_0_PORT73
, PORT73_FN
, /* PIN: J20 */
1513 FN_AB_1_0_PORT72
, PORT72_FN
, /* PIN: G20 */
1514 FN_AB_1_0_PORT71
, PORT71_FN
, /* PIN: F20 */
1515 FN_AB_CSB1
, PORT70_FN
, /* PIN: E21 */
1516 FN_AB_CSB0
, PORT69_FN
, /* PIN: D21 */
1517 FN_AB_CLK
, PORT68_FN
, /* PIN: J23 */
1518 FN_SDI1_DATA3
, PORT67_FN
, /* PIN: AA19 */
1519 FN_SDI1_DATA2
, PORT66_FN
, /* PIN: AB19 */
1520 FN_SDI1_DATA1
, PORT65_FN
, /* PIN: AB20 */
1521 FN_SDI1_DATA0
, PORT64_FN
, /* PIN: AB21 */
1524 { PINMUX_CFG_REG("GPSR3", 0xe014020c, 32, 1) {
1525 FN_NTSC_DATA4
, PORT127_FN
, /* PIN: T20 */
1526 FN_NTSC_DATA3
, PORT126_FN
, /* PIN: R18 */
1527 FN_NTSC_DATA2
, PORT125_FN
, /* PIN: R20 */
1528 FN_NTSC_DATA1
, PORT124_FN
, /* PIN: P18 */
1529 FN_NTSC_DATA0
, PORT123_FN
, /* PIN: P20 */
1530 FN_NTSC_CLK
, PORT122_FN
, /* PIN: V20 */
1531 FN_USI_9_8_PORT121
, PORT121_FN
, /* PIN: Y5 */
1532 FN_USI_9_8_PORT120
, PORT120_FN
, /* PIN: AA4 */
1533 FN_USI_7_6_PORT119
, PORT119_FN
, /* PIN: AB3 */
1534 FN_USI_5_4_PORT118
, PORT118_FN
, /* PIN: AB4 */
1535 FN_USI_5_4_PORT117
, PORT117_FN
, /* PIN: AC3 */
1536 FN_USI_5_4_PORT116
, PORT116_FN
, /* PIN: AC4 */
1537 FN_USI_5_4_PORT115
, PORT115_FN
, /* PIN: AC5 */
1538 FN_USI_3_2_PORT114
, PORT114_FN
, /* PIN: Y6 */
1539 FN_USI_3_2_PORT113
, PORT113_FN
, /* PIN: AA7 */
1540 FN_USI_1_0_PORT112
, PORT112_FN
, /* PIN: Y7 */
1541 FN_USI_1_0_PORT111
, PORT111_FN
, /* PIN: AA5 */
1542 FN_USI_1_0_PORT110
, PORT110_FN
, /* PIN: AA6 */
1543 FN_USI_1_0_PORT109
, PORT109_FN
, /* PIN: AB5 */
1544 FN_USI1_DO
, PORT108_FN
, /* PIN: D10 */
1545 FN_USI1_DI
, PORT107_FN
, /* PIN: C10 */
1546 FN_USI0_CS2
, PORT106_FN
, /* PIN: B9 */
1547 FN_USI0_CS1
, PORT105_FN
, /* PIN: B8 */
1548 FN_AB_13_12_PORT104
, PORT104_FN
, /* PIN: M17 */
1549 FN_AB_13_12_PORT103
, PORT103_FN
, /* PIN: L17 */
1550 FN_AB_11_10_PORT102
, PORT102_FN
, /* PIN: N18 */
1551 FN_AB_11_10_PORT101
, PORT101_FN
, /* PIN: M18 */
1552 FN_AB_11_10_PORT100
, PORT100_FN
, /* PIN: L18 */
1553 FN_AB_9_8_PORT99
, PORT99_FN
, /* PIN: N20 */
1554 FN_AB_9_8_PORT98
, PORT98_FN
, /* PIN: M20 */
1555 FN_AB_9_8_PORT97
, PORT97_FN
, /* PIN: N21 */
1556 FN_AB_A20
, PORT96_FN
, /* PIN: M21 */
1559 { PINMUX_CFG_REG("GPSR4", 0xe0140210, 32, 1) {
1561 FN_UART_1_0_PORT158
, PORT158_FN
, /* PIN: AB10 */
1562 FN_UART_1_0_PORT157
, PORT157_FN
, /* PIN: AA10 */
1563 FN_UART1_TX
, PORT156_FN
, /* PIN: Y10 */
1564 FN_UART1_RX
, PORT155_FN
, /* PIN: Y11 */
1565 FN_LOWPWR
, PORT154_FN
, /* PIN: A12 */
1566 FN_USB_VBUS
, PORT153_FN
, /* PIN: AA12 */
1567 FN_JT_TDOEN
, PORT152_FN
, /* PIN: F13 */
1568 FN_JT_TDO
, PORT151_FN
, /* PIN: D13 */
1569 FN_HSI_1_0_PORT150
, PORT150_FN
, /* PIN: M22 */
1570 FN_HSI_1_0_PORT149
, PORT149_FN
, /* PIN: M23 */
1571 FN_HSI_1_0_PORT148
, PORT148_FN
, /* PIN: N23 */
1572 FN_HSI_1_0_PORT147
, PORT147_FN
, /* PIN: N22 */
1573 FN_HSI_1_0_PORT146
, PORT146_FN
, /* PIN: L22 */
1574 FN_HSI_1_0_PORT145
, PORT145_FN
, /* PIN: L23 */
1575 FN_HSI_1_0_PORT144
, PORT144_FN
, /* PIN: K23 */
1576 FN_HSI_1_0_PORT143
, PORT143_FN
, /* PIN: K22 */
1577 FN_CAM_YUV7
, PORT142_FN
, /* PIN: V23 */
1578 FN_CAM_YUV6
, PORT141_FN
, /* PIN: V22 */
1579 FN_CAM_YUV5
, PORT140_FN
, /* PIN: U23 */
1580 FN_CAM_YUV4
, PORT139_FN
, /* PIN: U22 */
1581 FN_CAM_YUV3
, PORT138_FN
, /* PIN: U21 */
1582 FN_CAM_YUV2
, PORT137_FN
, /* PIN: T23 */
1583 FN_CAM_YUV1
, PORT136_FN
, /* PIN: T22 */
1584 FN_CAM_YUV0
, PORT135_FN
, /* PIN: T21 */
1585 FN_CAM_HS
, PORT134_FN
, /* PIN: V21 */
1586 FN_CAM_VS
, PORT133_FN
, /* PIN: W22 */
1587 FN_CAM_CLKI
, PORT132_FN
, /* PIN: Y23 */
1588 FN_CAM_CLKO
, PORT131_FN
, /* PIN: W23 */
1589 FN_NTSC_DATA7
, PORT130_FN
, /* PIN: U18 */
1590 FN_NTSC_DATA6
, PORT129_FN
, /* PIN: U20 */
1591 FN_NTSC_DATA5
, PORT128_FN
, /* PIN: T18 */
1594 { PINMUX_CFG_REG_VAR("CHG_PINSEL_LCD3", 0xe0140284, 32,
1595 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1596 1, 1, 1, 1, 2, 2, 2, 2, 2, 2) {
1598 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1599 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1600 0, 0, 0, 0, 0, 0, 0, 0,
1602 FN_SEL_LCD3_11_10_00
, FN_SEL_LCD3_11_10_01
,
1603 FN_SEL_LCD3_11_10_10
, 0,
1605 FN_SEL_LCD3_9_8_00
, 0, FN_SEL_LCD3_9_8_10
, 0,
1607 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1609 FN_SEL_LCD3_1_0_00
, FN_SEL_LCD3_1_0_01
, 0, 0,
1612 { PINMUX_CFG_REG_VAR("CHG_PINSEL_UART", 0xe0140288, 32,
1613 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1614 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2) {
1616 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1617 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1618 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1619 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1621 FN_SEL_UART_1_0_00
, FN_SEL_UART_1_0_01
, 0, 0,
1624 { PINMUX_CFG_REG_VAR("CHG_PINSEL_IIC", 0xe014028c, 32,
1625 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1626 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2) {
1628 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1629 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1630 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1631 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1633 FN_SEL_IIC_1_0_00
, FN_SEL_IIC_1_0_01
, 0, 0,
1636 { PINMUX_CFG_REG_VAR("CHG_PINSEL_AB", 0xe0140294, 32,
1637 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1638 2, 2, 2, 2, 2, 2, 2, 2) {
1640 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1641 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1644 FN_SEL_AB_13_12_00
, 0, FN_SEL_AB_13_12_10
, 0,
1646 FN_SEL_AB_11_10_00
, 0, FN_SEL_AB_11_10_10
, 0,
1648 FN_SEL_AB_9_8_00
, FN_SEL_AB_9_8_01
, FN_SEL_AB_9_8_10
, 0,
1650 FN_SEL_AB_7_6_00
, FN_SEL_AB_7_6_01
, FN_SEL_AB_7_6_10
, 0,
1652 FN_SEL_AB_5_4_00
, FN_SEL_AB_5_4_01
,
1653 FN_SEL_AB_5_4_10
, FN_SEL_AB_5_4_11
,
1655 FN_SEL_AB_3_2_00
, FN_SEL_AB_3_2_01
,
1656 FN_SEL_AB_3_2_10
, FN_SEL_AB_3_2_11
,
1658 FN_SEL_AB_1_0_00
, 0, FN_SEL_AB_1_0_10
, 0,
1661 { PINMUX_CFG_REG_VAR("CHG_PINSEL_USI", 0xe0140298, 32,
1662 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1663 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2) {
1665 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1666 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1667 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1669 FN_SEL_USI_9_8_00
, FN_SEL_USI_9_8_01
, 0, 0,
1671 FN_SEL_USI_7_6_00
, FN_SEL_USI_7_6_01
, 0, 0,
1673 FN_SEL_USI_5_4_00
, FN_SEL_USI_5_4_01
, 0, 0,
1675 FN_SEL_USI_3_2_00
, FN_SEL_USI_3_2_01
, 0, 0,
1677 FN_SEL_USI_1_0_00
, FN_SEL_USI_1_0_01
, 0, 0,
1680 { PINMUX_CFG_REG_VAR("CHG_PINSEL_HSI", 0xe01402a8, 32,
1681 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1682 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2) {
1684 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1685 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1686 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1687 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1689 FN_SEL_HSI_1_0_00
, FN_SEL_HSI_1_0_01
, 0, 0,
1695 const struct sh_pfc_soc_info emev2_pinmux_info
= {
1696 .name
= "emev2_pfc",
1698 .function
= { PINMUX_FUNCTION_BEGIN
, PINMUX_FUNCTION_END
},
1700 .pins
= pinmux_pins
,
1701 .nr_pins
= ARRAY_SIZE(pinmux_pins
),
1702 .groups
= pinmux_groups
,
1703 .nr_groups
= ARRAY_SIZE(pinmux_groups
),
1704 .functions
= pinmux_functions
,
1705 .nr_functions
= ARRAY_SIZE(pinmux_functions
),
1707 .cfg_regs
= pinmux_config_regs
,
1709 .pinmux_data
= pinmux_data
,
1710 .pinmux_data_size
= ARRAY_SIZE(pinmux_data
),