1 /* 2 * Pin Function Controller Support 3 * 4 * Copyright (C) 2015 Niklas Söderlund 5 * 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 8 * for more details. 9 */ 10 #include <linux/init.h> 11 #include <linux/kernel.h> 12 13 #include "sh_pfc.h" 14 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) 24 25 enum { 26 PINMUX_RESERVED = 0, 27 28 PINMUX_DATA_BEGIN, 29 PORT_ALL(DATA), 30 PINMUX_DATA_END, 31 32 PINMUX_FUNCTION_BEGIN, 33 PORT_ALL(FN), 34 35 /* GPSR0 */ 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, 39 40 /* GPSR1 */ 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, 49 50 /* GPSR2 */ 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, 59 FN_AB_1_0_PORT95, 60 FN_SDI1_DATA0, FN_SDI1_DATA1, FN_SDI1_DATA2, FN_SDI1_DATA3, 61 FN_AB_CLK, FN_AB_CSB0, FN_AB_CSB1, 62 63 /* GPSR3 */ 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, 71 FN_USI_9_8_PORT121, 72 FN_AB_A20, FN_USI0_CS1, FN_USI0_CS2, FN_USI1_DI, 73 FN_USI1_DO, 74 FN_NTSC_CLK, FN_NTSC_DATA0, FN_NTSC_DATA1, FN_NTSC_DATA2, 75 FN_NTSC_DATA3, FN_NTSC_DATA4, 76 77 /* GPRS4 */ 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, 87 FN_UART1_TX, 88 89 /* CHG_PINSEL_LCD3 */ 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, 93 94 /* CHG_PINSEL_IIC */ 95 FN_SEL_IIC_1_0_00, FN_SEL_IIC_1_0_01, 96 97 /* CHG_PINSEL_AB */ 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, 102 FN_SEL_AB_7_6_10, 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, 106 107 /* CHG_PINSEL_USI */ 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, 113 114 /* CHG_PINSEL_HSI */ 115 FN_SEL_HSI_1_0_00, FN_SEL_HSI_1_0_01, 116 117 /* CHG_PINSEL_UART */ 118 FN_SEL_UART_1_0_00, FN_SEL_UART_1_0_01, 119 120 PINMUX_FUNCTION_END, 121 122 PINMUX_MARK_BEGIN, 123 124 /* GPSR0 */ 125 JT_SEL_MARK, ERR_RST_REQB_MARK, REF_CLKO_MARK, EXT_CLKI_MARK, 126 LCD3_PXCLKB_MARK, SD_CKI_MARK, 127 128 /* GPSR1 */ 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, 134 SDI1_CMD_MARK, 135 136 /* GPSR2 */ 137 SDI1_DATA0_MARK, SDI1_DATA1_MARK, SDI1_DATA2_MARK, SDI1_DATA3_MARK, 138 AB_CLK_MARK, AB_CSB0_MARK, AB_CSB1_MARK, 139 140 /* GPSR3 */ 141 AB_A20_MARK, USI0_CS1_MARK, USI0_CS2_MARK, USI1_DI_MARK, 142 USI1_DO_MARK, 143 NTSC_CLK_MARK, NTSC_DATA0_MARK, NTSC_DATA1_MARK, NTSC_DATA2_MARK, 144 NTSC_DATA3_MARK, NTSC_DATA4_MARK, 145 146 /* GPSR3 */ 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, 153 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, 170 171 /* CHG_PINSEL_IIC */ 172 IIC1_SCL_MARK, IIC1_SDA_MARK, UART3_RX_MARK, UART3_TX_MARK, 173 174 /* CHG_PINSEL_AB */ 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, 185 DTV_DATA_A_MARK, 186 SDI2_CKO_MARK, SDI2_CKI_MARK, SDI2_CMD_MARK, 187 SDI2_DATA0_MARK, SDI2_DATA1_MARK, SDI2_DATA2_MARK, 188 SDI2_DATA3_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, 199 200 /* CHG_PINSEL_USI */ 201 USI0_CS3_MARK, USI0_CS4_MARK, USI0_CS5_MARK, 202 USI0_CS6_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, 206 USI3_CS0_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, 211 DTV_DATA_B_MARK, 212 213 /* CHG_PINSEL_HSI */ 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, 216 217 /* CHG_PINSEL_UART */ 218 UART1_CTSB_MARK, UART1_RTSB_MARK, 219 UART2_RX_MARK, UART2_TX_MARK, 220 221 PINMUX_MARK_END, 222 }; 223 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) 228 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) 233 234 static const struct sh_pfc_pin pinmux_pins[] = { 235 PINMUX_EMEV_GPIO_ALL(), 236 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), 250 }; 251 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) 255 256 static const u16 pinmux_data[] = { 257 PINMUX_EMEV_DATA_ALL(), /* PINMUX_DATA(PORTN_DATA, PORTN_FN), */ 258 259 /* GPSR0 */ 260 /* V9 */ 261 PINMUX_DATA(JT_SEL_MARK, FN_JT_SEL), 262 /* U9 */ 263 PINMUX_DATA(ERR_RST_REQB_MARK, FN_ERR_RST_REQB), 264 /* V8 */ 265 PINMUX_DATA(REF_CLKO_MARK, FN_REF_CLKO), 266 /* U8 */ 267 PINMUX_DATA(EXT_CLKI_MARK, FN_EXT_CLKI), 268 /* B22*/ 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), 271 /* C21 */ 272 PINMUX_DATA(LCD3_PXCLKB_MARK, FN_LCD3_PXCLKB), 273 /* A21 */ 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), 276 /* B21 */ 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), 279 /* C20 */ 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), 282 /* D19 */ 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), 285 286 /* GPSR1 */ 287 /* A20 */ 288 PINMUX_DATA(LCD3_R0_MARK, FN_LCD3_R0), 289 /* B20 */ 290 PINMUX_DATA(LCD3_R1_MARK, FN_LCD3_R1), 291 /* A19 */ 292 PINMUX_DATA(LCD3_R2_MARK, FN_LCD3_R2), 293 /* B19 */ 294 PINMUX_DATA(LCD3_R3_MARK, FN_LCD3_R3), 295 /* C19 */ 296 PINMUX_DATA(LCD3_R4_MARK, FN_LCD3_R4), 297 /* B18 */ 298 PINMUX_DATA(LCD3_R5_MARK, FN_LCD3_R5), 299 /* C18 */ 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), 302 /* D18 */ 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), 305 /* A18 */ 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), 309 /* A17 */ 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), 313 /* B17 */ 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), 317 /* C17 */ 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), 321 /* D17 */ 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), 325 /* B16 */ 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), 329 /* C16 */ 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), 333 /* D16 */ 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), 337 /* A16 */ 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), 341 /* A15 */ 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), 345 /* B15 */ 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), 349 /* C15 */ 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), 353 /* D15 */ 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), 357 /* B14 */ 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), 361 /* C14 */ 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), 365 /* D14 */ 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), 369 /* AA9 */ 370 PINMUX_DATA(IIC0_SCL_MARK, FN_IIC0_SCL), 371 /* AA8 */ 372 PINMUX_DATA(IIC0_SDA_MARK, FN_IIC0_SDA), 373 /* Y9 */ 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), 376 /* Y8 */ 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), 379 /* AC19 */ 380 PINMUX_DATA(SD_CKI_MARK, FN_SD_CKI), 381 /* AB18 */ 382 PINMUX_DATA(SDI0_CKO_MARK, FN_SDI0_CKO), 383 /* AC18 */ 384 PINMUX_DATA(SDI0_CKI_MARK, FN_SDI0_CKI), 385 /* Y12 */ 386 PINMUX_DATA(SDI0_CMD_MARK, FN_SDI0_CMD), 387 /* AA13 */ 388 PINMUX_DATA(SDI0_DATA0_MARK, FN_SDI0_DATA0), 389 /* Y13 */ 390 PINMUX_DATA(SDI0_DATA1_MARK, FN_SDI0_DATA1), 391 /* AA14 */ 392 PINMUX_DATA(SDI0_DATA2_MARK, FN_SDI0_DATA2), 393 /* Y14 */ 394 PINMUX_DATA(SDI0_DATA3_MARK, FN_SDI0_DATA3), 395 /* AA15 */ 396 PINMUX_DATA(SDI0_DATA4_MARK, FN_SDI0_DATA4), 397 /* Y15 */ 398 PINMUX_DATA(SDI0_DATA5_MARK, FN_SDI0_DATA5), 399 /* AA16 */ 400 PINMUX_DATA(SDI0_DATA6_MARK, FN_SDI0_DATA6), 401 /* Y16 */ 402 PINMUX_DATA(SDI0_DATA7_MARK, FN_SDI0_DATA7), 403 /* AB22 */ 404 PINMUX_DATA(SDI1_CKO_MARK, FN_SDI1_CKO), 405 /* AA23 */ 406 PINMUX_DATA(SDI1_CKI_MARK, FN_SDI1_CKI), 407 /* AC21 */ 408 PINMUX_DATA(SDI1_CMD_MARK, FN_SDI1_CMD), 409 410 /* GPSR2 */ 411 /* AB21 */ 412 PINMUX_DATA(SDI1_DATA0_MARK, FN_SDI1_DATA0), 413 /* AB20 */ 414 PINMUX_DATA(SDI1_DATA1_MARK, FN_SDI1_DATA1), 415 /* AB19 */ 416 PINMUX_DATA(SDI1_DATA2_MARK, FN_SDI1_DATA2), 417 /* AA19 */ 418 PINMUX_DATA(SDI1_DATA3_MARK, FN_SDI1_DATA3), 419 /* J23 */ 420 PINMUX_DATA(AB_CLK_MARK, FN_AB_CLK), 421 /* D21 */ 422 PINMUX_DATA(AB_CSB0_MARK, FN_AB_CSB0), 423 /* E21 */ 424 PINMUX_DATA(AB_CSB1_MARK, FN_AB_CSB1), 425 /* F20 */ 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), 428 /* G20 */ 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), 431 /* J20 */ 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), 434 /* H20 */ 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), 437 /* L20 */ 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), 440 /* K20 */ 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), 443 /* C23 */ 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), 446 /* C22 */ 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), 449 /* D23 */ 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), 452 /* D22 */ 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), 455 /* E23 */ 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), 458 /* E22 */ 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), 461 /* F23 */ 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), 464 /* F22 */ 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), 467 /* F21 */ 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), 472 /* G23 */ 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), 477 /* G22 */ 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), 482 /* G21 */ 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), 487 /* H23 */ 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), 492 /* H22 */ 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), 497 /* H21 */ 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), 501 /* J22 */ 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), 505 /* J21 */ 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), 508 /* K21 */ 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), 511 /* L21 */ 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), 514 515 /* GPSR3 */ 516 /* M21 */ 517 PINMUX_DATA(AB_A20_MARK, FN_AB_A20), 518 /* N21 */ 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), 522 /* M20 */ 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), 525 /* N20 */ 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), 528 /* L18 */ 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), 531 /* M18 */ 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), 534 /* N18 */ 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), 537 /* L17 */ 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), 540 /* M17 */ 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), 543 /* B8 */ 544 PINMUX_DATA(USI0_CS1_MARK, FN_USI0_CS1), 545 /* B9 */ 546 PINMUX_DATA(USI0_CS2_MARK, FN_USI0_CS2), 547 /* C10 */ 548 PINMUX_DATA(USI1_DI_MARK, FN_USI1_DI), 549 /* D10 */ 550 PINMUX_DATA(USI1_DO_MARK, FN_USI1_DO), 551 /* AB5 */ 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), 554 /* AA6 */ 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), 557 /* AA5 */ 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), 560 /* Y7 */ 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), 563 /* AA7 */ 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), 566 /* Y6 */ 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), 569 /* AC5 */ 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), 572 /* AC4 */ 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), 575 /* AC3 */ 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), 578 /* AB4 */ 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), 581 /* AB3 */ 582 PINMUX_IPSR_NOFN(USI_7_6_PORT119, USI4_CLK, SEL_USI_7_6_01), 583 /* AA4 */ 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), 586 /* Y5 */ 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), 589 /* V20 */ 590 PINMUX_DATA(NTSC_CLK_MARK, FN_NTSC_CLK), 591 /* P20 */ 592 PINMUX_DATA(NTSC_DATA0_MARK, FN_NTSC_DATA0), 593 /* P18 */ 594 PINMUX_DATA(NTSC_DATA1_MARK, FN_NTSC_DATA1), 595 /* R20 */ 596 PINMUX_DATA(NTSC_DATA2_MARK, FN_NTSC_DATA2), 597 /* R18 */ 598 PINMUX_DATA(NTSC_DATA3_MARK, FN_NTSC_DATA3), 599 /* T20 */ 600 PINMUX_DATA(NTSC_DATA4_MARK, FN_NTSC_DATA4), 601 602 /* GPRS3 */ 603 /* T18 */ 604 PINMUX_DATA(NTSC_DATA5_MARK, FN_NTSC_DATA5), 605 /* U20 */ 606 PINMUX_DATA(NTSC_DATA6_MARK, FN_NTSC_DATA6), 607 /* U18 */ 608 PINMUX_DATA(NTSC_DATA7_MARK, FN_NTSC_DATA7), 609 /* W23 */ 610 PINMUX_DATA(CAM_CLKO_MARK, FN_CAM_CLKO), 611 /* Y23 */ 612 PINMUX_DATA(CAM_CLKI_MARK, FN_CAM_CLKI), 613 /* W22 */ 614 PINMUX_DATA(CAM_VS_MARK, FN_CAM_VS), 615 /* V21 */ 616 PINMUX_DATA(CAM_HS_MARK, FN_CAM_HS), 617 /* T21 */ 618 PINMUX_DATA(CAM_YUV0_MARK, FN_CAM_YUV0), 619 /* T22 */ 620 PINMUX_DATA(CAM_YUV1_MARK, FN_CAM_YUV1), 621 /* T23 */ 622 PINMUX_DATA(CAM_YUV2_MARK, FN_CAM_YUV2), 623 /* U21 */ 624 PINMUX_DATA(CAM_YUV3_MARK, FN_CAM_YUV3), 625 /* U22 */ 626 PINMUX_DATA(CAM_YUV4_MARK, FN_CAM_YUV4), 627 /* U23 */ 628 PINMUX_DATA(CAM_YUV5_MARK, FN_CAM_YUV5), 629 /* V22 */ 630 PINMUX_DATA(CAM_YUV6_MARK, FN_CAM_YUV6), 631 /* V23 */ 632 PINMUX_DATA(CAM_YUV7_MARK, FN_CAM_YUV7), 633 /* K22 */ 634 PINMUX_IPSR_NOFN(HSI_1_0_PORT143, USI5_CLK_B, SEL_HSI_1_0_01), 635 /* K23 */ 636 PINMUX_IPSR_NOFN(HSI_1_0_PORT144, USI5_DO_B, SEL_HSI_1_0_01), 637 /* L23 */ 638 PINMUX_IPSR_NOFN(HSI_1_0_PORT145, USI5_CS0_B, SEL_HSI_1_0_01), 639 /* L22 */ 640 PINMUX_IPSR_NOFN(HSI_1_0_PORT146, USI5_CS1_B, SEL_HSI_1_0_01), 641 /* N22 */ 642 PINMUX_IPSR_NOFN(HSI_1_0_PORT147, USI5_CS2_B, SEL_HSI_1_0_01), 643 /* N23 */ 644 PINMUX_IPSR_NOFN(HSI_1_0_PORT148, USI5_CS3_B, SEL_HSI_1_0_01), 645 /* M23 */ 646 PINMUX_IPSR_NOFN(HSI_1_0_PORT149, USI5_CS4_B, SEL_HSI_1_0_01), 647 /* M22 */ 648 PINMUX_IPSR_NOFN(HSI_1_0_PORT150, USI5_DI_B, SEL_HSI_1_0_01), 649 /* D13 */ 650 PINMUX_DATA(JT_TDO_MARK, FN_JT_TDO), 651 /* F13 */ 652 PINMUX_DATA(JT_TDOEN_MARK, FN_JT_TDOEN), 653 /* AA12 */ 654 PINMUX_DATA(USB_VBUS_MARK, FN_USB_VBUS), 655 /* A12 */ 656 PINMUX_DATA(LOWPWR_MARK, FN_LOWPWR), 657 /* Y11 */ 658 PINMUX_DATA(UART1_RX_MARK, FN_UART1_RX), 659 /* Y10 */ 660 PINMUX_DATA(UART1_TX_MARK, FN_UART1_TX), 661 /* AA10 */ 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), 664 /* AB10 */ 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), 667 }; 668 669 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 } 673 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); 679 680 /* = [ External Memory] === */ 681 static const unsigned int ab_main_pins[] = { 682 /* AB_RDB, AB_WRB */ 683 73, 74, 684 /* AB_AD[0:15] */ 685 77, 78, 79, 80, 686 81, 82, 83, 84, 687 85, 86, 87, 88, 688 89, 90, 91, 92, 689 }; 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, 696 }; 697 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); 719 720 /* = [ CAM ] ============== */ 721 EMEV_MUX_PIN(cam_clko, 131, CAM_CLKO); 722 static const unsigned int cam_pins[] = { 723 /* CLKI, VS, HS */ 724 132, 133, 134, 725 /* CAM_YUV[0:7] */ 726 135, 136, 137, 138, 727 139, 140, 141, 142, 728 }; 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, 733 }; 734 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 */ 739 71, 72, 73, 74, 740 75, 76, 93, 94, 741 95, 97, 100, 101, 742 102, 743 }; 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, 748 CF_CDB2_MARK, 749 }; 750 751 static const unsigned int cf_data8_pins[] = { 752 /* CF_D[0:8] */ 753 77, 78, 79, 80, 754 81, 82, 83, 84, 755 }; 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, 759 }; 760 static const unsigned int cf_data16_pins[] = { 761 /* CF_D[0:15] */ 762 77, 78, 79, 80, 763 81, 82, 83, 84, 764 85, 86, 87, 88, 765 89, 90, 91, 92, 766 }; 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, 772 }; 773 774 /* = [ DTV ] ============== */ 775 static const unsigned int dtv_a_pins[] = { 776 /* BCLK, PSYNC, VALID, DATA */ 777 85, 86, 87, 88, 778 }; 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, 781 }; 782 783 static const unsigned int dtv_b_pins[] = { 784 /* BCLK, PSYNC, VALID, DATA */ 785 109, 110, 111, 112, 786 }; 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, 789 }; 790 791 /* = [ IIC0 ] ============= */ 792 static const unsigned int iic0_pins[] = { 793 /* SCL, SDA */ 794 44, 45, 795 }; 796 static const unsigned int iic0_mux[] = { 797 IIC0_SCL_MARK, IIC0_SDA_MARK, 798 }; 799 800 /* = [ IIC1 ] ============= */ 801 static const unsigned int iic1_pins[] = { 802 /* SCL, SDA */ 803 46, 47, 804 }; 805 static const unsigned int iic1_mux[] = { 806 IIC1_SCL_MARK, IIC1_SDA_MARK, 807 }; 808 809 /* = [ JTAG ] ============= */ 810 static const unsigned int jtag_pins[] = { 811 /* SEL, TDO, TDOEN */ 812 2, 151, 152, 813 }; 814 static const unsigned int jtag_mux[] = { 815 JT_SEL_MARK, JT_TDO_MARK, JT_TDOEN_MARK, 816 }; 817 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); 822 823 static const unsigned int lcd3_sync_pins[] = { 824 /* HS, VS, DE */ 825 21, 22, 23, 826 }; 827 static const unsigned int lcd3_sync_mux[] = { 828 LCD3_HS_MARK, LCD3_VS_MARK, LCD3_DE_MARK, 829 }; 830 831 static const unsigned int lcd3_rgb888_pins[] = { 832 /* R[0:7], G[0:7], B[0:7] */ 833 32, 33, 34, 35, 834 36, 37, 38, 39, 835 40, 41, PIN_NUMBER(2, 17), PIN_NUMBER(3, 17), 836 PIN_NUMBER(4, 17), PIN_NUMBER(2, 16), PIN_NUMBER(3, 16), 837 PIN_NUMBER(4, 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), 840 PIN_NUMBER(4, 14) 841 }; 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, 849 }; 850 851 EMEV_MUX_PIN(yuv3_clk_i, 20, YUV3_CLK_I); 852 static const unsigned int yuv3_pins[] = { 853 /* CLK_O, HS, VS, DE */ 854 18, 21, 22, 23, 855 /* YUV3_D[0:15] */ 856 40, 41, PIN_NUMBER(2, 17), PIN_NUMBER(3, 17), 857 PIN_NUMBER(4, 17), PIN_NUMBER(2, 16), PIN_NUMBER(3, 16), 858 PIN_NUMBER(4, 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), 861 PIN_NUMBER(4, 14), 862 }; 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, 869 }; 870 871 /* = [ NTSC ] ============= */ 872 EMEV_MUX_PIN(ntsc_clk, 122, NTSC_CLK); 873 static const unsigned int ntsc_data_pins[] = { 874 /* NTSC_DATA[0:7] */ 875 123, 124, 125, 126, 876 127, 128, 129, 130, 877 }; 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, 881 }; 882 883 /* = [ PWM0 ] ============= */ 884 EMEV_MUX_PIN(pwm0, 120, PWM0); 885 886 /* = [ PWM1 ] ============= */ 887 EMEV_MUX_PIN(pwm1, 121, PWM1); 888 889 /* = [ SD ] =============== */ 890 EMEV_MUX_PIN(sd_cki, 48, SD_CKI); 891 892 /* = [ SDIO0 ] ============ */ 893 static const unsigned int sdi0_ctrl_pins[] = { 894 /* CKO, CKI, CMD */ 895 50, 51, 52, 896 }; 897 static const unsigned int sdi0_ctrl_mux[] = { 898 SDI0_CKO_MARK, SDI0_CKI_MARK, SDI0_CMD_MARK, 899 }; 900 901 static const unsigned int sdi0_data1_pins[] = { 902 /* SDI0_DATA[0] */ 903 53, 904 }; 905 static const unsigned int sdi0_data1_mux[] = { 906 SDI0_DATA0_MARK, 907 }; 908 static const unsigned int sdi0_data4_pins[] = { 909 /* SDI0_DATA[0:3] */ 910 53, 54, 55, 56, 911 }; 912 static const unsigned int sdi0_data4_mux[] = { 913 SDI0_DATA0_MARK, SDI0_DATA1_MARK, SDI0_DATA2_MARK, SDI0_DATA3_MARK, 914 }; 915 static const unsigned int sdi0_data8_pins[] = { 916 /* SDI0_DATA[0:7] */ 917 53, 54, 55, 56, 918 57, 58, 59, 60 919 }; 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, 923 }; 924 925 /* = [ SDIO1 ] ============ */ 926 static const unsigned int sdi1_ctrl_pins[] = { 927 /* CKO, CKI, CMD */ 928 61, 62, 63, 929 }; 930 static const unsigned int sdi1_ctrl_mux[] = { 931 SDI1_CKO_MARK, SDI1_CKI_MARK, SDI1_CMD_MARK, 932 }; 933 934 static const unsigned int sdi1_data1_pins[] = { 935 /* SDI1_DATA[0] */ 936 64, 937 }; 938 static const unsigned int sdi1_data1_mux[] = { 939 SDI1_DATA0_MARK, 940 }; 941 static const unsigned int sdi1_data4_pins[] = { 942 /* SDI1_DATA[0:3] */ 943 64, 65, 66, 67, 944 }; 945 static const unsigned int sdi1_data4_mux[] = { 946 SDI1_DATA0_MARK, SDI1_DATA1_MARK, SDI1_DATA2_MARK, SDI1_DATA3_MARK, 947 }; 948 949 /* = [ SDIO2 ] ============ */ 950 static const unsigned int sdi2_ctrl_pins[] = { 951 /* CKO, CKI, CMD */ 952 97, 98, 99, 953 }; 954 static const unsigned int sdi2_ctrl_mux[] = { 955 SDI2_CKO_MARK, SDI2_CKI_MARK, SDI2_CMD_MARK, 956 }; 957 958 static const unsigned int sdi2_data1_pins[] = { 959 /* SDI2_DATA[0] */ 960 89, 961 }; 962 static const unsigned int sdi2_data1_mux[] = { 963 SDI2_DATA0_MARK, 964 }; 965 static const unsigned int sdi2_data4_pins[] = { 966 /* SDI2_DATA[0:3] */ 967 89, 90, 91, 92, 968 }; 969 static const unsigned int sdi2_data4_mux[] = { 970 SDI2_DATA0_MARK, SDI2_DATA1_MARK, SDI2_DATA2_MARK, SDI2_DATA3_MARK, 971 }; 972 973 /* = [ TP33 ] ============= */ 974 static const unsigned int tp33_pins[] = { 975 /* CLK, CTRL */ 976 38, 39, 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), 980 PIN_NUMBER(4, 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), 983 PIN_NUMBER(4, 14), 984 }; 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, 991 }; 992 993 /* = [ UART1 ] ============ */ 994 static const unsigned int uart1_data_pins[] = { 995 /* RX, TX */ 996 155, 156, 997 }; 998 static const unsigned int uart1_data_mux[] = { 999 UART1_RX_MARK, UART1_TX_MARK, 1000 }; 1001 1002 static const unsigned int uart1_ctrl_pins[] = { 1003 /* CTSB, RTSB */ 1004 157, 158, 1005 }; 1006 static const unsigned int uart1_ctrl_mux[] = { 1007 UART1_CTSB_MARK, UART1_RTSB_MARK, 1008 }; 1009 1010 /* = [ UART2 ] ============ */ 1011 static const unsigned int uart2_data_pins[] = { 1012 /* RX, TX */ 1013 157, 158, 1014 }; 1015 static const unsigned int uart2_data_mux[] = { 1016 UART2_RX_MARK, UART2_TX_MARK, 1017 }; 1018 1019 /* = [ UART3 ] ============ */ 1020 static const unsigned int uart3_data_pins[] = { 1021 /* RX, TX */ 1022 46, 47, 1023 }; 1024 static const unsigned int uart3_data_mux[] = { 1025 UART3_RX_MARK, UART3_TX_MARK, 1026 }; 1027 1028 /* = [ USB ] ============== */ 1029 EMEV_MUX_PIN(usb_vbus, 153, USB_VBUS); 1030 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); 1038 1039 /* = [ USI1 ] ============== */ 1040 static const unsigned int usi1_pins[] = { 1041 /* DI, DO*/ 1042 107, 108, 1043 }; 1044 static const unsigned int usi1_mux[] = { 1045 USI1_DI_MARK, USI1_DO_MARK, 1046 }; 1047 1048 /* = [ USI2 ] ============== */ 1049 static const unsigned int usi2_pins[] = { 1050 /* CLK, DI, DO*/ 1051 109, 110, 111, 1052 }; 1053 static const unsigned int usi2_mux[] = { 1054 USI2_CLK_MARK, USI2_DI_MARK, USI2_DO_MARK, 1055 }; 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); 1059 1060 /* = [ USI3 ] ============== */ 1061 static const unsigned int usi3_pins[] = { 1062 /* CLK, DI, DO*/ 1063 115, 116, 117, 1064 }; 1065 static const unsigned int usi3_mux[] = { 1066 USI3_CLK_MARK, USI3_DI_MARK, USI3_DO_MARK, 1067 }; 1068 EMEV_MUX_PIN(usi3_cs0, 118, USI3_CS0); 1069 1070 /* = [ USI4 ] ============== */ 1071 static const unsigned int usi4_pins[] = { 1072 /* CLK, DI, DO*/ 1073 119, 120, 121, 1074 }; 1075 static const unsigned int usi4_mux[] = { 1076 USI4_CLK_MARK, USI4_DI_MARK, USI4_DO_MARK, 1077 }; 1078 EMEV_MUX_PIN(usi4_cs0, 113, USI4_CS0); 1079 EMEV_MUX_PIN(usi4_cs1, 114, USI4_CS1); 1080 1081 /* = [ USI5 ] ============== */ 1082 static const unsigned int usi5_a_pins[] = { 1083 /* CLK, DI, DO*/ 1084 85, 86, 87, 1085 }; 1086 static const unsigned int usi5_a_mux[] = { 1087 USI5_CLK_A_MARK, USI5_DI_A_MARK, USI5_DO_A_MARK, 1088 }; 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); 1092 1093 static const unsigned int usi5_b_pins[] = { 1094 /* CLK, DI, DO*/ 1095 143, 144, 150, 1096 }; 1097 static const unsigned int usi5_b_mux[] = { 1098 USI5_CLK_B_MARK, USI5_DI_B_MARK, USI5_DO_B_MARK, 1099 }; 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); 1105 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), 1111 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), 1134 1135 SH_PFC_PIN_GROUP(cam_clko), 1136 SH_PFC_PIN_GROUP(cam), 1137 1138 SH_PFC_PIN_GROUP(cf_ctrl), 1139 SH_PFC_PIN_GROUP(cf_data8), 1140 SH_PFC_PIN_GROUP(cf_data16), 1141 1142 SH_PFC_PIN_GROUP(dtv_a), 1143 SH_PFC_PIN_GROUP(dtv_b), 1144 1145 SH_PFC_PIN_GROUP(iic0), 1146 1147 SH_PFC_PIN_GROUP(iic1), 1148 1149 SH_PFC_PIN_GROUP(jtag), 1150 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), 1158 1159 SH_PFC_PIN_GROUP(ntsc_clk), 1160 SH_PFC_PIN_GROUP(ntsc_data), 1161 1162 SH_PFC_PIN_GROUP(pwm0), 1163 1164 SH_PFC_PIN_GROUP(pwm1), 1165 1166 SH_PFC_PIN_GROUP(sd_cki), 1167 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), 1172 1173 SH_PFC_PIN_GROUP(sdi1_ctrl), 1174 SH_PFC_PIN_GROUP(sdi1_data1), 1175 SH_PFC_PIN_GROUP(sdi1_data4), 1176 1177 SH_PFC_PIN_GROUP(sdi2_ctrl), 1178 SH_PFC_PIN_GROUP(sdi2_data1), 1179 SH_PFC_PIN_GROUP(sdi2_data4), 1180 1181 SH_PFC_PIN_GROUP(tp33), 1182 1183 SH_PFC_PIN_GROUP(uart1_data), 1184 SH_PFC_PIN_GROUP(uart1_ctrl), 1185 1186 SH_PFC_PIN_GROUP(uart2_data), 1187 1188 SH_PFC_PIN_GROUP(uart3_data), 1189 1190 SH_PFC_PIN_GROUP(usb_vbus), 1191 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), 1198 1199 SH_PFC_PIN_GROUP(usi1), 1200 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), 1205 1206 SH_PFC_PIN_GROUP(usi3), 1207 SH_PFC_PIN_GROUP(usi3_cs0), 1208 1209 SH_PFC_PIN_GROUP(usi4), 1210 SH_PFC_PIN_GROUP(usi4_cs0), 1211 SH_PFC_PIN_GROUP(usi4_cs1), 1212 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), 1223 }; 1224 1225 static const char * const ab_groups[] = { 1226 "ab_main", 1227 "ab_clk", 1228 "ab_csb0", 1229 "ab_csb1", 1230 "ab_csb2", 1231 "ab_csb3", 1232 "ab_wait", 1233 "ab_adv", 1234 "ab_a17", 1235 "ab_a18", 1236 "ab_a19", 1237 "ab_a20", 1238 "ab_a21", 1239 "ab_a22", 1240 "ab_a23", 1241 "ab_a24", 1242 "ab_a25", 1243 "ab_a26", 1244 "ab_a27", 1245 "ab_a28", 1246 "ab_ben0", 1247 "ab_ben1", 1248 }; 1249 1250 static const char * const cam_groups[] = { 1251 "cam_clko", 1252 "cam", 1253 }; 1254 1255 static const char * const cf_groups[] = { 1256 "cf_ctrl", 1257 "cf_data8", 1258 "cf_data16", 1259 }; 1260 1261 static const char * const dtv_groups[] = { 1262 "dtv_a", 1263 "dtv_b", 1264 }; 1265 1266 static const char * const err_rst_reqb_groups[] = { 1267 "err_rst_reqb", 1268 }; 1269 1270 static const char * const ext_clki_groups[] = { 1271 "ext_clki", 1272 }; 1273 1274 static const char * const iic0_groups[] = { 1275 "iic0", 1276 }; 1277 1278 static const char * const iic1_groups[] = { 1279 "iic1", 1280 }; 1281 1282 static const char * const jtag_groups[] = { 1283 "jtag", 1284 }; 1285 1286 static const char * const lcd_groups[] = { 1287 "lcd3_pxclk", 1288 "lcd3_pxclkb", 1289 "lcd3_clk_i", 1290 "lcd3_sync", 1291 "lcd3_rgb888", 1292 "yuv3_clk_i", 1293 "yuv3", 1294 }; 1295 1296 static const char * const lowpwr_groups[] = { 1297 "lowpwr", 1298 }; 1299 1300 static const char * const ntsc_groups[] = { 1301 "ntsc_clk", 1302 "ntsc_data", 1303 }; 1304 1305 static const char * const pwm0_groups[] = { 1306 "pwm0", 1307 }; 1308 1309 static const char * const pwm1_groups[] = { 1310 "pwm1", 1311 }; 1312 1313 static const char * const ref_clko_groups[] = { 1314 "ref_clko", 1315 }; 1316 1317 static const char * const sd_groups[] = { 1318 "sd_cki", 1319 }; 1320 1321 static const char * const sdi0_groups[] = { 1322 "sdi0_ctrl", 1323 "sdi0_data1", 1324 "sdi0_data4", 1325 "sdi0_data8", 1326 }; 1327 1328 static const char * const sdi1_groups[] = { 1329 "sdi1_ctrl", 1330 "sdi1_data1", 1331 "sdi1_data4", 1332 }; 1333 1334 static const char * const sdi2_groups[] = { 1335 "sdi2_ctrl", 1336 "sdi2_data1", 1337 "sdi2_data4", 1338 }; 1339 1340 static const char * const tp33_groups[] = { 1341 "tp33", 1342 }; 1343 1344 static const char * const uart1_groups[] = { 1345 "uart1_data", 1346 "uart1_ctrl", 1347 }; 1348 1349 static const char * const uart2_groups[] = { 1350 "uart2_data", 1351 }; 1352 1353 static const char * const uart3_groups[] = { 1354 "uart3_data", 1355 }; 1356 1357 static const char * const usb_groups[] = { 1358 "usb_vbus", 1359 }; 1360 1361 static const char * const usi0_groups[] = { 1362 "usi0_cs1", 1363 "usi0_cs2", 1364 "usi0_cs3", 1365 "usi0_cs4", 1366 "usi0_cs5", 1367 "usi0_cs6", 1368 }; 1369 1370 static const char * const usi1_groups[] = { 1371 "usi1", 1372 }; 1373 1374 static const char * const usi2_groups[] = { 1375 "usi2", 1376 "usi2_cs0", 1377 "usi2_cs1", 1378 "usi2_cs2", 1379 }; 1380 1381 static const char * const usi3_groups[] = { 1382 "usi3", 1383 "usi3_cs0", 1384 }; 1385 1386 static const char * const usi4_groups[] = { 1387 "usi4", 1388 "usi4_cs0", 1389 "usi4_cs1", 1390 }; 1391 1392 static const char * const usi5_groups[] = { 1393 "usi5_a", 1394 "usi5_cs0_a", 1395 "usi5_cs1_a", 1396 "usi5_cs2_a", 1397 "usi5_b", 1398 "usi5_cs0_b", 1399 "usi5_cs1_b", 1400 "usi5_cs2_b", 1401 "usi5_cs3_b", 1402 "usi5_cs4_b", 1403 }; 1404 1405 static const struct sh_pfc_function pinmux_functions[] = { 1406 SH_PFC_FUNCTION(ab), 1407 SH_PFC_FUNCTION(cam), 1408 SH_PFC_FUNCTION(cf), 1409 SH_PFC_FUNCTION(dtv), 1410 SH_PFC_FUNCTION(err_rst_reqb), 1411 SH_PFC_FUNCTION(ext_clki), 1412 SH_PFC_FUNCTION(iic0), 1413 SH_PFC_FUNCTION(iic1), 1414 SH_PFC_FUNCTION(jtag), 1415 SH_PFC_FUNCTION(lcd), 1416 SH_PFC_FUNCTION(lowpwr), 1417 SH_PFC_FUNCTION(ntsc), 1418 SH_PFC_FUNCTION(pwm0), 1419 SH_PFC_FUNCTION(pwm1), 1420 SH_PFC_FUNCTION(ref_clko), 1421 SH_PFC_FUNCTION(sd), 1422 SH_PFC_FUNCTION(sdi0), 1423 SH_PFC_FUNCTION(sdi1), 1424 SH_PFC_FUNCTION(sdi2), 1425 SH_PFC_FUNCTION(tp33), 1426 SH_PFC_FUNCTION(uart1), 1427 SH_PFC_FUNCTION(uart2), 1428 SH_PFC_FUNCTION(uart3), 1429 SH_PFC_FUNCTION(usb), 1430 SH_PFC_FUNCTION(usi0), 1431 SH_PFC_FUNCTION(usi1), 1432 SH_PFC_FUNCTION(usi2), 1433 SH_PFC_FUNCTION(usi3), 1434 SH_PFC_FUNCTION(usi4), 1435 SH_PFC_FUNCTION(usi5), 1436 }; 1437 1438 static const struct pinmux_cfg_reg pinmux_config_regs[] = { 1439 { PINMUX_CFG_REG("GPSR0", 0xe0140200, 32, 1) { 1440 0, PORT31_FN, /* PIN: J18 */ 1441 0, PORT30_FN, /* PIN: H18 */ 1442 0, PORT29_FN, /* PIN: G18 */ 1443 0, PORT28_FN, /* PIN: F18 */ 1444 0, PORT27_FN, /* PIN: F17 */ 1445 0, PORT26_FN, /* PIN: F16 */ 1446 0, PORT25_FN, /* PIN: E20 */ 1447 0, PORT24_FN, /* PIN: D20 */ 1448 FN_LCD3_1_0_PORT23, PORT23_FN, /* PIN: D19 */ 1449 FN_LCD3_1_0_PORT22, PORT22_FN, /* PIN: C20 */ 1450 FN_LCD3_1_0_PORT21, PORT21_FN, /* PIN: B21 */ 1451 FN_LCD3_1_0_PORT20, PORT20_FN, /* PIN: A21 */ 1452 FN_LCD3_PXCLKB, PORT19_FN, /* PIN: C21 */ 1453 FN_LCD3_1_0_PORT18, PORT18_FN, /* PIN: B22 */ 1454 0, PORT17_FN, /* PIN: W20 */ 1455 0, PORT16_FN, /* PIN: W21 */ 1456 0, PORT15_FN, /* PIN: Y19 */ 1457 0, PORT14_FN, /* PIN: Y20 */ 1458 0, PORT13_FN, /* PIN: Y21 */ 1459 0, PORT12_FN, /* PIN: AA20 */ 1460 0, PORT11_FN, /* PIN: AA21 */ 1461 0, PORT10_FN, /* PIN: AA22 */ 1462 0, PORT9_FN, /* PIN: V15 */ 1463 0, PORT8_FN, /* PIN: V16 */ 1464 0, PORT7_FN, /* PIN: V17 */ 1465 0, PORT6_FN, /* PIN: V18 */ 1466 FN_EXT_CLKI, PORT5_FN, /* PIN: U8 */ 1467 FN_REF_CLKO, PORT4_FN, /* PIN: V8 */ 1468 FN_ERR_RST_REQB, PORT3_FN, /* PIN: U9 */ 1469 FN_JT_SEL, PORT2_FN, /* PIN: V9 */ 1470 0, PORT1_FN, /* PIN: U10 */ 1471 0, PORT0_FN, /* PIN: V10 */ 1472 } 1473 }, 1474 { PINMUX_CFG_REG("GPSR1", 0xe0140204, 32, 1) { 1475 FN_SDI1_CMD, PORT63_FN, /* PIN: AC21 */ 1476 FN_SDI1_CKI, PORT62_FN, /* PIN: AA23 */ 1477 FN_SDI1_CKO, PORT61_FN, /* PIN: AB22 */ 1478 FN_SDI0_DATA7, PORT60_FN, /* PIN: Y16 */ 1479 FN_SDI0_DATA6, PORT59_FN, /* PIN: AA16 */ 1480 FN_SDI0_DATA5, PORT58_FN, /* PIN: Y15 */ 1481 FN_SDI0_DATA4, PORT57_FN, /* PIN: AA15 */ 1482 FN_SDI0_DATA3, PORT56_FN, /* PIN: Y14 */ 1483 FN_SDI0_DATA2, PORT55_FN, /* PIN: AA14 */ 1484 FN_SDI0_DATA1, PORT54_FN, /* PIN: Y13 */ 1485 FN_SDI0_DATA0, PORT53_FN, /* PIN: AA13 */ 1486 FN_SDI0_CMD, PORT52_FN, /* PIN: Y12 */ 1487 FN_SDI0_CKI, PORT51_FN, /* PIN: AC18 */ 1488 FN_SDI0_CKO, PORT50_FN, /* PIN: AB18 */ 1489 0, PORT49_FN, /* PIN: AB16 */ 1490 FN_SD_CKI, PORT48_FN, /* PIN: AC19 */ 1491 FN_IIC_1_0_PORT47, PORT47_FN, /* PIN: Y8 */ 1492 FN_IIC_1_0_PORT46, PORT46_FN, /* PIN: Y9 */ 1493 FN_IIC0_SDA, PORT45_FN, /* PIN: AA8 */ 1494 FN_IIC0_SCL, PORT44_FN, /* PIN: AA9 */ 1495 FN_LCD3_11_10_PORT43, PORT43_FN, /* PIN: A15 */ 1496 FN_LCD3_11_10_PORT42, PORT42_FN, /* PIN: A16 */ 1497 FN_LCD3_11_10_PORT41, PORT41_FN, /* PIN: A17 */ 1498 FN_LCD3_11_10_PORT40, PORT40_FN, /* PIN: A18 */ 1499 FN_LCD3_9_8_PORT39, PORT39_FN, /* PIN: D18 */ 1500 FN_LCD3_9_8_PORT38, PORT38_FN, /* PIN: C18 */ 1501 FN_LCD3_R5, PORT37_FN, /* PIN: B18 */ 1502 FN_LCD3_R4, PORT36_FN, /* PIN: C19 */ 1503 FN_LCD3_R3, PORT35_FN, /* PIN: B19 */ 1504 FN_LCD3_R2, PORT34_FN, /* PIN: A19 */ 1505 FN_LCD3_R1, PORT33_FN, /* PIN: B20 */ 1506 FN_LCD3_R0, PORT32_FN, /* PIN: A20 */ 1507 } 1508 }, 1509 { PINMUX_CFG_REG("GPSR2", 0xe0140208, 32, 1) { 1510 FN_AB_1_0_PORT95, PORT95_FN, /* PIN: L21 */ 1511 FN_AB_1_0_PORT94, PORT94_FN, /* PIN: K21 */ 1512 FN_AB_1_0_PORT93, PORT93_FN, /* PIN: J21 */ 1513 FN_AB_7_6_PORT92, PORT92_FN, /* PIN: J22 */ 1514 FN_AB_7_6_PORT91, PORT91_FN, /* PIN: H21 */ 1515 FN_AB_5_4_PORT90, PORT90_FN, /* PIN: H22 */ 1516 FN_AB_5_4_PORT89, PORT89_FN, /* PIN: H23 */ 1517 FN_AB_3_2_PORT88, PORT88_FN, /* PIN: G21 */ 1518 FN_AB_3_2_PORT87, PORT87_FN, /* PIN: G22 */ 1519 FN_AB_3_2_PORT86, PORT86_FN, /* PIN: G23 */ 1520 FN_AB_3_2_PORT85, PORT85_FN, /* PIN: F21 */ 1521 FN_AB_1_0_PORT84, PORT84_FN, /* PIN: F22 */ 1522 FN_AB_1_0_PORT83, PORT83_FN, /* PIN: F23 */ 1523 FN_AB_1_0_PORT82, PORT82_FN, /* PIN: E22 */ 1524 FN_AB_1_0_PORT81, PORT81_FN, /* PIN: E23 */ 1525 FN_AB_1_0_PORT80, PORT80_FN, /* PIN: D22 */ 1526 FN_AB_1_0_PORT79, PORT79_FN, /* PIN: D23 */ 1527 FN_AB_1_0_PORT78, PORT78_FN, /* PIN: C22 */ 1528 FN_AB_1_0_PORT77, PORT77_FN, /* PIN: C23 */ 1529 FN_AB_1_0_PORT76, PORT76_FN, /* PIN: K20 */ 1530 FN_AB_1_0_PORT75, PORT75_FN, /* PIN: L20 */ 1531 FN_AB_1_0_PORT74, PORT74_FN, /* PIN: H20 */ 1532 FN_AB_1_0_PORT73, PORT73_FN, /* PIN: J20 */ 1533 FN_AB_1_0_PORT72, PORT72_FN, /* PIN: G20 */ 1534 FN_AB_1_0_PORT71, PORT71_FN, /* PIN: F20 */ 1535 FN_AB_CSB1, PORT70_FN, /* PIN: E21 */ 1536 FN_AB_CSB0, PORT69_FN, /* PIN: D21 */ 1537 FN_AB_CLK, PORT68_FN, /* PIN: J23 */ 1538 FN_SDI1_DATA3, PORT67_FN, /* PIN: AA19 */ 1539 FN_SDI1_DATA2, PORT66_FN, /* PIN: AB19 */ 1540 FN_SDI1_DATA1, PORT65_FN, /* PIN: AB20 */ 1541 FN_SDI1_DATA0, PORT64_FN, /* PIN: AB21 */ 1542 } 1543 }, 1544 { PINMUX_CFG_REG("GPSR3", 0xe014020c, 32, 1) { 1545 FN_NTSC_DATA4, PORT127_FN, /* PIN: T20 */ 1546 FN_NTSC_DATA3, PORT126_FN, /* PIN: R18 */ 1547 FN_NTSC_DATA2, PORT125_FN, /* PIN: R20 */ 1548 FN_NTSC_DATA1, PORT124_FN, /* PIN: P18 */ 1549 FN_NTSC_DATA0, PORT123_FN, /* PIN: P20 */ 1550 FN_NTSC_CLK, PORT122_FN, /* PIN: V20 */ 1551 FN_USI_9_8_PORT121, PORT121_FN, /* PIN: Y5 */ 1552 FN_USI_9_8_PORT120, PORT120_FN, /* PIN: AA4 */ 1553 FN_USI_7_6_PORT119, PORT119_FN, /* PIN: AB3 */ 1554 FN_USI_5_4_PORT118, PORT118_FN, /* PIN: AB4 */ 1555 FN_USI_5_4_PORT117, PORT117_FN, /* PIN: AC3 */ 1556 FN_USI_5_4_PORT116, PORT116_FN, /* PIN: AC4 */ 1557 FN_USI_5_4_PORT115, PORT115_FN, /* PIN: AC5 */ 1558 FN_USI_3_2_PORT114, PORT114_FN, /* PIN: Y6 */ 1559 FN_USI_3_2_PORT113, PORT113_FN, /* PIN: AA7 */ 1560 FN_USI_1_0_PORT112, PORT112_FN, /* PIN: Y7 */ 1561 FN_USI_1_0_PORT111, PORT111_FN, /* PIN: AA5 */ 1562 FN_USI_1_0_PORT110, PORT110_FN, /* PIN: AA6 */ 1563 FN_USI_1_0_PORT109, PORT109_FN, /* PIN: AB5 */ 1564 FN_USI1_DO, PORT108_FN, /* PIN: D10 */ 1565 FN_USI1_DI, PORT107_FN, /* PIN: C10 */ 1566 FN_USI0_CS2, PORT106_FN, /* PIN: B9 */ 1567 FN_USI0_CS1, PORT105_FN, /* PIN: B8 */ 1568 FN_AB_13_12_PORT104, PORT104_FN, /* PIN: M17 */ 1569 FN_AB_13_12_PORT103, PORT103_FN, /* PIN: L17 */ 1570 FN_AB_11_10_PORT102, PORT102_FN, /* PIN: N18 */ 1571 FN_AB_11_10_PORT101, PORT101_FN, /* PIN: M18 */ 1572 FN_AB_11_10_PORT100, PORT100_FN, /* PIN: L18 */ 1573 FN_AB_9_8_PORT99, PORT99_FN, /* PIN: N20 */ 1574 FN_AB_9_8_PORT98, PORT98_FN, /* PIN: M20 */ 1575 FN_AB_9_8_PORT97, PORT97_FN, /* PIN: N21 */ 1576 FN_AB_A20, PORT96_FN, /* PIN: M21 */ 1577 } 1578 }, 1579 { PINMUX_CFG_REG("GPSR4", 0xe0140210, 32, 1) { 1580 0, 0, 1581 FN_UART_1_0_PORT158, PORT158_FN, /* PIN: AB10 */ 1582 FN_UART_1_0_PORT157, PORT157_FN, /* PIN: AA10 */ 1583 FN_UART1_TX, PORT156_FN, /* PIN: Y10 */ 1584 FN_UART1_RX, PORT155_FN, /* PIN: Y11 */ 1585 FN_LOWPWR, PORT154_FN, /* PIN: A12 */ 1586 FN_USB_VBUS, PORT153_FN, /* PIN: AA12 */ 1587 FN_JT_TDOEN, PORT152_FN, /* PIN: F13 */ 1588 FN_JT_TDO, PORT151_FN, /* PIN: D13 */ 1589 FN_HSI_1_0_PORT150, PORT150_FN, /* PIN: M22 */ 1590 FN_HSI_1_0_PORT149, PORT149_FN, /* PIN: M23 */ 1591 FN_HSI_1_0_PORT148, PORT148_FN, /* PIN: N23 */ 1592 FN_HSI_1_0_PORT147, PORT147_FN, /* PIN: N22 */ 1593 FN_HSI_1_0_PORT146, PORT146_FN, /* PIN: L22 */ 1594 FN_HSI_1_0_PORT145, PORT145_FN, /* PIN: L23 */ 1595 FN_HSI_1_0_PORT144, PORT144_FN, /* PIN: K23 */ 1596 FN_HSI_1_0_PORT143, PORT143_FN, /* PIN: K22 */ 1597 FN_CAM_YUV7, PORT142_FN, /* PIN: V23 */ 1598 FN_CAM_YUV6, PORT141_FN, /* PIN: V22 */ 1599 FN_CAM_YUV5, PORT140_FN, /* PIN: U23 */ 1600 FN_CAM_YUV4, PORT139_FN, /* PIN: U22 */ 1601 FN_CAM_YUV3, PORT138_FN, /* PIN: U21 */ 1602 FN_CAM_YUV2, PORT137_FN, /* PIN: T23 */ 1603 FN_CAM_YUV1, PORT136_FN, /* PIN: T22 */ 1604 FN_CAM_YUV0, PORT135_FN, /* PIN: T21 */ 1605 FN_CAM_HS, PORT134_FN, /* PIN: V21 */ 1606 FN_CAM_VS, PORT133_FN, /* PIN: W22 */ 1607 FN_CAM_CLKI, PORT132_FN, /* PIN: Y23 */ 1608 FN_CAM_CLKO, PORT131_FN, /* PIN: W23 */ 1609 FN_NTSC_DATA7, PORT130_FN, /* PIN: U18 */ 1610 FN_NTSC_DATA6, PORT129_FN, /* PIN: U20 */ 1611 FN_NTSC_DATA5, PORT128_FN, /* PIN: T18 */ 1612 } 1613 }, 1614 { PINMUX_CFG_REG_VAR("CHG_PINSEL_LCD3", 0xe0140284, 32, 1615 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1616 1, 1, 1, 1, 2, 2, 2, 2, 2, 2) { 1617 /* 31 - 12 */ 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, 0, 0, 0, 0, 1620 0, 0, 0, 0, 0, 0, 0, 0, 1621 /* 11 - 10 */ 1622 FN_SEL_LCD3_11_10_00, FN_SEL_LCD3_11_10_01, 1623 FN_SEL_LCD3_11_10_10, 0, 1624 /* 9 - 8 */ 1625 FN_SEL_LCD3_9_8_00, 0, FN_SEL_LCD3_9_8_10, 0, 1626 /* 7 - 2 */ 1627 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1628 /* 1 - 0 */ 1629 FN_SEL_LCD3_1_0_00, FN_SEL_LCD3_1_0_01, 0, 0, 1630 } 1631 }, 1632 { PINMUX_CFG_REG_VAR("CHG_PINSEL_UART", 0xe0140288, 32, 1633 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1634 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2) { 1635 /* 31 - 2 */ 1636 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1637 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1638 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1639 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1640 /* 1 - 0 */ 1641 FN_SEL_UART_1_0_00, FN_SEL_UART_1_0_01, 0, 0, 1642 } 1643 }, 1644 { PINMUX_CFG_REG_VAR("CHG_PINSEL_IIC", 0xe014028c, 32, 1645 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1646 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2) { 1647 /* 31 - 2 */ 1648 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1649 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1650 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1651 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1652 /* 1 - 0 */ 1653 FN_SEL_IIC_1_0_00, FN_SEL_IIC_1_0_01, 0, 0, 1654 } 1655 }, 1656 { PINMUX_CFG_REG_VAR("CHG_PINSEL_AB", 0xe0140294, 32, 1657 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1658 2, 2, 2, 2, 2, 2, 2, 2) { 1659 /* 31 - 14 */ 1660 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1661 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1662 0, 0, 0, 0, 1663 /* 13 - 12 */ 1664 FN_SEL_AB_13_12_00, 0, FN_SEL_AB_13_12_10, 0, 1665 /* 11 - 10 */ 1666 FN_SEL_AB_11_10_00, 0, FN_SEL_AB_11_10_10, 0, 1667 /* 9 - 8 */ 1668 FN_SEL_AB_9_8_00, FN_SEL_AB_9_8_01, FN_SEL_AB_9_8_10, 0, 1669 /* 7 - 6 */ 1670 FN_SEL_AB_7_6_00, FN_SEL_AB_7_6_01, FN_SEL_AB_7_6_10, 0, 1671 /* 5 - 4 */ 1672 FN_SEL_AB_5_4_00, FN_SEL_AB_5_4_01, 1673 FN_SEL_AB_5_4_10, FN_SEL_AB_5_4_11, 1674 /* 3 - 2 */ 1675 FN_SEL_AB_3_2_00, FN_SEL_AB_3_2_01, 1676 FN_SEL_AB_3_2_10, FN_SEL_AB_3_2_11, 1677 /* 1 - 0 */ 1678 FN_SEL_AB_1_0_00, 0, FN_SEL_AB_1_0_10, 0, 1679 } 1680 }, 1681 { PINMUX_CFG_REG_VAR("CHG_PINSEL_USI", 0xe0140298, 32, 1682 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1683 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2) { 1684 /* 31 - 10 */ 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, 1688 /* 9 - 8 */ 1689 FN_SEL_USI_9_8_00, FN_SEL_USI_9_8_01, 0, 0, 1690 /* 7 - 6 */ 1691 FN_SEL_USI_7_6_00, FN_SEL_USI_7_6_01, 0, 0, 1692 /* 5 - 4 */ 1693 FN_SEL_USI_5_4_00, FN_SEL_USI_5_4_01, 0, 0, 1694 /* 3 - 2 */ 1695 FN_SEL_USI_3_2_00, FN_SEL_USI_3_2_01, 0, 0, 1696 /* 1 - 0 */ 1697 FN_SEL_USI_1_0_00, FN_SEL_USI_1_0_01, 0, 0, 1698 } 1699 }, 1700 { PINMUX_CFG_REG_VAR("CHG_PINSEL_HSI", 0xe01402a8, 32, 1701 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1702 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2) { 1703 /* 31 - 2 */ 1704 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1705 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1706 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1707 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1708 /* 1 - 0 */ 1709 FN_SEL_HSI_1_0_00, FN_SEL_HSI_1_0_01, 0, 0, 1710 } 1711 }, 1712 { }, 1713 }; 1714 1715 const struct sh_pfc_soc_info emev2_pinmux_info = { 1716 .name = "emev2_pfc", 1717 1718 .function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END }, 1719 1720 .pins = pinmux_pins, 1721 .nr_pins = ARRAY_SIZE(pinmux_pins), 1722 .groups = pinmux_groups, 1723 .nr_groups = ARRAY_SIZE(pinmux_groups), 1724 .functions = pinmux_functions, 1725 .nr_functions = ARRAY_SIZE(pinmux_functions), 1726 1727 .cfg_regs = pinmux_config_regs, 1728 1729 .pinmux_data = pinmux_data, 1730 .pinmux_data_size = ARRAY_SIZE(pinmux_data), 1731 }; 1732