linux/drivers/pinctrl/sh-pfc/pfc-r8a73a4.c
<<
>>
Prefs
   1/*
   2 * Copyright (C) 2012-2013  Renesas Solutions Corp.
   3 * Copyright (C) 2013  Magnus Damm
   4 * Copyright (C) 2012  Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
   5 *
   6 * This program is free software; you can redistribute it and/or
   7 * modify it under the terms of the GNU General Public License as
   8 * published by the Free Software Foundation; version 2 of the
   9 * License.
  10 *
  11 * This program is distributed in the hope that it will be useful,
  12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14 * GNU General Public License for more details.
  15 *
  16 * You should have received a copy of the GNU General Public License
  17 * along with this program; if not, write to the Free Software
  18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  19 */
  20#include <linux/io.h>
  21#include <linux/kernel.h>
  22#include <linux/pinctrl/pinconf-generic.h>
  23
  24#ifndef CONFIG_ARCH_MULTIPLATFORM
  25#include <mach/irqs.h>
  26#endif
  27
  28#include "core.h"
  29#include "sh_pfc.h"
  30
  31#define CPU_ALL_PORT(fn, pfx, sfx)                                      \
  32        /*  Port0 - Port30 */                                           \
  33        PORT_10(0, fn, pfx, sfx),                                       \
  34        PORT_10(10, fn, pfx##1, sfx),                                   \
  35        PORT_10(20, fn, pfx##2, sfx),                                   \
  36        PORT_1(30, fn, pfx##30, sfx),                                   \
  37        /* Port32 - Port40 */                                           \
  38        PORT_1(32, fn, pfx##32, sfx),   PORT_1(33, fn, pfx##33, sfx),   \
  39        PORT_1(34, fn, pfx##34, sfx),   PORT_1(35, fn, pfx##35, sfx),   \
  40        PORT_1(36, fn, pfx##36, sfx),   PORT_1(37, fn, pfx##37, sfx),   \
  41        PORT_1(38, fn, pfx##38, sfx),   PORT_1(39, fn, pfx##39, sfx),   \
  42        PORT_1(40, fn, pfx##40, sfx),                                   \
  43        /* Port64  - Port85 */                                          \
  44        PORT_1(64, fn, pfx##64, sfx),   PORT_1(65, fn, pfx##65, sfx),   \
  45        PORT_1(66, fn, pfx##66, sfx),   PORT_1(67, fn, pfx##67, sfx),   \
  46        PORT_1(68, fn, pfx##68, sfx),   PORT_1(69, fn, pfx##69, sfx),   \
  47        PORT_10(70, fn, pfx##7, sfx),                                   \
  48        PORT_1(80, fn, pfx##80, sfx),   PORT_1(81, fn, pfx##81, sfx),   \
  49        PORT_1(82, fn, pfx##82, sfx),   PORT_1(83, fn, pfx##83, sfx),   \
  50        PORT_1(84, fn, pfx##84, sfx),   PORT_1(85, fn, pfx##85, sfx),   \
  51        /* Port96  - Port126 */                                         \
  52        PORT_1(96, fn, pfx##96, sfx),   PORT_1(97, fn, pfx##97, sfx),   \
  53        PORT_1(98, fn, pfx##98, sfx),   PORT_1(99, fn, pfx##99, sfx),   \
  54        PORT_10(100, fn, pfx##10, sfx),                                 \
  55        PORT_10(110, fn, pfx##11, sfx),                                 \
  56        PORT_1(120, fn, pfx##120, sfx), PORT_1(121, fn, pfx##121, sfx), \
  57        PORT_1(122, fn, pfx##122, sfx), PORT_1(123, fn, pfx##123, sfx), \
  58        PORT_1(124, fn, pfx##124, sfx), PORT_1(125, fn, pfx##125, sfx), \
  59        PORT_1(126, fn, pfx##126, sfx),                                 \
  60        /* Port128 - Port134 */                                         \
  61        PORT_1(128, fn, pfx##128, sfx), PORT_1(129, fn, pfx##129, sfx), \
  62        PORT_1(130, fn, pfx##130, sfx), PORT_1(131, fn, pfx##131, sfx), \
  63        PORT_1(132, fn, pfx##132, sfx), PORT_1(133, fn, pfx##133, sfx), \
  64        PORT_1(134, fn, pfx##134, sfx),                                 \
  65        /* Port160 - Port178 */                                         \
  66        PORT_10(160, fn, pfx##16, sfx),                                 \
  67        PORT_1(170, fn, pfx##170, sfx), PORT_1(171, fn, pfx##171, sfx), \
  68        PORT_1(172, fn, pfx##172, sfx), PORT_1(173, fn, pfx##173, sfx), \
  69        PORT_1(174, fn, pfx##174, sfx), PORT_1(175, fn, pfx##175, sfx), \
  70        PORT_1(176, fn, pfx##176, sfx), PORT_1(177, fn, pfx##177, sfx), \
  71        PORT_1(178, fn, pfx##178, sfx),                                 \
  72        /* Port192 - Port222 */                                         \
  73        PORT_1(192, fn, pfx##192, sfx), PORT_1(193, fn, pfx##193, sfx), \
  74        PORT_1(194, fn, pfx##194, sfx), PORT_1(195, fn, pfx##195, sfx), \
  75        PORT_1(196, fn, pfx##196, sfx), PORT_1(197, fn, pfx##197, sfx), \
  76        PORT_1(198, fn, pfx##198, sfx), PORT_1(199, fn, pfx##199, sfx), \
  77        PORT_10(200, fn, pfx##20, sfx),                                 \
  78        PORT_10(210, fn, pfx##21, sfx),                                 \
  79        PORT_1(220, fn, pfx##220, sfx), PORT_1(221, fn, pfx##221, sfx), \
  80        PORT_1(222, fn, pfx##222, sfx),                                 \
  81        /* Port224 - Port250 */                                         \
  82        PORT_1(224, fn, pfx##224, sfx), PORT_1(225, fn, pfx##225, sfx), \
  83        PORT_1(226, fn, pfx##226, sfx), PORT_1(227, fn, pfx##227, sfx), \
  84        PORT_1(228, fn, pfx##228, sfx), PORT_1(229, fn, pfx##229, sfx), \
  85        PORT_10(230, fn, pfx##23, sfx),                                 \
  86        PORT_10(240, fn, pfx##24, sfx),                                 \
  87        PORT_1(250, fn, pfx##250, sfx),                                 \
  88        /* Port256 - Port283 */                                         \
  89        PORT_1(256, fn, pfx##256, sfx), PORT_1(257, fn, pfx##257, sfx), \
  90        PORT_1(258, fn, pfx##258, sfx), PORT_1(259, fn, pfx##259, sfx), \
  91        PORT_10(260, fn, pfx##26, sfx),                                 \
  92        PORT_10(270, fn, pfx##27, sfx),                                 \
  93        PORT_1(280, fn, pfx##280, sfx), PORT_1(281, fn, pfx##281, sfx), \
  94        PORT_1(282, fn, pfx##282, sfx), PORT_1(283, fn, pfx##283, sfx), \
  95        /* Port288 - Port308 */                                         \
  96        PORT_1(288, fn, pfx##288, sfx), PORT_1(289, fn, pfx##289, sfx), \
  97        PORT_10(290, fn, pfx##29, sfx),                                 \
  98        PORT_1(300, fn, pfx##300, sfx), PORT_1(301, fn, pfx##301, sfx), \
  99        PORT_1(302, fn, pfx##302, sfx), PORT_1(303, fn, pfx##303, sfx), \
 100        PORT_1(304, fn, pfx##304, sfx), PORT_1(305, fn, pfx##305, sfx), \
 101        PORT_1(306, fn, pfx##306, sfx), PORT_1(307, fn, pfx##307, sfx), \
 102        PORT_1(308, fn, pfx##308, sfx),                                 \
 103        /* Port320 - Port329 */                                         \
 104        PORT_10(320, fn, pfx##32, sfx)
 105
 106
 107enum {
 108        PINMUX_RESERVED = 0,
 109
 110        /* PORT0_DATA -> PORT329_DATA */
 111        PINMUX_DATA_BEGIN,
 112        PORT_ALL(DATA),
 113        PINMUX_DATA_END,
 114
 115        /* PORT0_IN -> PORT329_IN */
 116        PINMUX_INPUT_BEGIN,
 117        PORT_ALL(IN),
 118        PINMUX_INPUT_END,
 119
 120        /* PORT0_OUT -> PORT329_OUT */
 121        PINMUX_OUTPUT_BEGIN,
 122        PORT_ALL(OUT),
 123        PINMUX_OUTPUT_END,
 124
 125        PINMUX_FUNCTION_BEGIN,
 126        PORT_ALL(FN_IN), /* PORT0_FN_IN -> PORT329_FN_IN */
 127        PORT_ALL(FN_OUT), /* PORT0_FN_OUT -> PORT329_FN_OUT */
 128        PORT_ALL(FN0), /* PORT0_FN0 -> PORT329_FN0 */
 129        PORT_ALL(FN1), /* PORT0_FN1 -> PORT329_FN1 */
 130        PORT_ALL(FN2), /* PORT0_FN2 -> PORT329_FN2 */
 131        PORT_ALL(FN3), /* PORT0_FN3 -> PORT329_FN3 */
 132        PORT_ALL(FN4), /* PORT0_FN4 -> PORT329_FN4 */
 133        PORT_ALL(FN5), /* PORT0_FN5 -> PORT329_FN5 */
 134        PORT_ALL(FN6), /* PORT0_FN6 -> PORT329_FN6 */
 135        PORT_ALL(FN7), /* PORT0_FN7 -> PORT329_FN7 */
 136
 137        MSEL1CR_31_0, MSEL1CR_31_1,
 138        MSEL1CR_27_0, MSEL1CR_27_1,
 139        MSEL1CR_25_0, MSEL1CR_25_1,
 140        MSEL1CR_24_0, MSEL1CR_24_1,
 141        MSEL1CR_22_0, MSEL1CR_22_1,
 142        MSEL1CR_21_0, MSEL1CR_21_1,
 143        MSEL1CR_20_0, MSEL1CR_20_1,
 144        MSEL1CR_19_0, MSEL1CR_19_1,
 145        MSEL1CR_18_0, MSEL1CR_18_1,
 146        MSEL1CR_17_0, MSEL1CR_17_1,
 147        MSEL1CR_16_0, MSEL1CR_16_1,
 148        MSEL1CR_15_0, MSEL1CR_15_1,
 149        MSEL1CR_14_0, MSEL1CR_14_1,
 150        MSEL1CR_13_0, MSEL1CR_13_1,
 151        MSEL1CR_12_0, MSEL1CR_12_1,
 152        MSEL1CR_11_0, MSEL1CR_11_1,
 153        MSEL1CR_10_0, MSEL1CR_10_1,
 154        MSEL1CR_09_0, MSEL1CR_09_1,
 155        MSEL1CR_08_0, MSEL1CR_08_1,
 156        MSEL1CR_07_0, MSEL1CR_07_1,
 157        MSEL1CR_06_0, MSEL1CR_06_1,
 158        MSEL1CR_05_0, MSEL1CR_05_1,
 159        MSEL1CR_04_0, MSEL1CR_04_1,
 160        MSEL1CR_03_0, MSEL1CR_03_1,
 161        MSEL1CR_02_0, MSEL1CR_02_1,
 162        MSEL1CR_01_0, MSEL1CR_01_1,
 163        MSEL1CR_00_0, MSEL1CR_00_1,
 164
 165        MSEL3CR_31_0, MSEL3CR_31_1,
 166        MSEL3CR_28_0, MSEL3CR_28_1,
 167        MSEL3CR_27_0, MSEL3CR_27_1,
 168        MSEL3CR_26_0, MSEL3CR_26_1,
 169        MSEL3CR_23_0, MSEL3CR_23_1,
 170        MSEL3CR_22_0, MSEL3CR_22_1,
 171        MSEL3CR_21_0, MSEL3CR_21_1,
 172        MSEL3CR_20_0, MSEL3CR_20_1,
 173        MSEL3CR_19_0, MSEL3CR_19_1,
 174        MSEL3CR_18_0, MSEL3CR_18_1,
 175        MSEL3CR_17_0, MSEL3CR_17_1,
 176        MSEL3CR_16_0, MSEL3CR_16_1,
 177        MSEL3CR_15_0, MSEL3CR_15_1,
 178        MSEL3CR_12_0, MSEL3CR_12_1,
 179        MSEL3CR_11_0, MSEL3CR_11_1,
 180        MSEL3CR_10_0, MSEL3CR_10_1,
 181        MSEL3CR_09_0, MSEL3CR_09_1,
 182        MSEL3CR_06_0, MSEL3CR_06_1,
 183        MSEL3CR_03_0, MSEL3CR_03_1,
 184        MSEL3CR_01_0, MSEL3CR_01_1,
 185        MSEL3CR_00_0, MSEL3CR_00_1,
 186
 187        MSEL4CR_30_0, MSEL4CR_30_1,
 188        MSEL4CR_29_0, MSEL4CR_29_1,
 189        MSEL4CR_28_0, MSEL4CR_28_1,
 190        MSEL4CR_27_0, MSEL4CR_27_1,
 191        MSEL4CR_26_0, MSEL4CR_26_1,
 192        MSEL4CR_25_0, MSEL4CR_25_1,
 193        MSEL4CR_24_0, MSEL4CR_24_1,
 194        MSEL4CR_23_0, MSEL4CR_23_1,
 195        MSEL4CR_22_0, MSEL4CR_22_1,
 196        MSEL4CR_21_0, MSEL4CR_21_1,
 197        MSEL4CR_20_0, MSEL4CR_20_1,
 198        MSEL4CR_19_0, MSEL4CR_19_1,
 199        MSEL4CR_18_0, MSEL4CR_18_1,
 200        MSEL4CR_17_0, MSEL4CR_17_1,
 201        MSEL4CR_16_0, MSEL4CR_16_1,
 202        MSEL4CR_15_0, MSEL4CR_15_1,
 203        MSEL4CR_14_0, MSEL4CR_14_1,
 204        MSEL4CR_13_0, MSEL4CR_13_1,
 205        MSEL4CR_12_0, MSEL4CR_12_1,
 206        MSEL4CR_11_0, MSEL4CR_11_1,
 207        MSEL4CR_10_0, MSEL4CR_10_1,
 208        MSEL4CR_09_0, MSEL4CR_09_1,
 209        MSEL4CR_07_0, MSEL4CR_07_1,
 210        MSEL4CR_04_0, MSEL4CR_04_1,
 211        MSEL4CR_01_0, MSEL4CR_01_1,
 212
 213        MSEL5CR_31_0, MSEL5CR_31_1,
 214        MSEL5CR_30_0, MSEL5CR_30_1,
 215        MSEL5CR_29_0, MSEL5CR_29_1,
 216        MSEL5CR_28_0, MSEL5CR_28_1,
 217        MSEL5CR_27_0, MSEL5CR_27_1,
 218        MSEL5CR_26_0, MSEL5CR_26_1,
 219        MSEL5CR_25_0, MSEL5CR_25_1,
 220        MSEL5CR_24_0, MSEL5CR_24_1,
 221        MSEL5CR_23_0, MSEL5CR_23_1,
 222        MSEL5CR_22_0, MSEL5CR_22_1,
 223        MSEL5CR_21_0, MSEL5CR_21_1,
 224        MSEL5CR_20_0, MSEL5CR_20_1,
 225        MSEL5CR_19_0, MSEL5CR_19_1,
 226        MSEL5CR_18_0, MSEL5CR_18_1,
 227        MSEL5CR_17_0, MSEL5CR_17_1,
 228        MSEL5CR_16_0, MSEL5CR_16_1,
 229        MSEL5CR_15_0, MSEL5CR_15_1,
 230        MSEL5CR_14_0, MSEL5CR_14_1,
 231        MSEL5CR_13_0, MSEL5CR_13_1,
 232        MSEL5CR_12_0, MSEL5CR_12_1,
 233        MSEL5CR_11_0, MSEL5CR_11_1,
 234        MSEL5CR_10_0, MSEL5CR_10_1,
 235        MSEL5CR_09_0, MSEL5CR_09_1,
 236        MSEL5CR_08_0, MSEL5CR_08_1,
 237        MSEL5CR_07_0, MSEL5CR_07_1,
 238        MSEL5CR_06_0, MSEL5CR_06_1,
 239
 240        MSEL8CR_16_0, MSEL8CR_16_1,
 241        MSEL8CR_01_0, MSEL8CR_01_1,
 242        MSEL8CR_00_0, MSEL8CR_00_1,
 243
 244        PINMUX_FUNCTION_END,
 245
 246        PINMUX_MARK_BEGIN,
 247
 248
 249#define F1(a)   a##_MARK
 250#define F2(a)   a##_MARK
 251#define F3(a)   a##_MARK
 252#define F4(a)   a##_MARK
 253#define F5(a)   a##_MARK
 254#define F6(a)   a##_MARK
 255#define F7(a)   a##_MARK
 256#define IRQ(a)  IRQ##a##_MARK
 257
 258        F1(LCDD0), F3(PDM2_CLK_0), F7(DU0_DR0), IRQ(0), /* Port0 */
 259        F1(LCDD1), F3(PDM2_DATA_1), F7(DU0_DR19), IRQ(1),
 260        F1(LCDD2), F3(PDM3_CLK_2), F7(DU0_DR2), IRQ(2),
 261        F1(LCDD3), F3(PDM3_DATA_3), F7(DU0_DR3), IRQ(3),
 262        F1(LCDD4), F3(PDM4_CLK_4), F7(DU0_DR4), IRQ(4),
 263        F1(LCDD5), F3(PDM4_DATA_5), F7(DU0_DR5), IRQ(5),
 264        F1(LCDD6), F3(PDM0_OUTCLK_6), F7(DU0_DR6), IRQ(6),
 265        F1(LCDD7), F3(PDM0_OUTDATA_7), F7(DU0_DR7), IRQ(7),
 266        F1(LCDD8), F3(PDM1_OUTCLK_8), F7(DU0_DG0), IRQ(8),
 267        F1(LCDD9), F3(PDM1_OUTDATA_9), F7(DU0_DG1), IRQ(9),
 268        F1(LCDD10), F3(FSICCK), F7(DU0_DG2), IRQ(10), /* Port10 */
 269        F1(LCDD11), F3(FSICISLD), F7(DU0_DG3), IRQ(11),
 270        F1(LCDD12), F3(FSICOMC), F7(DU0_DG4), IRQ(12),
 271        F1(LCDD13), F3(FSICOLR), F4(FSICILR), F7(DU0_DG5), IRQ(13),
 272        F1(LCDD14), F3(FSICOBT), F4(FSICIBT), F7(DU0_DG6), IRQ(14),
 273        F1(LCDD15), F3(FSICOSLD), F7(DU0_DG7), IRQ(15),
 274        F1(LCDD16), F4(TPU1TO1), F7(DU0_DB0),
 275        F1(LCDD17), F4(SF_IRQ_00), F7(DU0_DB1),
 276        F1(LCDD18), F4(SF_IRQ_01), F7(DU0_DB2),
 277        F1(LCDD19), F3(SCIFB3_RTS_19), F7(DU0_DB3),
 278        F1(LCDD20), F3(SCIFB3_CTS_20), F7(DU0_DB4), /* Port20 */
 279        F1(LCDD21), F3(SCIFB3_TXD_21), F7(DU0_DB5),
 280        F1(LCDD22), F3(SCIFB3_RXD_22), F7(DU0_DB6),
 281        F1(LCDD23), F3(SCIFB3_SCK_23), F7(DU0_DB7),
 282        F1(LCDHSYN), F2(LCDCS), F3(SCIFB1_RTS_24),
 283        F7(DU0_EXHSYNC_N_CSYNC_N_HSYNC_N),
 284        F1(LCDVSYN), F3(SCIFB1_CTS_25), F7(DU0_EXVSYNC_N_VSYNC_N_CSYNC_N),
 285        F1(LCDDCK), F2(LCDWR), F3(SCIFB1_TXD_26), F7(DU0_DOTCLKIN),
 286        F1(LCDDISP), F2(LCDRS), F3(SCIFB1_RXD_27), F7(DU0_DOTCLKOUT),
 287        F1(LCDRD_N), F3(SCIFB1_SCK_28), F7(DU0_DOTCLKOUTB),
 288        F1(LCDLCLK), F4(SF_IRQ_02), F7(DU0_DISP_CSYNC_N_DE),
 289        F1(LCDDON), F4(SF_IRQ_03), F7(DU0_ODDF_N_CLAMP), /* Port30 */
 290
 291        F1(SCIFA0_RTS), F5(SIM0_DET), F7(CSCIF0_RTS), /* Port32 */
 292        F1(SCIFA0_CTS), F5(SIM1_DET), F7(CSCIF0_CTS),
 293        F1(SCIFA0_SCK), F5(SIM0_PWRON), F7(CSCIF0_SCK),
 294        F1(SCIFA1_RTS), F7(CSCIF1_RTS),
 295        F1(SCIFA1_CTS), F7(CSCIF1_CTS),
 296        F1(SCIFA1_SCK), F7(CSCIF1_SCK),
 297        F1(SCIFB0_RTS), F3(TPU0TO1), F4(SCIFB3_RTS_38), F7(CHSCIF0_HRTS),
 298        F1(SCIFB0_CTS), F3(TPU0TO2), F4(SCIFB3_CTS_39), F7(CHSCIF0_HCTS),
 299        F1(SCIFB0_SCK), F3(TPU0TO3), F4(SCIFB3_SCK_40),
 300        F7(CHSCIF0_HSCK), /* Port40 */
 301
 302        F1(PDM0_DATA), /* Port64 */
 303        F1(PDM1_DATA),
 304        F1(HSI_RX_WAKE), F2(SCIFB2_CTS_66), F3(MSIOF3_SYNC), F5(GenIO4),
 305        IRQ(40),
 306        F1(HSI_RX_READY), F2(SCIFB1_TXD_67), F5(GIO_OUT3_67), F7(CHSCIF1_HTX),
 307        F1(HSI_RX_FLAG), F2(SCIFB2_TXD_68), F3(MSIOF3_TXD), F5(GIO_OUT4_68),
 308        F1(HSI_RX_DATA), F2(SCIFB2_RXD_69), F3(MSIOF3_RXD), F5(GIO_OUT5_69),
 309        F1(HSI_TX_FLAG), F2(SCIFB1_RTS_70), F5(GIO_OUT1_70), F6(HSIC_TSTCLK0),
 310        F7(CHSCIF1_HRTS), /* Port70 */
 311        F1(HSI_TX_DATA), F2(SCIFB1_CTS_71), F5(GIO_OUT2_71), F6(HSIC_TSTCLK1),
 312        F7(CHSCIF1_HCTS),
 313        F1(HSI_TX_WAKE), F2(SCIFB1_RXD_72), F5(GenIO8), F7(CHSCIF1_HRX),
 314        F1(HSI_TX_READY), F2(SCIFB2_RTS_73), F3(MSIOF3_SCK), F5(GIO_OUT0_73),
 315        F1(IRDA_OUT), F1(IRDA_IN), F1(IRDA_FIRSEL), F1(TPU0TO0),
 316        F1(DIGRFEN), F1(GPS_TIMESTAMP), F1(TXP), /* Port80 */
 317        F1(TXP2), F1(COEX_0), F1(COEX_1), IRQ(19), IRQ(18), /* Port85 */
 318
 319        F1(KEYIN0), /* Port96 */
 320        F1(KEYIN1), F1(KEYIN2), F1(KEYIN3), F1(KEYIN4), /* Port100 */
 321        F1(KEYIN5), F1(KEYIN6), IRQ(41), F1(KEYIN7), IRQ(42),
 322        F2(KEYOUT0), F2(KEYOUT1), F2(KEYOUT2), F2(KEYOUT3),
 323        F2(KEYOUT4), F2(KEYOUT5), IRQ(43), F2(KEYOUT6), IRQ(44), /* Port110 */
 324        F2(KEYOUT7), F5(RFANAEN), IRQ(45),
 325        F1(KEYIN8), F2(KEYOUT8), F4(SF_IRQ_04), IRQ(46),
 326        F1(KEYIN9), F2(KEYOUT9), F4(SF_IRQ_05), IRQ(47),
 327        F1(KEYIN10), F2(KEYOUT10), F4(SF_IRQ_06), IRQ(48),
 328        F1(KEYIN11), F2(KEYOUT11), F4(SF_IRQ_07), IRQ(49),
 329        F1(SCIFA0_TXD), F7(CSCIF0_TX), F1(SCIFA0_RXD), F7(CSCIF0_RX),
 330        F1(SCIFA1_TXD), F7(CSCIF1_TX), F1(SCIFA1_RXD), F7(CSCIF1_RX),
 331        F3(SF_PORT_1_120), F4(SCIFB3_RXD_120), F7(DU0_CDE), /* Port120 */
 332        F3(SF_PORT_0_121), F4(SCIFB3_TXD_121),
 333        F1(SCIFB0_TXD), F7(CHSCIF0_HTX),
 334        F1(SCIFB0_RXD), F7(CHSCIF0_HRX), F3(ISP_STROBE_124),
 335        F1(STP_ISD_0), F2(PDM4_CLK_125), F3(MSIOF2_TXD), F5(SIM0_VOLTSEL0),
 336        F1(TS_SDEN), F2(MSIOF7_SYNC), F3(STP_ISEN_1),
 337        F1(STP_ISEN_0), F2(PDM1_OUTDATA_128), F3(MSIOF2_SYNC),
 338        F5(SIM1_VOLTSEL1), F1(TS_SPSYNC), F2(MSIOF7_RXD), F3(STP_ISSYNC_1),
 339        F1(STP_ISSYNC_0), F2(PDM4_DATA_130), F3(MSIOF2_RXD),
 340        F5(SIM0_VOLTSEL1), /* Port130 */
 341        F1(STP_OPWM_0), F5(SIM1_PWRON), F1(TS_SCK), F2(MSIOF7_SCK),
 342        F3(STP_ISCLK_1), F1(STP_ISCLK_0), F2(PDM1_OUTCLK_133), F3(MSIOF2_SCK),
 343        F5(SIM1_VOLTSEL0), F1(TS_SDAT), F2(MSIOF7_TXD), F3(STP_ISD_1),
 344        IRQ(20), /* Port160 */
 345        IRQ(21), IRQ(22), IRQ(23),
 346        F1(MMCD0_0), F1(MMCD0_1), F1(MMCD0_2), F1(MMCD0_3),
 347        F1(MMCD0_4), F1(MMCD0_5), F1(MMCD0_6), /* Port170 */
 348        F1(MMCD0_7), F1(MMCCMD0), F1(MMCCLK0), F1(MMCRST),
 349        IRQ(24), IRQ(25), IRQ(26), IRQ(27),
 350        F1(A10), F2(MMCD1_7), IRQ(31), /* Port192 */
 351        F1(A9), F2(MMCD1_6), IRQ(32),
 352        F1(A8), F2(MMCD1_5), IRQ(33),
 353        F1(A7), F2(MMCD1_4), IRQ(34),
 354        F1(A6), F2(MMCD1_3), IRQ(35),
 355        F1(A5), F2(MMCD1_2), IRQ(36),
 356        F1(A4), F2(MMCD1_1), IRQ(37),
 357        F1(A3), F2(MMCD1_0), IRQ(38),
 358        F1(A2), F2(MMCCMD1), IRQ(39), /* Port200 */
 359        F1(A1),
 360        F1(A0), F2(BS),
 361        F1(CKO), F2(MMCCLK1),
 362        F1(CS0_N), F5(SIM0_GPO1),
 363        F1(CS2_N), F5(SIM0_GPO2),
 364        F1(CS4_N), F2(VIO_VD), F5(SIM1_GPO0),
 365        F1(D15), F5(GIO_OUT15),
 366        F1(D14), F5(GIO_OUT14),
 367        F1(D13), F5(GIO_OUT13),
 368        F1(D12), F5(GIO_OUT12), /* Port210 */
 369        F1(D11), F5(WGM_TXP2),
 370        F1(D10), F5(WGM_GPS_TIMEM_ASK_RFCLK),
 371        F1(D9), F2(VIO_D9), F5(GIO_OUT9),
 372        F1(D8), F2(VIO_D8), F5(GIO_OUT8),
 373        F1(D7), F2(VIO_D7), F5(GIO_OUT7),
 374        F1(D6), F2(VIO_D6), F5(GIO_OUT6),
 375        F1(D5), F2(VIO_D5), F5(GIO_OUT5_217),
 376        F1(D4), F2(VIO_D4), F5(GIO_OUT4_218),
 377        F1(D3), F2(VIO_D3), F5(GIO_OUT3_219),
 378        F1(D2), F2(VIO_D2), F5(GIO_OUT2_220), /* Port220 */
 379        F1(D1), F2(VIO_D1), F5(GIO_OUT1_221),
 380        F1(D0), F2(VIO_D0), F5(GIO_OUT0_222),
 381        F1(RDWR_224), F2(VIO_HD), F5(SIM1_GPO2),
 382        F1(RD_N), F1(WAIT_N), F2(VIO_CLK), F5(SIM1_GPO1),
 383        F1(WE0_N), F2(RDWR_227),
 384        F1(WE1_N), F5(SIM0_GPO0),
 385        F1(PWMO), F2(VIO_CKO1_229),
 386        F1(SLIM_CLK), F2(VIO_CKO4_230), /* Port230 */
 387        F1(SLIM_DATA), F2(VIO_CKO5_231), F2(VIO_CKO2_232), F4(SF_PORT_0_232),
 388        F2(VIO_CKO3_233), F4(SF_PORT_1_233),
 389        F1(FSIACK), F2(PDM3_CLK_234), F3(ISP_IRIS1_234),
 390        F1(FSIAISLD), F2(PDM3_DATA_235),
 391        F1(FSIAOMC), F2(PDM0_OUTCLK_236), F3(ISP_IRIS0_236),
 392        F1(FSIAOLR), F2(FSIAILR), F1(FSIAOBT), F2(FSIAIBT),
 393        F1(FSIAOSLD), F2(PDM0_OUTDATA_239),
 394        F1(FSIBISLD), /* Port240 */
 395        F1(FSIBOLR), F2(FSIBILR), F1(FSIBOMC), F3(ISP_SHUTTER1_242),
 396        F1(FSIBOBT), F2(FSIBIBT), F1(FSIBOSLD), F2(FSIASPDIF),
 397        F1(FSIBCK), F3(ISP_SHUTTER0_245),
 398        F1(ISP_IRIS1_246), F1(ISP_IRIS0_247), F1(ISP_SHUTTER1_248),
 399        F1(ISP_SHUTTER0_249), F1(ISP_STROBE_250), /* Port250 */
 400        F1(MSIOF0_SYNC), F1(MSIOF0_RXD), F1(MSIOF0_SCK), F1(MSIOF0_SS2),
 401        F3(VIO_CKO3_259), F1(MSIOF0_TXD), /* Port260 */
 402        F2(SCIFB1_SCK_261), F7(CHSCIF1_HSCK), F2(SCIFB2_SCK_262),
 403        F1(MSIOF1_SS2), F4(MSIOF5_SS2), F1(MSIOF1_TXD), F4(MSIOF5_TXD),
 404        F1(MSIOF1_RXD), F4(MSIOF5_RXD), F1(MSIOF1_SS1), F4(MSIOF5_SS1),
 405        F1(MSIOF0_SS1), F1(MSIOF1_SCK), F4(MSIOF5_SCK),
 406        F1(MSIOF1_SYNC), F4(MSIOF5_SYNC),
 407        F1(MSIOF2_SS1), F3(VIO_CKO5_270), /* Port270 */
 408        F1(MSIOF2_SS2), F3(VIO_CKO2_271), F1(MSIOF3_SS2), F3(VIO_CKO1_272),
 409        F1(MSIOF3_SS1), F3(VIO_CKO4_273), F1(MSIOF4_SS2), F4(TPU1TO0),
 410        F1(IC_DP), F1(SIM0_RST), F1(IC_DM), F1(SIM0_BSICOMP),
 411        F1(SIM0_CLK), F1(SIM0_IO), /* Port280 */
 412        F1(SIM1_IO), F2(PDM2_DATA_281), F1(SIM1_CLK), F2(PDM2_CLK_282),
 413        F1(SIM1_RST), F1(SDHID1_0), F3(STMDATA0_2),
 414        F1(SDHID1_1), F3(STMDATA1_2), IRQ(51), /* Port290 */
 415        F1(SDHID1_2), F3(STMDATA2_2), F1(SDHID1_3), F3(STMDATA3_2),
 416        F1(SDHICLK1), F3(STMCLK_2), F1(SDHICMD1), F3(STMSIDI_2),
 417        F1(SDHID2_0), F2(MSIOF4_TXD), F3(SCIFB2_TXD_295), F4(MSIOF6_TXD),
 418        F1(SDHID2_1), F4(MSIOF6_SS2), IRQ(52),
 419        F1(SDHID2_2), F2(MSIOF4_RXD), F3(SCIFB2_RXD_297), F4(MSIOF6_RXD),
 420        F1(SDHID2_3), F2(MSIOF4_SYNC), F3(SCIFB2_CTS_298), F4(MSIOF6_SYNC),
 421        F1(SDHICLK2), F2(MSIOF4_SCK), F3(SCIFB2_SCK_299), F4(MSIOF6_SCK),
 422        F1(SDHICMD2), F2(MSIOF4_SS1), F3(SCIFB2_RTS_300),
 423        F4(MSIOF6_SS1), /* Port300 */
 424        F1(SDHICD0), IRQ(50), F1(SDHID0_0), F3(STMDATA0_1),
 425        F1(SDHID0_1), F3(STMDATA1_1), F1(SDHID0_2), F3(STMDATA2_1),
 426        F1(SDHID0_3), F3(STMDATA3_1), F1(SDHICMD0), F3(STMSIDI_1),
 427        F1(SDHIWP0), F1(SDHICLK0), F3(STMCLK_1), IRQ(16), /* Port320 */
 428        IRQ(17), IRQ(28), IRQ(29), IRQ(30), IRQ(53), IRQ(54),
 429        IRQ(55), IRQ(56), IRQ(57),
 430        PINMUX_MARK_END,
 431};
 432
 433static const u16 pinmux_data[] = {
 434        /* specify valid pin states for each pin in GPIO mode */
 435        PINMUX_DATA_ALL(),
 436
 437        /* Port0 */
 438        PINMUX_DATA(LCDD0_MARK,         PORT0_FN1),
 439        PINMUX_DATA(PDM2_CLK_0_MARK,    PORT0_FN3),
 440        PINMUX_DATA(DU0_DR0_MARK,       PORT0_FN7),
 441        PINMUX_DATA(IRQ0_MARK,          PORT0_FN0),
 442
 443        /* Port1 */
 444        PINMUX_DATA(LCDD1_MARK,         PORT1_FN1),
 445        PINMUX_DATA(PDM2_DATA_1_MARK,   PORT1_FN3,      MSEL3CR_12_0),
 446        PINMUX_DATA(DU0_DR19_MARK,      PORT1_FN7),
 447        PINMUX_DATA(IRQ1_MARK,          PORT1_FN0),
 448
 449        /* Port2 */
 450        PINMUX_DATA(LCDD2_MARK,         PORT2_FN1),
 451        PINMUX_DATA(PDM3_CLK_2_MARK,    PORT2_FN3),
 452        PINMUX_DATA(DU0_DR2_MARK,       PORT2_FN7),
 453        PINMUX_DATA(IRQ2_MARK,          PORT2_FN0),
 454
 455        /* Port3 */
 456        PINMUX_DATA(LCDD3_MARK,         PORT3_FN1),
 457        PINMUX_DATA(PDM3_DATA_3_MARK,   PORT3_FN3,      MSEL3CR_12_0),
 458        PINMUX_DATA(DU0_DR3_MARK,       PORT3_FN7),
 459        PINMUX_DATA(IRQ3_MARK,          PORT3_FN0),
 460
 461        /* Port4 */
 462        PINMUX_DATA(LCDD4_MARK,         PORT4_FN1),
 463        PINMUX_DATA(PDM4_CLK_4_MARK,    PORT4_FN3),
 464        PINMUX_DATA(DU0_DR4_MARK,       PORT4_FN7),
 465        PINMUX_DATA(IRQ4_MARK,          PORT4_FN0),
 466
 467        /* Port5 */
 468        PINMUX_DATA(LCDD5_MARK,         PORT5_FN1),
 469        PINMUX_DATA(PDM4_DATA_5_MARK,   PORT5_FN3,      MSEL3CR_12_0),
 470        PINMUX_DATA(DU0_DR5_MARK,       PORT5_FN7),
 471        PINMUX_DATA(IRQ5_MARK,          PORT5_FN0),
 472
 473        /* Port6 */
 474        PINMUX_DATA(LCDD6_MARK,         PORT6_FN1),
 475        PINMUX_DATA(PDM0_OUTCLK_6_MARK, PORT6_FN3),
 476        PINMUX_DATA(DU0_DR6_MARK,       PORT6_FN7),
 477        PINMUX_DATA(IRQ6_MARK,          PORT6_FN0),
 478
 479        /* Port7 */
 480        PINMUX_DATA(LCDD7_MARK,                 PORT7_FN1),
 481        PINMUX_DATA(PDM0_OUTDATA_7_MARK,        PORT7_FN3),
 482        PINMUX_DATA(DU0_DR7_MARK,               PORT7_FN7),
 483        PINMUX_DATA(IRQ7_MARK,                  PORT7_FN0),
 484
 485        /* Port8 */
 486        PINMUX_DATA(LCDD8_MARK,         PORT8_FN1),
 487        PINMUX_DATA(PDM1_OUTCLK_8_MARK, PORT8_FN3),
 488        PINMUX_DATA(DU0_DG0_MARK,       PORT8_FN7),
 489        PINMUX_DATA(IRQ8_MARK,          PORT8_FN0),
 490
 491        /* Port9 */
 492        PINMUX_DATA(LCDD9_MARK,         PORT9_FN1),
 493        PINMUX_DATA(PDM1_OUTDATA_9_MARK, PORT9_FN3),
 494        PINMUX_DATA(DU0_DG1_MARK,       PORT9_FN7),
 495        PINMUX_DATA(IRQ9_MARK,          PORT9_FN0),
 496
 497        /* Port10 */
 498        PINMUX_DATA(LCDD10_MARK,                PORT10_FN1),
 499        PINMUX_DATA(FSICCK_MARK,                PORT10_FN3),
 500        PINMUX_DATA(DU0_DG2_MARK,               PORT10_FN7),
 501        PINMUX_DATA(IRQ10_MARK,                 PORT10_FN0),
 502
 503        /* Port11 */
 504        PINMUX_DATA(LCDD11_MARK,                PORT11_FN1),
 505        PINMUX_DATA(FSICISLD_MARK,              PORT11_FN3),
 506        PINMUX_DATA(DU0_DG3_MARK,               PORT11_FN7),
 507        PINMUX_DATA(IRQ11_MARK,                 PORT11_FN0),
 508
 509        /* Port12 */
 510        PINMUX_DATA(LCDD12_MARK,                PORT12_FN1),
 511        PINMUX_DATA(FSICOMC_MARK,               PORT12_FN3),
 512        PINMUX_DATA(DU0_DG4_MARK,               PORT12_FN7),
 513        PINMUX_DATA(IRQ12_MARK,                 PORT12_FN0),
 514
 515        /* Port13 */
 516        PINMUX_DATA(LCDD13_MARK,                PORT13_FN1),
 517        PINMUX_DATA(FSICOLR_MARK,               PORT13_FN3),
 518        PINMUX_DATA(FSICILR_MARK,               PORT13_FN4),
 519        PINMUX_DATA(DU0_DG5_MARK,               PORT13_FN7),
 520        PINMUX_DATA(IRQ13_MARK,                 PORT13_FN0),
 521
 522        /* Port14 */
 523        PINMUX_DATA(LCDD14_MARK,                PORT14_FN1),
 524        PINMUX_DATA(FSICOBT_MARK,               PORT14_FN3),
 525        PINMUX_DATA(FSICIBT_MARK,               PORT14_FN4),
 526        PINMUX_DATA(DU0_DG6_MARK,               PORT14_FN7),
 527        PINMUX_DATA(IRQ14_MARK,                 PORT14_FN0),
 528
 529        /* Port15 */
 530        PINMUX_DATA(LCDD15_MARK,                PORT15_FN1),
 531        PINMUX_DATA(FSICOSLD_MARK,              PORT15_FN3),
 532        PINMUX_DATA(DU0_DG7_MARK,               PORT15_FN7),
 533        PINMUX_DATA(IRQ15_MARK,                 PORT15_FN0),
 534
 535        /* Port16 */
 536        PINMUX_DATA(LCDD16_MARK,                PORT16_FN1),
 537        PINMUX_DATA(TPU1TO1_MARK,               PORT16_FN4),
 538        PINMUX_DATA(DU0_DB0_MARK,               PORT16_FN7),
 539
 540        /* Port17 */
 541        PINMUX_DATA(LCDD17_MARK,                PORT17_FN1),
 542        PINMUX_DATA(SF_IRQ_00_MARK,             PORT17_FN4),
 543        PINMUX_DATA(DU0_DB1_MARK,               PORT17_FN7),
 544
 545        /* Port18 */
 546        PINMUX_DATA(LCDD18_MARK,                PORT18_FN1),
 547        PINMUX_DATA(SF_IRQ_01_MARK,             PORT18_FN4),
 548        PINMUX_DATA(DU0_DB2_MARK,               PORT18_FN7),
 549
 550        /* Port19 */
 551        PINMUX_DATA(LCDD19_MARK,                PORT19_FN1),
 552        PINMUX_DATA(SCIFB3_RTS_19_MARK,         PORT19_FN3),
 553        PINMUX_DATA(DU0_DB3_MARK,               PORT19_FN7),
 554
 555        /* Port20 */
 556        PINMUX_DATA(LCDD20_MARK,                PORT20_FN1),
 557        PINMUX_DATA(SCIFB3_CTS_20_MARK,         PORT20_FN3,     MSEL3CR_09_0),
 558        PINMUX_DATA(DU0_DB4_MARK,               PORT20_FN7),
 559
 560        /* Port21 */
 561        PINMUX_DATA(LCDD21_MARK,                PORT21_FN1),
 562        PINMUX_DATA(SCIFB3_TXD_21_MARK,         PORT21_FN3,     MSEL3CR_09_0),
 563        PINMUX_DATA(DU0_DB5_MARK,               PORT21_FN7),
 564
 565        /* Port22 */
 566        PINMUX_DATA(LCDD22_MARK,                PORT22_FN1),
 567        PINMUX_DATA(SCIFB3_RXD_22_MARK,         PORT22_FN3,     MSEL3CR_09_0),
 568        PINMUX_DATA(DU0_DB6_MARK,               PORT22_FN7),
 569
 570        /* Port23 */
 571        PINMUX_DATA(LCDD23_MARK,                PORT23_FN1),
 572        PINMUX_DATA(SCIFB3_SCK_23_MARK,         PORT23_FN3),
 573        PINMUX_DATA(DU0_DB7_MARK,               PORT23_FN7),
 574
 575        /* Port24 */
 576        PINMUX_DATA(LCDHSYN_MARK,                       PORT24_FN1),
 577        PINMUX_DATA(LCDCS_MARK,                         PORT24_FN2),
 578        PINMUX_DATA(SCIFB1_RTS_24_MARK,                 PORT24_FN3),
 579        PINMUX_DATA(DU0_EXHSYNC_N_CSYNC_N_HSYNC_N_MARK, PORT24_FN7),
 580
 581        /* Port25 */
 582        PINMUX_DATA(LCDVSYN_MARK,                       PORT25_FN1),
 583        PINMUX_DATA(SCIFB1_CTS_25_MARK, PORT25_FN3, MSEL3CR_11_0),
 584        PINMUX_DATA(DU0_EXVSYNC_N_VSYNC_N_CSYNC_N_MARK, PORT25_FN7),
 585
 586        /* Port26 */
 587        PINMUX_DATA(LCDDCK_MARK,                PORT26_FN1),
 588        PINMUX_DATA(LCDWR_MARK,                 PORT26_FN2),
 589        PINMUX_DATA(SCIFB1_TXD_26_MARK,         PORT26_FN3,     MSEL3CR_11_0),
 590        PINMUX_DATA(DU0_DOTCLKIN_MARK,          PORT26_FN7),
 591
 592        /* Port27 */
 593        PINMUX_DATA(LCDDISP_MARK,               PORT27_FN1),
 594        PINMUX_DATA(LCDRS_MARK,                 PORT27_FN2),
 595        PINMUX_DATA(SCIFB1_RXD_27_MARK,         PORT27_FN3,     MSEL3CR_11_0),
 596        PINMUX_DATA(DU0_DOTCLKOUT_MARK,         PORT27_FN7),
 597
 598        /* Port28 */
 599        PINMUX_DATA(LCDRD_N_MARK,               PORT28_FN1),
 600        PINMUX_DATA(SCIFB1_SCK_28_MARK,         PORT28_FN3),
 601        PINMUX_DATA(DU0_DOTCLKOUTB_MARK,        PORT28_FN7),
 602
 603        /* Port29 */
 604        PINMUX_DATA(LCDLCLK_MARK,               PORT29_FN1),
 605        PINMUX_DATA(SF_IRQ_02_MARK,             PORT29_FN4),
 606        PINMUX_DATA(DU0_DISP_CSYNC_N_DE_MARK,   PORT29_FN7),
 607
 608        /* Port30 */
 609        PINMUX_DATA(LCDDON_MARK,                PORT30_FN1),
 610        PINMUX_DATA(SF_IRQ_03_MARK,             PORT30_FN4),
 611        PINMUX_DATA(DU0_ODDF_N_CLAMP_MARK,      PORT30_FN7),
 612
 613        /* Port32 */
 614        PINMUX_DATA(SCIFA0_RTS_MARK,            PORT32_FN1),
 615        PINMUX_DATA(SIM0_DET_MARK,              PORT32_FN5),
 616        PINMUX_DATA(CSCIF0_RTS_MARK,            PORT32_FN7),
 617
 618        /* Port33 */
 619        PINMUX_DATA(SCIFA0_CTS_MARK,            PORT33_FN1),
 620        PINMUX_DATA(SIM1_DET_MARK,              PORT33_FN5),
 621        PINMUX_DATA(CSCIF0_CTS_MARK,            PORT33_FN7),
 622
 623        /* Port34 */
 624        PINMUX_DATA(SCIFA0_SCK_MARK,            PORT34_FN1),
 625        PINMUX_DATA(SIM0_PWRON_MARK,            PORT34_FN5),
 626        PINMUX_DATA(CSCIF0_SCK_MARK,            PORT34_FN7),
 627
 628        /* Port35 */
 629        PINMUX_DATA(SCIFA1_RTS_MARK,            PORT35_FN1),
 630        PINMUX_DATA(CSCIF1_RTS_MARK,            PORT35_FN7),
 631
 632        /* Port36 */
 633        PINMUX_DATA(SCIFA1_CTS_MARK,            PORT36_FN1),
 634        PINMUX_DATA(CSCIF1_CTS_MARK,            PORT36_FN7),
 635
 636        /* Port37 */
 637        PINMUX_DATA(SCIFA1_SCK_MARK,            PORT37_FN1),
 638        PINMUX_DATA(CSCIF1_SCK_MARK,            PORT37_FN7),
 639
 640        /* Port38 */
 641        PINMUX_DATA(SCIFB0_RTS_MARK,            PORT38_FN1),
 642        PINMUX_DATA(TPU0TO1_MARK,               PORT38_FN3),
 643        PINMUX_DATA(SCIFB3_RTS_38_MARK,         PORT38_FN4),
 644        PINMUX_DATA(CHSCIF0_HRTS_MARK,          PORT38_FN7),
 645
 646        /* Port39 */
 647        PINMUX_DATA(SCIFB0_CTS_MARK,            PORT39_FN1),
 648        PINMUX_DATA(TPU0TO2_MARK,               PORT39_FN3),
 649        PINMUX_DATA(SCIFB3_CTS_39_MARK,         PORT39_FN4,     MSEL3CR_09_1),
 650        PINMUX_DATA(CHSCIF0_HCTS_MARK,          PORT39_FN7),
 651
 652        /* Port40 */
 653        PINMUX_DATA(SCIFB0_SCK_MARK,            PORT40_FN1),
 654        PINMUX_DATA(TPU0TO3_MARK,               PORT40_FN3),
 655        PINMUX_DATA(SCIFB3_SCK_40_MARK,         PORT40_FN4),
 656        PINMUX_DATA(CHSCIF0_HSCK_MARK,          PORT40_FN7),
 657
 658        /* Port64 */
 659        PINMUX_DATA(PDM0_DATA_MARK,             PORT64_FN1),
 660
 661        /* Port65 */
 662        PINMUX_DATA(PDM1_DATA_MARK,             PORT65_FN1),
 663
 664        /* Port66 */
 665        PINMUX_DATA(HSI_RX_WAKE_MARK,           PORT66_FN1),
 666        PINMUX_DATA(SCIFB2_CTS_66_MARK,         PORT66_FN2,     MSEL3CR_10_0),
 667        PINMUX_DATA(MSIOF3_SYNC_MARK,           PORT66_FN3),
 668        PINMUX_DATA(GenIO4_MARK,                PORT66_FN5),
 669        PINMUX_DATA(IRQ40_MARK,                 PORT66_FN0),
 670
 671        /* Port67 */
 672        PINMUX_DATA(HSI_RX_READY_MARK,          PORT67_FN1),
 673        PINMUX_DATA(SCIFB1_TXD_67_MARK,         PORT67_FN2,     MSEL3CR_11_1),
 674        PINMUX_DATA(GIO_OUT3_67_MARK,           PORT67_FN5),
 675        PINMUX_DATA(CHSCIF1_HTX_MARK,           PORT67_FN7),
 676
 677        /* Port68 */
 678        PINMUX_DATA(HSI_RX_FLAG_MARK,           PORT68_FN1),
 679        PINMUX_DATA(SCIFB2_TXD_68_MARK,         PORT68_FN2,     MSEL3CR_10_0),
 680        PINMUX_DATA(MSIOF3_TXD_MARK,            PORT68_FN3),
 681        PINMUX_DATA(GIO_OUT4_68_MARK,           PORT68_FN5),
 682
 683        /* Port69 */
 684        PINMUX_DATA(HSI_RX_DATA_MARK,           PORT69_FN1),
 685        PINMUX_DATA(SCIFB2_RXD_69_MARK,         PORT69_FN2,     MSEL3CR_10_0),
 686        PINMUX_DATA(MSIOF3_RXD_MARK,            PORT69_FN3),
 687        PINMUX_DATA(GIO_OUT5_69_MARK,           PORT69_FN5),
 688
 689        /* Port70 */
 690        PINMUX_DATA(HSI_TX_FLAG_MARK,           PORT70_FN1),
 691        PINMUX_DATA(SCIFB1_RTS_70_MARK,         PORT70_FN2),
 692        PINMUX_DATA(GIO_OUT1_70_MARK,           PORT70_FN5),
 693        PINMUX_DATA(HSIC_TSTCLK0_MARK,          PORT70_FN6),
 694        PINMUX_DATA(CHSCIF1_HRTS_MARK,          PORT70_FN7),
 695
 696        /* Port71 */
 697        PINMUX_DATA(HSI_TX_DATA_MARK,           PORT71_FN1),
 698        PINMUX_DATA(SCIFB1_CTS_71_MARK,         PORT71_FN2,     MSEL3CR_11_1),
 699        PINMUX_DATA(GIO_OUT2_71_MARK,           PORT71_FN5),
 700        PINMUX_DATA(HSIC_TSTCLK1_MARK,          PORT71_FN6),
 701        PINMUX_DATA(CHSCIF1_HCTS_MARK,          PORT71_FN7),
 702
 703        /* Port72 */
 704        PINMUX_DATA(HSI_TX_WAKE_MARK,           PORT72_FN1),
 705        PINMUX_DATA(SCIFB1_RXD_72_MARK,         PORT72_FN2,     MSEL3CR_11_1),
 706        PINMUX_DATA(GenIO8_MARK,                PORT72_FN5),
 707        PINMUX_DATA(CHSCIF1_HRX_MARK,           PORT72_FN7),
 708
 709        /* Port73 */
 710        PINMUX_DATA(HSI_TX_READY_MARK,          PORT73_FN1),
 711        PINMUX_DATA(SCIFB2_RTS_73_MARK,         PORT73_FN2),
 712        PINMUX_DATA(MSIOF3_SCK_MARK,            PORT73_FN3),
 713        PINMUX_DATA(GIO_OUT0_73_MARK,           PORT73_FN5),
 714
 715        /* Port74 - Port85 */
 716        PINMUX_DATA(IRDA_OUT_MARK,              PORT74_FN1),
 717        PINMUX_DATA(IRDA_IN_MARK,               PORT75_FN1),
 718        PINMUX_DATA(IRDA_FIRSEL_MARK,           PORT76_FN1),
 719        PINMUX_DATA(TPU0TO0_MARK,               PORT77_FN1),
 720        PINMUX_DATA(DIGRFEN_MARK,               PORT78_FN1),
 721        PINMUX_DATA(GPS_TIMESTAMP_MARK,         PORT79_FN1),
 722        PINMUX_DATA(TXP_MARK,                   PORT80_FN1),
 723        PINMUX_DATA(TXP2_MARK,                  PORT81_FN1),
 724        PINMUX_DATA(COEX_0_MARK,                PORT82_FN1),
 725        PINMUX_DATA(COEX_1_MARK,                PORT83_FN1),
 726        PINMUX_DATA(IRQ19_MARK,                 PORT84_FN0),
 727        PINMUX_DATA(IRQ18_MARK,                 PORT85_FN0),
 728
 729        /* Port96 - Port101 */
 730        PINMUX_DATA(KEYIN0_MARK,                PORT96_FN1),
 731        PINMUX_DATA(KEYIN1_MARK,                PORT97_FN1),
 732        PINMUX_DATA(KEYIN2_MARK,                PORT98_FN1),
 733        PINMUX_DATA(KEYIN3_MARK,                PORT99_FN1),
 734        PINMUX_DATA(KEYIN4_MARK,                PORT100_FN1),
 735        PINMUX_DATA(KEYIN5_MARK,                PORT101_FN1),
 736
 737        /* Port102 */
 738        PINMUX_DATA(KEYIN6_MARK,                PORT102_FN1),
 739        PINMUX_DATA(IRQ41_MARK,                 PORT102_FN0),
 740
 741        /* Port103 */
 742        PINMUX_DATA(KEYIN7_MARK,                PORT103_FN1),
 743        PINMUX_DATA(IRQ42_MARK,                 PORT103_FN0),
 744
 745        /* Port104 - Port108 */
 746        PINMUX_DATA(KEYOUT0_MARK,               PORT104_FN2),
 747        PINMUX_DATA(KEYOUT1_MARK,               PORT105_FN2),
 748        PINMUX_DATA(KEYOUT2_MARK,               PORT106_FN2),
 749        PINMUX_DATA(KEYOUT3_MARK,               PORT107_FN2),
 750        PINMUX_DATA(KEYOUT4_MARK,               PORT108_FN2),
 751
 752        /* Port109 */
 753        PINMUX_DATA(KEYOUT5_MARK,               PORT109_FN2),
 754        PINMUX_DATA(IRQ43_MARK,                 PORT109_FN0),
 755
 756        /* Port110 */
 757        PINMUX_DATA(KEYOUT6_MARK,               PORT110_FN2),
 758        PINMUX_DATA(IRQ44_MARK,                 PORT110_FN0),
 759
 760        /* Port111 */
 761        PINMUX_DATA(KEYOUT7_MARK,               PORT111_FN2),
 762        PINMUX_DATA(RFANAEN_MARK,               PORT111_FN5),
 763        PINMUX_DATA(IRQ45_MARK,                 PORT111_FN0),
 764
 765        /* Port112 */
 766        PINMUX_DATA(KEYIN8_MARK,                PORT112_FN1),
 767        PINMUX_DATA(KEYOUT8_MARK,               PORT112_FN2),
 768        PINMUX_DATA(SF_IRQ_04_MARK,             PORT112_FN4),
 769        PINMUX_DATA(IRQ46_MARK,                 PORT112_FN0),
 770
 771        /* Port113 */
 772        PINMUX_DATA(KEYIN9_MARK,                PORT113_FN1),
 773        PINMUX_DATA(KEYOUT9_MARK,               PORT113_FN2),
 774        PINMUX_DATA(SF_IRQ_05_MARK,             PORT113_FN4),
 775        PINMUX_DATA(IRQ47_MARK,                 PORT113_FN0),
 776
 777        /* Port114 */
 778        PINMUX_DATA(KEYIN10_MARK,               PORT114_FN1),
 779        PINMUX_DATA(KEYOUT10_MARK,              PORT114_FN2),
 780        PINMUX_DATA(SF_IRQ_06_MARK,             PORT114_FN4),
 781        PINMUX_DATA(IRQ48_MARK,                 PORT114_FN0),
 782
 783        /* Port115 */
 784        PINMUX_DATA(KEYIN11_MARK,               PORT115_FN1),
 785        PINMUX_DATA(KEYOUT11_MARK,              PORT115_FN2),
 786        PINMUX_DATA(SF_IRQ_07_MARK,             PORT115_FN4),
 787        PINMUX_DATA(IRQ49_MARK,                 PORT115_FN0),
 788
 789        /* Port116 */
 790        PINMUX_DATA(SCIFA0_TXD_MARK,            PORT116_FN1),
 791        PINMUX_DATA(CSCIF0_TX_MARK,             PORT116_FN7),
 792
 793        /* Port117 */
 794        PINMUX_DATA(SCIFA0_RXD_MARK,            PORT117_FN1),
 795        PINMUX_DATA(CSCIF0_RX_MARK,             PORT117_FN7),
 796
 797        /* Port118 */
 798        PINMUX_DATA(SCIFA1_TXD_MARK,            PORT118_FN1),
 799        PINMUX_DATA(CSCIF1_TX_MARK,             PORT118_FN7),
 800
 801        /* Port119 */
 802        PINMUX_DATA(SCIFA1_RXD_MARK,            PORT119_FN1),
 803        PINMUX_DATA(CSCIF1_RX_MARK,             PORT119_FN7),
 804
 805        /* Port120 */
 806        PINMUX_DATA(SF_PORT_1_120_MARK,         PORT120_FN3),
 807        PINMUX_DATA(SCIFB3_RXD_120_MARK,        PORT120_FN4,    MSEL3CR_09_1),
 808        PINMUX_DATA(DU0_CDE_MARK,               PORT120_FN7),
 809
 810        /* Port121 */
 811        PINMUX_DATA(SF_PORT_0_121_MARK,         PORT121_FN3),
 812        PINMUX_DATA(SCIFB3_TXD_121_MARK,        PORT121_FN4,    MSEL3CR_09_1),
 813
 814        /* Port122 */
 815        PINMUX_DATA(SCIFB0_TXD_MARK,            PORT122_FN1),
 816        PINMUX_DATA(CHSCIF0_HTX_MARK,           PORT122_FN7),
 817
 818        /* Port123 */
 819        PINMUX_DATA(SCIFB0_RXD_MARK,            PORT123_FN1),
 820        PINMUX_DATA(CHSCIF0_HRX_MARK,           PORT123_FN7),
 821
 822        /* Port124 */
 823        PINMUX_DATA(ISP_STROBE_124_MARK,        PORT124_FN3),
 824
 825        /* Port125 */
 826        PINMUX_DATA(STP_ISD_0_MARK,             PORT125_FN1),
 827        PINMUX_DATA(PDM4_CLK_125_MARK,          PORT125_FN2),
 828        PINMUX_DATA(MSIOF2_TXD_MARK,            PORT125_FN3),
 829        PINMUX_DATA(SIM0_VOLTSEL0_MARK,         PORT125_FN5),
 830
 831        /* Port126 */
 832        PINMUX_DATA(TS_SDEN_MARK,               PORT126_FN1),
 833        PINMUX_DATA(MSIOF7_SYNC_MARK,           PORT126_FN2),
 834        PINMUX_DATA(STP_ISEN_1_MARK,            PORT126_FN3),
 835
 836        /* Port128 */
 837        PINMUX_DATA(STP_ISEN_0_MARK,            PORT128_FN1),
 838        PINMUX_DATA(PDM1_OUTDATA_128_MARK,      PORT128_FN2),
 839        PINMUX_DATA(MSIOF2_SYNC_MARK,           PORT128_FN3),
 840        PINMUX_DATA(SIM1_VOLTSEL1_MARK,         PORT128_FN5),
 841
 842        /* Port129 */
 843        PINMUX_DATA(TS_SPSYNC_MARK,             PORT129_FN1),
 844        PINMUX_DATA(MSIOF7_RXD_MARK,            PORT129_FN2),
 845        PINMUX_DATA(STP_ISSYNC_1_MARK,          PORT129_FN3),
 846
 847        /* Port130 */
 848        PINMUX_DATA(STP_ISSYNC_0_MARK,          PORT130_FN1),
 849        PINMUX_DATA(PDM4_DATA_130_MARK,         PORT130_FN2,    MSEL3CR_12_1),
 850        PINMUX_DATA(MSIOF2_RXD_MARK,            PORT130_FN3),
 851        PINMUX_DATA(SIM0_VOLTSEL1_MARK,         PORT130_FN5),
 852
 853        /* Port131 */
 854        PINMUX_DATA(STP_OPWM_0_MARK,            PORT131_FN1),
 855        PINMUX_DATA(SIM1_PWRON_MARK,            PORT131_FN5),
 856
 857        /* Port132 */
 858        PINMUX_DATA(TS_SCK_MARK,                PORT132_FN1),
 859        PINMUX_DATA(MSIOF7_SCK_MARK,            PORT132_FN2),
 860        PINMUX_DATA(STP_ISCLK_1_MARK,           PORT132_FN3),
 861
 862        /* Port133 */
 863        PINMUX_DATA(STP_ISCLK_0_MARK,           PORT133_FN1),
 864        PINMUX_DATA(PDM1_OUTCLK_133_MARK,       PORT133_FN2),
 865        PINMUX_DATA(MSIOF2_SCK_MARK,            PORT133_FN3),
 866        PINMUX_DATA(SIM1_VOLTSEL0_MARK,         PORT133_FN5),
 867
 868        /* Port134 */
 869        PINMUX_DATA(TS_SDAT_MARK,               PORT134_FN1),
 870        PINMUX_DATA(MSIOF7_TXD_MARK,            PORT134_FN2),
 871        PINMUX_DATA(STP_ISD_1_MARK,             PORT134_FN3),
 872
 873        /* Port160 - Port178 */
 874        PINMUX_DATA(IRQ20_MARK,                 PORT160_FN0),
 875        PINMUX_DATA(IRQ21_MARK,                 PORT161_FN0),
 876        PINMUX_DATA(IRQ22_MARK,                 PORT162_FN0),
 877        PINMUX_DATA(IRQ23_MARK,                 PORT163_FN0),
 878        PINMUX_DATA(MMCD0_0_MARK,               PORT164_FN1),
 879        PINMUX_DATA(MMCD0_1_MARK,               PORT165_FN1),
 880        PINMUX_DATA(MMCD0_2_MARK,               PORT166_FN1),
 881        PINMUX_DATA(MMCD0_3_MARK,               PORT167_FN1),
 882        PINMUX_DATA(MMCD0_4_MARK,               PORT168_FN1),
 883        PINMUX_DATA(MMCD0_5_MARK,               PORT169_FN1),
 884        PINMUX_DATA(MMCD0_6_MARK,               PORT170_FN1),
 885        PINMUX_DATA(MMCD0_7_MARK,               PORT171_FN1),
 886        PINMUX_DATA(MMCCMD0_MARK,               PORT172_FN1),
 887        PINMUX_DATA(MMCCLK0_MARK,               PORT173_FN1),
 888        PINMUX_DATA(MMCRST_MARK,                PORT174_FN1),
 889        PINMUX_DATA(IRQ24_MARK,                 PORT175_FN0),
 890        PINMUX_DATA(IRQ25_MARK,                 PORT176_FN0),
 891        PINMUX_DATA(IRQ26_MARK,                 PORT177_FN0),
 892        PINMUX_DATA(IRQ27_MARK,                 PORT178_FN0),
 893
 894        /* Port192 - Port200 FN1 */
 895        PINMUX_DATA(A10_MARK,           PORT192_FN1),
 896        PINMUX_DATA(A9_MARK,            PORT193_FN1),
 897        PINMUX_DATA(A8_MARK,            PORT194_FN1),
 898        PINMUX_DATA(A7_MARK,            PORT195_FN1),
 899        PINMUX_DATA(A6_MARK,            PORT196_FN1),
 900        PINMUX_DATA(A5_MARK,            PORT197_FN1),
 901        PINMUX_DATA(A4_MARK,            PORT198_FN1),
 902        PINMUX_DATA(A3_MARK,            PORT199_FN1),
 903        PINMUX_DATA(A2_MARK,            PORT200_FN1),
 904
 905        /* Port192 - Port200 FN2 */
 906        PINMUX_DATA(MMCD1_7_MARK,               PORT192_FN2),
 907        PINMUX_DATA(MMCD1_6_MARK,               PORT193_FN2),
 908        PINMUX_DATA(MMCD1_5_MARK,               PORT194_FN2),
 909        PINMUX_DATA(MMCD1_4_MARK,               PORT195_FN2),
 910        PINMUX_DATA(MMCD1_3_MARK,               PORT196_FN2),
 911        PINMUX_DATA(MMCD1_2_MARK,               PORT197_FN2),
 912        PINMUX_DATA(MMCD1_1_MARK,               PORT198_FN2),
 913        PINMUX_DATA(MMCD1_0_MARK,               PORT199_FN2),
 914        PINMUX_DATA(MMCCMD1_MARK,               PORT200_FN2),
 915
 916        /* Port192 - Port200 IRQ */
 917        PINMUX_DATA(IRQ31_MARK,                 PORT192_FN0),
 918        PINMUX_DATA(IRQ32_MARK,                 PORT193_FN0),
 919        PINMUX_DATA(IRQ33_MARK,                 PORT194_FN0),
 920        PINMUX_DATA(IRQ34_MARK,                 PORT195_FN0),
 921        PINMUX_DATA(IRQ35_MARK,                 PORT196_FN0),
 922        PINMUX_DATA(IRQ36_MARK,                 PORT197_FN0),
 923        PINMUX_DATA(IRQ37_MARK,                 PORT198_FN0),
 924        PINMUX_DATA(IRQ38_MARK,                 PORT199_FN0),
 925        PINMUX_DATA(IRQ39_MARK,                 PORT200_FN0),
 926
 927        /* Port201 */
 928        PINMUX_DATA(A1_MARK,            PORT201_FN1),
 929
 930        /* Port202 */
 931        PINMUX_DATA(A0_MARK,            PORT202_FN1),
 932        PINMUX_DATA(BS_MARK,            PORT202_FN2),
 933
 934        /* Port203 */
 935        PINMUX_DATA(CKO_MARK,           PORT203_FN1),
 936        PINMUX_DATA(MMCCLK1_MARK,       PORT203_FN2),
 937
 938        /* Port204 */
 939        PINMUX_DATA(CS0_N_MARK,         PORT204_FN1),
 940        PINMUX_DATA(SIM0_GPO1_MARK,     PORT204_FN5),
 941
 942        /* Port205 */
 943        PINMUX_DATA(CS2_N_MARK,         PORT205_FN1),
 944        PINMUX_DATA(SIM0_GPO2_MARK,     PORT205_FN5),
 945
 946        /* Port206 */
 947        PINMUX_DATA(CS4_N_MARK,         PORT206_FN1),
 948        PINMUX_DATA(VIO_VD_MARK,        PORT206_FN2),
 949        PINMUX_DATA(SIM1_GPO0_MARK,     PORT206_FN5),
 950
 951        /* Port207 - Port212 FN1 */
 952        PINMUX_DATA(D15_MARK,           PORT207_FN1),
 953        PINMUX_DATA(D14_MARK,           PORT208_FN1),
 954        PINMUX_DATA(D13_MARK,           PORT209_FN1),
 955        PINMUX_DATA(D12_MARK,           PORT210_FN1),
 956        PINMUX_DATA(D11_MARK,           PORT211_FN1),
 957        PINMUX_DATA(D10_MARK,           PORT212_FN1),
 958
 959        /* Port207 - Port212 FN5 */
 960        PINMUX_DATA(GIO_OUT15_MARK,                     PORT207_FN5),
 961        PINMUX_DATA(GIO_OUT14_MARK,                     PORT208_FN5),
 962        PINMUX_DATA(GIO_OUT13_MARK,                     PORT209_FN5),
 963        PINMUX_DATA(GIO_OUT12_MARK,                     PORT210_FN5),
 964        PINMUX_DATA(WGM_TXP2_MARK,                      PORT211_FN5),
 965        PINMUX_DATA(WGM_GPS_TIMEM_ASK_RFCLK_MARK,       PORT212_FN5),
 966
 967        /* Port213 - Port222 FN1 */
 968        PINMUX_DATA(D9_MARK,            PORT213_FN1),
 969        PINMUX_DATA(D8_MARK,            PORT214_FN1),
 970        PINMUX_DATA(D7_MARK,            PORT215_FN1),
 971        PINMUX_DATA(D6_MARK,            PORT216_FN1),
 972        PINMUX_DATA(D5_MARK,            PORT217_FN1),
 973        PINMUX_DATA(D4_MARK,            PORT218_FN1),
 974        PINMUX_DATA(D3_MARK,            PORT219_FN1),
 975        PINMUX_DATA(D2_MARK,            PORT220_FN1),
 976        PINMUX_DATA(D1_MARK,            PORT221_FN1),
 977        PINMUX_DATA(D0_MARK,            PORT222_FN1),
 978
 979        /* Port213 - Port222 FN2 */
 980        PINMUX_DATA(VIO_D9_MARK,        PORT213_FN2),
 981        PINMUX_DATA(VIO_D8_MARK,        PORT214_FN2),
 982        PINMUX_DATA(VIO_D7_MARK,        PORT215_FN2),
 983        PINMUX_DATA(VIO_D6_MARK,        PORT216_FN2),
 984        PINMUX_DATA(VIO_D5_MARK,        PORT217_FN2),
 985        PINMUX_DATA(VIO_D4_MARK,        PORT218_FN2),
 986        PINMUX_DATA(VIO_D3_MARK,        PORT219_FN2),
 987        PINMUX_DATA(VIO_D2_MARK,        PORT220_FN2),
 988        PINMUX_DATA(VIO_D1_MARK,        PORT221_FN2),
 989        PINMUX_DATA(VIO_D0_MARK,        PORT222_FN2),
 990
 991        /* Port213 - Port222 FN5 */
 992        PINMUX_DATA(GIO_OUT9_MARK,      PORT213_FN5),
 993        PINMUX_DATA(GIO_OUT8_MARK,      PORT214_FN5),
 994        PINMUX_DATA(GIO_OUT7_MARK,      PORT215_FN5),
 995        PINMUX_DATA(GIO_OUT6_MARK,      PORT216_FN5),
 996        PINMUX_DATA(GIO_OUT5_217_MARK,  PORT217_FN5),
 997        PINMUX_DATA(GIO_OUT4_218_MARK,  PORT218_FN5),
 998        PINMUX_DATA(GIO_OUT3_219_MARK,  PORT219_FN5),
 999        PINMUX_DATA(GIO_OUT2_220_MARK,  PORT220_FN5),
1000        PINMUX_DATA(GIO_OUT1_221_MARK,  PORT221_FN5),
1001        PINMUX_DATA(GIO_OUT0_222_MARK,  PORT222_FN5),
1002
1003        /* Port224 */
1004        PINMUX_DATA(RDWR_224_MARK,      PORT224_FN1),
1005        PINMUX_DATA(VIO_HD_MARK,        PORT224_FN2),
1006        PINMUX_DATA(SIM1_GPO2_MARK,     PORT224_FN5),
1007
1008        /* Port225 */
1009        PINMUX_DATA(RD_N_MARK,          PORT225_FN1),
1010
1011        /* Port226 */
1012        PINMUX_DATA(WAIT_N_MARK,        PORT226_FN1),
1013        PINMUX_DATA(VIO_CLK_MARK,       PORT226_FN2),
1014        PINMUX_DATA(SIM1_GPO1_MARK,     PORT226_FN5),
1015
1016        /* Port227 */
1017        PINMUX_DATA(WE0_N_MARK,         PORT227_FN1),
1018        PINMUX_DATA(RDWR_227_MARK,      PORT227_FN2),
1019
1020        /* Port228 */
1021        PINMUX_DATA(WE1_N_MARK,         PORT228_FN1),
1022        PINMUX_DATA(SIM0_GPO0_MARK,     PORT228_FN5),
1023
1024        /* Port229 */
1025        PINMUX_DATA(PWMO_MARK,          PORT229_FN1),
1026        PINMUX_DATA(VIO_CKO1_229_MARK,  PORT229_FN2),
1027
1028        /* Port230 */
1029        PINMUX_DATA(SLIM_CLK_MARK,      PORT230_FN1),
1030        PINMUX_DATA(VIO_CKO4_230_MARK,  PORT230_FN2),
1031
1032        /* Port231 */
1033        PINMUX_DATA(SLIM_DATA_MARK,     PORT231_FN1),
1034        PINMUX_DATA(VIO_CKO5_231_MARK,  PORT231_FN2),
1035
1036        /* Port232 */
1037        PINMUX_DATA(VIO_CKO2_232_MARK,  PORT232_FN2),
1038        PINMUX_DATA(SF_PORT_0_232_MARK, PORT232_FN4),
1039
1040        /* Port233 */
1041        PINMUX_DATA(VIO_CKO3_233_MARK,  PORT233_FN2),
1042        PINMUX_DATA(SF_PORT_1_233_MARK, PORT233_FN4),
1043
1044        /* Port234 */
1045        PINMUX_DATA(FSIACK_MARK,        PORT234_FN1),
1046        PINMUX_DATA(PDM3_CLK_234_MARK,  PORT234_FN2),
1047        PINMUX_DATA(ISP_IRIS1_234_MARK, PORT234_FN3),
1048
1049        /* Port235 */
1050        PINMUX_DATA(FSIAISLD_MARK,      PORT235_FN1),
1051        PINMUX_DATA(PDM3_DATA_235_MARK, PORT235_FN2,    MSEL3CR_12_1),
1052
1053        /* Port236 */
1054        PINMUX_DATA(FSIAOMC_MARK,               PORT236_FN1),
1055        PINMUX_DATA(PDM0_OUTCLK_236_MARK,       PORT236_FN2),
1056        PINMUX_DATA(ISP_IRIS0_236_MARK,         PORT236_FN3),
1057
1058        /* Port237 */
1059        PINMUX_DATA(FSIAOLR_MARK,       PORT237_FN1),
1060        PINMUX_DATA(FSIAILR_MARK,       PORT237_FN2),
1061
1062        /* Port238 */
1063        PINMUX_DATA(FSIAOBT_MARK,       PORT238_FN1),
1064        PINMUX_DATA(FSIAIBT_MARK,       PORT238_FN2),
1065
1066        /* Port239 */
1067        PINMUX_DATA(FSIAOSLD_MARK,              PORT239_FN1),
1068        PINMUX_DATA(PDM0_OUTDATA_239_MARK,      PORT239_FN2),
1069
1070        /* Port240 */
1071        PINMUX_DATA(FSIBISLD_MARK,      PORT240_FN1),
1072
1073        /* Port241 */
1074        PINMUX_DATA(FSIBOLR_MARK,       PORT241_FN1),
1075        PINMUX_DATA(FSIBILR_MARK,       PORT241_FN2),
1076
1077        /* Port242 */
1078        PINMUX_DATA(FSIBOMC_MARK,               PORT242_FN1),
1079        PINMUX_DATA(ISP_SHUTTER1_242_MARK,      PORT242_FN3),
1080
1081        /* Port243 */
1082        PINMUX_DATA(FSIBOBT_MARK,       PORT243_FN1),
1083        PINMUX_DATA(FSIBIBT_MARK,       PORT243_FN2),
1084
1085        /* Port244 */
1086        PINMUX_DATA(FSIBOSLD_MARK,      PORT244_FN1),
1087        PINMUX_DATA(FSIASPDIF_MARK,     PORT244_FN2),
1088
1089        /* Port245 */
1090        PINMUX_DATA(FSIBCK_MARK,                PORT245_FN1),
1091        PINMUX_DATA(ISP_SHUTTER0_245_MARK,      PORT245_FN3),
1092
1093        /* Port246 - Port250 FN1 */
1094        PINMUX_DATA(ISP_IRIS1_246_MARK,         PORT246_FN1),
1095        PINMUX_DATA(ISP_IRIS0_247_MARK,         PORT247_FN1),
1096        PINMUX_DATA(ISP_SHUTTER1_248_MARK,      PORT248_FN1),
1097        PINMUX_DATA(ISP_SHUTTER0_249_MARK,      PORT249_FN1),
1098        PINMUX_DATA(ISP_STROBE_250_MARK,        PORT250_FN1),
1099
1100        /* Port256 - Port258 */
1101        PINMUX_DATA(MSIOF0_SYNC_MARK,           PORT256_FN1),
1102        PINMUX_DATA(MSIOF0_RXD_MARK,            PORT257_FN1),
1103        PINMUX_DATA(MSIOF0_SCK_MARK,            PORT258_FN1),
1104
1105        /* Port259 */
1106        PINMUX_DATA(MSIOF0_SS2_MARK,            PORT259_FN1),
1107        PINMUX_DATA(VIO_CKO3_259_MARK,          PORT259_FN3),
1108
1109        /* Port260 */
1110        PINMUX_DATA(MSIOF0_TXD_MARK,            PORT260_FN1),
1111
1112        /* Port261 */
1113        PINMUX_DATA(SCIFB1_SCK_261_MARK,        PORT261_FN2),
1114        PINMUX_DATA(CHSCIF1_HSCK_MARK,          PORT261_FN7),
1115
1116        /* Port262 */
1117        PINMUX_DATA(SCIFB2_SCK_262_MARK,        PORT262_FN2),
1118
1119        /* Port263 - Port266 FN1 */
1120        PINMUX_DATA(MSIOF1_SS2_MARK,            PORT263_FN1),
1121        PINMUX_DATA(MSIOF1_TXD_MARK,            PORT264_FN1),
1122        PINMUX_DATA(MSIOF1_RXD_MARK,            PORT265_FN1),
1123        PINMUX_DATA(MSIOF1_SS1_MARK,            PORT266_FN1),
1124
1125        /* Port263 - Port266 FN4 */
1126        PINMUX_DATA(MSIOF5_SS2_MARK,            PORT263_FN4),
1127        PINMUX_DATA(MSIOF5_TXD_MARK,            PORT264_FN4),
1128        PINMUX_DATA(MSIOF5_RXD_MARK,            PORT265_FN4),
1129        PINMUX_DATA(MSIOF5_SS1_MARK,            PORT266_FN4),
1130
1131        /* Port267 */
1132        PINMUX_DATA(MSIOF0_SS1_MARK,            PORT267_FN1),
1133
1134        /* Port268 */
1135        PINMUX_DATA(MSIOF1_SCK_MARK,            PORT268_FN1),
1136        PINMUX_DATA(MSIOF5_SCK_MARK,            PORT268_FN4),
1137
1138        /* Port269 */
1139        PINMUX_DATA(MSIOF1_SYNC_MARK,           PORT269_FN1),
1140        PINMUX_DATA(MSIOF5_SYNC_MARK,           PORT269_FN4),
1141
1142        /* Port270 - Port273 FN1 */
1143        PINMUX_DATA(MSIOF2_SS1_MARK,            PORT270_FN1),
1144        PINMUX_DATA(MSIOF2_SS2_MARK,            PORT271_FN1),
1145        PINMUX_DATA(MSIOF3_SS2_MARK,            PORT272_FN1),
1146        PINMUX_DATA(MSIOF3_SS1_MARK,            PORT273_FN1),
1147
1148        /* Port270 - Port273 FN3 */
1149        PINMUX_DATA(VIO_CKO5_270_MARK,          PORT270_FN3),
1150        PINMUX_DATA(VIO_CKO2_271_MARK,          PORT271_FN3),
1151        PINMUX_DATA(VIO_CKO1_272_MARK,          PORT272_FN3),
1152        PINMUX_DATA(VIO_CKO4_273_MARK,          PORT273_FN3),
1153
1154        /* Port274 */
1155        PINMUX_DATA(MSIOF4_SS2_MARK,            PORT274_FN1),
1156        PINMUX_DATA(TPU1TO0_MARK,               PORT274_FN4),
1157
1158        /* Port275 - Port280 */
1159        PINMUX_DATA(IC_DP_MARK,                 PORT275_FN1),
1160        PINMUX_DATA(SIM0_RST_MARK,              PORT276_FN1),
1161        PINMUX_DATA(IC_DM_MARK,                 PORT277_FN1),
1162        PINMUX_DATA(SIM0_BSICOMP_MARK,          PORT278_FN1),
1163        PINMUX_DATA(SIM0_CLK_MARK,              PORT279_FN1),
1164        PINMUX_DATA(SIM0_IO_MARK,               PORT280_FN1),
1165
1166        /* Port281 */
1167        PINMUX_DATA(SIM1_IO_MARK,               PORT281_FN1),
1168        PINMUX_DATA(PDM2_DATA_281_MARK,         PORT281_FN2,    MSEL3CR_12_1),
1169
1170        /* Port282 */
1171        PINMUX_DATA(SIM1_CLK_MARK,              PORT282_FN1),
1172        PINMUX_DATA(PDM2_CLK_282_MARK,          PORT282_FN2),
1173
1174        /* Port283 */
1175        PINMUX_DATA(SIM1_RST_MARK,              PORT283_FN1),
1176
1177        /* Port289 */
1178        PINMUX_DATA(SDHID1_0_MARK,              PORT289_FN1),
1179        PINMUX_DATA(STMDATA0_2_MARK,            PORT289_FN3),
1180
1181        /* Port290 */
1182        PINMUX_DATA(SDHID1_1_MARK,              PORT290_FN1),
1183        PINMUX_DATA(STMDATA1_2_MARK,            PORT290_FN3),
1184        PINMUX_DATA(IRQ51_MARK,                 PORT290_FN0),
1185
1186        /* Port291 - Port294 FN1 */
1187        PINMUX_DATA(SDHID1_2_MARK,              PORT291_FN1),
1188        PINMUX_DATA(SDHID1_3_MARK,              PORT292_FN1),
1189        PINMUX_DATA(SDHICLK1_MARK,              PORT293_FN1),
1190        PINMUX_DATA(SDHICMD1_MARK,              PORT294_FN1),
1191
1192        /* Port291 - Port294 FN3 */
1193        PINMUX_DATA(STMDATA2_2_MARK,            PORT291_FN3),
1194        PINMUX_DATA(STMDATA3_2_MARK,            PORT292_FN3),
1195        PINMUX_DATA(STMCLK_2_MARK,              PORT293_FN3),
1196        PINMUX_DATA(STMSIDI_2_MARK,             PORT294_FN3),
1197
1198        /* Port295 */
1199        PINMUX_DATA(SDHID2_0_MARK,              PORT295_FN1),
1200        PINMUX_DATA(MSIOF4_TXD_MARK,            PORT295_FN2),
1201        PINMUX_DATA(SCIFB2_TXD_295_MARK,        PORT295_FN3,    MSEL3CR_10_1),
1202        PINMUX_DATA(MSIOF6_TXD_MARK,            PORT295_FN4),
1203
1204        /* Port296 */
1205        PINMUX_DATA(SDHID2_1_MARK,              PORT296_FN1),
1206        PINMUX_DATA(MSIOF6_SS2_MARK,            PORT296_FN4),
1207        PINMUX_DATA(IRQ52_MARK,                 PORT296_FN0),
1208
1209        /* Port297 - Port300 FN1 */
1210        PINMUX_DATA(SDHID2_2_MARK,              PORT297_FN1),
1211        PINMUX_DATA(SDHID2_3_MARK,              PORT298_FN1),
1212        PINMUX_DATA(SDHICLK2_MARK,              PORT299_FN1),
1213        PINMUX_DATA(SDHICMD2_MARK,              PORT300_FN1),
1214
1215        /* Port297 - Port300 FN2 */
1216        PINMUX_DATA(MSIOF4_RXD_MARK,            PORT297_FN2),
1217        PINMUX_DATA(MSIOF4_SYNC_MARK,           PORT298_FN2),
1218        PINMUX_DATA(MSIOF4_SCK_MARK,            PORT299_FN2),
1219        PINMUX_DATA(MSIOF4_SS1_MARK,            PORT300_FN2),
1220
1221        /* Port297 - Port300 FN3 */
1222        PINMUX_DATA(SCIFB2_RXD_297_MARK,        PORT297_FN3,    MSEL3CR_10_1),
1223        PINMUX_DATA(SCIFB2_CTS_298_MARK,        PORT298_FN3,    MSEL3CR_10_1),
1224        PINMUX_DATA(SCIFB2_SCK_299_MARK,        PORT299_FN3),
1225        PINMUX_DATA(SCIFB2_RTS_300_MARK,        PORT300_FN3),
1226
1227        /* Port297 - Port300 FN4 */
1228        PINMUX_DATA(MSIOF6_RXD_MARK,            PORT297_FN4),
1229        PINMUX_DATA(MSIOF6_SYNC_MARK,           PORT298_FN4),
1230        PINMUX_DATA(MSIOF6_SCK_MARK,            PORT299_FN4),
1231        PINMUX_DATA(MSIOF6_SS1_MARK,            PORT300_FN4),
1232
1233        /* Port301 */
1234        PINMUX_DATA(SDHICD0_MARK,               PORT301_FN1),
1235        PINMUX_DATA(IRQ50_MARK,                 PORT301_FN0),
1236
1237        /* Port302 - Port306 FN1 */
1238        PINMUX_DATA(SDHID0_0_MARK,              PORT302_FN1),
1239        PINMUX_DATA(SDHID0_1_MARK,              PORT303_FN1),
1240        PINMUX_DATA(SDHID0_2_MARK,              PORT304_FN1),
1241        PINMUX_DATA(SDHID0_3_MARK,              PORT305_FN1),
1242        PINMUX_DATA(SDHICMD0_MARK,              PORT306_FN1),
1243
1244        /* Port302 - Port306 FN3 */
1245        PINMUX_DATA(STMDATA0_1_MARK,            PORT302_FN3),
1246        PINMUX_DATA(STMDATA1_1_MARK,            PORT303_FN3),
1247        PINMUX_DATA(STMDATA2_1_MARK,            PORT304_FN3),
1248        PINMUX_DATA(STMDATA3_1_MARK,            PORT305_FN3),
1249        PINMUX_DATA(STMSIDI_1_MARK,             PORT306_FN3),
1250
1251        /* Port307 */
1252        PINMUX_DATA(SDHIWP0_MARK,               PORT307_FN1),
1253
1254        /* Port308 */
1255        PINMUX_DATA(SDHICLK0_MARK,              PORT308_FN1),
1256        PINMUX_DATA(STMCLK_1_MARK,              PORT308_FN3),
1257
1258        /* Port320 - Port329 */
1259        PINMUX_DATA(IRQ16_MARK,                 PORT320_FN0),
1260        PINMUX_DATA(IRQ17_MARK,                 PORT321_FN0),
1261        PINMUX_DATA(IRQ28_MARK,                 PORT322_FN0),
1262        PINMUX_DATA(IRQ29_MARK,                 PORT323_FN0),
1263        PINMUX_DATA(IRQ30_MARK,                 PORT324_FN0),
1264        PINMUX_DATA(IRQ53_MARK,                 PORT325_FN0),
1265        PINMUX_DATA(IRQ54_MARK,                 PORT326_FN0),
1266        PINMUX_DATA(IRQ55_MARK,                 PORT327_FN0),
1267        PINMUX_DATA(IRQ56_MARK,                 PORT328_FN0),
1268        PINMUX_DATA(IRQ57_MARK,                 PORT329_FN0),
1269};
1270
1271#define __O     (SH_PFC_PIN_CFG_OUTPUT)
1272#define __IO    (SH_PFC_PIN_CFG_INPUT | SH_PFC_PIN_CFG_OUTPUT)
1273#define __PUD   (SH_PFC_PIN_CFG_PULL_DOWN | SH_PFC_PIN_CFG_PULL_UP)
1274
1275#define R8A73A4_PIN_IO_PU_PD(pin)       SH_PFC_PIN_CFG(pin, __IO | __PUD)
1276#define R8A73A4_PIN_O(pin)              SH_PFC_PIN_CFG(pin, __O)
1277
1278static const struct sh_pfc_pin pinmux_pins[] = {
1279        R8A73A4_PIN_IO_PU_PD(0), R8A73A4_PIN_IO_PU_PD(1),
1280        R8A73A4_PIN_IO_PU_PD(2), R8A73A4_PIN_IO_PU_PD(3),
1281        R8A73A4_PIN_IO_PU_PD(4), R8A73A4_PIN_IO_PU_PD(5),
1282        R8A73A4_PIN_IO_PU_PD(6), R8A73A4_PIN_IO_PU_PD(7),
1283        R8A73A4_PIN_IO_PU_PD(8), R8A73A4_PIN_IO_PU_PD(9),
1284        R8A73A4_PIN_IO_PU_PD(10), R8A73A4_PIN_IO_PU_PD(11),
1285        R8A73A4_PIN_IO_PU_PD(12), R8A73A4_PIN_IO_PU_PD(13),
1286        R8A73A4_PIN_IO_PU_PD(14), R8A73A4_PIN_IO_PU_PD(15),
1287        R8A73A4_PIN_IO_PU_PD(16), R8A73A4_PIN_IO_PU_PD(17),
1288        R8A73A4_PIN_IO_PU_PD(18), R8A73A4_PIN_IO_PU_PD(19),
1289        R8A73A4_PIN_IO_PU_PD(20), R8A73A4_PIN_IO_PU_PD(21),
1290        R8A73A4_PIN_IO_PU_PD(22), R8A73A4_PIN_IO_PU_PD(23),
1291        R8A73A4_PIN_IO_PU_PD(24), R8A73A4_PIN_IO_PU_PD(25),
1292        R8A73A4_PIN_IO_PU_PD(26), R8A73A4_PIN_IO_PU_PD(27),
1293        R8A73A4_PIN_IO_PU_PD(28), R8A73A4_PIN_IO_PU_PD(29),
1294        R8A73A4_PIN_IO_PU_PD(30),
1295        R8A73A4_PIN_IO_PU_PD(32), R8A73A4_PIN_IO_PU_PD(33),
1296        R8A73A4_PIN_IO_PU_PD(34), R8A73A4_PIN_IO_PU_PD(35),
1297        R8A73A4_PIN_IO_PU_PD(36), R8A73A4_PIN_IO_PU_PD(37),
1298        R8A73A4_PIN_IO_PU_PD(38), R8A73A4_PIN_IO_PU_PD(39),
1299        R8A73A4_PIN_IO_PU_PD(40),
1300        R8A73A4_PIN_IO_PU_PD(64), R8A73A4_PIN_IO_PU_PD(65),
1301        R8A73A4_PIN_IO_PU_PD(66), R8A73A4_PIN_IO_PU_PD(67),
1302        R8A73A4_PIN_IO_PU_PD(68), R8A73A4_PIN_IO_PU_PD(69),
1303        R8A73A4_PIN_IO_PU_PD(70), R8A73A4_PIN_IO_PU_PD(71),
1304        R8A73A4_PIN_IO_PU_PD(72), R8A73A4_PIN_IO_PU_PD(73),
1305        R8A73A4_PIN_O(74), R8A73A4_PIN_IO_PU_PD(75),
1306        R8A73A4_PIN_IO_PU_PD(76), R8A73A4_PIN_IO_PU_PD(77),
1307        R8A73A4_PIN_IO_PU_PD(78), R8A73A4_PIN_IO_PU_PD(79),
1308        R8A73A4_PIN_IO_PU_PD(80), R8A73A4_PIN_IO_PU_PD(81),
1309        R8A73A4_PIN_IO_PU_PD(82), R8A73A4_PIN_IO_PU_PD(83),
1310        R8A73A4_PIN_IO_PU_PD(84), R8A73A4_PIN_IO_PU_PD(85),
1311        R8A73A4_PIN_IO_PU_PD(96), R8A73A4_PIN_IO_PU_PD(97),
1312        R8A73A4_PIN_IO_PU_PD(98), R8A73A4_PIN_IO_PU_PD(99),
1313        R8A73A4_PIN_IO_PU_PD(100), R8A73A4_PIN_IO_PU_PD(101),
1314        R8A73A4_PIN_IO_PU_PD(102), R8A73A4_PIN_IO_PU_PD(103),
1315        R8A73A4_PIN_IO_PU_PD(104), R8A73A4_PIN_IO_PU_PD(105),
1316        R8A73A4_PIN_IO_PU_PD(106), R8A73A4_PIN_IO_PU_PD(107),
1317        R8A73A4_PIN_IO_PU_PD(108), R8A73A4_PIN_IO_PU_PD(109),
1318        R8A73A4_PIN_IO_PU_PD(110), R8A73A4_PIN_IO_PU_PD(111),
1319        R8A73A4_PIN_IO_PU_PD(112), R8A73A4_PIN_IO_PU_PD(113),
1320        R8A73A4_PIN_IO_PU_PD(114), R8A73A4_PIN_IO_PU_PD(115),
1321        R8A73A4_PIN_IO_PU_PD(116), R8A73A4_PIN_IO_PU_PD(117),
1322        R8A73A4_PIN_IO_PU_PD(118), R8A73A4_PIN_IO_PU_PD(119),
1323        R8A73A4_PIN_IO_PU_PD(120), R8A73A4_PIN_IO_PU_PD(121),
1324        R8A73A4_PIN_IO_PU_PD(122), R8A73A4_PIN_IO_PU_PD(123),
1325        R8A73A4_PIN_IO_PU_PD(124), R8A73A4_PIN_IO_PU_PD(125),
1326        R8A73A4_PIN_IO_PU_PD(126),
1327        R8A73A4_PIN_IO_PU_PD(128), R8A73A4_PIN_IO_PU_PD(129),
1328        R8A73A4_PIN_IO_PU_PD(130), R8A73A4_PIN_IO_PU_PD(131),
1329        R8A73A4_PIN_IO_PU_PD(132), R8A73A4_PIN_IO_PU_PD(133),
1330        R8A73A4_PIN_IO_PU_PD(134),
1331        R8A73A4_PIN_IO_PU_PD(160), R8A73A4_PIN_IO_PU_PD(161),
1332        R8A73A4_PIN_IO_PU_PD(162), R8A73A4_PIN_IO_PU_PD(163),
1333        R8A73A4_PIN_IO_PU_PD(164), R8A73A4_PIN_IO_PU_PD(165),
1334        R8A73A4_PIN_IO_PU_PD(166), R8A73A4_PIN_IO_PU_PD(167),
1335        R8A73A4_PIN_IO_PU_PD(168), R8A73A4_PIN_IO_PU_PD(169),
1336        R8A73A4_PIN_IO_PU_PD(170), R8A73A4_PIN_IO_PU_PD(171),
1337        R8A73A4_PIN_IO_PU_PD(172), R8A73A4_PIN_IO_PU_PD(173),
1338        R8A73A4_PIN_IO_PU_PD(174), R8A73A4_PIN_IO_PU_PD(175),
1339        R8A73A4_PIN_IO_PU_PD(176), R8A73A4_PIN_IO_PU_PD(177),
1340        R8A73A4_PIN_IO_PU_PD(178),
1341        R8A73A4_PIN_IO_PU_PD(192), R8A73A4_PIN_IO_PU_PD(193),
1342        R8A73A4_PIN_IO_PU_PD(194), R8A73A4_PIN_IO_PU_PD(195),
1343        R8A73A4_PIN_IO_PU_PD(196), R8A73A4_PIN_IO_PU_PD(197),
1344        R8A73A4_PIN_IO_PU_PD(198), R8A73A4_PIN_IO_PU_PD(199),
1345        R8A73A4_PIN_IO_PU_PD(200), R8A73A4_PIN_IO_PU_PD(201),
1346        R8A73A4_PIN_IO_PU_PD(202), R8A73A4_PIN_IO_PU_PD(203),
1347        R8A73A4_PIN_IO_PU_PD(204), R8A73A4_PIN_IO_PU_PD(205),
1348        R8A73A4_PIN_IO_PU_PD(206), R8A73A4_PIN_IO_PU_PD(207),
1349        R8A73A4_PIN_IO_PU_PD(208), R8A73A4_PIN_IO_PU_PD(209),
1350        R8A73A4_PIN_IO_PU_PD(210), R8A73A4_PIN_IO_PU_PD(211),
1351        R8A73A4_PIN_IO_PU_PD(212), R8A73A4_PIN_IO_PU_PD(213),
1352        R8A73A4_PIN_IO_PU_PD(214), R8A73A4_PIN_IO_PU_PD(215),
1353        R8A73A4_PIN_IO_PU_PD(216), R8A73A4_PIN_IO_PU_PD(217),
1354        R8A73A4_PIN_IO_PU_PD(218), R8A73A4_PIN_IO_PU_PD(219),
1355        R8A73A4_PIN_IO_PU_PD(220), R8A73A4_PIN_IO_PU_PD(221),
1356        R8A73A4_PIN_IO_PU_PD(222),
1357        R8A73A4_PIN_IO_PU_PD(224), R8A73A4_PIN_IO_PU_PD(225),
1358        R8A73A4_PIN_IO_PU_PD(226), R8A73A4_PIN_IO_PU_PD(227),
1359        R8A73A4_PIN_IO_PU_PD(228), R8A73A4_PIN_IO_PU_PD(229),
1360        R8A73A4_PIN_IO_PU_PD(230), R8A73A4_PIN_IO_PU_PD(231),
1361        R8A73A4_PIN_IO_PU_PD(232), R8A73A4_PIN_IO_PU_PD(233),
1362        R8A73A4_PIN_IO_PU_PD(234), R8A73A4_PIN_IO_PU_PD(235),
1363        R8A73A4_PIN_IO_PU_PD(236), R8A73A4_PIN_IO_PU_PD(237),
1364        R8A73A4_PIN_IO_PU_PD(238), R8A73A4_PIN_IO_PU_PD(239),
1365        R8A73A4_PIN_IO_PU_PD(240), R8A73A4_PIN_IO_PU_PD(241),
1366        R8A73A4_PIN_IO_PU_PD(242), R8A73A4_PIN_IO_PU_PD(243),
1367        R8A73A4_PIN_IO_PU_PD(244), R8A73A4_PIN_IO_PU_PD(245),
1368        R8A73A4_PIN_IO_PU_PD(246), R8A73A4_PIN_IO_PU_PD(247),
1369        R8A73A4_PIN_IO_PU_PD(248), R8A73A4_PIN_IO_PU_PD(249),
1370        R8A73A4_PIN_IO_PU_PD(250),
1371        R8A73A4_PIN_IO_PU_PD(256), R8A73A4_PIN_IO_PU_PD(257),
1372        R8A73A4_PIN_IO_PU_PD(258), R8A73A4_PIN_IO_PU_PD(259),
1373        R8A73A4_PIN_IO_PU_PD(260), R8A73A4_PIN_IO_PU_PD(261),
1374        R8A73A4_PIN_IO_PU_PD(262), R8A73A4_PIN_IO_PU_PD(263),
1375        R8A73A4_PIN_IO_PU_PD(264), R8A73A4_PIN_IO_PU_PD(265),
1376        R8A73A4_PIN_IO_PU_PD(266), R8A73A4_PIN_IO_PU_PD(267),
1377        R8A73A4_PIN_IO_PU_PD(268), R8A73A4_PIN_IO_PU_PD(269),
1378        R8A73A4_PIN_IO_PU_PD(270), R8A73A4_PIN_IO_PU_PD(271),
1379        R8A73A4_PIN_IO_PU_PD(272), R8A73A4_PIN_IO_PU_PD(273),
1380        R8A73A4_PIN_IO_PU_PD(274), R8A73A4_PIN_IO_PU_PD(275),
1381        R8A73A4_PIN_IO_PU_PD(276), R8A73A4_PIN_IO_PU_PD(277),
1382        R8A73A4_PIN_IO_PU_PD(278), R8A73A4_PIN_IO_PU_PD(279),
1383        R8A73A4_PIN_IO_PU_PD(280), R8A73A4_PIN_IO_PU_PD(281),
1384        R8A73A4_PIN_IO_PU_PD(282), R8A73A4_PIN_IO_PU_PD(283),
1385        R8A73A4_PIN_O(288), R8A73A4_PIN_IO_PU_PD(289),
1386        R8A73A4_PIN_IO_PU_PD(290), R8A73A4_PIN_IO_PU_PD(291),
1387        R8A73A4_PIN_IO_PU_PD(292), R8A73A4_PIN_IO_PU_PD(293),
1388        R8A73A4_PIN_IO_PU_PD(294), R8A73A4_PIN_IO_PU_PD(295),
1389        R8A73A4_PIN_IO_PU_PD(296), R8A73A4_PIN_IO_PU_PD(297),
1390        R8A73A4_PIN_IO_PU_PD(298), R8A73A4_PIN_IO_PU_PD(299),
1391        R8A73A4_PIN_IO_PU_PD(300), R8A73A4_PIN_IO_PU_PD(301),
1392        R8A73A4_PIN_IO_PU_PD(302), R8A73A4_PIN_IO_PU_PD(303),
1393        R8A73A4_PIN_IO_PU_PD(304), R8A73A4_PIN_IO_PU_PD(305),
1394        R8A73A4_PIN_IO_PU_PD(306), R8A73A4_PIN_IO_PU_PD(307),
1395        R8A73A4_PIN_IO_PU_PD(308),
1396        R8A73A4_PIN_IO_PU_PD(320), R8A73A4_PIN_IO_PU_PD(321),
1397        R8A73A4_PIN_IO_PU_PD(322), R8A73A4_PIN_IO_PU_PD(323),
1398        R8A73A4_PIN_IO_PU_PD(324), R8A73A4_PIN_IO_PU_PD(325),
1399        R8A73A4_PIN_IO_PU_PD(326), R8A73A4_PIN_IO_PU_PD(327),
1400        R8A73A4_PIN_IO_PU_PD(328), R8A73A4_PIN_IO_PU_PD(329),
1401};
1402
1403/* - IRQC ------------------------------------------------------------------- */
1404#define IRQC_PINS_MUX(pin, irq_mark)                            \
1405static const unsigned int irqc_irq##irq_mark##_pins[] = {       \
1406        pin,                                                    \
1407};                                                              \
1408static const unsigned int irqc_irq##irq_mark##_mux[] = {        \
1409        IRQ##irq_mark##_MARK,                                   \
1410}
1411IRQC_PINS_MUX(0, 0);
1412IRQC_PINS_MUX(1, 1);
1413IRQC_PINS_MUX(2, 2);
1414IRQC_PINS_MUX(3, 3);
1415IRQC_PINS_MUX(4, 4);
1416IRQC_PINS_MUX(5, 5);
1417IRQC_PINS_MUX(6, 6);
1418IRQC_PINS_MUX(7, 7);
1419IRQC_PINS_MUX(8, 8);
1420IRQC_PINS_MUX(9, 9);
1421IRQC_PINS_MUX(10, 10);
1422IRQC_PINS_MUX(11, 11);
1423IRQC_PINS_MUX(12, 12);
1424IRQC_PINS_MUX(13, 13);
1425IRQC_PINS_MUX(14, 14);
1426IRQC_PINS_MUX(15, 15);
1427IRQC_PINS_MUX(66, 40);
1428IRQC_PINS_MUX(84, 19);
1429IRQC_PINS_MUX(85, 18);
1430IRQC_PINS_MUX(102, 41);
1431IRQC_PINS_MUX(103, 42);
1432IRQC_PINS_MUX(109, 43);
1433IRQC_PINS_MUX(110, 44);
1434IRQC_PINS_MUX(111, 45);
1435IRQC_PINS_MUX(112, 46);
1436IRQC_PINS_MUX(113, 47);
1437IRQC_PINS_MUX(114, 48);
1438IRQC_PINS_MUX(115, 49);
1439IRQC_PINS_MUX(160, 20);
1440IRQC_PINS_MUX(161, 21);
1441IRQC_PINS_MUX(162, 22);
1442IRQC_PINS_MUX(163, 23);
1443IRQC_PINS_MUX(175, 24);
1444IRQC_PINS_MUX(176, 25);
1445IRQC_PINS_MUX(177, 26);
1446IRQC_PINS_MUX(178, 27);
1447IRQC_PINS_MUX(192, 31);
1448IRQC_PINS_MUX(193, 32);
1449IRQC_PINS_MUX(194, 33);
1450IRQC_PINS_MUX(195, 34);
1451IRQC_PINS_MUX(196, 35);
1452IRQC_PINS_MUX(197, 36);
1453IRQC_PINS_MUX(198, 37);
1454IRQC_PINS_MUX(199, 38);
1455IRQC_PINS_MUX(200, 39);
1456IRQC_PINS_MUX(290, 51);
1457IRQC_PINS_MUX(296, 52);
1458IRQC_PINS_MUX(301, 50);
1459IRQC_PINS_MUX(320, 16);
1460IRQC_PINS_MUX(321, 17);
1461IRQC_PINS_MUX(322, 28);
1462IRQC_PINS_MUX(323, 29);
1463IRQC_PINS_MUX(324, 30);
1464IRQC_PINS_MUX(325, 53);
1465IRQC_PINS_MUX(326, 54);
1466IRQC_PINS_MUX(327, 55);
1467IRQC_PINS_MUX(328, 56);
1468IRQC_PINS_MUX(329, 57);
1469/* - MMCIF0 ----------------------------------------------------------------- */
1470static const unsigned int mmc0_data1_pins[] = {
1471        /* D[0] */
1472        164,
1473};
1474static const unsigned int mmc0_data1_mux[] = {
1475        MMCD0_0_MARK,
1476};
1477static const unsigned int mmc0_data4_pins[] = {
1478        /* D[0:3] */
1479        164, 165, 166, 167,
1480};
1481static const unsigned int mmc0_data4_mux[] = {
1482        MMCD0_0_MARK, MMCD0_1_MARK, MMCD0_2_MARK, MMCD0_3_MARK,
1483};
1484static const unsigned int mmc0_data8_pins[] = {
1485        /* D[0:7] */
1486        164, 165, 166, 167, 168, 169, 170, 171,
1487};
1488static const unsigned int mmc0_data8_mux[] = {
1489        MMCD0_0_MARK, MMCD0_1_MARK, MMCD0_2_MARK, MMCD0_3_MARK,
1490        MMCD0_4_MARK, MMCD0_5_MARK, MMCD0_6_MARK, MMCD0_7_MARK,
1491};
1492static const unsigned int mmc0_ctrl_pins[] = {
1493        /* CMD, CLK */
1494        172, 173,
1495};
1496static const unsigned int mmc0_ctrl_mux[] = {
1497        MMCCMD0_MARK, MMCCLK0_MARK,
1498};
1499/* - MMCIF1 ----------------------------------------------------------------- */
1500static const unsigned int mmc1_data1_pins[] = {
1501        /* D[0] */
1502        199,
1503};
1504static const unsigned int mmc1_data1_mux[] = {
1505        MMCD1_0_MARK,
1506};
1507static const unsigned int mmc1_data4_pins[] = {
1508        /* D[0:3] */
1509        199, 198, 197, 196,
1510};
1511static const unsigned int mmc1_data4_mux[] = {
1512        MMCD1_0_MARK, MMCD1_1_MARK, MMCD1_2_MARK, MMCD1_3_MARK,
1513};
1514static const unsigned int mmc1_data8_pins[] = {
1515        /* D[0:7] */
1516        199, 198, 197, 196, 195, 194, 193, 192,
1517};
1518static const unsigned int mmc1_data8_mux[] = {
1519        MMCD1_0_MARK, MMCD1_1_MARK, MMCD1_2_MARK, MMCD1_3_MARK,
1520        MMCD1_4_MARK, MMCD1_5_MARK, MMCD1_6_MARK, MMCD1_7_MARK,
1521};
1522static const unsigned int mmc1_ctrl_pins[] = {
1523        /* CMD, CLK */
1524        200, 203,
1525};
1526static const unsigned int mmc1_ctrl_mux[] = {
1527        MMCCMD1_MARK, MMCCLK1_MARK,
1528};
1529/* - SCIFA0 ----------------------------------------------------------------- */
1530static const unsigned int scifa0_data_pins[] = {
1531        /* SCIFA0_RXD, SCIFA0_TXD */
1532        117, 116,
1533};
1534static const unsigned int scifa0_data_mux[] = {
1535        SCIFA0_RXD_MARK, SCIFA0_TXD_MARK,
1536};
1537static const unsigned int scifa0_clk_pins[] = {
1538        /* SCIFA0_SCK */
1539        34,
1540};
1541static const unsigned int scifa0_clk_mux[] = {
1542        SCIFA0_SCK_MARK,
1543};
1544static const unsigned int scifa0_ctrl_pins[] = {
1545        /* SCIFA0_RTS, SCIFA0_CTS */
1546        32, 33,
1547};
1548static const unsigned int scifa0_ctrl_mux[] = {
1549        SCIFA0_RTS_MARK, SCIFA0_CTS_MARK,
1550};
1551/* - SCIFA1 ----------------------------------------------------------------- */
1552static const unsigned int scifa1_data_pins[] = {
1553        /* SCIFA1_RXD, SCIFA1_TXD */
1554        119, 118,
1555};
1556static const unsigned int scifa1_data_mux[] = {
1557        SCIFA1_RXD_MARK, SCIFA1_TXD_MARK,
1558};
1559static const unsigned int scifa1_clk_pins[] = {
1560        /* SCIFA1_SCK */
1561        37,
1562};
1563static const unsigned int scifa1_clk_mux[] = {
1564        SCIFA1_SCK_MARK,
1565};
1566static const unsigned int scifa1_ctrl_pins[] = {
1567        /* SCIFA1_RTS, SCIFA1_CTS */
1568        35, 36,
1569};
1570static const unsigned int scifa1_ctrl_mux[] = {
1571        SCIFA1_RTS_MARK, SCIFA1_CTS_MARK,
1572};
1573/* - SCIFB0 ----------------------------------------------------------------- */
1574static const unsigned int scifb0_data_pins[] = {
1575        /* SCIFB0_RXD, SCIFB0_TXD */
1576        123, 122,
1577};
1578static const unsigned int scifb0_data_mux[] = {
1579        SCIFB0_RXD_MARK, SCIFB0_TXD_MARK,
1580};
1581static const unsigned int scifb0_clk_pins[] = {
1582        /* SCIFB0_SCK */
1583        40,
1584};
1585static const unsigned int scifb0_clk_mux[] = {
1586        SCIFB0_SCK_MARK,
1587};
1588static const unsigned int scifb0_ctrl_pins[] = {
1589        /* SCIFB0_RTS, SCIFB0_CTS */
1590        38, 39,
1591};
1592static const unsigned int scifb0_ctrl_mux[] = {
1593        SCIFB0_RTS_MARK, SCIFB0_CTS_MARK,
1594};
1595/* - SCIFB1 ----------------------------------------------------------------- */
1596static const unsigned int scifb1_data_pins[] = {
1597        /* SCIFB1_RXD, SCIFB1_TXD */
1598        27, 26,
1599};
1600static const unsigned int scifb1_data_mux[] = {
1601        SCIFB1_RXD_27_MARK, SCIFB1_TXD_26_MARK,
1602};
1603static const unsigned int scifb1_clk_pins[] = {
1604        /* SCIFB1_SCK */
1605        28,
1606};
1607static const unsigned int scifb1_clk_mux[] = {
1608        SCIFB1_SCK_28_MARK,
1609};
1610static const unsigned int scifb1_ctrl_pins[] = {
1611        /* SCIFB1_RTS, SCIFB1_CTS */
1612        24, 25,
1613};
1614static const unsigned int scifb1_ctrl_mux[] = {
1615        SCIFB1_RTS_24_MARK, SCIFB1_CTS_25_MARK,
1616};
1617static const unsigned int scifb1_data_b_pins[] = {
1618        /* SCIFB1_RXD, SCIFB1_TXD */
1619        72, 67,
1620};
1621static const unsigned int scifb1_data_b_mux[] = {
1622        SCIFB1_RXD_72_MARK, SCIFB1_TXD_67_MARK,
1623};
1624static const unsigned int scifb1_clk_b_pins[] = {
1625        /* SCIFB1_SCK */
1626        261,
1627};
1628static const unsigned int scifb1_clk_b_mux[] = {
1629        SCIFB1_SCK_261_MARK,
1630};
1631static const unsigned int scifb1_ctrl_b_pins[] = {
1632        /* SCIFB1_RTS, SCIFB1_CTS */
1633        70, 71,
1634};
1635static const unsigned int scifb1_ctrl_b_mux[] = {
1636        SCIFB1_RTS_70_MARK, SCIFB1_CTS_71_MARK,
1637};
1638/* - SCIFB2 ----------------------------------------------------------------- */
1639static const unsigned int scifb2_data_pins[] = {
1640        /* SCIFB2_RXD, SCIFB2_TXD */
1641        69, 68,
1642};
1643static const unsigned int scifb2_data_mux[] = {
1644        SCIFB2_RXD_69_MARK, SCIFB2_TXD_68_MARK,
1645};
1646static const unsigned int scifb2_clk_pins[] = {
1647        /* SCIFB2_SCK */
1648        262,
1649};
1650static const unsigned int scifb2_clk_mux[] = {
1651        SCIFB2_SCK_262_MARK,
1652};
1653static const unsigned int scifb2_ctrl_pins[] = {
1654        /* SCIFB2_RTS, SCIFB2_CTS */
1655        73, 66,
1656};
1657static const unsigned int scifb2_ctrl_mux[] = {
1658        SCIFB2_RTS_73_MARK, SCIFB2_CTS_66_MARK,
1659};
1660static const unsigned int scifb2_data_b_pins[] = {
1661        /* SCIFB2_RXD, SCIFB2_TXD */
1662        297, 295,
1663};
1664static const unsigned int scifb2_data_b_mux[] = {
1665        SCIFB2_RXD_297_MARK, SCIFB2_TXD_295_MARK,
1666};
1667static const unsigned int scifb2_clk_b_pins[] = {
1668        /* SCIFB2_SCK */
1669        299,
1670};
1671static const unsigned int scifb2_clk_b_mux[] = {
1672        SCIFB2_SCK_299_MARK,
1673};
1674static const unsigned int scifb2_ctrl_b_pins[] = {
1675        /* SCIFB2_RTS, SCIFB2_CTS */
1676        300, 298,
1677};
1678static const unsigned int scifb2_ctrl_b_mux[] = {
1679        SCIFB2_RTS_300_MARK, SCIFB2_CTS_298_MARK,
1680};
1681/* - SCIFB3 ----------------------------------------------------------------- */
1682static const unsigned int scifb3_data_pins[] = {
1683        /* SCIFB3_RXD, SCIFB3_TXD */
1684        22, 21,
1685};
1686static const unsigned int scifb3_data_mux[] = {
1687        SCIFB3_RXD_22_MARK, SCIFB3_TXD_21_MARK,
1688};
1689static const unsigned int scifb3_clk_pins[] = {
1690        /* SCIFB3_SCK */
1691        23,
1692};
1693static const unsigned int scifb3_clk_mux[] = {
1694        SCIFB3_SCK_23_MARK,
1695};
1696static const unsigned int scifb3_ctrl_pins[] = {
1697        /* SCIFB3_RTS, SCIFB3_CTS */
1698        19, 20,
1699};
1700static const unsigned int scifb3_ctrl_mux[] = {
1701        SCIFB3_RTS_19_MARK, SCIFB3_CTS_20_MARK,
1702};
1703static const unsigned int scifb3_data_b_pins[] = {
1704        /* SCIFB3_RXD, SCIFB3_TXD */
1705        120, 121,
1706};
1707static const unsigned int scifb3_data_b_mux[] = {
1708        SCIFB3_RXD_120_MARK, SCIFB3_TXD_121_MARK,
1709};
1710static const unsigned int scifb3_clk_b_pins[] = {
1711        /* SCIFB3_SCK */
1712        40,
1713};
1714static const unsigned int scifb3_clk_b_mux[] = {
1715        SCIFB3_SCK_40_MARK,
1716};
1717static const unsigned int scifb3_ctrl_b_pins[] = {
1718        /* SCIFB3_RTS, SCIFB3_CTS */
1719        38, 39,
1720};
1721static const unsigned int scifb3_ctrl_b_mux[] = {
1722        SCIFB3_RTS_38_MARK, SCIFB3_CTS_39_MARK,
1723};
1724/* - SDHI0 ------------------------------------------------------------------ */
1725static const unsigned int sdhi0_data1_pins[] = {
1726        /* D0 */
1727        302,
1728};
1729static const unsigned int sdhi0_data1_mux[] = {
1730        SDHID0_0_MARK,
1731};
1732static const unsigned int sdhi0_data4_pins[] = {
1733        /* D[0:3] */
1734        302, 303, 304, 305,
1735};
1736static const unsigned int sdhi0_data4_mux[] = {
1737        SDHID0_0_MARK, SDHID0_1_MARK, SDHID0_2_MARK, SDHID0_3_MARK,
1738};
1739static const unsigned int sdhi0_ctrl_pins[] = {
1740        /* CLK, CMD */
1741        308, 306,
1742};
1743static const unsigned int sdhi0_ctrl_mux[] = {
1744        SDHICLK0_MARK, SDHICMD0_MARK,
1745};
1746static const unsigned int sdhi0_cd_pins[] = {
1747        /* CD */
1748        301,
1749};
1750static const unsigned int sdhi0_cd_mux[] = {
1751        SDHICD0_MARK,
1752};
1753static const unsigned int sdhi0_wp_pins[] = {
1754        /* WP */
1755        307,
1756};
1757static const unsigned int sdhi0_wp_mux[] = {
1758        SDHIWP0_MARK,
1759};
1760/* - SDHI1 ------------------------------------------------------------------ */
1761static const unsigned int sdhi1_data1_pins[] = {
1762        /* D0 */
1763        289,
1764};
1765static const unsigned int sdhi1_data1_mux[] = {
1766        SDHID1_0_MARK,
1767};
1768static const unsigned int sdhi1_data4_pins[] = {
1769        /* D[0:3] */
1770        289, 290, 291, 292,
1771};
1772static const unsigned int sdhi1_data4_mux[] = {
1773        SDHID1_0_MARK, SDHID1_1_MARK, SDHID1_2_MARK, SDHID1_3_MARK,
1774};
1775static const unsigned int sdhi1_ctrl_pins[] = {
1776        /* CLK, CMD */
1777        293, 294,
1778};
1779static const unsigned int sdhi1_ctrl_mux[] = {
1780        SDHICLK1_MARK, SDHICMD1_MARK,
1781};
1782/* - SDHI2 ------------------------------------------------------------------ */
1783static const unsigned int sdhi2_data1_pins[] = {
1784        /* D0 */
1785        295,
1786};
1787static const unsigned int sdhi2_data1_mux[] = {
1788        SDHID2_0_MARK,
1789};
1790static const unsigned int sdhi2_data4_pins[] = {
1791        /* D[0:3] */
1792        295, 296, 297, 298,
1793};
1794static const unsigned int sdhi2_data4_mux[] = {
1795        SDHID2_0_MARK, SDHID2_1_MARK, SDHID2_2_MARK, SDHID2_3_MARK,
1796};
1797static const unsigned int sdhi2_ctrl_pins[] = {
1798        /* CLK, CMD */
1799        299, 300,
1800};
1801static const unsigned int sdhi2_ctrl_mux[] = {
1802        SDHICLK2_MARK, SDHICMD2_MARK,
1803};
1804
1805static const struct sh_pfc_pin_group pinmux_groups[] = {
1806        SH_PFC_PIN_GROUP(irqc_irq0),
1807        SH_PFC_PIN_GROUP(irqc_irq1),
1808        SH_PFC_PIN_GROUP(irqc_irq2),
1809        SH_PFC_PIN_GROUP(irqc_irq3),
1810        SH_PFC_PIN_GROUP(irqc_irq4),
1811        SH_PFC_PIN_GROUP(irqc_irq5),
1812        SH_PFC_PIN_GROUP(irqc_irq6),
1813        SH_PFC_PIN_GROUP(irqc_irq7),
1814        SH_PFC_PIN_GROUP(irqc_irq8),
1815        SH_PFC_PIN_GROUP(irqc_irq9),
1816        SH_PFC_PIN_GROUP(irqc_irq10),
1817        SH_PFC_PIN_GROUP(irqc_irq11),
1818        SH_PFC_PIN_GROUP(irqc_irq12),
1819        SH_PFC_PIN_GROUP(irqc_irq13),
1820        SH_PFC_PIN_GROUP(irqc_irq14),
1821        SH_PFC_PIN_GROUP(irqc_irq15),
1822        SH_PFC_PIN_GROUP(irqc_irq16),
1823        SH_PFC_PIN_GROUP(irqc_irq17),
1824        SH_PFC_PIN_GROUP(irqc_irq18),
1825        SH_PFC_PIN_GROUP(irqc_irq19),
1826        SH_PFC_PIN_GROUP(irqc_irq20),
1827        SH_PFC_PIN_GROUP(irqc_irq21),
1828        SH_PFC_PIN_GROUP(irqc_irq22),
1829        SH_PFC_PIN_GROUP(irqc_irq23),
1830        SH_PFC_PIN_GROUP(irqc_irq24),
1831        SH_PFC_PIN_GROUP(irqc_irq25),
1832        SH_PFC_PIN_GROUP(irqc_irq26),
1833        SH_PFC_PIN_GROUP(irqc_irq27),
1834        SH_PFC_PIN_GROUP(irqc_irq28),
1835        SH_PFC_PIN_GROUP(irqc_irq29),
1836        SH_PFC_PIN_GROUP(irqc_irq30),
1837        SH_PFC_PIN_GROUP(irqc_irq31),
1838        SH_PFC_PIN_GROUP(irqc_irq32),
1839        SH_PFC_PIN_GROUP(irqc_irq33),
1840        SH_PFC_PIN_GROUP(irqc_irq34),
1841        SH_PFC_PIN_GROUP(irqc_irq35),
1842        SH_PFC_PIN_GROUP(irqc_irq36),
1843        SH_PFC_PIN_GROUP(irqc_irq37),
1844        SH_PFC_PIN_GROUP(irqc_irq38),
1845        SH_PFC_PIN_GROUP(irqc_irq39),
1846        SH_PFC_PIN_GROUP(irqc_irq40),
1847        SH_PFC_PIN_GROUP(irqc_irq41),
1848        SH_PFC_PIN_GROUP(irqc_irq42),
1849        SH_PFC_PIN_GROUP(irqc_irq43),
1850        SH_PFC_PIN_GROUP(irqc_irq44),
1851        SH_PFC_PIN_GROUP(irqc_irq45),
1852        SH_PFC_PIN_GROUP(irqc_irq46),
1853        SH_PFC_PIN_GROUP(irqc_irq47),
1854        SH_PFC_PIN_GROUP(irqc_irq48),
1855        SH_PFC_PIN_GROUP(irqc_irq49),
1856        SH_PFC_PIN_GROUP(irqc_irq50),
1857        SH_PFC_PIN_GROUP(irqc_irq51),
1858        SH_PFC_PIN_GROUP(irqc_irq52),
1859        SH_PFC_PIN_GROUP(irqc_irq53),
1860        SH_PFC_PIN_GROUP(irqc_irq54),
1861        SH_PFC_PIN_GROUP(irqc_irq55),
1862        SH_PFC_PIN_GROUP(irqc_irq56),
1863        SH_PFC_PIN_GROUP(irqc_irq57),
1864        SH_PFC_PIN_GROUP(mmc0_data1),
1865        SH_PFC_PIN_GROUP(mmc0_data4),
1866        SH_PFC_PIN_GROUP(mmc0_data8),
1867        SH_PFC_PIN_GROUP(mmc0_ctrl),
1868        SH_PFC_PIN_GROUP(mmc1_data1),
1869        SH_PFC_PIN_GROUP(mmc1_data4),
1870        SH_PFC_PIN_GROUP(mmc1_data8),
1871        SH_PFC_PIN_GROUP(mmc1_ctrl),
1872        SH_PFC_PIN_GROUP(scifa0_data),
1873        SH_PFC_PIN_GROUP(scifa0_clk),
1874        SH_PFC_PIN_GROUP(scifa0_ctrl),
1875        SH_PFC_PIN_GROUP(scifa1_data),
1876        SH_PFC_PIN_GROUP(scifa1_clk),
1877        SH_PFC_PIN_GROUP(scifa1_ctrl),
1878        SH_PFC_PIN_GROUP(scifb0_data),
1879        SH_PFC_PIN_GROUP(scifb0_clk),
1880        SH_PFC_PIN_GROUP(scifb0_ctrl),
1881        SH_PFC_PIN_GROUP(scifb1_data),
1882        SH_PFC_PIN_GROUP(scifb1_clk),
1883        SH_PFC_PIN_GROUP(scifb1_ctrl),
1884        SH_PFC_PIN_GROUP(scifb1_data_b),
1885        SH_PFC_PIN_GROUP(scifb1_clk_b),
1886        SH_PFC_PIN_GROUP(scifb1_ctrl_b),
1887        SH_PFC_PIN_GROUP(scifb2_data),
1888        SH_PFC_PIN_GROUP(scifb2_clk),
1889        SH_PFC_PIN_GROUP(scifb2_ctrl),
1890        SH_PFC_PIN_GROUP(scifb2_data_b),
1891        SH_PFC_PIN_GROUP(scifb2_clk_b),
1892        SH_PFC_PIN_GROUP(scifb2_ctrl_b),
1893        SH_PFC_PIN_GROUP(scifb3_data),
1894        SH_PFC_PIN_GROUP(scifb3_clk),
1895        SH_PFC_PIN_GROUP(scifb3_ctrl),
1896        SH_PFC_PIN_GROUP(scifb3_data_b),
1897        SH_PFC_PIN_GROUP(scifb3_clk_b),
1898        SH_PFC_PIN_GROUP(scifb3_ctrl_b),
1899        SH_PFC_PIN_GROUP(sdhi0_data1),
1900        SH_PFC_PIN_GROUP(sdhi0_data4),
1901        SH_PFC_PIN_GROUP(sdhi0_ctrl),
1902        SH_PFC_PIN_GROUP(sdhi0_cd),
1903        SH_PFC_PIN_GROUP(sdhi0_wp),
1904        SH_PFC_PIN_GROUP(sdhi1_data1),
1905        SH_PFC_PIN_GROUP(sdhi1_data4),
1906        SH_PFC_PIN_GROUP(sdhi1_ctrl),
1907        SH_PFC_PIN_GROUP(sdhi2_data1),
1908        SH_PFC_PIN_GROUP(sdhi2_data4),
1909        SH_PFC_PIN_GROUP(sdhi2_ctrl),
1910};
1911
1912static const char * const irqc_groups[] = {
1913        "irqc_irq0",
1914        "irqc_irq1",
1915        "irqc_irq2",
1916        "irqc_irq3",
1917        "irqc_irq4",
1918        "irqc_irq5",
1919        "irqc_irq6",
1920        "irqc_irq7",
1921        "irqc_irq8",
1922        "irqc_irq9",
1923        "irqc_irq10",
1924        "irqc_irq11",
1925        "irqc_irq12",
1926        "irqc_irq13",
1927        "irqc_irq14",
1928        "irqc_irq15",
1929        "irqc_irq16",
1930        "irqc_irq17",
1931        "irqc_irq18",
1932        "irqc_irq19",
1933        "irqc_irq20",
1934        "irqc_irq21",
1935        "irqc_irq22",
1936        "irqc_irq23",
1937        "irqc_irq24",
1938        "irqc_irq25",
1939        "irqc_irq26",
1940        "irqc_irq27",
1941        "irqc_irq28",
1942        "irqc_irq29",
1943        "irqc_irq30",
1944        "irqc_irq31",
1945        "irqc_irq32",
1946        "irqc_irq33",
1947        "irqc_irq34",
1948        "irqc_irq35",
1949        "irqc_irq36",
1950        "irqc_irq37",
1951        "irqc_irq38",
1952        "irqc_irq39",
1953        "irqc_irq40",
1954        "irqc_irq41",
1955        "irqc_irq42",
1956        "irqc_irq43",
1957        "irqc_irq44",
1958        "irqc_irq45",
1959        "irqc_irq46",
1960        "irqc_irq47",
1961        "irqc_irq48",
1962        "irqc_irq49",
1963        "irqc_irq50",
1964        "irqc_irq51",
1965        "irqc_irq52",
1966        "irqc_irq53",
1967        "irqc_irq54",
1968        "irqc_irq55",
1969        "irqc_irq56",
1970        "irqc_irq57",
1971};
1972
1973static const char * const mmc0_groups[] = {
1974        "mmc0_data1",
1975        "mmc0_data4",
1976        "mmc0_data8",
1977        "mmc0_ctrl",
1978};
1979
1980static const char * const mmc1_groups[] = {
1981        "mmc1_data1",
1982        "mmc1_data4",
1983        "mmc1_data8",
1984        "mmc1_ctrl",
1985};
1986
1987static const char * const scifa0_groups[] = {
1988        "scifa0_data",
1989        "scifa0_clk",
1990        "scifa0_ctrl",
1991};
1992
1993static const char * const scifa1_groups[] = {
1994        "scifa1_data",
1995        "scifa1_clk",
1996        "scifa1_ctrl",
1997};
1998
1999static const char * const scifb0_groups[] = {
2000        "scifb0_data",
2001        "scifb0_clk",
2002        "scifb0_ctrl",
2003};
2004
2005static const char * const scifb1_groups[] = {
2006        "scifb1_data",
2007        "scifb1_clk",
2008        "scifb1_ctrl",
2009        "scifb1_data_b",
2010        "scifb1_clk_b",
2011        "scifb1_ctrl_b",
2012};
2013
2014static const char * const scifb2_groups[] = {
2015        "scifb2_data",
2016        "scifb2_clk",
2017        "scifb2_ctrl",
2018        "scifb2_data_b",
2019        "scifb2_clk_b",
2020        "scifb2_ctrl_b",
2021};
2022
2023static const char * const scifb3_groups[] = {
2024        "scifb3_data",
2025        "scifb3_clk",
2026        "scifb3_ctrl",
2027        "scifb3_data_b",
2028        "scifb3_clk_b",
2029        "scifb3_ctrl_b",
2030};
2031
2032static const char * const sdhi0_groups[] = {
2033        "sdhi0_data1",
2034        "sdhi0_data4",
2035        "sdhi0_ctrl",
2036        "sdhi0_cd",
2037        "sdhi0_wp",
2038};
2039
2040static const char * const sdhi1_groups[] = {
2041        "sdhi1_data1",
2042        "sdhi1_data4",
2043        "sdhi1_ctrl",
2044};
2045
2046static const char * const sdhi2_groups[] = {
2047        "sdhi2_data1",
2048        "sdhi2_data4",
2049        "sdhi2_ctrl",
2050};
2051
2052static const struct sh_pfc_function pinmux_functions[] = {
2053        SH_PFC_FUNCTION(irqc),
2054        SH_PFC_FUNCTION(mmc0),
2055        SH_PFC_FUNCTION(mmc1),
2056        SH_PFC_FUNCTION(scifa0),
2057        SH_PFC_FUNCTION(scifa1),
2058        SH_PFC_FUNCTION(scifb0),
2059        SH_PFC_FUNCTION(scifb1),
2060        SH_PFC_FUNCTION(scifb2),
2061        SH_PFC_FUNCTION(scifb3),
2062        SH_PFC_FUNCTION(sdhi0),
2063        SH_PFC_FUNCTION(sdhi1),
2064        SH_PFC_FUNCTION(sdhi2),
2065};
2066
2067static const struct pinmux_cfg_reg pinmux_config_regs[] = {
2068        PORTCR(0, 0xe6050000),
2069        PORTCR(1, 0xe6050001),
2070        PORTCR(2, 0xe6050002),
2071        PORTCR(3, 0xe6050003),
2072        PORTCR(4, 0xe6050004),
2073        PORTCR(5, 0xe6050005),
2074        PORTCR(6, 0xe6050006),
2075        PORTCR(7, 0xe6050007),
2076        PORTCR(8, 0xe6050008),
2077        PORTCR(9, 0xe6050009),
2078        PORTCR(10, 0xe605000A),
2079        PORTCR(11, 0xe605000B),
2080        PORTCR(12, 0xe605000C),
2081        PORTCR(13, 0xe605000D),
2082        PORTCR(14, 0xe605000E),
2083        PORTCR(15, 0xe605000F),
2084        PORTCR(16, 0xe6050010),
2085        PORTCR(17, 0xe6050011),
2086        PORTCR(18, 0xe6050012),
2087        PORTCR(19, 0xe6050013),
2088        PORTCR(20, 0xe6050014),
2089        PORTCR(21, 0xe6050015),
2090        PORTCR(22, 0xe6050016),
2091        PORTCR(23, 0xe6050017),
2092        PORTCR(24, 0xe6050018),
2093        PORTCR(25, 0xe6050019),
2094        PORTCR(26, 0xe605001A),
2095        PORTCR(27, 0xe605001B),
2096        PORTCR(28, 0xe605001C),
2097        PORTCR(29, 0xe605001D),
2098        PORTCR(30, 0xe605001E),
2099        PORTCR(32, 0xe6051020),
2100        PORTCR(33, 0xe6051021),
2101        PORTCR(34, 0xe6051022),
2102        PORTCR(35, 0xe6051023),
2103        PORTCR(36, 0xe6051024),
2104        PORTCR(37, 0xe6051025),
2105        PORTCR(38, 0xe6051026),
2106        PORTCR(39, 0xe6051027),
2107        PORTCR(40, 0xe6051028),
2108        PORTCR(64, 0xe6050040),
2109        PORTCR(65, 0xe6050041),
2110        PORTCR(66, 0xe6050042),
2111        PORTCR(67, 0xe6050043),
2112        PORTCR(68, 0xe6050044),
2113        PORTCR(69, 0xe6050045),
2114        PORTCR(70, 0xe6050046),
2115        PORTCR(71, 0xe6050047),
2116        PORTCR(72, 0xe6050048),
2117        PORTCR(73, 0xe6050049),
2118        PORTCR(74, 0xe605004A),
2119        PORTCR(75, 0xe605004B),
2120        PORTCR(76, 0xe605004C),
2121        PORTCR(77, 0xe605004D),
2122        PORTCR(78, 0xe605004E),
2123        PORTCR(79, 0xe605004F),
2124        PORTCR(80, 0xe6050050),
2125        PORTCR(81, 0xe6050051),
2126        PORTCR(82, 0xe6050052),
2127        PORTCR(83, 0xe6050053),
2128        PORTCR(84, 0xe6050054),
2129        PORTCR(85, 0xe6050055),
2130        PORTCR(96, 0xe6051060),
2131        PORTCR(97, 0xe6051061),
2132        PORTCR(98, 0xe6051062),
2133        PORTCR(99, 0xe6051063),
2134        PORTCR(100, 0xe6051064),
2135        PORTCR(101, 0xe6051065),
2136        PORTCR(102, 0xe6051066),
2137        PORTCR(103, 0xe6051067),
2138        PORTCR(104, 0xe6051068),
2139        PORTCR(105, 0xe6051069),
2140        PORTCR(106, 0xe605106A),
2141        PORTCR(107, 0xe605106B),
2142        PORTCR(108, 0xe605106C),
2143        PORTCR(109, 0xe605106D),
2144        PORTCR(110, 0xe605106E),
2145        PORTCR(111, 0xe605106F),
2146        PORTCR(112, 0xe6051070),
2147        PORTCR(113, 0xe6051071),
2148        PORTCR(114, 0xe6051072),
2149        PORTCR(115, 0xe6051073),
2150        PORTCR(116, 0xe6051074),
2151        PORTCR(117, 0xe6051075),
2152        PORTCR(118, 0xe6051076),
2153        PORTCR(119, 0xe6051077),
2154        PORTCR(120, 0xe6051078),
2155        PORTCR(121, 0xe6051079),
2156        PORTCR(122, 0xe605107A),
2157        PORTCR(123, 0xe605107B),
2158        PORTCR(124, 0xe605107C),
2159        PORTCR(125, 0xe605107D),
2160        PORTCR(126, 0xe605107E),
2161        PORTCR(128, 0xe6051080),
2162        PORTCR(129, 0xe6051081),
2163        PORTCR(130, 0xe6051082),
2164        PORTCR(131, 0xe6051083),
2165        PORTCR(132, 0xe6051084),
2166        PORTCR(133, 0xe6051085),
2167        PORTCR(134, 0xe6051086),
2168        PORTCR(160, 0xe60520A0),
2169        PORTCR(161, 0xe60520A1),
2170        PORTCR(162, 0xe60520A2),
2171        PORTCR(163, 0xe60520A3),
2172        PORTCR(164, 0xe60520A4),
2173        PORTCR(165, 0xe60520A5),
2174        PORTCR(166, 0xe60520A6),
2175        PORTCR(167, 0xe60520A7),
2176        PORTCR(168, 0xe60520A8),
2177        PORTCR(169, 0xe60520A9),
2178        PORTCR(170, 0xe60520AA),
2179        PORTCR(171, 0xe60520AB),
2180        PORTCR(172, 0xe60520AC),
2181        PORTCR(173, 0xe60520AD),
2182        PORTCR(174, 0xe60520AE),
2183        PORTCR(175, 0xe60520AF),
2184        PORTCR(176, 0xe60520B0),
2185        PORTCR(177, 0xe60520B1),
2186        PORTCR(178, 0xe60520B2),
2187        PORTCR(192, 0xe60520C0),
2188        PORTCR(193, 0xe60520C1),
2189        PORTCR(194, 0xe60520C2),
2190        PORTCR(195, 0xe60520C3),
2191        PORTCR(196, 0xe60520C4),
2192        PORTCR(197, 0xe60520C5),
2193        PORTCR(198, 0xe60520C6),
2194        PORTCR(199, 0xe60520C7),
2195        PORTCR(200, 0xe60520C8),
2196        PORTCR(201, 0xe60520C9),
2197        PORTCR(202, 0xe60520CA),
2198        PORTCR(203, 0xe60520CB),
2199        PORTCR(204, 0xe60520CC),
2200        PORTCR(205, 0xe60520CD),
2201        PORTCR(206, 0xe60520CE),
2202        PORTCR(207, 0xe60520CF),
2203        PORTCR(208, 0xe60520D0),
2204        PORTCR(209, 0xe60520D1),
2205        PORTCR(210, 0xe60520D2),
2206        PORTCR(211, 0xe60520D3),
2207        PORTCR(212, 0xe60520D4),
2208        PORTCR(213, 0xe60520D5),
2209        PORTCR(214, 0xe60520D6),
2210        PORTCR(215, 0xe60520D7),
2211        PORTCR(216, 0xe60520D8),
2212        PORTCR(217, 0xe60520D9),
2213        PORTCR(218, 0xe60520DA),
2214        PORTCR(219, 0xe60520DB),
2215        PORTCR(220, 0xe60520DC),
2216        PORTCR(221, 0xe60520DD),
2217        PORTCR(222, 0xe60520DE),
2218        PORTCR(224, 0xe60520E0),
2219        PORTCR(225, 0xe60520E1),
2220        PORTCR(226, 0xe60520E2),
2221        PORTCR(227, 0xe60520E3),
2222        PORTCR(228, 0xe60520E4),
2223        PORTCR(229, 0xe60520E5),
2224        PORTCR(230, 0xe60520e6),
2225        PORTCR(231, 0xe60520E7),
2226        PORTCR(232, 0xe60520E8),
2227        PORTCR(233, 0xe60520E9),
2228        PORTCR(234, 0xe60520EA),
2229        PORTCR(235, 0xe60520EB),
2230        PORTCR(236, 0xe60520EC),
2231        PORTCR(237, 0xe60520ED),
2232        PORTCR(238, 0xe60520EE),
2233        PORTCR(239, 0xe60520EF),
2234        PORTCR(240, 0xe60520F0),
2235        PORTCR(241, 0xe60520F1),
2236        PORTCR(242, 0xe60520F2),
2237        PORTCR(243, 0xe60520F3),
2238        PORTCR(244, 0xe60520F4),
2239        PORTCR(245, 0xe60520F5),
2240        PORTCR(246, 0xe60520F6),
2241        PORTCR(247, 0xe60520F7),
2242        PORTCR(248, 0xe60520F8),
2243        PORTCR(249, 0xe60520F9),
2244        PORTCR(250, 0xe60520FA),
2245        PORTCR(256, 0xe6052100),
2246        PORTCR(257, 0xe6052101),
2247        PORTCR(258, 0xe6052102),
2248        PORTCR(259, 0xe6052103),
2249        PORTCR(260, 0xe6052104),
2250        PORTCR(261, 0xe6052105),
2251        PORTCR(262, 0xe6052106),
2252        PORTCR(263, 0xe6052107),
2253        PORTCR(264, 0xe6052108),
2254        PORTCR(265, 0xe6052109),
2255        PORTCR(266, 0xe605210A),
2256        PORTCR(267, 0xe605210B),
2257        PORTCR(268, 0xe605210C),
2258        PORTCR(269, 0xe605210D),
2259        PORTCR(270, 0xe605210E),
2260        PORTCR(271, 0xe605210F),
2261        PORTCR(272, 0xe6052110),
2262        PORTCR(273, 0xe6052111),
2263        PORTCR(274, 0xe6052112),
2264        PORTCR(275, 0xe6052113),
2265        PORTCR(276, 0xe6052114),
2266        PORTCR(277, 0xe6052115),
2267        PORTCR(278, 0xe6052116),
2268        PORTCR(279, 0xe6052117),
2269        PORTCR(280, 0xe6052118),
2270        PORTCR(281, 0xe6052119),
2271        PORTCR(282, 0xe605211A),
2272        PORTCR(283, 0xe605211B),
2273        PORTCR(288, 0xe6053120),
2274        PORTCR(289, 0xe6053121),
2275        PORTCR(290, 0xe6053122),
2276        PORTCR(291, 0xe6053123),
2277        PORTCR(292, 0xe6053124),
2278        PORTCR(293, 0xe6053125),
2279        PORTCR(294, 0xe6053126),
2280        PORTCR(295, 0xe6053127),
2281        PORTCR(296, 0xe6053128),
2282        PORTCR(297, 0xe6053129),
2283        PORTCR(298, 0xe605312A),
2284        PORTCR(299, 0xe605312B),
2285        PORTCR(300, 0xe605312C),
2286        PORTCR(301, 0xe605312D),
2287        PORTCR(302, 0xe605312E),
2288        PORTCR(303, 0xe605312F),
2289        PORTCR(304, 0xe6053130),
2290        PORTCR(305, 0xe6053131),
2291        PORTCR(306, 0xe6053132),
2292        PORTCR(307, 0xe6053133),
2293        PORTCR(308, 0xe6053134),
2294        PORTCR(320, 0xe6053140),
2295        PORTCR(321, 0xe6053141),
2296        PORTCR(322, 0xe6053142),
2297        PORTCR(323, 0xe6053143),
2298        PORTCR(324, 0xe6053144),
2299        PORTCR(325, 0xe6053145),
2300        PORTCR(326, 0xe6053146),
2301        PORTCR(327, 0xe6053147),
2302        PORTCR(328, 0xe6053148),
2303        PORTCR(329, 0xe6053149),
2304
2305        { PINMUX_CFG_REG("MSEL1CR", 0xe605800c, 32, 1) {
2306                        MSEL1CR_31_0, MSEL1CR_31_1,
2307                        0, 0,
2308                        0, 0,
2309                        0, 0,
2310                        MSEL1CR_27_0, MSEL1CR_27_1,
2311                        0, 0,
2312                        MSEL1CR_25_0, MSEL1CR_25_1,
2313                        MSEL1CR_24_0, MSEL1CR_24_1,
2314                        0, 0,
2315                        MSEL1CR_22_0, MSEL1CR_22_1,
2316                        MSEL1CR_21_0, MSEL1CR_21_1,
2317                        MSEL1CR_20_0, MSEL1CR_20_1,
2318                        MSEL1CR_19_0, MSEL1CR_19_1,
2319                        MSEL1CR_18_0, MSEL1CR_18_1,
2320                        MSEL1CR_17_0, MSEL1CR_17_1,
2321                        MSEL1CR_16_0, MSEL1CR_16_1,
2322                        MSEL1CR_15_0, MSEL1CR_15_1,
2323                        MSEL1CR_14_0, MSEL1CR_14_1,
2324                        MSEL1CR_13_0, MSEL1CR_13_1,
2325                        MSEL1CR_12_0, MSEL1CR_12_1,
2326                        MSEL1CR_11_0, MSEL1CR_11_1,
2327                        MSEL1CR_10_0, MSEL1CR_10_1,
2328                        MSEL1CR_09_0, MSEL1CR_09_1,
2329                        MSEL1CR_08_0, MSEL1CR_08_1,
2330                        MSEL1CR_07_0, MSEL1CR_07_1,
2331                        MSEL1CR_06_0, MSEL1CR_06_1,
2332                        MSEL1CR_05_0, MSEL1CR_05_1,
2333                        MSEL1CR_04_0, MSEL1CR_04_1,
2334                        MSEL1CR_03_0, MSEL1CR_03_1,
2335                        MSEL1CR_02_0, MSEL1CR_02_1,
2336                        MSEL1CR_01_0, MSEL1CR_01_1,
2337                        MSEL1CR_00_0, MSEL1CR_00_1,
2338                }
2339        },
2340        { PINMUX_CFG_REG("MSEL3CR", 0xe6058020, 32, 1) {
2341                        MSEL3CR_31_0, MSEL3CR_31_1,
2342                        0, 0,
2343                        0, 0,
2344                        MSEL3CR_28_0, MSEL3CR_28_1,
2345                        MSEL3CR_27_0, MSEL3CR_27_1,
2346                        MSEL3CR_26_0, MSEL3CR_26_1,
2347                        0, 0,
2348                        0, 0,
2349                        MSEL3CR_23_0, MSEL3CR_23_1,
2350                        MSEL3CR_22_0, MSEL3CR_22_1,
2351                        MSEL3CR_21_0, MSEL3CR_21_1,
2352                        MSEL3CR_20_0, MSEL3CR_20_1,
2353                        MSEL3CR_19_0, MSEL3CR_19_1,
2354                        MSEL3CR_18_0, MSEL3CR_18_1,
2355                        MSEL3CR_17_0, MSEL3CR_17_1,
2356                        MSEL3CR_16_0, MSEL3CR_16_1,
2357                        MSEL3CR_15_0, MSEL3CR_15_1,
2358                        0, 0,
2359                        0, 0,
2360                        MSEL3CR_12_0, MSEL3CR_12_1,
2361                        MSEL3CR_11_0, MSEL3CR_11_1,
2362                        MSEL3CR_10_0, MSEL3CR_10_1,
2363                        MSEL3CR_09_0, MSEL3CR_09_1,
2364                        0, 0,
2365                        0, 0,
2366                        MSEL3CR_06_0, MSEL3CR_06_1,
2367                        0, 0,
2368                        0, 0,
2369                        MSEL3CR_03_0, MSEL3CR_03_1,
2370                        0, 0,
2371                        MSEL3CR_01_0, MSEL3CR_01_1,
2372                        MSEL3CR_00_0, MSEL3CR_00_1,
2373                        }
2374        },
2375        { PINMUX_CFG_REG("MSEL4CR", 0xe6058024, 32, 1) {
2376                        0, 0,
2377                        MSEL4CR_30_0, MSEL4CR_30_1,
2378                        MSEL4CR_29_0, MSEL4CR_29_1,
2379                        MSEL4CR_28_0, MSEL4CR_28_1,
2380                        MSEL4CR_27_0, MSEL4CR_27_1,
2381                        MSEL4CR_26_0, MSEL4CR_26_1,
2382                        MSEL4CR_25_0, MSEL4CR_25_1,
2383                        MSEL4CR_24_0, MSEL4CR_24_1,
2384                        MSEL4CR_23_0, MSEL4CR_23_1,
2385                        MSEL4CR_22_0, MSEL4CR_22_1,
2386                        MSEL4CR_21_0, MSEL4CR_21_1,
2387                        MSEL4CR_20_0, MSEL4CR_20_1,
2388                        MSEL4CR_19_0, MSEL4CR_19_1,
2389                        MSEL4CR_18_0, MSEL4CR_18_1,
2390                        MSEL4CR_17_0, MSEL4CR_17_1,
2391                        MSEL4CR_16_0, MSEL4CR_16_1,
2392                        MSEL4CR_15_0, MSEL4CR_15_1,
2393                        MSEL4CR_14_0, MSEL4CR_14_1,
2394                        MSEL4CR_13_0, MSEL4CR_13_1,
2395                        MSEL4CR_12_0, MSEL4CR_12_1,
2396                        MSEL4CR_11_0, MSEL4CR_11_1,
2397                        MSEL4CR_10_0, MSEL4CR_10_1,
2398                        MSEL4CR_09_0, MSEL4CR_09_1,
2399                        0, 0,
2400                        MSEL4CR_07_0, MSEL4CR_07_1,
2401                        0, 0,
2402                        0, 0,
2403                        MSEL4CR_04_0, MSEL4CR_04_1,
2404                        0, 0,
2405                        0, 0,
2406                        MSEL4CR_01_0, MSEL4CR_01_1,
2407                        0, 0,
2408                }
2409        },
2410        { PINMUX_CFG_REG("MSEL5CR", 0xe6058028, 32, 1) {
2411                        MSEL5CR_31_0, MSEL5CR_31_1,
2412                        MSEL5CR_30_0, MSEL5CR_30_1,
2413                        MSEL5CR_29_0, MSEL5CR_29_1,
2414                        MSEL5CR_28_0, MSEL5CR_28_1,
2415                        MSEL5CR_27_0, MSEL5CR_27_1,
2416                        MSEL5CR_26_0, MSEL5CR_26_1,
2417                        MSEL5CR_25_0, MSEL5CR_25_1,
2418                        MSEL5CR_24_0, MSEL5CR_24_1,
2419                        MSEL5CR_23_0, MSEL5CR_23_1,
2420                        MSEL5CR_22_0, MSEL5CR_22_1,
2421                        MSEL5CR_21_0, MSEL5CR_21_1,
2422                        MSEL5CR_20_0, MSEL5CR_20_1,
2423                        MSEL5CR_19_0, MSEL5CR_19_1,
2424                        MSEL5CR_18_0, MSEL5CR_18_1,
2425                        MSEL5CR_17_0, MSEL5CR_17_1,
2426                        MSEL5CR_16_0, MSEL5CR_16_1,
2427                        MSEL5CR_15_0, MSEL5CR_15_1,
2428                        MSEL5CR_14_0, MSEL5CR_14_1,
2429                        MSEL5CR_13_0, MSEL5CR_13_1,
2430                        MSEL5CR_12_0, MSEL5CR_12_1,
2431                        MSEL5CR_11_0, MSEL5CR_11_1,
2432                        MSEL5CR_10_0, MSEL5CR_10_1,
2433                        MSEL5CR_09_0, MSEL5CR_09_1,
2434                        MSEL5CR_08_0, MSEL5CR_08_1,
2435                        MSEL5CR_07_0, MSEL5CR_07_1,
2436                        MSEL5CR_06_0, MSEL5CR_06_1,
2437                        0, 0,
2438                        0, 0,
2439                        0, 0,
2440                        0, 0,
2441                        0, 0,
2442                        0, 0,
2443                }
2444        },
2445        { PINMUX_CFG_REG("MSEL8CR", 0xe6058034, 32, 1) {
2446                        0, 0,
2447                        0, 0,
2448                        0, 0,
2449                        0, 0,
2450                        0, 0,
2451                        0, 0,
2452                        0, 0,
2453                        0, 0,
2454                        0, 0,
2455                        0, 0,
2456                        0, 0,
2457                        0, 0,
2458                        0, 0,
2459                        0, 0,
2460                        0, 0,
2461                        MSEL8CR_16_0, MSEL8CR_16_1,
2462                        0, 0,
2463                        0, 0,
2464                        0, 0,
2465                        0, 0,
2466                        0, 0,
2467                        0, 0,
2468                        0, 0,
2469                        0, 0,
2470                        0, 0,
2471                        0, 0,
2472                        0, 0,
2473                        0, 0,
2474                        0, 0,
2475                        0, 0,
2476                        MSEL8CR_01_0, MSEL8CR_01_1,
2477                        MSEL8CR_00_0, MSEL8CR_00_1,
2478                }
2479        },
2480        { },
2481};
2482
2483static const struct pinmux_data_reg pinmux_data_regs[] = {
2484
2485        { PINMUX_DATA_REG("PORTL031_000DR", 0xe6054000, 32) {
2486                        0, PORT30_DATA, PORT29_DATA, PORT28_DATA,
2487                        PORT27_DATA, PORT26_DATA, PORT25_DATA, PORT24_DATA,
2488                        PORT23_DATA, PORT22_DATA, PORT21_DATA, PORT20_DATA,
2489                        PORT19_DATA, PORT18_DATA, PORT17_DATA, PORT16_DATA,
2490                        PORT15_DATA, PORT14_DATA, PORT13_DATA, PORT12_DATA,
2491                        PORT11_DATA, PORT10_DATA, PORT9_DATA, PORT8_DATA,
2492                        PORT7_DATA, PORT6_DATA, PORT5_DATA, PORT4_DATA,
2493                        PORT3_DATA, PORT2_DATA, PORT1_DATA, PORT0_DATA,
2494                }
2495        },
2496        { PINMUX_DATA_REG("PORTD063_032DR", 0xe6055000, 32) {
2497                        0, 0, 0, 0,
2498                        0, 0, 0, 0,
2499                        0, 0, 0, 0,
2500                        0, 0, 0, 0,
2501                        0, 0, 0, 0,
2502                        0, 0, 0, PORT40_DATA,
2503                        PORT39_DATA, PORT38_DATA, PORT37_DATA, PORT36_DATA,
2504                        PORT35_DATA, PORT34_DATA, PORT33_DATA, PORT32_DATA,
2505                }
2506        },
2507        { PINMUX_DATA_REG("PORTL095_064DR", 0xe6054004, 32) {
2508                        0, 0, 0, 0,
2509                        0, 0, 0, 0,
2510                        0, 0, PORT85_DATA, PORT84_DATA,
2511                        PORT83_DATA, PORT82_DATA, PORT81_DATA, PORT80_DATA,
2512                        PORT79_DATA, PORT78_DATA, PORT77_DATA, PORT76_DATA,
2513                        PORT75_DATA, PORT74_DATA, PORT73_DATA, PORT72_DATA,
2514                        PORT71_DATA, PORT70_DATA, PORT69_DATA, PORT68_DATA,
2515                        PORT67_DATA, PORT66_DATA, PORT65_DATA, PORT64_DATA,
2516                }
2517        },
2518        { PINMUX_DATA_REG("PORTD127_096DR", 0xe6055004, 32) {
2519                        0, PORT126_DATA, PORT125_DATA, PORT124_DATA,
2520                        PORT123_DATA, PORT122_DATA, PORT121_DATA, PORT120_DATA,
2521                        PORT119_DATA, PORT118_DATA, PORT117_DATA, PORT116_DATA,
2522                        PORT115_DATA, PORT114_DATA, PORT113_DATA, PORT112_DATA,
2523                        PORT111_DATA, PORT110_DATA, PORT109_DATA, PORT108_DATA,
2524                        PORT107_DATA, PORT106_DATA, PORT105_DATA, PORT104_DATA,
2525                        PORT103_DATA, PORT102_DATA, PORT101_DATA, PORT100_DATA,
2526                        PORT99_DATA, PORT98_DATA, PORT97_DATA, PORT96_DATA,
2527                }
2528        },
2529        { PINMUX_DATA_REG("PORTD159_128DR", 0xe6055008, 32) {
2530                        0, 0, 0, 0,
2531                        0, 0, 0, 0,
2532                        0, 0, 0, 0,
2533                        0, 0, 0, 0,
2534                        0, 0, 0, 0,
2535                        0, 0, 0, 0,
2536                        0, PORT134_DATA, PORT133_DATA, PORT132_DATA,
2537                        PORT131_DATA, PORT130_DATA, PORT129_DATA, PORT128_DATA,
2538                }
2539        },
2540        { PINMUX_DATA_REG("PORTR191_160DR", 0xe6056000, 32) {
2541                        0, 0, 0, 0,
2542                        0, 0, 0, 0,
2543                        0, 0, 0, 0,
2544                        0, PORT178_DATA, PORT177_DATA, PORT176_DATA,
2545                        PORT175_DATA, PORT174_DATA, PORT173_DATA, PORT172_DATA,
2546                        PORT171_DATA, PORT170_DATA, PORT169_DATA, PORT168_DATA,
2547                        PORT167_DATA, PORT166_DATA, PORT165_DATA, PORT164_DATA,
2548                        PORT163_DATA, PORT162_DATA, PORT161_DATA, PORT160_DATA,
2549                }
2550        },
2551        { PINMUX_DATA_REG("PORTR223_192DR", 0xe6056004, 32) {
2552                        0, PORT222_DATA, PORT221_DATA, PORT220_DATA,
2553                        PORT219_DATA, PORT218_DATA, PORT217_DATA, PORT216_DATA,
2554                        PORT215_DATA, PORT214_DATA, PORT213_DATA, PORT212_DATA,
2555                        PORT211_DATA, PORT210_DATA, PORT209_DATA, PORT208_DATA,
2556                        PORT207_DATA, PORT206_DATA, PORT205_DATA, PORT204_DATA,
2557                        PORT203_DATA, PORT202_DATA, PORT201_DATA, PORT200_DATA,
2558                        PORT199_DATA, PORT198_DATA, PORT197_DATA, PORT196_DATA,
2559                        PORT195_DATA, PORT194_DATA, PORT193_DATA, PORT192_DATA,
2560                }
2561        },
2562        { PINMUX_DATA_REG("PORTR255_224DR", 0xe6056008, 32) {
2563                        0, 0, 0, 0,
2564                        0, PORT250_DATA, PORT249_DATA, PORT248_DATA,
2565                        PORT247_DATA, PORT246_DATA, PORT245_DATA, PORT244_DATA,
2566                        PORT243_DATA, PORT242_DATA, PORT241_DATA, PORT240_DATA,
2567                        PORT239_DATA, PORT238_DATA, PORT237_DATA, PORT236_DATA,
2568                        PORT235_DATA, PORT234_DATA, PORT233_DATA, PORT232_DATA,
2569                        PORT231_DATA, PORT230_DATA, PORT229_DATA, PORT228_DATA,
2570                        PORT227_DATA, PORT226_DATA, PORT225_DATA, PORT224_DATA,
2571                }
2572        },
2573        { PINMUX_DATA_REG("PORTR287_256DR", 0xe605600C, 32) {
2574                        0, 0, 0, 0,
2575                        PORT283_DATA, PORT282_DATA, PORT281_DATA, PORT280_DATA,
2576                        PORT279_DATA, PORT278_DATA, PORT277_DATA, PORT276_DATA,
2577                        PORT275_DATA, PORT274_DATA, PORT273_DATA, PORT272_DATA,
2578                        PORT271_DATA, PORT270_DATA, PORT269_DATA, PORT268_DATA,
2579                        PORT267_DATA, PORT266_DATA, PORT265_DATA, PORT264_DATA,
2580                        PORT263_DATA, PORT262_DATA, PORT261_DATA, PORT260_DATA,
2581                        PORT259_DATA, PORT258_DATA, PORT257_DATA, PORT256_DATA,
2582                }
2583        },
2584        { PINMUX_DATA_REG("PORTU319_288DR", 0xe6057000, 32) {
2585                        0, 0, 0, 0,
2586                        0, 0, 0, 0,
2587                        0, 0, 0, PORT308_DATA,
2588                        PORT307_DATA, PORT306_DATA, PORT305_DATA, PORT304_DATA,
2589                        PORT303_DATA, PORT302_DATA, PORT301_DATA, PORT300_DATA,
2590                        PORT299_DATA, PORT298_DATA, PORT297_DATA, PORT296_DATA,
2591                        PORT295_DATA, PORT294_DATA, PORT293_DATA, PORT292_DATA,
2592                        PORT291_DATA, PORT290_DATA, PORT289_DATA, PORT288_DATA,
2593                }
2594        },
2595        { PINMUX_DATA_REG("PORTU351_320DR", 0xe6057004, 32) {
2596                        0, 0, 0, 0,
2597                        0, 0, 0, 0,
2598                        0, 0, 0, 0,
2599                        0, 0, 0, 0,
2600                        0, 0, 0, 0,
2601                        0, 0, PORT329_DATA, PORT328_DATA,
2602                        PORT327_DATA, PORT326_DATA, PORT325_DATA, PORT324_DATA,
2603                        PORT323_DATA, PORT322_DATA, PORT321_DATA, PORT320_DATA,
2604                }
2605        },
2606        { },
2607};
2608
2609static const struct pinmux_irq pinmux_irqs[] = {
2610        PINMUX_IRQ(irq_pin(0), 0),
2611        PINMUX_IRQ(irq_pin(1), 1),
2612        PINMUX_IRQ(irq_pin(2), 2),
2613        PINMUX_IRQ(irq_pin(3), 3),
2614        PINMUX_IRQ(irq_pin(4), 4),
2615        PINMUX_IRQ(irq_pin(5), 5),
2616        PINMUX_IRQ(irq_pin(6), 6),
2617        PINMUX_IRQ(irq_pin(7), 7),
2618        PINMUX_IRQ(irq_pin(8), 8),
2619        PINMUX_IRQ(irq_pin(9), 9),
2620        PINMUX_IRQ(irq_pin(10), 10),
2621        PINMUX_IRQ(irq_pin(11), 11),
2622        PINMUX_IRQ(irq_pin(12), 12),
2623        PINMUX_IRQ(irq_pin(13), 13),
2624        PINMUX_IRQ(irq_pin(14), 14),
2625        PINMUX_IRQ(irq_pin(15), 15),
2626        PINMUX_IRQ(irq_pin(16), 320),
2627        PINMUX_IRQ(irq_pin(17), 321),
2628        PINMUX_IRQ(irq_pin(18), 85),
2629        PINMUX_IRQ(irq_pin(19), 84),
2630        PINMUX_IRQ(irq_pin(20), 160),
2631        PINMUX_IRQ(irq_pin(21), 161),
2632        PINMUX_IRQ(irq_pin(22), 162),
2633        PINMUX_IRQ(irq_pin(23), 163),
2634        PINMUX_IRQ(irq_pin(24), 175),
2635        PINMUX_IRQ(irq_pin(25), 176),
2636        PINMUX_IRQ(irq_pin(26), 177),
2637        PINMUX_IRQ(irq_pin(27), 178),
2638        PINMUX_IRQ(irq_pin(28), 322),
2639        PINMUX_IRQ(irq_pin(29), 323),
2640        PINMUX_IRQ(irq_pin(30), 324),
2641        PINMUX_IRQ(irq_pin(31), 192),
2642        PINMUX_IRQ(irq_pin(32), 193),
2643        PINMUX_IRQ(irq_pin(33), 194),
2644        PINMUX_IRQ(irq_pin(34), 195),
2645        PINMUX_IRQ(irq_pin(35), 196),
2646        PINMUX_IRQ(irq_pin(36), 197),
2647        PINMUX_IRQ(irq_pin(37), 198),
2648        PINMUX_IRQ(irq_pin(38), 199),
2649        PINMUX_IRQ(irq_pin(39), 200),
2650        PINMUX_IRQ(irq_pin(40), 66),
2651        PINMUX_IRQ(irq_pin(41), 102),
2652        PINMUX_IRQ(irq_pin(42), 103),
2653        PINMUX_IRQ(irq_pin(43), 109),
2654        PINMUX_IRQ(irq_pin(44), 110),
2655        PINMUX_IRQ(irq_pin(45), 111),
2656        PINMUX_IRQ(irq_pin(46), 112),
2657        PINMUX_IRQ(irq_pin(47), 113),
2658        PINMUX_IRQ(irq_pin(48), 114),
2659        PINMUX_IRQ(irq_pin(49), 115),
2660        PINMUX_IRQ(irq_pin(50), 301),
2661        PINMUX_IRQ(irq_pin(51), 290),
2662        PINMUX_IRQ(irq_pin(52), 296),
2663        PINMUX_IRQ(irq_pin(53), 325),
2664        PINMUX_IRQ(irq_pin(54), 326),
2665        PINMUX_IRQ(irq_pin(55), 327),
2666        PINMUX_IRQ(irq_pin(56), 328),
2667        PINMUX_IRQ(irq_pin(57), 329),
2668};
2669
2670#define PORTCR_PULMD_OFF (0 << 6)
2671#define PORTCR_PULMD_DOWN (2 << 6)
2672#define PORTCR_PULMD_UP (3 << 6)
2673#define PORTCR_PULMD_MASK (3 << 6)
2674
2675static const unsigned int r8a73a4_portcr_offsets[] = {
2676        0x00000000, 0x00001000, 0x00000000, 0x00001000,
2677        0x00001000, 0x00002000, 0x00002000, 0x00002000,
2678        0x00002000, 0x00003000, 0x00003000,
2679};
2680
2681static unsigned int r8a73a4_pinmux_get_bias(struct sh_pfc *pfc,
2682                                            unsigned int pin)
2683{
2684        void __iomem *addr;
2685
2686        addr = pfc->windows->virt + r8a73a4_portcr_offsets[pin >> 5] + pin;
2687
2688        switch (ioread8(addr) & PORTCR_PULMD_MASK) {
2689        case PORTCR_PULMD_UP:
2690                return PIN_CONFIG_BIAS_PULL_UP;
2691        case PORTCR_PULMD_DOWN:
2692                return PIN_CONFIG_BIAS_PULL_DOWN;
2693        case PORTCR_PULMD_OFF:
2694        default:
2695                return PIN_CONFIG_BIAS_DISABLE;
2696        }
2697}
2698
2699static void r8a73a4_pinmux_set_bias(struct sh_pfc *pfc, unsigned int pin,
2700                                   unsigned int bias)
2701{
2702        void __iomem *addr;
2703        u32 value;
2704
2705        addr = pfc->windows->virt + r8a73a4_portcr_offsets[pin >> 5] + pin;
2706        value = ioread8(addr) & ~PORTCR_PULMD_MASK;
2707
2708        switch (bias) {
2709        case PIN_CONFIG_BIAS_PULL_UP:
2710                value |= PORTCR_PULMD_UP;
2711                break;
2712        case PIN_CONFIG_BIAS_PULL_DOWN:
2713                value |= PORTCR_PULMD_DOWN;
2714                break;
2715        }
2716
2717        iowrite8(value, addr);
2718}
2719
2720static const struct sh_pfc_soc_operations r8a73a4_pfc_ops = {
2721        .get_bias = r8a73a4_pinmux_get_bias,
2722        .set_bias = r8a73a4_pinmux_set_bias,
2723};
2724
2725const struct sh_pfc_soc_info r8a73a4_pinmux_info = {
2726        .name           = "r8a73a4_pfc",
2727        .ops            = &r8a73a4_pfc_ops,
2728
2729        .input = { PINMUX_INPUT_BEGIN, PINMUX_INPUT_END },
2730        .output = { PINMUX_OUTPUT_BEGIN, PINMUX_OUTPUT_END },
2731        .function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END },
2732
2733        .pins = pinmux_pins,
2734        .nr_pins = ARRAY_SIZE(pinmux_pins),
2735
2736        .groups = pinmux_groups,
2737        .nr_groups = ARRAY_SIZE(pinmux_groups),
2738        .functions = pinmux_functions,
2739        .nr_functions = ARRAY_SIZE(pinmux_functions),
2740
2741        .cfg_regs       = pinmux_config_regs,
2742        .data_regs      = pinmux_data_regs,
2743
2744        .gpio_data      = pinmux_data,
2745        .gpio_data_size = ARRAY_SIZE(pinmux_data),
2746
2747        .gpio_irq = pinmux_irqs,
2748        .gpio_irq_size = ARRAY_SIZE(pinmux_irqs),
2749};
2750