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