linux/drivers/pinctrl/sh-pfc/pfc-emev2.c
<<
>>
Prefs
   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
  25enum {
  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
 234static 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
 256static const u16 pinmux_data[] = {
 257        PINMUX_EMEV_DATA_ALL(), /* PINMUX_DATA(PORTN_DATA, PORTN_FN), */
 258
 259        /* GPSR0 */
 260        /* V9 */
 261        PINMUX_SINGLE(JT_SEL),
 262        /* U9 */
 263        PINMUX_SINGLE(ERR_RST_REQB),
 264        /* V8 */
 265        PINMUX_SINGLE(REF_CLKO),
 266        /* U8 */
 267        PINMUX_SINGLE(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_SINGLE(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_SINGLE(LCD3_R0),
 289        /* B20 */
 290        PINMUX_SINGLE(LCD3_R1),
 291        /* A19 */
 292        PINMUX_SINGLE(LCD3_R2),
 293        /* B19 */
 294        PINMUX_SINGLE(LCD3_R3),
 295        /* C19 */
 296        PINMUX_SINGLE(LCD3_R4),
 297        /* B18 */
 298        PINMUX_SINGLE(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_SINGLE(IIC0_SCL),
 371        /* AA8 */
 372        PINMUX_SINGLE(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_SINGLE(SD_CKI),
 381        /* AB18 */
 382        PINMUX_SINGLE(SDI0_CKO),
 383        /* AC18 */
 384        PINMUX_SINGLE(SDI0_CKI),
 385        /* Y12 */
 386        PINMUX_SINGLE(SDI0_CMD),
 387        /* AA13 */
 388        PINMUX_SINGLE(SDI0_DATA0),
 389        /* Y13 */
 390        PINMUX_SINGLE(SDI0_DATA1),
 391        /* AA14 */
 392        PINMUX_SINGLE(SDI0_DATA2),
 393        /* Y14 */
 394        PINMUX_SINGLE(SDI0_DATA3),
 395        /* AA15 */
 396        PINMUX_SINGLE(SDI0_DATA4),
 397        /* Y15 */
 398        PINMUX_SINGLE(SDI0_DATA5),
 399        /* AA16 */
 400        PINMUX_SINGLE(SDI0_DATA6),
 401        /* Y16 */
 402        PINMUX_SINGLE(SDI0_DATA7),
 403        /* AB22 */
 404        PINMUX_SINGLE(SDI1_CKO),
 405        /* AA23 */
 406        PINMUX_SINGLE(SDI1_CKI),
 407        /* AC21 */
 408        PINMUX_SINGLE(SDI1_CMD),
 409
 410        /* GPSR2 */
 411        /* AB21 */
 412        PINMUX_SINGLE(SDI1_DATA0),
 413        /* AB20 */
 414        PINMUX_SINGLE(SDI1_DATA1),
 415        /* AB19 */
 416        PINMUX_SINGLE(SDI1_DATA2),
 417        /* AA19 */
 418        PINMUX_SINGLE(SDI1_DATA3),
 419        /* J23 */
 420        PINMUX_SINGLE(AB_CLK),
 421        /* D21 */
 422        PINMUX_SINGLE(AB_CSB0),
 423        /* E21 */
 424        PINMUX_SINGLE(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_SINGLE(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_SINGLE(USI0_CS1),
 545        /* B9 */
 546        PINMUX_SINGLE(USI0_CS2),
 547        /* C10 */
 548        PINMUX_SINGLE(USI1_DI),
 549        /* D10 */
 550        PINMUX_SINGLE(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_SINGLE(NTSC_CLK),
 591        /* P20 */
 592        PINMUX_SINGLE(NTSC_DATA0),
 593        /* P18 */
 594        PINMUX_SINGLE(NTSC_DATA1),
 595        /* R20 */
 596        PINMUX_SINGLE(NTSC_DATA2),
 597        /* R18 */
 598        PINMUX_SINGLE(NTSC_DATA3),
 599        /* T20 */
 600        PINMUX_SINGLE(NTSC_DATA4),
 601
 602        /* GPRS3 */
 603        /* T18 */
 604        PINMUX_SINGLE(NTSC_DATA5),
 605        /* U20 */
 606        PINMUX_SINGLE(NTSC_DATA6),
 607        /* U18 */
 608        PINMUX_SINGLE(NTSC_DATA7),
 609        /* W23 */
 610        PINMUX_SINGLE(CAM_CLKO),
 611        /* Y23 */
 612        PINMUX_SINGLE(CAM_CLKI),
 613        /* W22 */
 614        PINMUX_SINGLE(CAM_VS),
 615        /* V21 */
 616        PINMUX_SINGLE(CAM_HS),
 617        /* T21 */
 618        PINMUX_SINGLE(CAM_YUV0),
 619        /* T22 */
 620        PINMUX_SINGLE(CAM_YUV1),
 621        /* T23 */
 622        PINMUX_SINGLE(CAM_YUV2),
 623        /* U21 */
 624        PINMUX_SINGLE(CAM_YUV3),
 625        /* U22 */
 626        PINMUX_SINGLE(CAM_YUV4),
 627        /* U23 */
 628        PINMUX_SINGLE(CAM_YUV5),
 629        /* V22 */
 630        PINMUX_SINGLE(CAM_YUV6),
 631        /* V23 */
 632        PINMUX_SINGLE(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_SINGLE(JT_TDO),
 651        /* F13 */
 652        PINMUX_SINGLE(JT_TDOEN),
 653        /* AA12 */
 654        PINMUX_SINGLE(USB_VBUS),
 655        /* A12 */
 656        PINMUX_SINGLE(LOWPWR),
 657        /* Y11 */
 658        PINMUX_SINGLE(UART1_RX),
 659        /* Y10 */
 660        PINMUX_SINGLE(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 ] =========== */
 675EMEV_MUX_PIN(err_rst_reqb, 3, ERR_RST_REQB);
 676EMEV_MUX_PIN(ref_clko, 4, REF_CLKO);
 677EMEV_MUX_PIN(ext_clki, 5, EXT_CLKI);
 678EMEV_MUX_PIN(lowpwr, 154, LOWPWR);
 679
 680/* = [ External Memory] === */
 681static 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};
 690static 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
 698EMEV_MUX_PIN(ab_clk, 68, AB_CLK);
 699EMEV_MUX_PIN(ab_csb0, 69, AB_CSB0);
 700EMEV_MUX_PIN(ab_csb1, 70, AB_CSB1);
 701EMEV_MUX_PIN(ab_csb2, 71, AB_CSB2);
 702EMEV_MUX_PIN(ab_csb3, 72, AB_CSB3);
 703EMEV_MUX_PIN(ab_wait, 75, AB_WAIT);
 704EMEV_MUX_PIN(ab_adv, 76, AB_ADV);
 705EMEV_MUX_PIN(ab_a17, 93, AB_A17);
 706EMEV_MUX_PIN(ab_a18, 94, AB_A18);
 707EMEV_MUX_PIN(ab_a19, 95, AB_A19);
 708EMEV_MUX_PIN(ab_a20, 96, AB_A20);
 709EMEV_MUX_PIN(ab_a21, 97, AB_A21);
 710EMEV_MUX_PIN(ab_a22, 98, AB_A22);
 711EMEV_MUX_PIN(ab_a23, 99, AB_A23);
 712EMEV_MUX_PIN(ab_a24, 100, AB_A24);
 713EMEV_MUX_PIN(ab_a25, 101, AB_A25);
 714EMEV_MUX_PIN(ab_a26, 102, AB_A26);
 715EMEV_MUX_PIN(ab_a27, 103, AB_A27);
 716EMEV_MUX_PIN(ab_a28, 104, AB_A28);
 717EMEV_MUX_PIN(ab_ben0, 103, AB_BEN0);
 718EMEV_MUX_PIN(ab_ben1, 104, AB_BEN1);
 719
 720/* = [ CAM ] ============== */
 721EMEV_MUX_PIN(cam_clko, 131, CAM_CLKO);
 722static 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};
 729static 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 ] -============== */
 736static 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};
 744static 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
 751static const unsigned int cf_data8_pins[] = {
 752        /* CF_D[0:7] */
 753        77, 78, 79, 80,
 754        81, 82, 83, 84,
 755};
 756static 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};
 760static 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};
 767static 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 ] ============== */
 775static const unsigned int dtv_a_pins[] = {
 776        /* BCLK, PSYNC, VALID, DATA */
 777        85, 86, 87, 88,
 778};
 779static 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
 783static const unsigned int dtv_b_pins[] = {
 784        /* BCLK, PSYNC, VALID, DATA */
 785        109, 110, 111, 112,
 786};
 787static 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 ] ============= */
 792static const unsigned int iic0_pins[] = {
 793        /* SCL, SDA */
 794        44, 45,
 795};
 796static const unsigned int iic0_mux[] = {
 797        IIC0_SCL_MARK, IIC0_SDA_MARK,
 798};
 799
 800/* = [ IIC1 ] ============= */
 801static const unsigned int iic1_pins[] = {
 802        /* SCL, SDA */
 803        46, 47,
 804};
 805static const unsigned int iic1_mux[] = {
 806        IIC1_SCL_MARK, IIC1_SDA_MARK,
 807};
 808
 809/* = [ JTAG ] ============= */
 810static const unsigned int jtag_pins[] = {
 811        /* SEL, TDO, TDOEN */
 812        2, 151, 152,
 813};
 814static const unsigned int jtag_mux[] = {
 815        JT_SEL_MARK, JT_TDO_MARK, JT_TDOEN_MARK,
 816};
 817
 818/* = [ LCD/YUV ] ========== */
 819EMEV_MUX_PIN(lcd3_pxclk, 18, LCD3_PXCLK);
 820EMEV_MUX_PIN(lcd3_pxclkb, 19, LCD3_PXCLKB);
 821EMEV_MUX_PIN(lcd3_clk_i, 20, LCD3_CLK_I);
 822
 823static const unsigned int lcd3_sync_pins[] = {
 824        /* HS, VS, DE */
 825        21, 22, 23,
 826};
 827static const unsigned int lcd3_sync_mux[] = {
 828        LCD3_HS_MARK, LCD3_VS_MARK, LCD3_DE_MARK,
 829};
 830
 831static 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};
 842static 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
 851EMEV_MUX_PIN(yuv3_clk_i, 20, YUV3_CLK_I);
 852static 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};
 863static 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 ] ============= */
 872EMEV_MUX_PIN(ntsc_clk, 122, NTSC_CLK);
 873static const unsigned int ntsc_data_pins[] = {
 874        /* NTSC_DATA[0:7] */
 875        123, 124, 125, 126,
 876        127, 128, 129, 130,
 877};
 878static 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 ] ============= */
 884EMEV_MUX_PIN(pwm0, 120, PWM0);
 885
 886/* = [ PWM1 ] ============= */
 887EMEV_MUX_PIN(pwm1, 121, PWM1);
 888
 889/* = [ SD ] =============== */
 890EMEV_MUX_PIN(sd_cki, 48, SD_CKI);
 891
 892/* = [ SDIO0 ] ============ */
 893static const unsigned int sdi0_ctrl_pins[] = {
 894        /* CKO, CKI, CMD */
 895        50, 51, 52,
 896};
 897static const unsigned int sdi0_ctrl_mux[] = {
 898        SDI0_CKO_MARK, SDI0_CKI_MARK, SDI0_CMD_MARK,
 899};
 900
 901static const unsigned int sdi0_data1_pins[] = {
 902        /* SDI0_DATA[0] */
 903        53,
 904};
 905static const unsigned int sdi0_data1_mux[] = {
 906        SDI0_DATA0_MARK,
 907};
 908static const unsigned int sdi0_data4_pins[] = {
 909        /* SDI0_DATA[0:3] */
 910        53, 54, 55, 56,
 911};
 912static const unsigned int sdi0_data4_mux[] = {
 913        SDI0_DATA0_MARK, SDI0_DATA1_MARK, SDI0_DATA2_MARK, SDI0_DATA3_MARK,
 914};
 915static const unsigned int sdi0_data8_pins[] = {
 916        /* SDI0_DATA[0:7] */
 917        53, 54, 55, 56,
 918        57, 58, 59, 60
 919};
 920static 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 ] ============ */
 926static const unsigned int sdi1_ctrl_pins[] = {
 927        /* CKO, CKI, CMD */
 928        61, 62, 63,
 929};
 930static const unsigned int sdi1_ctrl_mux[] = {
 931        SDI1_CKO_MARK, SDI1_CKI_MARK, SDI1_CMD_MARK,
 932};
 933
 934static const unsigned int sdi1_data1_pins[] = {
 935        /* SDI1_DATA[0] */
 936        64,
 937};
 938static const unsigned int sdi1_data1_mux[] = {
 939        SDI1_DATA0_MARK,
 940};
 941static const unsigned int sdi1_data4_pins[] = {
 942        /* SDI1_DATA[0:3] */
 943        64, 65, 66, 67,
 944};
 945static const unsigned int sdi1_data4_mux[] = {
 946        SDI1_DATA0_MARK, SDI1_DATA1_MARK, SDI1_DATA2_MARK, SDI1_DATA3_MARK,
 947};
 948
 949/* = [ SDIO2 ] ============ */
 950static const unsigned int sdi2_ctrl_pins[] = {
 951        /* CKO, CKI, CMD */
 952        97, 98, 99,
 953};
 954static const unsigned int sdi2_ctrl_mux[] = {
 955        SDI2_CKO_MARK, SDI2_CKI_MARK, SDI2_CMD_MARK,
 956};
 957
 958static const unsigned int sdi2_data1_pins[] = {
 959        /* SDI2_DATA[0] */
 960        89,
 961};
 962static const unsigned int sdi2_data1_mux[] = {
 963        SDI2_DATA0_MARK,
 964};
 965static const unsigned int sdi2_data4_pins[] = {
 966        /* SDI2_DATA[0:3] */
 967        89, 90, 91, 92,
 968};
 969static const unsigned int sdi2_data4_mux[] = {
 970        SDI2_DATA0_MARK, SDI2_DATA1_MARK, SDI2_DATA2_MARK, SDI2_DATA3_MARK,
 971};
 972
 973/* = [ TP33 ] ============= */
 974static 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};
 985static 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 ] ============ */
 994static const unsigned int uart1_data_pins[] = {
 995        /* RX, TX */
 996        155, 156,
 997};
 998static const unsigned int uart1_data_mux[] = {
 999        UART1_RX_MARK, UART1_TX_MARK,
1000};
1001
1002static const unsigned int uart1_ctrl_pins[] = {
1003        /* CTSB, RTSB */
1004        157, 158,
1005};
1006static const unsigned int uart1_ctrl_mux[] = {
1007        UART1_CTSB_MARK, UART1_RTSB_MARK,
1008};
1009
1010/* = [ UART2 ] ============ */
1011static const unsigned int uart2_data_pins[] = {
1012        /* RX, TX */
1013        157, 158,
1014};
1015static const unsigned int uart2_data_mux[] = {
1016        UART2_RX_MARK, UART2_TX_MARK,
1017};
1018
1019/* = [ UART3 ] ============ */
1020static const unsigned int uart3_data_pins[] = {
1021        /* RX, TX */
1022        46, 47,
1023};
1024static const unsigned int uart3_data_mux[] = {
1025        UART3_RX_MARK, UART3_TX_MARK,
1026};
1027
1028/* = [ USB ] ============== */
1029EMEV_MUX_PIN(usb_vbus, 153, USB_VBUS);
1030
1031/* = [ USI0 ] ============== */
1032EMEV_MUX_PIN(usi0_cs1, 105, USI0_CS1);
1033EMEV_MUX_PIN(usi0_cs2, 106, USI0_CS2);
1034EMEV_MUX_PIN(usi0_cs3, 115, USI0_CS3);
1035EMEV_MUX_PIN(usi0_cs4, 116, USI0_CS4);
1036EMEV_MUX_PIN(usi0_cs5, 117, USI0_CS5);
1037EMEV_MUX_PIN(usi0_cs6, 118, USI0_CS6);
1038
1039/* = [ USI1 ] ============== */
1040static const unsigned int usi1_pins[] = {
1041        /* DI, DO*/
1042        107, 108,
1043};
1044static const unsigned int usi1_mux[] = {
1045        USI1_DI_MARK, USI1_DO_MARK,
1046};
1047
1048/* = [ USI2 ] ============== */
1049static const unsigned int usi2_pins[] = {
1050        /* CLK, DI, DO*/
1051        109, 110, 111,
1052};
1053static const unsigned int usi2_mux[] = {
1054        USI2_CLK_MARK, USI2_DI_MARK, USI2_DO_MARK,
1055};
1056EMEV_MUX_PIN(usi2_cs0, 112, USI2_CS0);
1057EMEV_MUX_PIN(usi2_cs1, 113, USI2_CS1);
1058EMEV_MUX_PIN(usi2_cs2, 114, USI2_CS2);
1059
1060/* = [ USI3 ] ============== */
1061static const unsigned int usi3_pins[] = {
1062        /* CLK, DI, DO*/
1063        115, 116, 117,
1064};
1065static const unsigned int usi3_mux[] = {
1066        USI3_CLK_MARK, USI3_DI_MARK, USI3_DO_MARK,
1067};
1068EMEV_MUX_PIN(usi3_cs0, 118, USI3_CS0);
1069
1070/* = [ USI4 ] ============== */
1071static const unsigned int usi4_pins[] = {
1072        /* CLK, DI, DO*/
1073        119, 120, 121,
1074};
1075static const unsigned int usi4_mux[] = {
1076        USI4_CLK_MARK, USI4_DI_MARK, USI4_DO_MARK,
1077};
1078EMEV_MUX_PIN(usi4_cs0, 113, USI4_CS0);
1079EMEV_MUX_PIN(usi4_cs1, 114, USI4_CS1);
1080
1081/* = [ USI5 ] ============== */
1082static const unsigned int usi5_a_pins[] = {
1083        /* CLK, DI, DO*/
1084        85, 86, 87,
1085};
1086static const unsigned int usi5_a_mux[] = {
1087        USI5_CLK_A_MARK, USI5_DI_A_MARK, USI5_DO_A_MARK,
1088};
1089EMEV_MUX_PIN(usi5_cs0_a, 88, USI5_CS0_A);
1090EMEV_MUX_PIN(usi5_cs1_a, 89, USI5_CS1_A);
1091EMEV_MUX_PIN(usi5_cs2_a, 90, USI5_CS2_A);
1092
1093static const unsigned int usi5_b_pins[] = {
1094        /* CLK, DI, DO*/
1095        143, 144, 150,
1096};
1097static const unsigned int usi5_b_mux[] = {
1098        USI5_CLK_B_MARK, USI5_DI_B_MARK, USI5_DO_B_MARK,
1099};
1100EMEV_MUX_PIN(usi5_cs0_b, 145, USI5_CS0_B);
1101EMEV_MUX_PIN(usi5_cs1_b, 146, USI5_CS1_B);
1102EMEV_MUX_PIN(usi5_cs2_b, 147, USI5_CS2_B);
1103EMEV_MUX_PIN(usi5_cs3_b, 148, USI5_CS3_B);
1104EMEV_MUX_PIN(usi5_cs4_b, 149, USI5_CS4_B);
1105
1106static 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
1225static 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
1250static const char * const cam_groups[] = {
1251        "cam_clko",
1252        "cam",
1253};
1254
1255static const char * const cf_groups[] = {
1256        "cf_ctrl",
1257        "cf_data8",
1258        "cf_data16",
1259};
1260
1261static const char * const dtv_groups[] = {
1262        "dtv_a",
1263        "dtv_b",
1264};
1265
1266static const char * const iic0_groups[] = {
1267        "iic0",
1268};
1269
1270static const char * const iic1_groups[] = {
1271        "iic1",
1272};
1273
1274static const char * const jtag_groups[] = {
1275        "jtag",
1276};
1277
1278static const char * const lcd_groups[] = {
1279        "lcd3_pxclk",
1280        "lcd3_pxclkb",
1281        "lcd3_clk_i",
1282        "lcd3_sync",
1283        "lcd3_rgb888",
1284        "yuv3_clk_i",
1285        "yuv3",
1286};
1287
1288static const char * const ntsc_groups[] = {
1289        "ntsc_clk",
1290        "ntsc_data",
1291};
1292
1293static const char * const pwm0_groups[] = {
1294        "pwm0",
1295};
1296
1297static const char * const pwm1_groups[] = {
1298        "pwm1",
1299};
1300
1301static const char * const sd_groups[] = {
1302        "sd_cki",
1303};
1304
1305static const char * const sdi0_groups[] = {
1306        "sdi0_ctrl",
1307        "sdi0_data1",
1308        "sdi0_data4",
1309        "sdi0_data8",
1310};
1311
1312static const char * const sdi1_groups[] = {
1313        "sdi1_ctrl",
1314        "sdi1_data1",
1315        "sdi1_data4",
1316};
1317
1318static const char * const sdi2_groups[] = {
1319        "sdi2_ctrl",
1320        "sdi2_data1",
1321        "sdi2_data4",
1322};
1323
1324static const char * const tp33_groups[] = {
1325        "tp33",
1326};
1327
1328static const char * const uart1_groups[] = {
1329        "uart1_data",
1330        "uart1_ctrl",
1331};
1332
1333static const char * const uart2_groups[] = {
1334        "uart2_data",
1335};
1336
1337static const char * const uart3_groups[] = {
1338        "uart3_data",
1339};
1340
1341static const char * const usb_groups[] = {
1342        "usb_vbus",
1343};
1344
1345static const char * const usi0_groups[] = {
1346        "usi0_cs1",
1347        "usi0_cs2",
1348        "usi0_cs3",
1349        "usi0_cs4",
1350        "usi0_cs5",
1351        "usi0_cs6",
1352};
1353
1354static const char * const usi1_groups[] = {
1355        "usi1",
1356};
1357
1358static const char * const usi2_groups[] = {
1359        "usi2",
1360        "usi2_cs0",
1361        "usi2_cs1",
1362        "usi2_cs2",
1363};
1364
1365static const char * const usi3_groups[] = {
1366        "usi3",
1367        "usi3_cs0",
1368};
1369
1370static const char * const usi4_groups[] = {
1371        "usi4",
1372        "usi4_cs0",
1373        "usi4_cs1",
1374};
1375
1376static const char * const usi5_groups[] = {
1377        "usi5_a",
1378        "usi5_cs0_a",
1379        "usi5_cs1_a",
1380        "usi5_cs2_a",
1381        "usi5_b",
1382        "usi5_cs0_b",
1383        "usi5_cs1_b",
1384        "usi5_cs2_b",
1385        "usi5_cs3_b",
1386        "usi5_cs4_b",
1387};
1388
1389static 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),
1416};
1417
1418static 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  */
1452                }
1453        },
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  */
1487                }
1488        },
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 */
1522                }
1523        },
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  */
1557                }
1558        },
1559        { PINMUX_CFG_REG("GPSR4", 0xe0140210, 32, 1) {
1560                0, 0,
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  */
1592                }
1593        },
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) {
1597                /* 31 - 12 */
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,
1601                /* 11 - 10 */
1602                FN_SEL_LCD3_11_10_00, FN_SEL_LCD3_11_10_01,
1603                FN_SEL_LCD3_11_10_10, 0,
1604                /* 9 - 8 */
1605                FN_SEL_LCD3_9_8_00, 0, FN_SEL_LCD3_9_8_10, 0,
1606                /* 7 - 2 */
1607                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1608                /* 1 - 0 */
1609                FN_SEL_LCD3_1_0_00, FN_SEL_LCD3_1_0_01, 0, 0,
1610                }
1611        },
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) {
1615                /* 31 - 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,
1620                /* 1 - 0 */
1621                FN_SEL_UART_1_0_00, FN_SEL_UART_1_0_01, 0, 0,
1622                }
1623        },
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) {
1627                /* 31 - 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,
1632                /* 1 - 0 */
1633                FN_SEL_IIC_1_0_00, FN_SEL_IIC_1_0_01, 0, 0,
1634                }
1635        },
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) {
1639                /* 31 - 14 */
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,
1642                0, 0, 0, 0,
1643                /* 13 - 12 */
1644                FN_SEL_AB_13_12_00, 0, FN_SEL_AB_13_12_10, 0,
1645                /* 11 - 10 */
1646                FN_SEL_AB_11_10_00, 0, FN_SEL_AB_11_10_10, 0,
1647                /* 9 - 8 */
1648                FN_SEL_AB_9_8_00, FN_SEL_AB_9_8_01, FN_SEL_AB_9_8_10, 0,
1649                /* 7 - 6 */
1650                FN_SEL_AB_7_6_00, FN_SEL_AB_7_6_01, FN_SEL_AB_7_6_10, 0,
1651                /* 5 - 4 */
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,
1654                /* 3 - 2 */
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,
1657                /* 1 - 0 */
1658                FN_SEL_AB_1_0_00, 0, FN_SEL_AB_1_0_10, 0,
1659                }
1660        },
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) {
1664                /* 31 - 10 */
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,
1668                /* 9 - 8 */
1669                FN_SEL_USI_9_8_00, FN_SEL_USI_9_8_01, 0, 0,
1670                /* 7 - 6 */
1671                FN_SEL_USI_7_6_00, FN_SEL_USI_7_6_01, 0, 0,
1672                /* 5 - 4 */
1673                FN_SEL_USI_5_4_00, FN_SEL_USI_5_4_01, 0, 0,
1674                /* 3 - 2 */
1675                FN_SEL_USI_3_2_00, FN_SEL_USI_3_2_01, 0, 0,
1676                /* 1 - 0 */
1677                FN_SEL_USI_1_0_00, FN_SEL_USI_1_0_01, 0, 0,
1678                }
1679        },
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) {
1683                /* 31 - 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,
1688                /* 1 - 0 */
1689                FN_SEL_HSI_1_0_00, FN_SEL_HSI_1_0_01, 0, 0,
1690                }
1691        },
1692        { },
1693};
1694
1695const struct sh_pfc_soc_info emev2_pinmux_info = {
1696        .name           = "emev2_pfc",
1697
1698        .function       = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END },
1699
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),
1706
1707        .cfg_regs       = pinmux_config_regs,
1708
1709        .pinmux_data    = pinmux_data,
1710        .pinmux_data_size = ARRAY_SIZE(pinmux_data),
1711};
1712