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