Merge tag 'audit-pr-20211019' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoor...
[sfrench/cifs-2.6.git] / drivers / pinctrl / renesas / pfc-r8a77995.c
1 // SPDX-License-Identifier: GPL-2.0
2 /*
3  * R8A77995 processor support - PFC hardware block.
4  *
5  * Copyright (C) 2017 Renesas Electronics Corp.
6  *
7  * This file is based on the drivers/pinctrl/renesas/pfc-r8a7796.c
8  *
9  * R-Car Gen3 processor support - PFC hardware block.
10  *
11  * Copyright (C) 2015  Renesas Electronics Corporation
12  */
13
14 #include <linux/errno.h>
15 #include <linux/kernel.h>
16
17 #include "core.h"
18 #include "sh_pfc.h"
19
20 #define CPU_ALL_GP(fn, sfx)                                             \
21         PORT_GP_CFG_9(0,  fn, sfx, SH_PFC_PIN_CFG_PULL_UP_DOWN),        \
22         PORT_GP_CFG_32(1, fn, sfx, SH_PFC_PIN_CFG_PULL_UP_DOWN),        \
23         PORT_GP_CFG_32(2, fn, sfx, SH_PFC_PIN_CFG_PULL_UP_DOWN),        \
24         PORT_GP_CFG_10(3, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP_DOWN),    \
25         PORT_GP_CFG_32(4, fn, sfx, SH_PFC_PIN_CFG_PULL_UP_DOWN),        \
26         PORT_GP_CFG_21(5, fn, sfx, SH_PFC_PIN_CFG_PULL_UP_DOWN),        \
27         PORT_GP_CFG_14(6, fn, sfx, SH_PFC_PIN_CFG_PULL_UP_DOWN)
28
29 #define CPU_ALL_NOGP(fn)                                                \
30         PIN_NOGP_CFG(DU_DOTCLKIN0, "DU_DOTCLKIN0", fn, SH_PFC_PIN_CFG_PULL_DOWN),       \
31         PIN_NOGP_CFG(FSCLKST_N, "FSCLKST#", fn, SH_PFC_PIN_CFG_PULL_UP_DOWN),   \
32         PIN_NOGP_CFG(MLB_REF, "MLB_REF", fn, SH_PFC_PIN_CFG_PULL_UP_DOWN),      \
33         PIN_NOGP_CFG(PRESETOUT_N, "PRESETOUT#", fn, SH_PFC_PIN_CFG_PULL_UP_DOWN),       \
34         PIN_NOGP_CFG(TCK, "TCK", fn, SH_PFC_PIN_CFG_PULL_UP),           \
35         PIN_NOGP_CFG(TDI, "TDI", fn, SH_PFC_PIN_CFG_PULL_UP),           \
36         PIN_NOGP_CFG(TMS, "TMS", fn, SH_PFC_PIN_CFG_PULL_UP),           \
37         PIN_NOGP_CFG(TRST_N, "TRST#", fn, SH_PFC_PIN_CFG_PULL_UP)
38
39 /*
40  * F_() : just information
41  * FM() : macro for FN_xxx / xxx_MARK
42  */
43
44 /* GPSR0 */
45 #define GPSR0_8         F_(MLB_SIG,             IP0_27_24)
46 #define GPSR0_7         F_(MLB_DAT,             IP0_23_20)
47 #define GPSR0_6         F_(MLB_CLK,             IP0_19_16)
48 #define GPSR0_5         F_(MSIOF2_RXD,          IP0_15_12)
49 #define GPSR0_4         F_(MSIOF2_TXD,          IP0_11_8)
50 #define GPSR0_3         F_(MSIOF2_SCK,          IP0_7_4)
51 #define GPSR0_2         F_(IRQ0_A,              IP0_3_0)
52 #define GPSR0_1         FM(USB0_OVC)
53 #define GPSR0_0         FM(USB0_PWEN)
54
55 /* GPSR1 */
56 #define GPSR1_31        F_(QPOLB,               IP4_27_24)
57 #define GPSR1_30        F_(QPOLA,               IP4_23_20)
58 #define GPSR1_29        F_(DU_CDE,              IP4_19_16)
59 #define GPSR1_28        F_(DU_DISP_CDE,         IP4_15_12)
60 #define GPSR1_27        F_(DU_DISP,             IP4_11_8)
61 #define GPSR1_26        F_(DU_VSYNC,            IP4_7_4)
62 #define GPSR1_25        F_(DU_HSYNC,            IP4_3_0)
63 #define GPSR1_24        F_(DU_DOTCLKOUT0,       IP3_31_28)
64 #define GPSR1_23        F_(DU_DR7,              IP3_27_24)
65 #define GPSR1_22        F_(DU_DR6,              IP3_23_20)
66 #define GPSR1_21        F_(DU_DR5,              IP3_19_16)
67 #define GPSR1_20        F_(DU_DR4,              IP3_15_12)
68 #define GPSR1_19        F_(DU_DR3,              IP3_11_8)
69 #define GPSR1_18        F_(DU_DR2,              IP3_7_4)
70 #define GPSR1_17        F_(DU_DR1,              IP3_3_0)
71 #define GPSR1_16        F_(DU_DR0,              IP2_31_28)
72 #define GPSR1_15        F_(DU_DG7,              IP2_27_24)
73 #define GPSR1_14        F_(DU_DG6,              IP2_23_20)
74 #define GPSR1_13        F_(DU_DG5,              IP2_19_16)
75 #define GPSR1_12        F_(DU_DG4,              IP2_15_12)
76 #define GPSR1_11        F_(DU_DG3,              IP2_11_8)
77 #define GPSR1_10        F_(DU_DG2,              IP2_7_4)
78 #define GPSR1_9         F_(DU_DG1,              IP2_3_0)
79 #define GPSR1_8         F_(DU_DG0,              IP1_31_28)
80 #define GPSR1_7         F_(DU_DB7,              IP1_27_24)
81 #define GPSR1_6         F_(DU_DB6,              IP1_23_20)
82 #define GPSR1_5         F_(DU_DB5,              IP1_19_16)
83 #define GPSR1_4         F_(DU_DB4,              IP1_15_12)
84 #define GPSR1_3         F_(DU_DB3,              IP1_11_8)
85 #define GPSR1_2         F_(DU_DB2,              IP1_7_4)
86 #define GPSR1_1         F_(DU_DB1,              IP1_3_0)
87 #define GPSR1_0         F_(DU_DB0,              IP0_31_28)
88
89 /* GPSR2 */
90 #define GPSR2_31        F_(NFCE_N,              IP8_19_16)
91 #define GPSR2_30        F_(NFCLE,               IP8_15_12)
92 #define GPSR2_29        F_(NFALE,               IP8_11_8)
93 #define GPSR2_28        F_(VI4_CLKENB,          IP8_7_4)
94 #define GPSR2_27        F_(VI4_FIELD,           IP8_3_0)
95 #define GPSR2_26        F_(VI4_HSYNC_N,         IP7_31_28)
96 #define GPSR2_25        F_(VI4_VSYNC_N,         IP7_27_24)
97 #define GPSR2_24        F_(VI4_DATA23,          IP7_23_20)
98 #define GPSR2_23        F_(VI4_DATA22,          IP7_19_16)
99 #define GPSR2_22        F_(VI4_DATA21,          IP7_15_12)
100 #define GPSR2_21        F_(VI4_DATA20,          IP7_11_8)
101 #define GPSR2_20        F_(VI4_DATA19,          IP7_7_4)
102 #define GPSR2_19        F_(VI4_DATA18,          IP7_3_0)
103 #define GPSR2_18        F_(VI4_DATA17,          IP6_31_28)
104 #define GPSR2_17        F_(VI4_DATA16,          IP6_27_24)
105 #define GPSR2_16        F_(VI4_DATA15,          IP6_23_20)
106 #define GPSR2_15        F_(VI4_DATA14,          IP6_19_16)
107 #define GPSR2_14        F_(VI4_DATA13,          IP6_15_12)
108 #define GPSR2_13        F_(VI4_DATA12,          IP6_11_8)
109 #define GPSR2_12        F_(VI4_DATA11,          IP6_7_4)
110 #define GPSR2_11        F_(VI4_DATA10,          IP6_3_0)
111 #define GPSR2_10        F_(VI4_DATA9,           IP5_31_28)
112 #define GPSR2_9         F_(VI4_DATA8,           IP5_27_24)
113 #define GPSR2_8         F_(VI4_DATA7,           IP5_23_20)
114 #define GPSR2_7         F_(VI4_DATA6,           IP5_19_16)
115 #define GPSR2_6         F_(VI4_DATA5,           IP5_15_12)
116 #define GPSR2_5         FM(VI4_DATA4)
117 #define GPSR2_4         F_(VI4_DATA3,           IP5_11_8)
118 #define GPSR2_3         F_(VI4_DATA2,           IP5_7_4)
119 #define GPSR2_2         F_(VI4_DATA1,           IP5_3_0)
120 #define GPSR2_1         F_(VI4_DATA0,           IP4_31_28)
121 #define GPSR2_0         FM(VI4_CLK)
122
123 /* GPSR3 */
124 #define GPSR3_9         F_(NFDATA7,             IP9_31_28)
125 #define GPSR3_8         F_(NFDATA6,             IP9_27_24)
126 #define GPSR3_7         F_(NFDATA5,             IP9_23_20)
127 #define GPSR3_6         F_(NFDATA4,             IP9_19_16)
128 #define GPSR3_5         F_(NFDATA3,             IP9_15_12)
129 #define GPSR3_4         F_(NFDATA2,             IP9_11_8)
130 #define GPSR3_3         F_(NFDATA1,             IP9_7_4)
131 #define GPSR3_2         F_(NFDATA0,             IP9_3_0)
132 #define GPSR3_1         F_(NFWE_N,              IP8_31_28)
133 #define GPSR3_0         F_(NFRE_N,              IP8_27_24)
134
135 /* GPSR4 */
136 #define GPSR4_31        F_(CAN0_RX_A,           IP12_27_24)
137 #define GPSR4_30        F_(CAN1_TX_A,           IP13_7_4)
138 #define GPSR4_29        F_(CAN1_RX_A,           IP13_3_0)
139 #define GPSR4_28        F_(CAN0_TX_A,           IP12_31_28)
140 #define GPSR4_27        FM(TX2)
141 #define GPSR4_26        FM(RX2)
142 #define GPSR4_25        F_(SCK2,                IP12_11_8)
143 #define GPSR4_24        F_(TX1_A,               IP12_7_4)
144 #define GPSR4_23        F_(RX1_A,               IP12_3_0)
145 #define GPSR4_22        F_(SCK1_A,              IP11_31_28)
146 #define GPSR4_21        F_(TX0_A,               IP11_27_24)
147 #define GPSR4_20        F_(RX0_A,               IP11_23_20)
148 #define GPSR4_19        F_(SCK0_A,              IP11_19_16)
149 #define GPSR4_18        F_(MSIOF1_RXD,          IP11_15_12)
150 #define GPSR4_17        F_(MSIOF1_TXD,          IP11_11_8)
151 #define GPSR4_16        F_(MSIOF1_SCK,          IP11_7_4)
152 #define GPSR4_15        FM(MSIOF0_RXD)
153 #define GPSR4_14        FM(MSIOF0_TXD)
154 #define GPSR4_13        FM(MSIOF0_SYNC)
155 #define GPSR4_12        FM(MSIOF0_SCK)
156 #define GPSR4_11        F_(SDA1,                IP11_3_0)
157 #define GPSR4_10        F_(SCL1,                IP10_31_28)
158 #define GPSR4_9         FM(SDA0)
159 #define GPSR4_8         FM(SCL0)
160 #define GPSR4_7         F_(SSI_WS4_A,           IP10_27_24)
161 #define GPSR4_6         F_(SSI_SDATA4_A,        IP10_23_20)
162 #define GPSR4_5         F_(SSI_SCK4_A,          IP10_19_16)
163 #define GPSR4_4         F_(SSI_WS34,            IP10_15_12)
164 #define GPSR4_3         F_(SSI_SDATA3,          IP10_11_8)
165 #define GPSR4_2         F_(SSI_SCK34,           IP10_7_4)
166 #define GPSR4_1         F_(AUDIO_CLKA,          IP10_3_0)
167 #define GPSR4_0         F_(NFRB_N,              IP8_23_20)
168
169 /* GPSR5 */
170 #define GPSR5_20        FM(AVB0_LINK)
171 #define GPSR5_19        FM(AVB0_PHY_INT)
172 #define GPSR5_18        FM(AVB0_MAGIC)
173 #define GPSR5_17        FM(AVB0_MDC)
174 #define GPSR5_16        FM(AVB0_MDIO)
175 #define GPSR5_15        FM(AVB0_TXCREFCLK)
176 #define GPSR5_14        FM(AVB0_TD3)
177 #define GPSR5_13        FM(AVB0_TD2)
178 #define GPSR5_12        FM(AVB0_TD1)
179 #define GPSR5_11        FM(AVB0_TD0)
180 #define GPSR5_10        FM(AVB0_TXC)
181 #define GPSR5_9         FM(AVB0_TX_CTL)
182 #define GPSR5_8         FM(AVB0_RD3)
183 #define GPSR5_7         FM(AVB0_RD2)
184 #define GPSR5_6         FM(AVB0_RD1)
185 #define GPSR5_5         FM(AVB0_RD0)
186 #define GPSR5_4         FM(AVB0_RXC)
187 #define GPSR5_3         FM(AVB0_RX_CTL)
188 #define GPSR5_2         F_(CAN_CLK,             IP12_23_20)
189 #define GPSR5_1         F_(TPU0TO1_A,           IP12_19_16)
190 #define GPSR5_0         F_(TPU0TO0_A,           IP12_15_12)
191
192 /* GPSR6 */
193 #define GPSR6_13        FM(RPC_INT_N)
194 #define GPSR6_12        FM(RPC_RESET_N)
195 #define GPSR6_11        FM(QSPI1_SSL)
196 #define GPSR6_10        FM(QSPI1_IO3)
197 #define GPSR6_9         FM(QSPI1_IO2)
198 #define GPSR6_8         FM(QSPI1_MISO_IO1)
199 #define GPSR6_7         FM(QSPI1_MOSI_IO0)
200 #define GPSR6_6         FM(QSPI1_SPCLK)
201 #define GPSR6_5         FM(QSPI0_SSL)
202 #define GPSR6_4         FM(QSPI0_IO3)
203 #define GPSR6_3         FM(QSPI0_IO2)
204 #define GPSR6_2         FM(QSPI0_MISO_IO1)
205 #define GPSR6_1         FM(QSPI0_MOSI_IO0)
206 #define GPSR6_0         FM(QSPI0_SPCLK)
207
208 /* IPSRx */             /* 0 */                 /* 1 */                 /* 2 */                 /* 3 */         /* 4 */                 /* 5 */         /* 6  - F */
209 #define IP0_3_0         FM(IRQ0_A)              FM(MSIOF2_SYNC_B)       F_(0, 0)                F_(0, 0)        F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
210 #define IP0_7_4         FM(MSIOF2_SCK)          F_(0, 0)                F_(0, 0)                F_(0, 0)        F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
211 #define IP0_11_8        FM(MSIOF2_TXD)          FM(SCL3_A)              F_(0, 0)                F_(0, 0)        F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
212 #define IP0_15_12       FM(MSIOF2_RXD)          FM(SDA3_A)              F_(0, 0)                F_(0, 0)        F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
213 #define IP0_19_16       FM(MLB_CLK)             FM(MSIOF2_SYNC_A)       FM(SCK5_A)              F_(0, 0)        F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
214 #define IP0_23_20       FM(MLB_DAT)             FM(MSIOF2_SS1)          FM(RX5_A)               FM(SCL3_B)      F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
215 #define IP0_27_24       FM(MLB_SIG)             FM(MSIOF2_SS2)          FM(TX5_A)               FM(SDA3_B)      F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
216 #define IP0_31_28       FM(DU_DB0)              FM(LCDOUT0)             FM(MSIOF3_TXD_B)        F_(0, 0)        F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
217 #define IP1_3_0         FM(DU_DB1)              FM(LCDOUT1)             FM(MSIOF3_RXD_B)        F_(0, 0)        F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
218 #define IP1_7_4         FM(DU_DB2)              FM(LCDOUT2)             FM(IRQ0_B)              F_(0, 0)        F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
219 #define IP1_11_8        FM(DU_DB3)              FM(LCDOUT3)             FM(SCK5_B)              F_(0, 0)        F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
220 #define IP1_15_12       FM(DU_DB4)              FM(LCDOUT4)             FM(RX5_B)               F_(0, 0)        F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
221 #define IP1_19_16       FM(DU_DB5)              FM(LCDOUT5)             FM(TX5_B)               F_(0, 0)        F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
222 #define IP1_23_20       FM(DU_DB6)              FM(LCDOUT6)             FM(MSIOF3_SS1_B)        F_(0, 0)        F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
223 #define IP1_27_24       FM(DU_DB7)              FM(LCDOUT7)             FM(MSIOF3_SS2_B)        F_(0, 0)        F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
224 #define IP1_31_28       FM(DU_DG0)              FM(LCDOUT8)             FM(MSIOF3_SCK_B)        F_(0, 0)        F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
225 #define IP2_3_0         FM(DU_DG1)              FM(LCDOUT9)             FM(MSIOF3_SYNC_B)       F_(0, 0)        F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
226 #define IP2_7_4         FM(DU_DG2)              FM(LCDOUT10)            F_(0, 0)                F_(0, 0)        F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
227 #define IP2_11_8        FM(DU_DG3)              FM(LCDOUT11)            FM(IRQ1_A)              F_(0, 0)        F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
228 #define IP2_15_12       FM(DU_DG4)              FM(LCDOUT12)            FM(HSCK3_B)             F_(0, 0)        F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
229 #define IP2_19_16       FM(DU_DG5)              FM(LCDOUT13)            FM(HTX3_B)              F_(0, 0)        F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
230 #define IP2_23_20       FM(DU_DG6)              FM(LCDOUT14)            FM(HRX3_B)              F_(0, 0)        F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
231 #define IP2_27_24       FM(DU_DG7)              FM(LCDOUT15)            FM(SCK4_B)              F_(0, 0)        F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
232 #define IP2_31_28       FM(DU_DR0)              FM(LCDOUT16)            FM(RX4_B)               F_(0, 0)        F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
233 #define IP3_3_0         FM(DU_DR1)              FM(LCDOUT17)            FM(TX4_B)               F_(0, 0)        F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
234 #define IP3_7_4         FM(DU_DR2)              FM(LCDOUT18)            FM(PWM0_B)              F_(0, 0)        F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
235 #define IP3_11_8        FM(DU_DR3)              FM(LCDOUT19)            FM(PWM1_B)              F_(0, 0)        F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
236 #define IP3_15_12       FM(DU_DR4)              FM(LCDOUT20)            FM(TCLK2_B)             F_(0, 0)        F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
237 #define IP3_19_16       FM(DU_DR5)              FM(LCDOUT21)            FM(NMI)                 F_(0, 0)        F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
238 #define IP3_23_20       FM(DU_DR6)              FM(LCDOUT22)            FM(PWM2_B)              F_(0, 0)        F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
239 #define IP3_27_24       FM(DU_DR7)              FM(LCDOUT23)            FM(TCLK1_B)             F_(0, 0)        F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
240 #define IP3_31_28       FM(DU_DOTCLKOUT0)       FM(QCLK)                F_(0, 0)                F_(0, 0)        F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
241
242 /* IPSRx */             /* 0 */                 /* 1 */                 /* 2 */                 /* 3 */         /* 4 */                 /* 5 */         /* 6  - F */
243 #define IP4_3_0         FM(DU_HSYNC)            FM(QSTH_QHS)            FM(IRQ3_A)              F_(0, 0)        F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
244 #define IP4_7_4         FM(DU_VSYNC)            FM(QSTVA_QVS)           FM(IRQ4_A)              F_(0, 0)        F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
245 #define IP4_11_8        FM(DU_DISP)             FM(QSTVB_QVE)           FM(PWM3_B)              F_(0, 0)        F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
246 #define IP4_15_12       FM(DU_DISP_CDE)         FM(QCPV_QDE)            FM(IRQ2_B)              FM(DU_DOTCLKIN1)F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
247 #define IP4_19_16       FM(DU_CDE)              FM(QSTB_QHE)            FM(SCK3_B)              F_(0, 0)        F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
248 #define IP4_23_20       FM(QPOLA)               F_(0, 0)                FM(RX3_B)               F_(0, 0)        F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
249 #define IP4_27_24       FM(QPOLB)               F_(0, 0)                FM(TX3_B)               F_(0, 0)        F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
250 #define IP4_31_28       FM(VI4_DATA0)           FM(PWM0_A)              F_(0, 0)                F_(0, 0)        F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
251 #define IP5_3_0         FM(VI4_DATA1)           FM(PWM1_A)              F_(0, 0)                F_(0, 0)        F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
252 #define IP5_7_4         FM(VI4_DATA2)           FM(PWM2_A)              F_(0, 0)                F_(0, 0)        F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
253 #define IP5_11_8        FM(VI4_DATA3)           FM(PWM3_A)              F_(0, 0)                F_(0, 0)        F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
254 #define IP5_15_12       FM(VI4_DATA5)           FM(SCK4_A)              F_(0, 0)                F_(0, 0)        F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
255 #define IP5_19_16       FM(VI4_DATA6)           FM(IRQ2_A)              F_(0, 0)                F_(0, 0)        F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
256 #define IP5_23_20       FM(VI4_DATA7)           FM(TCLK2_A)             F_(0, 0)                F_(0, 0)        F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
257 #define IP5_27_24       FM(VI4_DATA8)           F_(0, 0)                F_(0, 0)                F_(0, 0)        F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
258 #define IP5_31_28       FM(VI4_DATA9)           FM(MSIOF3_SS2_A)        FM(IRQ1_B)              F_(0, 0)        F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
259 #define IP6_3_0         FM(VI4_DATA10)          FM(RX4_A)               F_(0, 0)                F_(0, 0)        F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
260 #define IP6_7_4         FM(VI4_DATA11)          FM(TX4_A)               F_(0, 0)                F_(0, 0)        F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
261 #define IP6_11_8        FM(VI4_DATA12)          FM(TCLK1_A)             F_(0, 0)                F_(0, 0)        F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
262 #define IP6_15_12       FM(VI4_DATA13)          FM(MSIOF3_SS1_A)        FM(HCTS3_N)             F_(0, 0)        F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
263 #define IP6_19_16       FM(VI4_DATA14)          FM(SSI_SCK4_B)          FM(HRTS3_N)             F_(0, 0)        F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
264 #define IP6_23_20       FM(VI4_DATA15)          FM(SSI_SDATA4_B)        F_(0, 0)                F_(0, 0)        F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
265 #define IP6_27_24       FM(VI4_DATA16)          FM(HRX3_A)              F_(0, 0)                F_(0, 0)        F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
266 #define IP6_31_28       FM(VI4_DATA17)          FM(HTX3_A)              F_(0, 0)                F_(0, 0)        F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
267 #define IP7_3_0         FM(VI4_DATA18)          FM(HSCK3_A)             F_(0, 0)                F_(0, 0)        F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
268 #define IP7_7_4         FM(VI4_DATA19)          FM(SSI_WS4_B)           F_(0, 0)                F_(0, 0)        FM(NFDATA15)            F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
269 #define IP7_11_8        FM(VI4_DATA20)          FM(MSIOF3_SYNC_A)       F_(0, 0)                F_(0, 0)        FM(NFDATA14)            F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
270 #define IP7_15_12       FM(VI4_DATA21)          FM(MSIOF3_TXD_A)        F_(0, 0)                F_(0, 0)        FM(NFDATA13)            F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
271 #define IP7_19_16       FM(VI4_DATA22)          FM(MSIOF3_RXD_A)        F_(0, 0)                F_(0, 0)        FM(NFDATA12)            F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
272 #define IP7_23_20       FM(VI4_DATA23)          FM(MSIOF3_SCK_A)        F_(0, 0)                F_(0, 0)        FM(NFDATA11)            F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
273 #define IP7_27_24       FM(VI4_VSYNC_N)         FM(SCK1_B)              F_(0, 0)                F_(0, 0)        FM(NFDATA10)            F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
274 #define IP7_31_28       FM(VI4_HSYNC_N)         FM(RX1_B)               F_(0, 0)                F_(0, 0)        FM(NFDATA9)             F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
275
276 /* IPSRx */             /* 0 */                 /* 1 */                 /* 2 */                 /* 3 */         /* 4 */                 /* 5 */         /* 6  - F */
277 #define IP8_3_0         FM(VI4_FIELD)           FM(AUDIO_CLKB)          FM(IRQ5_A)              FM(SCIF_CLK)    FM(NFDATA8)             F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
278 #define IP8_7_4         FM(VI4_CLKENB)          FM(TX1_B)               F_(0, 0)                F_(0, 0)        FM(NFWP_N)              FM(DVC_MUTE_A)  F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
279 #define IP8_11_8        FM(NFALE)               FM(SCL2_B)              FM(IRQ3_B)              FM(PWM0_C)      F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
280 #define IP8_15_12       FM(NFCLE)               FM(SDA2_B)              FM(SCK3_A)              FM(PWM1_C)      F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
281 #define IP8_19_16       FM(NFCE_N)              F_(0, 0)                FM(RX3_A)               FM(PWM2_C)      F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
282 #define IP8_23_20       FM(NFRB_N)              F_(0, 0)                FM(TX3_A)               FM(PWM3_C)      F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
283 #define IP8_27_24       FM(NFRE_N)              FM(MMC_CMD)             F_(0, 0)                F_(0, 0)        F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
284 #define IP8_31_28       FM(NFWE_N)              FM(MMC_CLK)             F_(0, 0)                F_(0, 0)        F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
285 #define IP9_3_0         FM(NFDATA0)             FM(MMC_D0)              F_(0, 0)                F_(0, 0)        F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
286 #define IP9_7_4         FM(NFDATA1)             FM(MMC_D1)              F_(0, 0)                F_(0, 0)        F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
287 #define IP9_11_8        FM(NFDATA2)             FM(MMC_D2)              F_(0, 0)                F_(0, 0)        F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
288 #define IP9_15_12       FM(NFDATA3)             FM(MMC_D3)              F_(0, 0)                F_(0, 0)        F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
289 #define IP9_19_16       FM(NFDATA4)             FM(MMC_D4)              F_(0, 0)                F_(0, 0)        F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
290 #define IP9_23_20       FM(NFDATA5)             FM(MMC_D5)              F_(0, 0)                F_(0, 0)        F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
291 #define IP9_27_24       FM(NFDATA6)             FM(MMC_D6)              F_(0, 0)                F_(0, 0)        F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
292 #define IP9_31_28       FM(NFDATA7)             FM(MMC_D7)              F_(0, 0)                F_(0, 0)        F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
293 #define IP10_3_0        FM(AUDIO_CLKA)          F_(0, 0)                F_(0, 0)                F_(0, 0)        F_(0, 0)                FM(DVC_MUTE_B)  F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
294 #define IP10_7_4        FM(SSI_SCK34)           FM(FSO_CFE_0_N_A)       F_(0, 0)                F_(0, 0)        F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
295 #define IP10_11_8       FM(SSI_SDATA3)          FM(FSO_CFE_1_N_A)       F_(0, 0)                F_(0, 0)        F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
296 #define IP10_15_12      FM(SSI_WS34)            FM(FSO_TOE_N_A)         F_(0, 0)                F_(0, 0)        F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
297 #define IP10_19_16      FM(SSI_SCK4_A)          FM(HSCK0)               FM(AUDIO_CLKOUT)        FM(CAN0_RX_B)   FM(IRQ4_B)              F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
298 #define IP10_23_20      FM(SSI_SDATA4_A)        FM(HTX0)                FM(SCL2_A)              FM(CAN1_RX_B)   F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
299 #define IP10_27_24      FM(SSI_WS4_A)           FM(HRX0)                FM(SDA2_A)              FM(CAN1_TX_B)   F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
300 #define IP10_31_28      FM(SCL1)                FM(CTS1_N)              F_(0, 0)                F_(0, 0)        F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
301 #define IP11_3_0        FM(SDA1)                FM(RTS1_N)              F_(0, 0)                F_(0, 0)        F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
302 #define IP11_7_4        FM(MSIOF1_SCK)          FM(AVB0_AVTP_PPS_B)     F_(0, 0)                F_(0, 0)        F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
303 #define IP11_11_8       FM(MSIOF1_TXD)          FM(AVB0_AVTP_CAPTURE_B) F_(0, 0)                F_(0, 0)        F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
304 #define IP11_15_12      FM(MSIOF1_RXD)          FM(AVB0_AVTP_MATCH_B)   F_(0, 0)                F_(0, 0)        F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
305 #define IP11_19_16      FM(SCK0_A)              FM(MSIOF1_SYNC)         FM(FSO_CFE_0_N_B)       F_(0, 0)        F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
306 #define IP11_23_20      FM(RX0_A)               FM(MSIOF0_SS1)          FM(FSO_CFE_1_N_B)       F_(0, 0)        F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
307 #define IP11_27_24      FM(TX0_A)               FM(MSIOF0_SS2)          FM(FSO_TOE_N_B)         F_(0, 0)        F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
308 #define IP11_31_28      FM(SCK1_A)              FM(MSIOF1_SS2)          FM(TPU0TO2_B)           FM(CAN0_TX_B)   FM(AUDIO_CLKOUT1)       F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
309
310 /* IPSRx */             /* 0 */                 /* 1 */                 /* 2 */                 /* 3 */         /* 4 */                 /* 5 */         /* 6  - F */
311 #define IP12_3_0        FM(RX1_A)               FM(CTS0_N)              FM(TPU0TO0_B)           F_(0, 0)        F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
312 #define IP12_7_4        FM(TX1_A)               FM(RTS0_N)              FM(TPU0TO1_B)           F_(0, 0)        F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
313 #define IP12_11_8       FM(SCK2)                FM(MSIOF1_SS1)          FM(TPU0TO3_B)           F_(0, 0)        F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
314 #define IP12_15_12      FM(TPU0TO0_A)           FM(AVB0_AVTP_CAPTURE_A) FM(HCTS0_N)             F_(0, 0)        F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
315 #define IP12_19_16      FM(TPU0TO1_A)           FM(AVB0_AVTP_MATCH_A)   FM(HRTS0_N)             F_(0, 0)        F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
316 #define IP12_23_20      FM(CAN_CLK)             FM(AVB0_AVTP_PPS_A)     FM(SCK0_B)              FM(IRQ5_B)      F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
317 #define IP12_27_24      FM(CAN0_RX_A)           FM(CANFD0_RX)           FM(RX0_B)               F_(0, 0)        F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
318 #define IP12_31_28      FM(CAN0_TX_A)           FM(CANFD0_TX)           FM(TX0_B)               F_(0, 0)        F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
319 #define IP13_3_0        FM(CAN1_RX_A)           FM(CANFD1_RX)           FM(TPU0TO2_A)           F_(0, 0)        F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
320 #define IP13_7_4        FM(CAN1_TX_A)           FM(CANFD1_TX)           FM(TPU0TO3_A)           F_(0, 0)        F_(0, 0)                F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
321
322 #define PINMUX_GPSR     \
323 \
324                 GPSR1_31        GPSR2_31                        GPSR4_31                 \
325                 GPSR1_30        GPSR2_30                        GPSR4_30                 \
326                 GPSR1_29        GPSR2_29                        GPSR4_29                 \
327                 GPSR1_28        GPSR2_28                        GPSR4_28                 \
328                 GPSR1_27        GPSR2_27                        GPSR4_27                 \
329                 GPSR1_26        GPSR2_26                        GPSR4_26                 \
330                 GPSR1_25        GPSR2_25                        GPSR4_25                 \
331                 GPSR1_24        GPSR2_24                        GPSR4_24                 \
332                 GPSR1_23        GPSR2_23                        GPSR4_23                 \
333                 GPSR1_22        GPSR2_22                        GPSR4_22                 \
334                 GPSR1_21        GPSR2_21                        GPSR4_21                 \
335                 GPSR1_20        GPSR2_20                        GPSR4_20        GPSR5_20 \
336                 GPSR1_19        GPSR2_19                        GPSR4_19        GPSR5_19 \
337                 GPSR1_18        GPSR2_18                        GPSR4_18        GPSR5_18 \
338                 GPSR1_17        GPSR2_17                        GPSR4_17        GPSR5_17 \
339                 GPSR1_16        GPSR2_16                        GPSR4_16        GPSR5_16 \
340                 GPSR1_15        GPSR2_15                        GPSR4_15        GPSR5_15 \
341                 GPSR1_14        GPSR2_14                        GPSR4_14        GPSR5_14 \
342                 GPSR1_13        GPSR2_13                        GPSR4_13        GPSR5_13        GPSR6_13 \
343                 GPSR1_12        GPSR2_12                        GPSR4_12        GPSR5_12        GPSR6_12 \
344                 GPSR1_11        GPSR2_11                        GPSR4_11        GPSR5_11        GPSR6_11 \
345                 GPSR1_10        GPSR2_10                        GPSR4_10        GPSR5_10        GPSR6_10 \
346                 GPSR1_9         GPSR2_9         GPSR3_9         GPSR4_9         GPSR5_9         GPSR6_9 \
347 GPSR0_8         GPSR1_8         GPSR2_8         GPSR3_8         GPSR4_8         GPSR5_8         GPSR6_8 \
348 GPSR0_7         GPSR1_7         GPSR2_7         GPSR3_7         GPSR4_7         GPSR5_7         GPSR6_7 \
349 GPSR0_6         GPSR1_6         GPSR2_6         GPSR3_6         GPSR4_6         GPSR5_6         GPSR6_6 \
350 GPSR0_5         GPSR1_5         GPSR2_5         GPSR3_5         GPSR4_5         GPSR5_5         GPSR6_5 \
351 GPSR0_4         GPSR1_4         GPSR2_4         GPSR3_4         GPSR4_4         GPSR5_4         GPSR6_4 \
352 GPSR0_3         GPSR1_3         GPSR2_3         GPSR3_3         GPSR4_3         GPSR5_3         GPSR6_3 \
353 GPSR0_2         GPSR1_2         GPSR2_2         GPSR3_2         GPSR4_2         GPSR5_2         GPSR6_2 \
354 GPSR0_1         GPSR1_1         GPSR2_1         GPSR3_1         GPSR4_1         GPSR5_1         GPSR6_1 \
355 GPSR0_0         GPSR1_0         GPSR2_0         GPSR3_0         GPSR4_0         GPSR5_0         GPSR6_0
356
357 #define PINMUX_IPSR                             \
358 \
359 FM(IP0_3_0)     IP0_3_0         FM(IP1_3_0)     IP1_3_0         FM(IP2_3_0)     IP2_3_0         FM(IP3_3_0)     IP3_3_0 \
360 FM(IP0_7_4)     IP0_7_4         FM(IP1_7_4)     IP1_7_4         FM(IP2_7_4)     IP2_7_4         FM(IP3_7_4)     IP3_7_4 \
361 FM(IP0_11_8)    IP0_11_8        FM(IP1_11_8)    IP1_11_8        FM(IP2_11_8)    IP2_11_8        FM(IP3_11_8)    IP3_11_8 \
362 FM(IP0_15_12)   IP0_15_12       FM(IP1_15_12)   IP1_15_12       FM(IP2_15_12)   IP2_15_12       FM(IP3_15_12)   IP3_15_12 \
363 FM(IP0_19_16)   IP0_19_16       FM(IP1_19_16)   IP1_19_16       FM(IP2_19_16)   IP2_19_16       FM(IP3_19_16)   IP3_19_16 \
364 FM(IP0_23_20)   IP0_23_20       FM(IP1_23_20)   IP1_23_20       FM(IP2_23_20)   IP2_23_20       FM(IP3_23_20)   IP3_23_20 \
365 FM(IP0_27_24)   IP0_27_24       FM(IP1_27_24)   IP1_27_24       FM(IP2_27_24)   IP2_27_24       FM(IP3_27_24)   IP3_27_24 \
366 FM(IP0_31_28)   IP0_31_28       FM(IP1_31_28)   IP1_31_28       FM(IP2_31_28)   IP2_31_28       FM(IP3_31_28)   IP3_31_28 \
367 \
368 FM(IP4_3_0)     IP4_3_0         FM(IP5_3_0)     IP5_3_0         FM(IP6_3_0)     IP6_3_0         FM(IP7_3_0)     IP7_3_0 \
369 FM(IP4_7_4)     IP4_7_4         FM(IP5_7_4)     IP5_7_4         FM(IP6_7_4)     IP6_7_4         FM(IP7_7_4)     IP7_7_4 \
370 FM(IP4_11_8)    IP4_11_8        FM(IP5_11_8)    IP5_11_8        FM(IP6_11_8)    IP6_11_8        FM(IP7_11_8)    IP7_11_8 \
371 FM(IP4_15_12)   IP4_15_12       FM(IP5_15_12)   IP5_15_12       FM(IP6_15_12)   IP6_15_12       FM(IP7_15_12)   IP7_15_12 \
372 FM(IP4_19_16)   IP4_19_16       FM(IP5_19_16)   IP5_19_16       FM(IP6_19_16)   IP6_19_16       FM(IP7_19_16)   IP7_19_16 \
373 FM(IP4_23_20)   IP4_23_20       FM(IP5_23_20)   IP5_23_20       FM(IP6_23_20)   IP6_23_20       FM(IP7_23_20)   IP7_23_20 \
374 FM(IP4_27_24)   IP4_27_24       FM(IP5_27_24)   IP5_27_24       FM(IP6_27_24)   IP6_27_24       FM(IP7_27_24)   IP7_27_24 \
375 FM(IP4_31_28)   IP4_31_28       FM(IP5_31_28)   IP5_31_28       FM(IP6_31_28)   IP6_31_28       FM(IP7_31_28)   IP7_31_28 \
376 \
377 FM(IP8_3_0)     IP8_3_0         FM(IP9_3_0)     IP9_3_0         FM(IP10_3_0)    IP10_3_0        FM(IP11_3_0)    IP11_3_0 \
378 FM(IP8_7_4)     IP8_7_4         FM(IP9_7_4)     IP9_7_4         FM(IP10_7_4)    IP10_7_4        FM(IP11_7_4)    IP11_7_4 \
379 FM(IP8_11_8)    IP8_11_8        FM(IP9_11_8)    IP9_11_8        FM(IP10_11_8)   IP10_11_8       FM(IP11_11_8)   IP11_11_8 \
380 FM(IP8_15_12)   IP8_15_12       FM(IP9_15_12)   IP9_15_12       FM(IP10_15_12)  IP10_15_12      FM(IP11_15_12)  IP11_15_12 \
381 FM(IP8_19_16)   IP8_19_16       FM(IP9_19_16)   IP9_19_16       FM(IP10_19_16)  IP10_19_16      FM(IP11_19_16)  IP11_19_16 \
382 FM(IP8_23_20)   IP8_23_20       FM(IP9_23_20)   IP9_23_20       FM(IP10_23_20)  IP10_23_20      FM(IP11_23_20)  IP11_23_20 \
383 FM(IP8_27_24)   IP8_27_24       FM(IP9_27_24)   IP9_27_24       FM(IP10_27_24)  IP10_27_24      FM(IP11_27_24)  IP11_27_24 \
384 FM(IP8_31_28)   IP8_31_28       FM(IP9_31_28)   IP9_31_28       FM(IP10_31_28)  IP10_31_28      FM(IP11_31_28)  IP11_31_28 \
385 \
386 FM(IP12_3_0)    IP12_3_0        FM(IP13_3_0)    IP13_3_0 \
387 FM(IP12_7_4)    IP12_7_4        FM(IP13_7_4)    IP13_7_4 \
388 FM(IP12_11_8)   IP12_11_8 \
389 FM(IP12_15_12)  IP12_15_12 \
390 FM(IP12_19_16)  IP12_19_16 \
391 FM(IP12_23_20)  IP12_23_20 \
392 FM(IP12_27_24)  IP12_27_24 \
393 FM(IP12_31_28)  IP12_31_28 \
394
395 /* The bit numbering in MOD_SEL fields is reversed */
396 #define REV4(f0, f1, f2, f3)                    f0 f2 f1 f3
397
398 /* MOD_SEL0 */                  /* 0 */                 /* 1 */                 /* 2 */                 /* 3 */
399 #define MOD_SEL0_30             FM(SEL_MSIOF2_0)        FM(SEL_MSIOF2_1)
400 #define MOD_SEL0_29             FM(SEL_I2C3_0)          FM(SEL_I2C3_1)
401 #define MOD_SEL0_28             FM(SEL_SCIF5_0)         FM(SEL_SCIF5_1)
402 #define MOD_SEL0_27             FM(SEL_MSIOF3_0)        FM(SEL_MSIOF3_1)
403 #define MOD_SEL0_26             FM(SEL_HSCIF3_0)        FM(SEL_HSCIF3_1)
404 #define MOD_SEL0_25             FM(SEL_SCIF4_0)         FM(SEL_SCIF4_1)
405 #define MOD_SEL0_24_23     REV4(FM(SEL_PWM0_0),         FM(SEL_PWM0_1),         FM(SEL_PWM0_2),         F_(0, 0))
406 #define MOD_SEL0_22_21     REV4(FM(SEL_PWM1_0),         FM(SEL_PWM1_1),         FM(SEL_PWM1_2),         F_(0, 0))
407 #define MOD_SEL0_20_19     REV4(FM(SEL_PWM2_0),         FM(SEL_PWM2_1),         FM(SEL_PWM2_2),         F_(0, 0))
408 #define MOD_SEL0_18_17     REV4(FM(SEL_PWM3_0),         FM(SEL_PWM3_1),         FM(SEL_PWM3_2),         F_(0, 0))
409 #define MOD_SEL0_15             FM(SEL_IRQ_0_0)         FM(SEL_IRQ_0_1)
410 #define MOD_SEL0_14             FM(SEL_IRQ_1_0)         FM(SEL_IRQ_1_1)
411 #define MOD_SEL0_13             FM(SEL_IRQ_2_0)         FM(SEL_IRQ_2_1)
412 #define MOD_SEL0_12             FM(SEL_IRQ_3_0)         FM(SEL_IRQ_3_1)
413 #define MOD_SEL0_11             FM(SEL_IRQ_4_0)         FM(SEL_IRQ_4_1)
414 #define MOD_SEL0_10             FM(SEL_IRQ_5_0)         FM(SEL_IRQ_5_1)
415 #define MOD_SEL0_5              FM(SEL_TMU_0_0)         FM(SEL_TMU_0_1)
416 #define MOD_SEL0_4              FM(SEL_TMU_1_0)         FM(SEL_TMU_1_1)
417 #define MOD_SEL0_3              FM(SEL_SCIF3_0)         FM(SEL_SCIF3_1)
418 #define MOD_SEL0_2              FM(SEL_SCIF1_0)         FM(SEL_SCIF1_1)
419 #define MOD_SEL0_1              FM(SEL_SCU_0)           FM(SEL_SCU_1)
420 #define MOD_SEL0_0              FM(SEL_RFSO_0)          FM(SEL_RFSO_1)
421
422 #define MOD_SEL1_31             FM(SEL_CAN0_0)          FM(SEL_CAN0_1)
423 #define MOD_SEL1_30             FM(SEL_CAN1_0)          FM(SEL_CAN1_1)
424 #define MOD_SEL1_29             FM(SEL_I2C2_0)          FM(SEL_I2C2_1)
425 #define MOD_SEL1_28             FM(SEL_ETHERAVB_0)      FM(SEL_ETHERAVB_1)
426 #define MOD_SEL1_27             FM(SEL_SCIF0_0)         FM(SEL_SCIF0_1)
427 #define MOD_SEL1_26             FM(SEL_SSIF4_0)         FM(SEL_SSIF4_1)
428
429
430 #define PINMUX_MOD_SELS \
431 \
432                 MOD_SEL1_31 \
433 MOD_SEL0_30     MOD_SEL1_30 \
434 MOD_SEL0_29     MOD_SEL1_29 \
435 MOD_SEL0_28     MOD_SEL1_28 \
436 MOD_SEL0_27     MOD_SEL1_27 \
437 MOD_SEL0_26     MOD_SEL1_26 \
438 MOD_SEL0_25 \
439 MOD_SEL0_24_23 \
440 MOD_SEL0_22_21 \
441 MOD_SEL0_20_19 \
442 MOD_SEL0_18_17 \
443 MOD_SEL0_15 \
444 MOD_SEL0_14 \
445 MOD_SEL0_13 \
446 MOD_SEL0_12 \
447 MOD_SEL0_11 \
448 MOD_SEL0_10 \
449 MOD_SEL0_5 \
450 MOD_SEL0_4 \
451 MOD_SEL0_3 \
452 MOD_SEL0_2 \
453 MOD_SEL0_1 \
454 MOD_SEL0_0
455
456 enum {
457         PINMUX_RESERVED = 0,
458
459         PINMUX_DATA_BEGIN,
460         GP_ALL(DATA),
461         PINMUX_DATA_END,
462
463 #define F_(x, y)
464 #define FM(x)   FN_##x,
465         PINMUX_FUNCTION_BEGIN,
466         GP_ALL(FN),
467         PINMUX_GPSR
468         PINMUX_IPSR
469         PINMUX_MOD_SELS
470         PINMUX_FUNCTION_END,
471 #undef F_
472 #undef FM
473
474 #define F_(x, y)
475 #define FM(x)   x##_MARK,
476         PINMUX_MARK_BEGIN,
477         PINMUX_GPSR
478         PINMUX_IPSR
479         PINMUX_MOD_SELS
480         PINMUX_MARK_END,
481 #undef F_
482 #undef FM
483 };
484
485 static const u16 pinmux_data[] = {
486         PINMUX_DATA_GP_ALL(),
487
488         PINMUX_SINGLE(USB0_OVC),
489         PINMUX_SINGLE(USB0_PWEN),
490         PINMUX_SINGLE(VI4_DATA4),
491         PINMUX_SINGLE(VI4_CLK),
492         PINMUX_SINGLE(TX2),
493         PINMUX_SINGLE(RX2),
494         PINMUX_SINGLE(AVB0_LINK),
495         PINMUX_SINGLE(AVB0_PHY_INT),
496         PINMUX_SINGLE(AVB0_MAGIC),
497         PINMUX_SINGLE(AVB0_MDC),
498         PINMUX_SINGLE(AVB0_MDIO),
499         PINMUX_SINGLE(AVB0_TXCREFCLK),
500         PINMUX_SINGLE(AVB0_TD3),
501         PINMUX_SINGLE(AVB0_TD2),
502         PINMUX_SINGLE(AVB0_TD1),
503         PINMUX_SINGLE(AVB0_TD0),
504         PINMUX_SINGLE(AVB0_TXC),
505         PINMUX_SINGLE(AVB0_TX_CTL),
506         PINMUX_SINGLE(AVB0_RD3),
507         PINMUX_SINGLE(AVB0_RD2),
508         PINMUX_SINGLE(AVB0_RD1),
509         PINMUX_SINGLE(AVB0_RD0),
510         PINMUX_SINGLE(AVB0_RXC),
511         PINMUX_SINGLE(AVB0_RX_CTL),
512         PINMUX_SINGLE(RPC_INT_N),
513         PINMUX_SINGLE(RPC_RESET_N),
514         PINMUX_SINGLE(QSPI1_SSL),
515         PINMUX_SINGLE(QSPI1_IO3),
516         PINMUX_SINGLE(QSPI1_IO2),
517         PINMUX_SINGLE(QSPI1_MISO_IO1),
518         PINMUX_SINGLE(QSPI1_MOSI_IO0),
519         PINMUX_SINGLE(QSPI1_SPCLK),
520         PINMUX_SINGLE(QSPI0_SSL),
521         PINMUX_SINGLE(QSPI0_IO3),
522         PINMUX_SINGLE(QSPI0_IO2),
523         PINMUX_SINGLE(QSPI0_MISO_IO1),
524         PINMUX_SINGLE(QSPI0_MOSI_IO0),
525         PINMUX_SINGLE(QSPI0_SPCLK),
526         PINMUX_SINGLE(SCL0),
527         PINMUX_SINGLE(SDA0),
528         PINMUX_SINGLE(MSIOF0_RXD),
529         PINMUX_SINGLE(MSIOF0_TXD),
530         PINMUX_SINGLE(MSIOF0_SYNC),
531         PINMUX_SINGLE(MSIOF0_SCK),
532
533         /* IPSR0 */
534         PINMUX_IPSR_MSEL(IP0_3_0,       IRQ0_A, SEL_IRQ_0_0),
535         PINMUX_IPSR_MSEL(IP0_3_0,       MSIOF2_SYNC_B, SEL_MSIOF2_1),
536
537         PINMUX_IPSR_GPSR(IP0_7_4,       MSIOF2_SCK),
538
539         PINMUX_IPSR_GPSR(IP0_11_8,      MSIOF2_TXD),
540         PINMUX_IPSR_MSEL(IP0_11_8,      SCL3_A, SEL_I2C3_0),
541
542         PINMUX_IPSR_GPSR(IP0_15_12,     MSIOF2_RXD),
543         PINMUX_IPSR_MSEL(IP0_15_12,     SDA3_A, SEL_I2C3_0),
544
545         PINMUX_IPSR_GPSR(IP0_19_16,     MLB_CLK),
546         PINMUX_IPSR_MSEL(IP0_19_16,     MSIOF2_SYNC_A, SEL_MSIOF2_0),
547         PINMUX_IPSR_MSEL(IP0_19_16,     SCK5_A, SEL_SCIF5_0),
548
549         PINMUX_IPSR_GPSR(IP0_23_20,     MLB_DAT),
550         PINMUX_IPSR_GPSR(IP0_23_20,     MSIOF2_SS1),
551         PINMUX_IPSR_MSEL(IP0_23_20,     RX5_A, SEL_SCIF5_0),
552         PINMUX_IPSR_MSEL(IP0_23_20,     SCL3_B, SEL_I2C3_1),
553
554         PINMUX_IPSR_GPSR(IP0_27_24,     MLB_SIG),
555         PINMUX_IPSR_GPSR(IP0_27_24,     MSIOF2_SS2),
556         PINMUX_IPSR_MSEL(IP0_27_24,     TX5_A, SEL_SCIF5_0),
557         PINMUX_IPSR_MSEL(IP0_27_24,     SDA3_B, SEL_I2C3_1),
558
559         PINMUX_IPSR_GPSR(IP0_31_28,     DU_DB0),
560         PINMUX_IPSR_GPSR(IP0_31_28,     LCDOUT0),
561         PINMUX_IPSR_MSEL(IP0_31_28,     MSIOF3_TXD_B, SEL_MSIOF3_1),
562
563         /* IPSR1 */
564         PINMUX_IPSR_GPSR(IP1_3_0,       DU_DB1),
565         PINMUX_IPSR_GPSR(IP1_3_0,       LCDOUT1),
566         PINMUX_IPSR_MSEL(IP1_3_0,       MSIOF3_RXD_B, SEL_MSIOF3_1),
567
568         PINMUX_IPSR_GPSR(IP1_7_4,       DU_DB2),
569         PINMUX_IPSR_GPSR(IP1_7_4,       LCDOUT2),
570         PINMUX_IPSR_MSEL(IP1_7_4,       IRQ0_B, SEL_IRQ_0_1),
571
572         PINMUX_IPSR_GPSR(IP1_11_8,      DU_DB3),
573         PINMUX_IPSR_GPSR(IP1_11_8,      LCDOUT3),
574         PINMUX_IPSR_MSEL(IP1_11_8,      SCK5_B, SEL_SCIF5_1),
575
576         PINMUX_IPSR_GPSR(IP1_15_12,     DU_DB4),
577         PINMUX_IPSR_GPSR(IP1_15_12,     LCDOUT4),
578         PINMUX_IPSR_MSEL(IP1_15_12,     RX5_B, SEL_SCIF5_1),
579
580         PINMUX_IPSR_GPSR(IP1_19_16,     DU_DB5),
581         PINMUX_IPSR_GPSR(IP1_19_16,     LCDOUT5),
582         PINMUX_IPSR_MSEL(IP1_19_16,     TX5_B, SEL_SCIF5_1),
583
584         PINMUX_IPSR_GPSR(IP1_23_20,     DU_DB6),
585         PINMUX_IPSR_GPSR(IP1_23_20,     LCDOUT6),
586         PINMUX_IPSR_MSEL(IP1_23_20,     MSIOF3_SS1_B, SEL_MSIOF3_1),
587
588         PINMUX_IPSR_GPSR(IP1_27_24,     DU_DB7),
589         PINMUX_IPSR_GPSR(IP1_27_24,     LCDOUT7),
590         PINMUX_IPSR_MSEL(IP1_27_24,     MSIOF3_SS2_B, SEL_MSIOF3_1),
591
592         PINMUX_IPSR_GPSR(IP1_31_28,     DU_DG0),
593         PINMUX_IPSR_GPSR(IP1_31_28,     LCDOUT8),
594         PINMUX_IPSR_MSEL(IP1_31_28,     MSIOF3_SCK_B, SEL_MSIOF3_1),
595
596         /* IPSR2 */
597         PINMUX_IPSR_GPSR(IP2_3_0,       DU_DG1),
598         PINMUX_IPSR_GPSR(IP2_3_0,       LCDOUT9),
599         PINMUX_IPSR_MSEL(IP2_3_0,       MSIOF3_SYNC_B, SEL_MSIOF3_1),
600
601         PINMUX_IPSR_GPSR(IP2_7_4,       DU_DG2),
602         PINMUX_IPSR_GPSR(IP2_7_4,       LCDOUT10),
603
604         PINMUX_IPSR_GPSR(IP2_11_8,      DU_DG3),
605         PINMUX_IPSR_GPSR(IP2_11_8,      LCDOUT11),
606         PINMUX_IPSR_MSEL(IP2_11_8,      IRQ1_A, SEL_IRQ_1_0),
607
608         PINMUX_IPSR_GPSR(IP2_15_12,     DU_DG4),
609         PINMUX_IPSR_GPSR(IP2_15_12,     LCDOUT12),
610         PINMUX_IPSR_MSEL(IP2_15_12,     HSCK3_B, SEL_HSCIF3_1),
611
612         PINMUX_IPSR_GPSR(IP2_19_16,     DU_DG5),
613         PINMUX_IPSR_GPSR(IP2_19_16,     LCDOUT13),
614         PINMUX_IPSR_MSEL(IP2_19_16,     HTX3_B, SEL_HSCIF3_1),
615
616         PINMUX_IPSR_GPSR(IP2_23_20,     DU_DG6),
617         PINMUX_IPSR_GPSR(IP2_23_20,     LCDOUT14),
618         PINMUX_IPSR_MSEL(IP2_23_20,     HRX3_B, SEL_HSCIF3_1),
619
620         PINMUX_IPSR_GPSR(IP2_27_24,     DU_DG7),
621         PINMUX_IPSR_GPSR(IP2_27_24,     LCDOUT15),
622         PINMUX_IPSR_MSEL(IP2_27_24,     SCK4_B, SEL_SCIF4_1),
623
624         PINMUX_IPSR_GPSR(IP2_31_28,     DU_DR0),
625         PINMUX_IPSR_GPSR(IP2_31_28,     LCDOUT16),
626         PINMUX_IPSR_MSEL(IP2_31_28,     RX4_B, SEL_SCIF4_1),
627
628         /* IPSR3 */
629         PINMUX_IPSR_GPSR(IP3_3_0,       DU_DR1),
630         PINMUX_IPSR_GPSR(IP3_3_0,       LCDOUT17),
631         PINMUX_IPSR_MSEL(IP3_3_0,       TX4_B, SEL_SCIF4_1),
632
633         PINMUX_IPSR_GPSR(IP3_7_4,       DU_DR2),
634         PINMUX_IPSR_GPSR(IP3_7_4,       LCDOUT18),
635         PINMUX_IPSR_MSEL(IP3_7_4,       PWM0_B, SEL_PWM0_2),
636
637         PINMUX_IPSR_GPSR(IP3_11_8,      DU_DR3),
638         PINMUX_IPSR_GPSR(IP3_11_8,      LCDOUT19),
639         PINMUX_IPSR_MSEL(IP3_11_8,      PWM1_B, SEL_PWM1_2),
640
641         PINMUX_IPSR_GPSR(IP3_15_12,     DU_DR4),
642         PINMUX_IPSR_GPSR(IP3_15_12,     LCDOUT20),
643         PINMUX_IPSR_MSEL(IP3_15_12,     TCLK2_B, SEL_TMU_0_1),
644
645         PINMUX_IPSR_GPSR(IP3_19_16,     DU_DR5),
646         PINMUX_IPSR_GPSR(IP3_19_16,     LCDOUT21),
647         PINMUX_IPSR_GPSR(IP3_19_16,     NMI),
648
649         PINMUX_IPSR_GPSR(IP3_23_20,     DU_DR6),
650         PINMUX_IPSR_GPSR(IP3_23_20,     LCDOUT22),
651         PINMUX_IPSR_MSEL(IP3_23_20,     PWM2_B, SEL_PWM2_2),
652
653         PINMUX_IPSR_GPSR(IP3_27_24,     DU_DR7),
654         PINMUX_IPSR_GPSR(IP3_27_24,     LCDOUT23),
655         PINMUX_IPSR_MSEL(IP3_27_24,     TCLK1_B, SEL_TMU_1_1),
656
657         PINMUX_IPSR_GPSR(IP3_31_28,     DU_DOTCLKOUT0),
658         PINMUX_IPSR_GPSR(IP3_31_28,     QCLK),
659
660         /* IPSR4 */
661         PINMUX_IPSR_GPSR(IP4_3_0,       DU_HSYNC),
662         PINMUX_IPSR_GPSR(IP4_3_0,       QSTH_QHS),
663         PINMUX_IPSR_MSEL(IP4_3_0,       IRQ3_A, SEL_IRQ_3_0),
664
665         PINMUX_IPSR_GPSR(IP4_7_4,       DU_VSYNC),
666         PINMUX_IPSR_GPSR(IP4_7_4,       QSTVA_QVS),
667         PINMUX_IPSR_MSEL(IP4_7_4,       IRQ4_A, SEL_IRQ_4_0),
668
669         PINMUX_IPSR_GPSR(IP4_11_8,      DU_DISP),
670         PINMUX_IPSR_GPSR(IP4_11_8,      QSTVB_QVE),
671         PINMUX_IPSR_MSEL(IP4_11_8,      PWM3_B, SEL_PWM3_2),
672
673         PINMUX_IPSR_GPSR(IP4_15_12,     DU_DISP_CDE),
674         PINMUX_IPSR_GPSR(IP4_15_12,     QCPV_QDE),
675         PINMUX_IPSR_MSEL(IP4_15_12,     IRQ2_B, SEL_IRQ_2_1),
676         PINMUX_IPSR_GPSR(IP4_15_12,     DU_DOTCLKIN1),
677
678         PINMUX_IPSR_GPSR(IP4_19_16,     DU_CDE),
679         PINMUX_IPSR_GPSR(IP4_19_16,     QSTB_QHE),
680         PINMUX_IPSR_MSEL(IP4_19_16,     SCK3_B, SEL_SCIF3_1),
681
682         PINMUX_IPSR_GPSR(IP4_23_20,     QPOLA),
683         PINMUX_IPSR_MSEL(IP4_23_20,     RX3_B, SEL_SCIF3_1),
684
685         PINMUX_IPSR_GPSR(IP4_27_24,     QPOLB),
686         PINMUX_IPSR_MSEL(IP4_27_24,     TX3_B, SEL_SCIF3_1),
687
688         PINMUX_IPSR_GPSR(IP4_31_28,     VI4_DATA0),
689         PINMUX_IPSR_MSEL(IP4_31_28,     PWM0_A, SEL_PWM0_0),
690
691         /* IPSR5 */
692         PINMUX_IPSR_GPSR(IP5_3_0,       VI4_DATA1),
693         PINMUX_IPSR_MSEL(IP5_3_0,       PWM1_A, SEL_PWM1_0),
694
695         PINMUX_IPSR_GPSR(IP5_7_4,       VI4_DATA2),
696         PINMUX_IPSR_MSEL(IP5_7_4,       PWM2_A, SEL_PWM2_0),
697
698         PINMUX_IPSR_GPSR(IP5_11_8,      VI4_DATA3),
699         PINMUX_IPSR_MSEL(IP5_11_8,      PWM3_A, SEL_PWM3_0),
700
701         PINMUX_IPSR_GPSR(IP5_15_12,     VI4_DATA5),
702         PINMUX_IPSR_MSEL(IP5_15_12,     SCK4_A, SEL_SCIF4_0),
703
704         PINMUX_IPSR_GPSR(IP5_19_16,     VI4_DATA6),
705         PINMUX_IPSR_MSEL(IP5_19_16,     IRQ2_A, SEL_IRQ_2_0),
706
707         PINMUX_IPSR_GPSR(IP5_23_20,     VI4_DATA7),
708         PINMUX_IPSR_MSEL(IP5_23_20,     TCLK2_A, SEL_TMU_0_0),
709
710         PINMUX_IPSR_GPSR(IP5_27_24,     VI4_DATA8),
711
712         PINMUX_IPSR_GPSR(IP5_31_28,     VI4_DATA9),
713         PINMUX_IPSR_MSEL(IP5_31_28,     MSIOF3_SS2_A, SEL_MSIOF3_0),
714         PINMUX_IPSR_MSEL(IP5_31_28,     IRQ1_B, SEL_IRQ_1_1),
715
716         /* IPSR6 */
717         PINMUX_IPSR_GPSR(IP6_3_0,       VI4_DATA10),
718         PINMUX_IPSR_MSEL(IP6_3_0,       RX4_A, SEL_SCIF4_0),
719
720         PINMUX_IPSR_GPSR(IP6_7_4,       VI4_DATA11),
721         PINMUX_IPSR_MSEL(IP6_7_4,       TX4_A, SEL_SCIF4_0),
722
723         PINMUX_IPSR_GPSR(IP6_11_8,      VI4_DATA12),
724         PINMUX_IPSR_MSEL(IP6_11_8,      TCLK1_A, SEL_TMU_1_0),
725
726         PINMUX_IPSR_GPSR(IP6_15_12,     VI4_DATA13),
727         PINMUX_IPSR_MSEL(IP6_15_12,     MSIOF3_SS1_A, SEL_MSIOF3_0),
728         PINMUX_IPSR_GPSR(IP6_15_12,     HCTS3_N),
729
730         PINMUX_IPSR_GPSR(IP6_19_16,     VI4_DATA14),
731         PINMUX_IPSR_MSEL(IP6_19_16,     SSI_SCK4_B, SEL_SSIF4_1),
732         PINMUX_IPSR_GPSR(IP6_19_16,     HRTS3_N),
733
734         PINMUX_IPSR_GPSR(IP6_23_20,     VI4_DATA15),
735         PINMUX_IPSR_MSEL(IP6_23_20,     SSI_SDATA4_B, SEL_SSIF4_1),
736
737         PINMUX_IPSR_GPSR(IP6_27_24,     VI4_DATA16),
738         PINMUX_IPSR_MSEL(IP6_27_24,     HRX3_A, SEL_HSCIF3_0),
739
740         PINMUX_IPSR_GPSR(IP6_31_28,     VI4_DATA17),
741         PINMUX_IPSR_MSEL(IP6_31_28,     HTX3_A, SEL_HSCIF3_0),
742
743         /* IPSR7 */
744         PINMUX_IPSR_GPSR(IP7_3_0,       VI4_DATA18),
745         PINMUX_IPSR_MSEL(IP7_3_0,       HSCK3_A, SEL_HSCIF3_0),
746
747         PINMUX_IPSR_GPSR(IP7_7_4,       VI4_DATA19),
748         PINMUX_IPSR_MSEL(IP7_7_4,       SSI_WS4_B, SEL_SSIF4_1),
749         PINMUX_IPSR_GPSR(IP7_7_4,       NFDATA15),
750
751         PINMUX_IPSR_GPSR(IP7_11_8,      VI4_DATA20),
752         PINMUX_IPSR_MSEL(IP7_11_8,      MSIOF3_SYNC_A, SEL_MSIOF3_0),
753         PINMUX_IPSR_GPSR(IP7_11_8,      NFDATA14),
754
755         PINMUX_IPSR_GPSR(IP7_15_12,     VI4_DATA21),
756         PINMUX_IPSR_MSEL(IP7_15_12,     MSIOF3_TXD_A, SEL_MSIOF3_0),
757
758         PINMUX_IPSR_GPSR(IP7_15_12,     NFDATA13),
759         PINMUX_IPSR_GPSR(IP7_19_16,     VI4_DATA22),
760         PINMUX_IPSR_MSEL(IP7_19_16,     MSIOF3_RXD_A, SEL_MSIOF3_0),
761
762         PINMUX_IPSR_GPSR(IP7_19_16,     NFDATA12),
763         PINMUX_IPSR_GPSR(IP7_23_20,     VI4_DATA23),
764         PINMUX_IPSR_MSEL(IP7_23_20,     MSIOF3_SCK_A, SEL_MSIOF3_0),
765
766         PINMUX_IPSR_GPSR(IP7_23_20,     NFDATA11),
767
768         PINMUX_IPSR_GPSR(IP7_27_24,     VI4_VSYNC_N),
769         PINMUX_IPSR_MSEL(IP7_27_24,     SCK1_B, SEL_SCIF1_1),
770         PINMUX_IPSR_GPSR(IP7_27_24,     NFDATA10),
771
772         PINMUX_IPSR_GPSR(IP7_31_28,     VI4_HSYNC_N),
773         PINMUX_IPSR_MSEL(IP7_31_28,     RX1_B, SEL_SCIF1_1),
774         PINMUX_IPSR_GPSR(IP7_31_28,     NFDATA9),
775
776         /* IPSR8 */
777         PINMUX_IPSR_GPSR(IP8_3_0,       VI4_FIELD),
778         PINMUX_IPSR_GPSR(IP8_3_0,       AUDIO_CLKB),
779         PINMUX_IPSR_MSEL(IP8_3_0,       IRQ5_A, SEL_IRQ_5_0),
780         PINMUX_IPSR_GPSR(IP8_3_0,       SCIF_CLK),
781         PINMUX_IPSR_GPSR(IP8_3_0,       NFDATA8),
782
783         PINMUX_IPSR_GPSR(IP8_7_4,       VI4_CLKENB),
784         PINMUX_IPSR_MSEL(IP8_7_4,       TX1_B, SEL_SCIF1_1),
785         PINMUX_IPSR_GPSR(IP8_7_4,       NFWP_N),
786         PINMUX_IPSR_MSEL(IP8_7_4,       DVC_MUTE_A, SEL_SCU_0),
787
788         PINMUX_IPSR_GPSR(IP8_11_8,      NFALE),
789         PINMUX_IPSR_MSEL(IP8_11_8,      SCL2_B, SEL_I2C2_1),
790         PINMUX_IPSR_MSEL(IP8_11_8,      IRQ3_B, SEL_IRQ_3_1),
791         PINMUX_IPSR_MSEL(IP8_11_8,      PWM0_C, SEL_PWM0_1),
792
793         PINMUX_IPSR_GPSR(IP8_15_12,     NFCLE),
794         PINMUX_IPSR_MSEL(IP8_15_12,     SDA2_B, SEL_I2C2_1),
795         PINMUX_IPSR_MSEL(IP8_15_12,     SCK3_A, SEL_SCIF3_0),
796         PINMUX_IPSR_MSEL(IP8_15_12,     PWM1_C, SEL_PWM1_1),
797
798         PINMUX_IPSR_GPSR(IP8_19_16,     NFCE_N),
799         PINMUX_IPSR_MSEL(IP8_19_16,     RX3_A, SEL_SCIF3_0),
800         PINMUX_IPSR_MSEL(IP8_19_16,     PWM2_C, SEL_PWM2_1),
801
802         PINMUX_IPSR_GPSR(IP8_23_20,     NFRB_N),
803         PINMUX_IPSR_MSEL(IP8_23_20,     TX3_A, SEL_SCIF3_0),
804         PINMUX_IPSR_MSEL(IP8_23_20,     PWM3_C, SEL_PWM3_1),
805
806         PINMUX_IPSR_GPSR(IP8_27_24,     NFRE_N),
807         PINMUX_IPSR_GPSR(IP8_27_24,     MMC_CMD),
808
809         PINMUX_IPSR_GPSR(IP8_31_28,     NFWE_N),
810         PINMUX_IPSR_GPSR(IP8_31_28,     MMC_CLK),
811
812         /* IPSR9 */
813         PINMUX_IPSR_GPSR(IP9_3_0,       NFDATA0),
814         PINMUX_IPSR_GPSR(IP9_3_0,       MMC_D0),
815
816         PINMUX_IPSR_GPSR(IP9_7_4,       NFDATA1),
817         PINMUX_IPSR_GPSR(IP9_7_4,       MMC_D1),
818
819         PINMUX_IPSR_GPSR(IP9_11_8,      NFDATA2),
820         PINMUX_IPSR_GPSR(IP9_11_8,      MMC_D2),
821
822         PINMUX_IPSR_GPSR(IP9_15_12,     NFDATA3),
823         PINMUX_IPSR_GPSR(IP9_15_12,     MMC_D3),
824
825         PINMUX_IPSR_GPSR(IP9_19_16,     NFDATA4),
826         PINMUX_IPSR_GPSR(IP9_19_16,     MMC_D4),
827
828         PINMUX_IPSR_GPSR(IP9_23_20,     NFDATA5),
829         PINMUX_IPSR_GPSR(IP9_23_20,     MMC_D5),
830
831         PINMUX_IPSR_GPSR(IP9_27_24,     NFDATA6),
832         PINMUX_IPSR_GPSR(IP9_27_24,     MMC_D6),
833
834         PINMUX_IPSR_GPSR(IP9_31_28,     NFDATA7),
835         PINMUX_IPSR_GPSR(IP9_31_28,     MMC_D7),
836
837         /* IPSR10 */
838         PINMUX_IPSR_GPSR(IP10_3_0,      AUDIO_CLKA),
839         PINMUX_IPSR_MSEL(IP10_3_0,      DVC_MUTE_B, SEL_SCU_1),
840
841         PINMUX_IPSR_GPSR(IP10_7_4,      SSI_SCK34),
842         PINMUX_IPSR_MSEL(IP10_7_4,      FSO_CFE_0_N_A, SEL_RFSO_0),
843
844         PINMUX_IPSR_GPSR(IP10_11_8,     SSI_SDATA3),
845         PINMUX_IPSR_MSEL(IP10_11_8,     FSO_CFE_1_N_A, SEL_RFSO_0),
846
847         PINMUX_IPSR_GPSR(IP10_15_12,    SSI_WS34),
848         PINMUX_IPSR_MSEL(IP10_15_12,    FSO_TOE_N_A, SEL_RFSO_0),
849
850         PINMUX_IPSR_MSEL(IP10_19_16,    SSI_SCK4_A, SEL_SSIF4_0),
851         PINMUX_IPSR_GPSR(IP10_19_16,    HSCK0),
852         PINMUX_IPSR_GPSR(IP10_19_16,    AUDIO_CLKOUT),
853         PINMUX_IPSR_MSEL(IP10_19_16,    CAN0_RX_B, SEL_CAN0_1),
854         PINMUX_IPSR_MSEL(IP10_19_16,    IRQ4_B, SEL_IRQ_4_1),
855
856         PINMUX_IPSR_MSEL(IP10_23_20,    SSI_SDATA4_A, SEL_SSIF4_0),
857         PINMUX_IPSR_GPSR(IP10_23_20,    HTX0),
858         PINMUX_IPSR_MSEL(IP10_23_20,    SCL2_A, SEL_I2C2_0),
859         PINMUX_IPSR_MSEL(IP10_23_20,    CAN1_RX_B, SEL_CAN1_1),
860
861         PINMUX_IPSR_MSEL(IP10_27_24,    SSI_WS4_A, SEL_SSIF4_0),
862         PINMUX_IPSR_GPSR(IP10_27_24,    HRX0),
863         PINMUX_IPSR_MSEL(IP10_27_24,    SDA2_A, SEL_I2C2_0),
864         PINMUX_IPSR_MSEL(IP10_27_24,    CAN1_TX_B, SEL_CAN1_1),
865
866         PINMUX_IPSR_GPSR(IP10_31_28,    SCL1),
867         PINMUX_IPSR_GPSR(IP10_31_28,    CTS1_N),
868
869         /* IPSR11 */
870         PINMUX_IPSR_GPSR(IP11_3_0,      SDA1),
871         PINMUX_IPSR_GPSR(IP11_3_0,      RTS1_N),
872
873         PINMUX_IPSR_GPSR(IP11_7_4,      MSIOF1_SCK),
874         PINMUX_IPSR_MSEL(IP11_7_4,      AVB0_AVTP_PPS_B, SEL_ETHERAVB_1),
875
876         PINMUX_IPSR_GPSR(IP11_11_8,     MSIOF1_TXD),
877         PINMUX_IPSR_MSEL(IP11_11_8,     AVB0_AVTP_CAPTURE_B, SEL_ETHERAVB_1),
878
879         PINMUX_IPSR_GPSR(IP11_15_12,    MSIOF1_RXD),
880         PINMUX_IPSR_MSEL(IP11_15_12,    AVB0_AVTP_MATCH_B, SEL_ETHERAVB_1),
881
882         PINMUX_IPSR_MSEL(IP11_19_16,    SCK0_A, SEL_SCIF0_0),
883         PINMUX_IPSR_GPSR(IP11_19_16,    MSIOF1_SYNC),
884         PINMUX_IPSR_MSEL(IP11_19_16,    FSO_CFE_0_N_B, SEL_RFSO_1),
885
886         PINMUX_IPSR_MSEL(IP11_23_20,    RX0_A, SEL_SCIF0_0),
887         PINMUX_IPSR_GPSR(IP11_23_20,    MSIOF0_SS1),
888         PINMUX_IPSR_MSEL(IP11_23_20,    FSO_CFE_1_N_B, SEL_RFSO_1),
889
890         PINMUX_IPSR_MSEL(IP11_27_24,    TX0_A, SEL_SCIF0_0),
891         PINMUX_IPSR_GPSR(IP11_27_24,    MSIOF0_SS2),
892         PINMUX_IPSR_MSEL(IP11_27_24,    FSO_TOE_N_B, SEL_RFSO_1),
893
894         PINMUX_IPSR_MSEL(IP11_31_28,    SCK1_A, SEL_SCIF1_0),
895         PINMUX_IPSR_GPSR(IP11_31_28,    MSIOF1_SS2),
896         PINMUX_IPSR_GPSR(IP11_31_28,    TPU0TO2_B),
897         PINMUX_IPSR_MSEL(IP11_31_28,    CAN0_TX_B, SEL_CAN0_1),
898         PINMUX_IPSR_GPSR(IP11_31_28,    AUDIO_CLKOUT1),
899
900         /* IPSR12 */
901         PINMUX_IPSR_MSEL(IP12_3_0,      RX1_A, SEL_SCIF1_0),
902         PINMUX_IPSR_GPSR(IP12_3_0,      CTS0_N),
903         PINMUX_IPSR_GPSR(IP12_3_0,      TPU0TO0_B),
904
905         PINMUX_IPSR_MSEL(IP12_7_4,      TX1_A, SEL_SCIF1_0),
906         PINMUX_IPSR_GPSR(IP12_7_4,      RTS0_N),
907         PINMUX_IPSR_GPSR(IP12_7_4,      TPU0TO1_B),
908
909         PINMUX_IPSR_GPSR(IP12_11_8,     SCK2),
910         PINMUX_IPSR_GPSR(IP12_11_8,     MSIOF1_SS1),
911         PINMUX_IPSR_GPSR(IP12_11_8,     TPU0TO3_B),
912
913         PINMUX_IPSR_GPSR(IP12_15_12,    TPU0TO0_A),
914         PINMUX_IPSR_MSEL(IP12_15_12,    AVB0_AVTP_CAPTURE_A, SEL_ETHERAVB_0),
915         PINMUX_IPSR_GPSR(IP12_15_12,    HCTS0_N),
916
917         PINMUX_IPSR_GPSR(IP12_19_16,    TPU0TO1_A),
918         PINMUX_IPSR_MSEL(IP12_19_16,    AVB0_AVTP_MATCH_A, SEL_ETHERAVB_0),
919         PINMUX_IPSR_GPSR(IP12_19_16,    HRTS0_N),
920
921         PINMUX_IPSR_GPSR(IP12_23_20,    CAN_CLK),
922         PINMUX_IPSR_MSEL(IP12_23_20,    AVB0_AVTP_PPS_A, SEL_ETHERAVB_0),
923         PINMUX_IPSR_MSEL(IP12_23_20,    SCK0_B, SEL_SCIF0_1),
924         PINMUX_IPSR_MSEL(IP12_23_20,    IRQ5_B, SEL_IRQ_5_1),
925
926         PINMUX_IPSR_MSEL(IP12_27_24,    CAN0_RX_A, SEL_CAN0_0),
927         PINMUX_IPSR_GPSR(IP12_27_24,    CANFD0_RX),
928         PINMUX_IPSR_MSEL(IP12_27_24,    RX0_B, SEL_SCIF0_1),
929
930         PINMUX_IPSR_MSEL(IP12_31_28,    CAN0_TX_A, SEL_CAN0_0),
931         PINMUX_IPSR_GPSR(IP12_31_28,    CANFD0_TX),
932         PINMUX_IPSR_MSEL(IP12_31_28,    TX0_B, SEL_SCIF0_1),
933
934         /* IPSR13 */
935         PINMUX_IPSR_MSEL(IP13_3_0,      CAN1_RX_A, SEL_CAN1_0),
936         PINMUX_IPSR_GPSR(IP13_3_0,      CANFD1_RX),
937         PINMUX_IPSR_GPSR(IP13_3_0,      TPU0TO2_A),
938
939         PINMUX_IPSR_MSEL(IP13_7_4,      CAN1_TX_A, SEL_CAN1_0),
940         PINMUX_IPSR_GPSR(IP13_7_4,      CANFD1_TX),
941         PINMUX_IPSR_GPSR(IP13_7_4,      TPU0TO3_A),
942 };
943
944 /*
945  * Pins not associated with a GPIO port.
946  */
947 enum {
948         GP_ASSIGN_LAST(),
949         NOGP_ALL(),
950 };
951
952 static const struct sh_pfc_pin pinmux_pins[] = {
953         PINMUX_GPIO_GP_ALL(),
954         PINMUX_NOGP_ALL(),
955 };
956
957 /* - AUDIO CLOCK ------------------------------------------------------------- */
958 static const unsigned int audio_clk_a_pins[] = {
959         /* CLK A */
960         RCAR_GP_PIN(4, 1),
961 };
962 static const unsigned int audio_clk_a_mux[] = {
963         AUDIO_CLKA_MARK,
964 };
965 static const unsigned int audio_clk_b_pins[] = {
966         /* CLK B */
967         RCAR_GP_PIN(2, 27),
968 };
969 static const unsigned int audio_clk_b_mux[] = {
970         AUDIO_CLKB_MARK,
971 };
972 static const unsigned int audio_clkout_pins[] = {
973         /* CLKOUT */
974         RCAR_GP_PIN(4, 5),
975 };
976 static const unsigned int audio_clkout_mux[] = {
977         AUDIO_CLKOUT_MARK,
978 };
979 static const unsigned int audio_clkout1_pins[] = {
980         /* CLKOUT1 */
981         RCAR_GP_PIN(4, 22),
982 };
983 static const unsigned int audio_clkout1_mux[] = {
984         AUDIO_CLKOUT1_MARK,
985 };
986
987 /* - EtherAVB --------------------------------------------------------------- */
988 static const unsigned int avb0_link_pins[] = {
989         /* AVB0_LINK */
990         RCAR_GP_PIN(5, 20),
991 };
992 static const unsigned int avb0_link_mux[] = {
993         AVB0_LINK_MARK,
994 };
995 static const unsigned int avb0_magic_pins[] = {
996         /* AVB0_MAGIC */
997         RCAR_GP_PIN(5, 18),
998 };
999 static const unsigned int avb0_magic_mux[] = {
1000         AVB0_MAGIC_MARK,
1001 };
1002 static const unsigned int avb0_phy_int_pins[] = {
1003         /* AVB0_PHY_INT */
1004         RCAR_GP_PIN(5, 19),
1005 };
1006 static const unsigned int avb0_phy_int_mux[] = {
1007         AVB0_PHY_INT_MARK,
1008 };
1009 static const unsigned int avb0_mdio_pins[] = {
1010         /* AVB0_MDC, AVB0_MDIO */
1011         RCAR_GP_PIN(5, 17), RCAR_GP_PIN(5, 16),
1012 };
1013 static const unsigned int avb0_mdio_mux[] = {
1014         AVB0_MDC_MARK, AVB0_MDIO_MARK,
1015 };
1016 static const unsigned int avb0_mii_pins[] = {
1017         /*
1018          * AVB0_TX_CTL, AVB0_TXC, AVB0_TD0,
1019          * AVB0_TD1, AVB0_TD2, AVB0_TD3,
1020          * AVB0_RX_CTL, AVB0_RXC, AVB0_RD0,
1021          * AVB0_RD1, AVB0_RD2, AVB0_RD3,
1022          * AVB0_TXCREFCLK
1023          */
1024         RCAR_GP_PIN(5, 9), RCAR_GP_PIN(5, 10), RCAR_GP_PIN(5, 11),
1025         RCAR_GP_PIN(5, 12), RCAR_GP_PIN(5, 13), RCAR_GP_PIN(5, 14),
1026         RCAR_GP_PIN(5, 3), RCAR_GP_PIN(5, 4), RCAR_GP_PIN(5, 5),
1027         RCAR_GP_PIN(5, 6), RCAR_GP_PIN(5, 7), RCAR_GP_PIN(5, 8),
1028         RCAR_GP_PIN(5, 15),
1029 };
1030 static const unsigned int avb0_mii_mux[] = {
1031         AVB0_TX_CTL_MARK, AVB0_TXC_MARK, AVB0_TD0_MARK,
1032         AVB0_TD1_MARK, AVB0_TD2_MARK, AVB0_TD3_MARK,
1033         AVB0_RX_CTL_MARK, AVB0_RXC_MARK, AVB0_RD0_MARK,
1034         AVB0_RD1_MARK, AVB0_RD2_MARK, AVB0_RD3_MARK,
1035         AVB0_TXCREFCLK_MARK,
1036 };
1037 static const unsigned int avb0_avtp_pps_a_pins[] = {
1038         /* AVB0_AVTP_PPS_A */
1039         RCAR_GP_PIN(5, 2),
1040 };
1041 static const unsigned int avb0_avtp_pps_a_mux[] = {
1042         AVB0_AVTP_PPS_A_MARK,
1043 };
1044 static const unsigned int avb0_avtp_match_a_pins[] = {
1045         /* AVB0_AVTP_MATCH_A */
1046         RCAR_GP_PIN(5, 1),
1047 };
1048 static const unsigned int avb0_avtp_match_a_mux[] = {
1049         AVB0_AVTP_MATCH_A_MARK,
1050 };
1051 static const unsigned int avb0_avtp_capture_a_pins[] = {
1052         /* AVB0_AVTP_CAPTURE_A */
1053         RCAR_GP_PIN(5, 0),
1054 };
1055 static const unsigned int avb0_avtp_capture_a_mux[] = {
1056         AVB0_AVTP_CAPTURE_A_MARK,
1057 };
1058 static const unsigned int avb0_avtp_pps_b_pins[] = {
1059         /* AVB0_AVTP_PPS_B */
1060         RCAR_GP_PIN(4, 16),
1061 };
1062 static const unsigned int avb0_avtp_pps_b_mux[] = {
1063         AVB0_AVTP_PPS_B_MARK,
1064 };
1065 static const unsigned int avb0_avtp_match_b_pins[] = {
1066         /*  AVB0_AVTP_MATCH_B */
1067         RCAR_GP_PIN(4, 18),
1068 };
1069 static const unsigned int avb0_avtp_match_b_mux[] = {
1070         AVB0_AVTP_MATCH_B_MARK,
1071 };
1072 static const unsigned int avb0_avtp_capture_b_pins[] = {
1073         /* AVB0_AVTP_CAPTURE_B */
1074         RCAR_GP_PIN(4, 17),
1075 };
1076 static const unsigned int avb0_avtp_capture_b_mux[] = {
1077         AVB0_AVTP_CAPTURE_B_MARK,
1078 };
1079
1080 /* - CAN ------------------------------------------------------------------ */
1081 static const unsigned int can0_data_a_pins[] = {
1082         /* TX, RX */
1083         RCAR_GP_PIN(4, 28), RCAR_GP_PIN(4, 31),
1084 };
1085 static const unsigned int can0_data_a_mux[] = {
1086         CAN0_TX_A_MARK, CAN0_RX_A_MARK,
1087 };
1088 static const unsigned int can0_data_b_pins[] = {
1089         /* TX, RX */
1090         RCAR_GP_PIN(4, 22), RCAR_GP_PIN(4, 5),
1091 };
1092 static const unsigned int can0_data_b_mux[] = {
1093         CAN0_TX_B_MARK, CAN0_RX_B_MARK,
1094 };
1095 static const unsigned int can1_data_a_pins[] = {
1096         /* TX, RX */
1097         RCAR_GP_PIN(4, 30), RCAR_GP_PIN(4, 29),
1098 };
1099 static const unsigned int can1_data_a_mux[] = {
1100         CAN1_TX_A_MARK, CAN1_RX_A_MARK,
1101 };
1102 static const unsigned int can1_data_b_pins[] = {
1103         /* TX, RX */
1104         RCAR_GP_PIN(4, 7), RCAR_GP_PIN(4, 6),
1105 };
1106 static const unsigned int can1_data_b_mux[] = {
1107         CAN1_TX_B_MARK, CAN1_RX_B_MARK,
1108 };
1109
1110 /* - CAN Clock -------------------------------------------------------------- */
1111 static const unsigned int can_clk_pins[] = {
1112         /* CLK */
1113         RCAR_GP_PIN(5, 2),
1114 };
1115 static const unsigned int can_clk_mux[] = {
1116         CAN_CLK_MARK,
1117 };
1118
1119 /* - CAN FD ----------------------------------------------------------------- */
1120 static const unsigned int canfd0_data_pins[] = {
1121         /* TX, RX */
1122         RCAR_GP_PIN(4, 28), RCAR_GP_PIN(4, 31),
1123 };
1124 static const unsigned int canfd0_data_mux[] = {
1125         CANFD0_TX_MARK, CANFD0_RX_MARK,
1126 };
1127 static const unsigned int canfd1_data_pins[] = {
1128         /* TX, RX */
1129         RCAR_GP_PIN(4, 30), RCAR_GP_PIN(4, 29),
1130 };
1131 static const unsigned int canfd1_data_mux[] = {
1132         CANFD1_TX_MARK, CANFD1_RX_MARK,
1133 };
1134
1135 /* - DU --------------------------------------------------------------------- */
1136 static const unsigned int du_rgb666_pins[] = {
1137         /* R[7:2], G[7:2], B[7:2] */
1138         RCAR_GP_PIN(1, 23), RCAR_GP_PIN(1, 22), RCAR_GP_PIN(1, 21),
1139         RCAR_GP_PIN(1, 20), RCAR_GP_PIN(1, 19), RCAR_GP_PIN(1, 18),
1140         RCAR_GP_PIN(1, 15), RCAR_GP_PIN(1, 14), RCAR_GP_PIN(1, 13),
1141         RCAR_GP_PIN(1, 12), RCAR_GP_PIN(1, 11), RCAR_GP_PIN(1, 10),
1142         RCAR_GP_PIN(1, 7),  RCAR_GP_PIN(1, 6),  RCAR_GP_PIN(1, 5),
1143         RCAR_GP_PIN(1, 4),  RCAR_GP_PIN(1, 3),  RCAR_GP_PIN(1, 2),
1144 };
1145 static const unsigned int du_rgb666_mux[] = {
1146         DU_DR7_MARK, DU_DR6_MARK, DU_DR5_MARK, DU_DR4_MARK,
1147         DU_DR3_MARK, DU_DR2_MARK,
1148         DU_DG7_MARK, DU_DG6_MARK, DU_DG5_MARK, DU_DG4_MARK,
1149         DU_DG3_MARK, DU_DG2_MARK,
1150         DU_DB7_MARK, DU_DB6_MARK, DU_DB5_MARK, DU_DB4_MARK,
1151         DU_DB3_MARK, DU_DB2_MARK,
1152 };
1153 static const unsigned int du_rgb888_pins[] = {
1154         /* R[7:0], G[7:0], B[7:0] */
1155         RCAR_GP_PIN(1, 23), RCAR_GP_PIN(1, 22), RCAR_GP_PIN(1, 21),
1156         RCAR_GP_PIN(1, 20), RCAR_GP_PIN(1, 19), RCAR_GP_PIN(1, 18),
1157         RCAR_GP_PIN(1, 17), RCAR_GP_PIN(1, 16),
1158         RCAR_GP_PIN(1, 15), RCAR_GP_PIN(1, 14), RCAR_GP_PIN(1, 13),
1159         RCAR_GP_PIN(1, 12), RCAR_GP_PIN(1, 11), RCAR_GP_PIN(1, 10),
1160         RCAR_GP_PIN(1, 9),  RCAR_GP_PIN(1, 8),
1161         RCAR_GP_PIN(1, 7),  RCAR_GP_PIN(1, 6),  RCAR_GP_PIN(1, 5),
1162         RCAR_GP_PIN(1, 4),  RCAR_GP_PIN(1, 3),  RCAR_GP_PIN(1, 2),
1163         RCAR_GP_PIN(1, 1),  RCAR_GP_PIN(1, 0),
1164 };
1165 static const unsigned int du_rgb888_mux[] = {
1166         DU_DR7_MARK, DU_DR6_MARK, DU_DR5_MARK, DU_DR4_MARK,
1167         DU_DR3_MARK, DU_DR2_MARK, DU_DR1_MARK, DU_DR0_MARK,
1168         DU_DG7_MARK, DU_DG6_MARK, DU_DG5_MARK, DU_DG4_MARK,
1169         DU_DG3_MARK, DU_DG2_MARK, DU_DG1_MARK, DU_DG0_MARK,
1170         DU_DB7_MARK, DU_DB6_MARK, DU_DB5_MARK, DU_DB4_MARK,
1171         DU_DB3_MARK, DU_DB2_MARK, DU_DB1_MARK, DU_DB0_MARK,
1172 };
1173 static const unsigned int du_clk_in_1_pins[] = {
1174         /* CLKIN */
1175         RCAR_GP_PIN(1, 28),
1176 };
1177 static const unsigned int du_clk_in_1_mux[] = {
1178         DU_DOTCLKIN1_MARK
1179 };
1180 static const unsigned int du_clk_out_0_pins[] = {
1181         /* CLKOUT */
1182         RCAR_GP_PIN(1, 24),
1183 };
1184 static const unsigned int du_clk_out_0_mux[] = {
1185         DU_DOTCLKOUT0_MARK
1186 };
1187 static const unsigned int du_sync_pins[] = {
1188         /* VSYNC, HSYNC */
1189         RCAR_GP_PIN(1, 26), RCAR_GP_PIN(1, 25),
1190 };
1191 static const unsigned int du_sync_mux[] = {
1192         DU_VSYNC_MARK, DU_HSYNC_MARK
1193 };
1194 static const unsigned int du_disp_cde_pins[] = {
1195         /* DISP_CDE */
1196         RCAR_GP_PIN(1, 28),
1197 };
1198 static const unsigned int du_disp_cde_mux[] = {
1199         DU_DISP_CDE_MARK,
1200 };
1201 static const unsigned int du_cde_pins[] = {
1202         /* CDE */
1203         RCAR_GP_PIN(1, 29),
1204 };
1205 static const unsigned int du_cde_mux[] = {
1206         DU_CDE_MARK,
1207 };
1208 static const unsigned int du_disp_pins[] = {
1209         /* DISP */
1210         RCAR_GP_PIN(1, 27),
1211 };
1212 static const unsigned int du_disp_mux[] = {
1213         DU_DISP_MARK,
1214 };
1215
1216 /* - I2C -------------------------------------------------------------------- */
1217 static const unsigned int i2c0_pins[] = {
1218         /* SCL, SDA */
1219         RCAR_GP_PIN(4, 8), RCAR_GP_PIN(4, 9),
1220 };
1221 static const unsigned int i2c0_mux[] = {
1222         SCL0_MARK, SDA0_MARK,
1223 };
1224 static const unsigned int i2c1_pins[] = {
1225         /* SCL, SDA */
1226         RCAR_GP_PIN(4, 10), RCAR_GP_PIN(4, 11),
1227 };
1228 static const unsigned int i2c1_mux[] = {
1229         SCL1_MARK, SDA1_MARK,
1230 };
1231 static const unsigned int i2c2_a_pins[] = {
1232         /* SCL, SDA */
1233         RCAR_GP_PIN(4, 6), RCAR_GP_PIN(4, 7),
1234 };
1235 static const unsigned int i2c2_a_mux[] = {
1236         SCL2_A_MARK, SDA2_A_MARK,
1237 };
1238 static const unsigned int i2c2_b_pins[] = {
1239         /* SCL, SDA */
1240         RCAR_GP_PIN(2, 29), RCAR_GP_PIN(2, 30),
1241 };
1242 static const unsigned int i2c2_b_mux[] = {
1243         SCL2_B_MARK, SDA2_B_MARK,
1244 };
1245 static const unsigned int i2c3_a_pins[] = {
1246         /* SCL, SDA */
1247         RCAR_GP_PIN(0, 4), RCAR_GP_PIN(0, 5),
1248 };
1249 static const unsigned int i2c3_a_mux[] = {
1250         SCL3_A_MARK, SDA3_A_MARK,
1251 };
1252 static const unsigned int i2c3_b_pins[] = {
1253         /* SCL, SDA */
1254         RCAR_GP_PIN(0, 7), RCAR_GP_PIN(0, 8),
1255 };
1256 static const unsigned int i2c3_b_mux[] = {
1257         SCL3_B_MARK, SDA3_B_MARK,
1258 };
1259
1260 /* - MMC ------------------------------------------------------------------- */
1261 static const unsigned int mmc_data1_pins[] = {
1262         /* D0 */
1263         RCAR_GP_PIN(3, 2),
1264 };
1265 static const unsigned int mmc_data1_mux[] = {
1266         MMC_D0_MARK,
1267 };
1268 static const unsigned int mmc_data4_pins[] = {
1269         /* D[0:3] */
1270         RCAR_GP_PIN(3, 2), RCAR_GP_PIN(3, 3),
1271         RCAR_GP_PIN(3, 4), RCAR_GP_PIN(3, 5),
1272 };
1273 static const unsigned int mmc_data4_mux[] = {
1274         MMC_D0_MARK, MMC_D1_MARK,
1275         MMC_D2_MARK, MMC_D3_MARK,
1276 };
1277 static const unsigned int mmc_data8_pins[] = {
1278         /* D[0:7] */
1279         RCAR_GP_PIN(3, 2), RCAR_GP_PIN(3, 3),
1280         RCAR_GP_PIN(3, 4), RCAR_GP_PIN(3, 5),
1281         RCAR_GP_PIN(3, 6), RCAR_GP_PIN(3, 7),
1282         RCAR_GP_PIN(3, 8), RCAR_GP_PIN(3, 9),
1283 };
1284 static const unsigned int mmc_data8_mux[] = {
1285         MMC_D0_MARK, MMC_D1_MARK,
1286         MMC_D2_MARK, MMC_D3_MARK,
1287         MMC_D4_MARK, MMC_D5_MARK,
1288         MMC_D6_MARK, MMC_D7_MARK,
1289 };
1290 static const unsigned int mmc_ctrl_pins[] = {
1291         /* CLK, CMD */
1292         RCAR_GP_PIN(3, 1), RCAR_GP_PIN(3, 0),
1293 };
1294 static const unsigned int mmc_ctrl_mux[] = {
1295         MMC_CLK_MARK, MMC_CMD_MARK,
1296 };
1297
1298 /* - MSIOF0 ----------------------------------------------------------------- */
1299 static const unsigned int msiof0_clk_pins[] = {
1300         /* SCK */
1301         RCAR_GP_PIN(4, 12),
1302 };
1303
1304 static const unsigned int msiof0_clk_mux[] = {
1305         MSIOF0_SCK_MARK,
1306 };
1307
1308 static const unsigned int msiof0_sync_pins[] = {
1309         /* SYNC */
1310         RCAR_GP_PIN(4, 13),
1311 };
1312
1313 static const unsigned int msiof0_sync_mux[] = {
1314         MSIOF0_SYNC_MARK,
1315 };
1316
1317 static const unsigned int msiof0_ss1_pins[] = {
1318         /* SS1 */
1319         RCAR_GP_PIN(4, 20),
1320 };
1321
1322 static const unsigned int msiof0_ss1_mux[] = {
1323         MSIOF0_SS1_MARK,
1324 };
1325
1326 static const unsigned int msiof0_ss2_pins[] = {
1327         /* SS2 */
1328         RCAR_GP_PIN(4, 21),
1329 };
1330
1331 static const unsigned int msiof0_ss2_mux[] = {
1332         MSIOF0_SS2_MARK,
1333 };
1334
1335 static const unsigned int msiof0_txd_pins[] = {
1336         /* TXD */
1337         RCAR_GP_PIN(4, 14),
1338 };
1339
1340 static const unsigned int msiof0_txd_mux[] = {
1341         MSIOF0_TXD_MARK,
1342 };
1343
1344 static const unsigned int msiof0_rxd_pins[] = {
1345         /* RXD */
1346         RCAR_GP_PIN(4, 15),
1347 };
1348
1349 static const unsigned int msiof0_rxd_mux[] = {
1350         MSIOF0_RXD_MARK,
1351 };
1352
1353 /* - MSIOF1 ----------------------------------------------------------------- */
1354 static const unsigned int msiof1_clk_pins[] = {
1355         /* SCK */
1356         RCAR_GP_PIN(4, 16),
1357 };
1358
1359 static const unsigned int msiof1_clk_mux[] = {
1360         MSIOF1_SCK_MARK,
1361 };
1362
1363 static const unsigned int msiof1_sync_pins[] = {
1364         /* SYNC */
1365         RCAR_GP_PIN(4, 19),
1366 };
1367
1368 static const unsigned int msiof1_sync_mux[] = {
1369         MSIOF1_SYNC_MARK,
1370 };
1371
1372 static const unsigned int msiof1_ss1_pins[] = {
1373         /* SS1 */
1374         RCAR_GP_PIN(4, 25),
1375 };
1376
1377 static const unsigned int msiof1_ss1_mux[] = {
1378         MSIOF1_SS1_MARK,
1379 };
1380
1381 static const unsigned int msiof1_ss2_pins[] = {
1382         /* SS2 */
1383         RCAR_GP_PIN(4, 22),
1384 };
1385
1386 static const unsigned int msiof1_ss2_mux[] = {
1387         MSIOF1_SS2_MARK,
1388 };
1389
1390 static const unsigned int msiof1_txd_pins[] = {
1391         /* TXD */
1392         RCAR_GP_PIN(4, 17),
1393 };
1394
1395 static const unsigned int msiof1_txd_mux[] = {
1396         MSIOF1_TXD_MARK,
1397 };
1398
1399 static const unsigned int msiof1_rxd_pins[] = {
1400         /* RXD */
1401         RCAR_GP_PIN(4, 18),
1402 };
1403
1404 static const unsigned int msiof1_rxd_mux[] = {
1405         MSIOF1_RXD_MARK,
1406 };
1407
1408 /* - MSIOF2 ----------------------------------------------------------------- */
1409 static const unsigned int msiof2_clk_pins[] = {
1410         /* SCK */
1411         RCAR_GP_PIN(0, 3),
1412 };
1413
1414 static const unsigned int msiof2_clk_mux[] = {
1415         MSIOF2_SCK_MARK,
1416 };
1417
1418 static const unsigned int msiof2_sync_a_pins[] = {
1419         /* SYNC */
1420         RCAR_GP_PIN(0, 6),
1421 };
1422
1423 static const unsigned int msiof2_sync_a_mux[] = {
1424         MSIOF2_SYNC_A_MARK,
1425 };
1426
1427 static const unsigned int msiof2_sync_b_pins[] = {
1428         /* SYNC */
1429         RCAR_GP_PIN(0, 2),
1430 };
1431
1432 static const unsigned int msiof2_sync_b_mux[] = {
1433         MSIOF2_SYNC_B_MARK,
1434 };
1435
1436 static const unsigned int msiof2_ss1_pins[] = {
1437         /* SS1 */
1438         RCAR_GP_PIN(0, 7),
1439 };
1440
1441 static const unsigned int msiof2_ss1_mux[] = {
1442         MSIOF2_SS1_MARK,
1443 };
1444
1445 static const unsigned int msiof2_ss2_pins[] = {
1446         /* SS2 */
1447         RCAR_GP_PIN(0, 8),
1448 };
1449
1450 static const unsigned int msiof2_ss2_mux[] = {
1451         MSIOF2_SS2_MARK,
1452 };
1453
1454 static const unsigned int msiof2_txd_pins[] = {
1455         /* TXD */
1456         RCAR_GP_PIN(0, 4),
1457 };
1458
1459 static const unsigned int msiof2_txd_mux[] = {
1460         MSIOF2_TXD_MARK,
1461 };
1462
1463 static const unsigned int msiof2_rxd_pins[] = {
1464         /* RXD */
1465         RCAR_GP_PIN(0, 5),
1466 };
1467
1468 static const unsigned int msiof2_rxd_mux[] = {
1469         MSIOF2_RXD_MARK,
1470 };
1471
1472 /* - MSIOF3 ----------------------------------------------------------------- */
1473 static const unsigned int msiof3_clk_a_pins[] = {
1474         /* SCK */
1475         RCAR_GP_PIN(2, 24),
1476 };
1477
1478 static const unsigned int msiof3_clk_a_mux[] = {
1479         MSIOF3_SCK_A_MARK,
1480 };
1481
1482 static const unsigned int msiof3_sync_a_pins[] = {
1483         /* SYNC */
1484         RCAR_GP_PIN(2, 21),
1485 };
1486
1487 static const unsigned int msiof3_sync_a_mux[] = {
1488         MSIOF3_SYNC_A_MARK,
1489 };
1490
1491 static const unsigned int msiof3_ss1_a_pins[] = {
1492         /* SS1 */
1493         RCAR_GP_PIN(2, 14),
1494 };
1495
1496 static const unsigned int msiof3_ss1_a_mux[] = {
1497         MSIOF3_SS1_A_MARK,
1498 };
1499
1500 static const unsigned int msiof3_ss2_a_pins[] = {
1501         /* SS2 */
1502         RCAR_GP_PIN(2, 10),
1503 };
1504
1505 static const unsigned int msiof3_ss2_a_mux[] = {
1506         MSIOF3_SS2_A_MARK,
1507 };
1508
1509 static const unsigned int msiof3_txd_a_pins[] = {
1510         /* TXD */
1511         RCAR_GP_PIN(2, 22),
1512 };
1513
1514 static const unsigned int msiof3_txd_a_mux[] = {
1515         MSIOF3_TXD_A_MARK,
1516 };
1517
1518 static const unsigned int msiof3_rxd_a_pins[] = {
1519         /* RXD */
1520         RCAR_GP_PIN(2, 23),
1521 };
1522
1523 static const unsigned int msiof3_rxd_a_mux[] = {
1524         MSIOF3_RXD_A_MARK,
1525 };
1526
1527 static const unsigned int msiof3_clk_b_pins[] = {
1528         /* SCK */
1529         RCAR_GP_PIN(1, 8),
1530 };
1531
1532 static const unsigned int msiof3_clk_b_mux[] = {
1533         MSIOF3_SCK_B_MARK,
1534 };
1535
1536 static const unsigned int msiof3_sync_b_pins[] = {
1537         /* SYNC */
1538         RCAR_GP_PIN(1, 9),
1539 };
1540
1541 static const unsigned int msiof3_sync_b_mux[] = {
1542         MSIOF3_SYNC_B_MARK,
1543 };
1544
1545 static const unsigned int msiof3_ss1_b_pins[] = {
1546         /* SS1 */
1547         RCAR_GP_PIN(1, 6),
1548 };
1549
1550 static const unsigned int msiof3_ss1_b_mux[] = {
1551         MSIOF3_SS1_B_MARK,
1552 };
1553
1554 static const unsigned int msiof3_ss2_b_pins[] = {
1555         /* SS2 */
1556         RCAR_GP_PIN(1, 7),
1557 };
1558
1559 static const unsigned int msiof3_ss2_b_mux[] = {
1560         MSIOF3_SS2_B_MARK,
1561 };
1562
1563 static const unsigned int msiof3_txd_b_pins[] = {
1564         /* TXD */
1565         RCAR_GP_PIN(1, 0),
1566 };
1567
1568 static const unsigned int msiof3_txd_b_mux[] = {
1569         MSIOF3_TXD_B_MARK,
1570 };
1571
1572 static const unsigned int msiof3_rxd_b_pins[] = {
1573         /* RXD */
1574         RCAR_GP_PIN(1, 1),
1575 };
1576
1577 static const unsigned int msiof3_rxd_b_mux[] = {
1578         MSIOF3_RXD_B_MARK,
1579 };
1580
1581 /* - PWM0 ------------------------------------------------------------------ */
1582 static const unsigned int pwm0_a_pins[] = {
1583         /* PWM */
1584         RCAR_GP_PIN(2, 1),
1585 };
1586
1587 static const unsigned int pwm0_a_mux[] = {
1588         PWM0_A_MARK,
1589 };
1590
1591 static const unsigned int pwm0_b_pins[] = {
1592         /* PWM */
1593         RCAR_GP_PIN(1, 18),
1594 };
1595
1596 static const unsigned int pwm0_b_mux[] = {
1597         PWM0_B_MARK,
1598 };
1599
1600 static const unsigned int pwm0_c_pins[] = {
1601         /* PWM */
1602         RCAR_GP_PIN(2, 29),
1603 };
1604
1605 static const unsigned int pwm0_c_mux[] = {
1606         PWM0_C_MARK,
1607 };
1608
1609 /* - PWM1 ------------------------------------------------------------------ */
1610 static const unsigned int pwm1_a_pins[] = {
1611         /* PWM */
1612         RCAR_GP_PIN(2, 2),
1613 };
1614
1615 static const unsigned int pwm1_a_mux[] = {
1616         PWM1_A_MARK,
1617 };
1618
1619 static const unsigned int pwm1_b_pins[] = {
1620         /* PWM */
1621         RCAR_GP_PIN(1, 19),
1622 };
1623
1624 static const unsigned int pwm1_b_mux[] = {
1625         PWM1_B_MARK,
1626 };
1627
1628 static const unsigned int pwm1_c_pins[] = {
1629         /* PWM */
1630         RCAR_GP_PIN(2, 30),
1631 };
1632
1633 static const unsigned int pwm1_c_mux[] = {
1634         PWM1_C_MARK,
1635 };
1636
1637 /* - PWM2 ------------------------------------------------------------------ */
1638 static const unsigned int pwm2_a_pins[] = {
1639         /* PWM */
1640         RCAR_GP_PIN(2, 3),
1641 };
1642
1643 static const unsigned int pwm2_a_mux[] = {
1644         PWM2_A_MARK,
1645 };
1646
1647 static const unsigned int pwm2_b_pins[] = {
1648         /* PWM */
1649         RCAR_GP_PIN(1, 22),
1650 };
1651
1652 static const unsigned int pwm2_b_mux[] = {
1653         PWM2_B_MARK,
1654 };
1655
1656 static const unsigned int pwm2_c_pins[] = {
1657         /* PWM */
1658         RCAR_GP_PIN(2, 31),
1659 };
1660
1661 static const unsigned int pwm2_c_mux[] = {
1662         PWM2_C_MARK,
1663 };
1664
1665 /* - PWM3 ------------------------------------------------------------------ */
1666 static const unsigned int pwm3_a_pins[] = {
1667         /* PWM */
1668         RCAR_GP_PIN(2, 4),
1669 };
1670
1671 static const unsigned int pwm3_a_mux[] = {
1672         PWM3_A_MARK,
1673 };
1674
1675 static const unsigned int pwm3_b_pins[] = {
1676         /* PWM */
1677         RCAR_GP_PIN(1, 27),
1678 };
1679
1680 static const unsigned int pwm3_b_mux[] = {
1681         PWM3_B_MARK,
1682 };
1683
1684 static const unsigned int pwm3_c_pins[] = {
1685         /* PWM */
1686         RCAR_GP_PIN(4, 0),
1687 };
1688
1689 static const unsigned int pwm3_c_mux[] = {
1690         PWM3_C_MARK,
1691 };
1692
1693 /* - SCIF0 ------------------------------------------------------------------ */
1694 static const unsigned int scif0_data_a_pins[] = {
1695         /* RX, TX */
1696         RCAR_GP_PIN(4, 20), RCAR_GP_PIN(4, 21),
1697 };
1698 static const unsigned int scif0_data_a_mux[] = {
1699         RX0_A_MARK, TX0_A_MARK,
1700 };
1701 static const unsigned int scif0_clk_a_pins[] = {
1702         /* SCK */
1703         RCAR_GP_PIN(4, 19),
1704 };
1705 static const unsigned int scif0_clk_a_mux[] = {
1706         SCK0_A_MARK,
1707 };
1708 static const unsigned int scif0_data_b_pins[] = {
1709         /* RX, TX */
1710         RCAR_GP_PIN(4, 31), RCAR_GP_PIN(4, 28),
1711 };
1712 static const unsigned int scif0_data_b_mux[] = {
1713         RX0_B_MARK, TX0_B_MARK,
1714 };
1715 static const unsigned int scif0_clk_b_pins[] = {
1716         /* SCK */
1717         RCAR_GP_PIN(5, 2),
1718 };
1719 static const unsigned int scif0_clk_b_mux[] = {
1720         SCK0_B_MARK,
1721 };
1722 static const unsigned int scif0_ctrl_pins[] = {
1723         /* RTS, CTS */
1724         RCAR_GP_PIN(4, 24), RCAR_GP_PIN(4, 23),
1725 };
1726 static const unsigned int scif0_ctrl_mux[] = {
1727         RTS0_N_MARK, CTS0_N_MARK,
1728 };
1729 /* - SCIF1 ------------------------------------------------------------------ */
1730 static const unsigned int scif1_data_a_pins[] = {
1731         /* RX, TX */
1732         RCAR_GP_PIN(4, 23), RCAR_GP_PIN(4, 24),
1733 };
1734 static const unsigned int scif1_data_a_mux[] = {
1735         RX1_A_MARK, TX1_A_MARK,
1736 };
1737 static const unsigned int scif1_clk_a_pins[] = {
1738         /* SCK */
1739         RCAR_GP_PIN(4, 22),
1740 };
1741 static const unsigned int scif1_clk_a_mux[] = {
1742         SCK1_A_MARK,
1743 };
1744 static const unsigned int scif1_data_b_pins[] = {
1745         /* RX, TX */
1746         RCAR_GP_PIN(2, 26), RCAR_GP_PIN(2, 28),
1747 };
1748 static const unsigned int scif1_data_b_mux[] = {
1749         RX1_B_MARK, TX1_B_MARK,
1750 };
1751 static const unsigned int scif1_clk_b_pins[] = {
1752         /* SCK */
1753         RCAR_GP_PIN(2, 25),
1754 };
1755 static const unsigned int scif1_clk_b_mux[] = {
1756         SCK1_B_MARK,
1757 };
1758 static const unsigned int scif1_ctrl_pins[] = {
1759         /* RTS, CTS */
1760         RCAR_GP_PIN(4, 11), RCAR_GP_PIN(4, 10),
1761 };
1762 static const unsigned int scif1_ctrl_mux[] = {
1763         RTS1_N_MARK, CTS1_N_MARK,
1764 };
1765
1766 /* - SCIF2 ------------------------------------------------------------------ */
1767 static const unsigned int scif2_data_pins[] = {
1768         /* RX, TX */
1769         RCAR_GP_PIN(4, 26), RCAR_GP_PIN(4, 27),
1770 };
1771 static const unsigned int scif2_data_mux[] = {
1772         RX2_MARK, TX2_MARK,
1773 };
1774 static const unsigned int scif2_clk_pins[] = {
1775         /* SCK */
1776         RCAR_GP_PIN(4, 25),
1777 };
1778 static const unsigned int scif2_clk_mux[] = {
1779         SCK2_MARK,
1780 };
1781 /* - SCIF3 ------------------------------------------------------------------ */
1782 static const unsigned int scif3_data_a_pins[] = {
1783         /* RX, TX */
1784         RCAR_GP_PIN(2, 31), RCAR_GP_PIN(4, 00),
1785 };
1786 static const unsigned int scif3_data_a_mux[] = {
1787         RX3_A_MARK, TX3_A_MARK,
1788 };
1789 static const unsigned int scif3_clk_a_pins[] = {
1790         /* SCK */
1791         RCAR_GP_PIN(2, 30),
1792 };
1793 static const unsigned int scif3_clk_a_mux[] = {
1794         SCK3_A_MARK,
1795 };
1796 static const unsigned int scif3_data_b_pins[] = {
1797         /* RX, TX */
1798         RCAR_GP_PIN(1, 30), RCAR_GP_PIN(1, 31),
1799 };
1800 static const unsigned int scif3_data_b_mux[] = {
1801         RX3_B_MARK, TX3_B_MARK,
1802 };
1803 static const unsigned int scif3_clk_b_pins[] = {
1804         /* SCK */
1805         RCAR_GP_PIN(1, 29),
1806 };
1807 static const unsigned int scif3_clk_b_mux[] = {
1808         SCK3_B_MARK,
1809 };
1810 /* - SCIF4 ------------------------------------------------------------------ */
1811 static const unsigned int scif4_data_a_pins[] = {
1812         /* RX, TX */
1813         RCAR_GP_PIN(2, 11), RCAR_GP_PIN(2, 12),
1814 };
1815 static const unsigned int scif4_data_a_mux[] = {
1816         RX4_A_MARK, TX4_A_MARK,
1817 };
1818 static const unsigned int scif4_clk_a_pins[] = {
1819         /* SCK */
1820         RCAR_GP_PIN(2, 6),
1821 };
1822 static const unsigned int scif4_clk_a_mux[] = {
1823         SCK4_A_MARK,
1824 };
1825 static const unsigned int scif4_data_b_pins[] = {
1826         /* RX, TX */
1827         RCAR_GP_PIN(1, 16), RCAR_GP_PIN(1, 17),
1828 };
1829 static const unsigned int scif4_data_b_mux[] = {
1830         RX4_B_MARK, TX4_B_MARK,
1831 };
1832 static const unsigned int scif4_clk_b_pins[] = {
1833         /* SCK */
1834         RCAR_GP_PIN(1, 15),
1835 };
1836 static const unsigned int scif4_clk_b_mux[] = {
1837         SCK4_B_MARK,
1838 };
1839 /* - SCIF5 ------------------------------------------------------------------ */
1840 static const unsigned int scif5_data_a_pins[] = {
1841         /* RX, TX */
1842         RCAR_GP_PIN(0, 7), RCAR_GP_PIN(0, 8),
1843 };
1844 static const unsigned int scif5_data_a_mux[] = {
1845         RX5_A_MARK, TX5_A_MARK,
1846 };
1847 static const unsigned int scif5_clk_a_pins[] = {
1848         /* SCK */
1849         RCAR_GP_PIN(0, 6),
1850 };
1851 static const unsigned int scif5_clk_a_mux[] = {
1852         SCK5_A_MARK,
1853 };
1854 static const unsigned int scif5_data_b_pins[] = {
1855         /* RX, TX */
1856         RCAR_GP_PIN(1, 4), RCAR_GP_PIN(1, 5),
1857 };
1858 static const unsigned int scif5_data_b_mux[] = {
1859         RX5_B_MARK, TX5_B_MARK,
1860 };
1861 static const unsigned int scif5_clk_b_pins[] = {
1862         /* SCK */
1863         RCAR_GP_PIN(1, 3),
1864 };
1865 static const unsigned int scif5_clk_b_mux[] = {
1866         SCK5_B_MARK,
1867 };
1868 /* - SCIF Clock ------------------------------------------------------------- */
1869 static const unsigned int scif_clk_pins[] = {
1870         /* SCIF_CLK */
1871         RCAR_GP_PIN(2, 27),
1872 };
1873 static const unsigned int scif_clk_mux[] = {
1874         SCIF_CLK_MARK,
1875 };
1876
1877 /* - SSI ---------------------------------------------------------------*/
1878 static const unsigned int ssi3_data_pins[] = {
1879         /* SDATA */
1880         RCAR_GP_PIN(4, 3),
1881 };
1882 static const unsigned int ssi3_data_mux[] = {
1883         SSI_SDATA3_MARK,
1884 };
1885 static const unsigned int ssi34_ctrl_pins[] = {
1886         /* SCK,  WS */
1887         RCAR_GP_PIN(4, 2), RCAR_GP_PIN(4, 4),
1888 };
1889 static const unsigned int ssi34_ctrl_mux[] = {
1890         SSI_SCK34_MARK, SSI_WS34_MARK,
1891 };
1892 static const unsigned int ssi4_ctrl_a_pins[] = {
1893         /* SCK, WS */
1894         RCAR_GP_PIN(4, 5), RCAR_GP_PIN(4, 7),
1895 };
1896 static const unsigned int ssi4_ctrl_a_mux[] = {
1897         SSI_SCK4_A_MARK, SSI_WS4_A_MARK,
1898 };
1899 static const unsigned int ssi4_data_a_pins[] = {
1900         /* SDATA */
1901         RCAR_GP_PIN(4, 6),
1902 };
1903 static const unsigned int ssi4_data_a_mux[] = {
1904         SSI_SDATA4_A_MARK,
1905 };
1906 static const unsigned int ssi4_ctrl_b_pins[] = {
1907         /* SCK, WS */
1908         RCAR_GP_PIN(2, 15), RCAR_GP_PIN(2, 20),
1909 };
1910 static const unsigned int ssi4_ctrl_b_mux[] = {
1911         SSI_SCK4_B_MARK, SSI_WS4_B_MARK,
1912 };
1913 static const unsigned int ssi4_data_b_pins[] = {
1914         /* SDATA */
1915         RCAR_GP_PIN(2, 16),
1916 };
1917 static const unsigned int ssi4_data_b_mux[] = {
1918         SSI_SDATA4_B_MARK,
1919 };
1920
1921 /* - USB0 ------------------------------------------------------------------- */
1922 static const unsigned int usb0_pins[] = {
1923         /* PWEN, OVC */
1924         RCAR_GP_PIN(0, 0), RCAR_GP_PIN(0, 1),
1925 };
1926 static const unsigned int usb0_mux[] = {
1927         USB0_PWEN_MARK, USB0_OVC_MARK,
1928 };
1929
1930 /* - VIN4 ------------------------------------------------------------------- */
1931 static const unsigned int vin4_data18_pins[] = {
1932         RCAR_GP_PIN(2, 3), RCAR_GP_PIN(2, 4),
1933         RCAR_GP_PIN(2, 5), RCAR_GP_PIN(2, 6),
1934         RCAR_GP_PIN(2, 7), RCAR_GP_PIN(2, 8),
1935         RCAR_GP_PIN(2, 11), RCAR_GP_PIN(2, 12),
1936         RCAR_GP_PIN(2, 13), RCAR_GP_PIN(2, 14),
1937         RCAR_GP_PIN(2, 15), RCAR_GP_PIN(2, 16),
1938         RCAR_GP_PIN(2, 19), RCAR_GP_PIN(2, 20),
1939         RCAR_GP_PIN(2, 21), RCAR_GP_PIN(2, 22),
1940         RCAR_GP_PIN(2, 23), RCAR_GP_PIN(2, 24),
1941 };
1942 static const unsigned int vin4_data18_mux[] = {
1943         VI4_DATA2_MARK, VI4_DATA3_MARK,
1944         VI4_DATA4_MARK, VI4_DATA5_MARK,
1945         VI4_DATA6_MARK, VI4_DATA7_MARK,
1946         VI4_DATA10_MARK, VI4_DATA11_MARK,
1947         VI4_DATA12_MARK, VI4_DATA13_MARK,
1948         VI4_DATA14_MARK, VI4_DATA15_MARK,
1949         VI4_DATA18_MARK, VI4_DATA19_MARK,
1950         VI4_DATA20_MARK, VI4_DATA21_MARK,
1951         VI4_DATA22_MARK, VI4_DATA23_MARK,
1952 };
1953 static const union vin_data vin4_data_pins = {
1954         .data24 = {
1955                 RCAR_GP_PIN(2, 1), RCAR_GP_PIN(2, 2),
1956                 RCAR_GP_PIN(2, 3), RCAR_GP_PIN(2, 4),
1957                 RCAR_GP_PIN(2, 5), RCAR_GP_PIN(2, 6),
1958                 RCAR_GP_PIN(2, 7), RCAR_GP_PIN(2, 8),
1959                 RCAR_GP_PIN(2, 9), RCAR_GP_PIN(2, 10),
1960                 RCAR_GP_PIN(2, 11), RCAR_GP_PIN(2, 12),
1961                 RCAR_GP_PIN(2, 13), RCAR_GP_PIN(2, 14),
1962                 RCAR_GP_PIN(2, 15), RCAR_GP_PIN(2, 16),
1963                 RCAR_GP_PIN(2, 17), RCAR_GP_PIN(2, 18),
1964                 RCAR_GP_PIN(2, 19), RCAR_GP_PIN(2, 20),
1965                 RCAR_GP_PIN(2, 21), RCAR_GP_PIN(2, 22),
1966                 RCAR_GP_PIN(2, 23), RCAR_GP_PIN(2, 24),
1967         },
1968 };
1969 static const union vin_data vin4_data_mux = {
1970         .data24 = {
1971                 VI4_DATA0_MARK, VI4_DATA1_MARK,
1972                 VI4_DATA2_MARK, VI4_DATA3_MARK,
1973                 VI4_DATA4_MARK, VI4_DATA5_MARK,
1974                 VI4_DATA6_MARK, VI4_DATA7_MARK,
1975                 VI4_DATA8_MARK,  VI4_DATA9_MARK,
1976                 VI4_DATA10_MARK, VI4_DATA11_MARK,
1977                 VI4_DATA12_MARK, VI4_DATA13_MARK,
1978                 VI4_DATA14_MARK, VI4_DATA15_MARK,
1979                 VI4_DATA16_MARK, VI4_DATA17_MARK,
1980                 VI4_DATA18_MARK, VI4_DATA19_MARK,
1981                 VI4_DATA20_MARK, VI4_DATA21_MARK,
1982                 VI4_DATA22_MARK, VI4_DATA23_MARK,
1983         },
1984 };
1985 static const unsigned int vin4_sync_pins[] = {
1986         /* HSYNC#, VSYNC# */
1987         RCAR_GP_PIN(2, 26), RCAR_GP_PIN(2, 25),
1988 };
1989 static const unsigned int vin4_sync_mux[] = {
1990         VI4_HSYNC_N_MARK, VI4_VSYNC_N_MARK,
1991 };
1992 static const unsigned int vin4_field_pins[] = {
1993         /* FIELD */
1994         RCAR_GP_PIN(2, 27),
1995 };
1996 static const unsigned int vin4_field_mux[] = {
1997         VI4_FIELD_MARK,
1998 };
1999 static const unsigned int vin4_clkenb_pins[] = {
2000         /* CLKENB */
2001         RCAR_GP_PIN(2, 28),
2002 };
2003 static const unsigned int vin4_clkenb_mux[] = {
2004         VI4_CLKENB_MARK,
2005 };
2006 static const unsigned int vin4_clk_pins[] = {
2007         /* CLK */
2008         RCAR_GP_PIN(2, 0),
2009 };
2010 static const unsigned int vin4_clk_mux[] = {
2011         VI4_CLK_MARK,
2012 };
2013
2014 static const struct sh_pfc_pin_group pinmux_groups[] = {
2015         SH_PFC_PIN_GROUP(audio_clk_a),
2016         SH_PFC_PIN_GROUP(audio_clk_b),
2017         SH_PFC_PIN_GROUP(audio_clkout),
2018         SH_PFC_PIN_GROUP(audio_clkout1),
2019         SH_PFC_PIN_GROUP(avb0_link),
2020         SH_PFC_PIN_GROUP(avb0_magic),
2021         SH_PFC_PIN_GROUP(avb0_phy_int),
2022         SH_PFC_PIN_GROUP_ALIAS(avb0_mdc, avb0_mdio),    /* Deprecated */
2023         SH_PFC_PIN_GROUP(avb0_mdio),
2024         SH_PFC_PIN_GROUP(avb0_mii),
2025         SH_PFC_PIN_GROUP(avb0_avtp_pps_a),
2026         SH_PFC_PIN_GROUP(avb0_avtp_match_a),
2027         SH_PFC_PIN_GROUP(avb0_avtp_capture_a),
2028         SH_PFC_PIN_GROUP(avb0_avtp_pps_b),
2029         SH_PFC_PIN_GROUP(avb0_avtp_match_b),
2030         SH_PFC_PIN_GROUP(avb0_avtp_capture_b),
2031         SH_PFC_PIN_GROUP(can0_data_a),
2032         SH_PFC_PIN_GROUP(can0_data_b),
2033         SH_PFC_PIN_GROUP(can1_data_a),
2034         SH_PFC_PIN_GROUP(can1_data_b),
2035         SH_PFC_PIN_GROUP(can_clk),
2036         SH_PFC_PIN_GROUP(canfd0_data),
2037         SH_PFC_PIN_GROUP(canfd1_data),
2038         SH_PFC_PIN_GROUP(du_rgb666),
2039         SH_PFC_PIN_GROUP(du_rgb888),
2040         SH_PFC_PIN_GROUP(du_clk_in_1),
2041         SH_PFC_PIN_GROUP(du_clk_out_0),
2042         SH_PFC_PIN_GROUP(du_sync),
2043         SH_PFC_PIN_GROUP(du_disp_cde),
2044         SH_PFC_PIN_GROUP(du_cde),
2045         SH_PFC_PIN_GROUP(du_disp),
2046         SH_PFC_PIN_GROUP(i2c0),
2047         SH_PFC_PIN_GROUP(i2c1),
2048         SH_PFC_PIN_GROUP(i2c2_a),
2049         SH_PFC_PIN_GROUP(i2c2_b),
2050         SH_PFC_PIN_GROUP(i2c3_a),
2051         SH_PFC_PIN_GROUP(i2c3_b),
2052         SH_PFC_PIN_GROUP(mmc_data1),
2053         SH_PFC_PIN_GROUP(mmc_data4),
2054         SH_PFC_PIN_GROUP(mmc_data8),
2055         SH_PFC_PIN_GROUP(mmc_ctrl),
2056         SH_PFC_PIN_GROUP(msiof0_clk),
2057         SH_PFC_PIN_GROUP(msiof0_sync),
2058         SH_PFC_PIN_GROUP(msiof0_ss1),
2059         SH_PFC_PIN_GROUP(msiof0_ss2),
2060         SH_PFC_PIN_GROUP(msiof0_txd),
2061         SH_PFC_PIN_GROUP(msiof0_rxd),
2062         SH_PFC_PIN_GROUP(msiof1_clk),
2063         SH_PFC_PIN_GROUP(msiof1_sync),
2064         SH_PFC_PIN_GROUP(msiof1_ss1),
2065         SH_PFC_PIN_GROUP(msiof1_ss2),
2066         SH_PFC_PIN_GROUP(msiof1_txd),
2067         SH_PFC_PIN_GROUP(msiof1_rxd),
2068         SH_PFC_PIN_GROUP(msiof2_clk),
2069         SH_PFC_PIN_GROUP(msiof2_sync_a),
2070         SH_PFC_PIN_GROUP(msiof2_sync_b),
2071         SH_PFC_PIN_GROUP(msiof2_ss1),
2072         SH_PFC_PIN_GROUP(msiof2_ss2),
2073         SH_PFC_PIN_GROUP(msiof2_txd),
2074         SH_PFC_PIN_GROUP(msiof2_rxd),
2075         SH_PFC_PIN_GROUP(msiof3_clk_a),
2076         SH_PFC_PIN_GROUP(msiof3_sync_a),
2077         SH_PFC_PIN_GROUP(msiof3_ss1_a),
2078         SH_PFC_PIN_GROUP(msiof3_ss2_a),
2079         SH_PFC_PIN_GROUP(msiof3_txd_a),
2080         SH_PFC_PIN_GROUP(msiof3_rxd_a),
2081         SH_PFC_PIN_GROUP(msiof3_clk_b),
2082         SH_PFC_PIN_GROUP(msiof3_sync_b),
2083         SH_PFC_PIN_GROUP(msiof3_ss1_b),
2084         SH_PFC_PIN_GROUP(msiof3_ss2_b),
2085         SH_PFC_PIN_GROUP(msiof3_txd_b),
2086         SH_PFC_PIN_GROUP(msiof3_rxd_b),
2087         SH_PFC_PIN_GROUP(pwm0_a),
2088         SH_PFC_PIN_GROUP(pwm0_b),
2089         SH_PFC_PIN_GROUP(pwm0_c),
2090         SH_PFC_PIN_GROUP(pwm1_a),
2091         SH_PFC_PIN_GROUP(pwm1_b),
2092         SH_PFC_PIN_GROUP(pwm1_c),
2093         SH_PFC_PIN_GROUP(pwm2_a),
2094         SH_PFC_PIN_GROUP(pwm2_b),
2095         SH_PFC_PIN_GROUP(pwm2_c),
2096         SH_PFC_PIN_GROUP(pwm3_a),
2097         SH_PFC_PIN_GROUP(pwm3_b),
2098         SH_PFC_PIN_GROUP(pwm3_c),
2099         SH_PFC_PIN_GROUP(scif0_data_a),
2100         SH_PFC_PIN_GROUP(scif0_clk_a),
2101         SH_PFC_PIN_GROUP(scif0_data_b),
2102         SH_PFC_PIN_GROUP(scif0_clk_b),
2103         SH_PFC_PIN_GROUP(scif0_ctrl),
2104         SH_PFC_PIN_GROUP(scif1_data_a),
2105         SH_PFC_PIN_GROUP(scif1_clk_a),
2106         SH_PFC_PIN_GROUP(scif1_data_b),
2107         SH_PFC_PIN_GROUP(scif1_clk_b),
2108         SH_PFC_PIN_GROUP(scif1_ctrl),
2109         SH_PFC_PIN_GROUP(scif2_data),
2110         SH_PFC_PIN_GROUP(scif2_clk),
2111         SH_PFC_PIN_GROUP(scif3_data_a),
2112         SH_PFC_PIN_GROUP(scif3_clk_a),
2113         SH_PFC_PIN_GROUP(scif3_data_b),
2114         SH_PFC_PIN_GROUP(scif3_clk_b),
2115         SH_PFC_PIN_GROUP(scif4_data_a),
2116         SH_PFC_PIN_GROUP(scif4_clk_a),
2117         SH_PFC_PIN_GROUP(scif4_data_b),
2118         SH_PFC_PIN_GROUP(scif4_clk_b),
2119         SH_PFC_PIN_GROUP(scif5_data_a),
2120         SH_PFC_PIN_GROUP(scif5_clk_a),
2121         SH_PFC_PIN_GROUP(scif5_data_b),
2122         SH_PFC_PIN_GROUP(scif5_clk_b),
2123         SH_PFC_PIN_GROUP(scif_clk),
2124         SH_PFC_PIN_GROUP(ssi3_data),
2125         SH_PFC_PIN_GROUP(ssi34_ctrl),
2126         SH_PFC_PIN_GROUP(ssi4_ctrl_a),
2127         SH_PFC_PIN_GROUP(ssi4_data_a),
2128         SH_PFC_PIN_GROUP(ssi4_ctrl_b),
2129         SH_PFC_PIN_GROUP(ssi4_data_b),
2130         SH_PFC_PIN_GROUP(usb0),
2131         VIN_DATA_PIN_GROUP(vin4_data, 8),
2132         VIN_DATA_PIN_GROUP(vin4_data, 10),
2133         VIN_DATA_PIN_GROUP(vin4_data, 12),
2134         VIN_DATA_PIN_GROUP(vin4_data, 16),
2135         SH_PFC_PIN_GROUP(vin4_data18),
2136         VIN_DATA_PIN_GROUP(vin4_data, 20),
2137         VIN_DATA_PIN_GROUP(vin4_data, 24),
2138         SH_PFC_PIN_GROUP(vin4_sync),
2139         SH_PFC_PIN_GROUP(vin4_field),
2140         SH_PFC_PIN_GROUP(vin4_clkenb),
2141         SH_PFC_PIN_GROUP(vin4_clk),
2142 };
2143
2144 static const char * const audio_clk_groups[] = {
2145         "audio_clk_a",
2146         "audio_clk_b",
2147         "audio_clkout",
2148         "audio_clkout1",
2149 };
2150
2151 static const char * const avb0_groups[] = {
2152         "avb0_link",
2153         "avb0_magic",
2154         "avb0_phy_int",
2155         "avb0_mdc",     /* Deprecated, please use "avb0_mdio" instead */
2156         "avb0_mdio",
2157         "avb0_mii",
2158         "avb0_avtp_pps_a",
2159         "avb0_avtp_match_a",
2160         "avb0_avtp_capture_a",
2161         "avb0_avtp_pps_b",
2162         "avb0_avtp_match_b",
2163         "avb0_avtp_capture_b",
2164 };
2165
2166 static const char * const can0_groups[] = {
2167         "can0_data_a",
2168         "can0_data_b",
2169 };
2170 static const char * const can1_groups[] = {
2171         "can1_data_a",
2172         "can1_data_b",
2173 };
2174 static const char * const can_clk_groups[] = {
2175         "can_clk",
2176 };
2177
2178 static const char * const canfd0_groups[] = {
2179         "canfd0_data",
2180 };
2181 static const char * const canfd1_groups[] = {
2182         "canfd1_data",
2183 };
2184
2185 static const char * const du_groups[] = {
2186         "du_rgb666",
2187         "du_rgb888",
2188         "du_clk_in_1",
2189         "du_clk_out_0",
2190         "du_sync",
2191         "du_disp_cde",
2192         "du_cde",
2193         "du_disp",
2194 };
2195
2196 static const char * const i2c0_groups[] = {
2197         "i2c0",
2198 };
2199 static const char * const i2c1_groups[] = {
2200         "i2c1",
2201 };
2202
2203 static const char * const i2c2_groups[] = {
2204         "i2c2_a",
2205         "i2c2_b",
2206 };
2207
2208 static const char * const i2c3_groups[] = {
2209         "i2c3_a",
2210         "i2c3_b",
2211 };
2212
2213 static const char * const mmc_groups[] = {
2214         "mmc_data1",
2215         "mmc_data4",
2216         "mmc_data8",
2217         "mmc_ctrl",
2218 };
2219
2220 static const char * const pwm0_groups[] = {
2221         "pwm0_a",
2222         "pwm0_b",
2223         "pwm0_c",
2224 };
2225
2226 static const char * const pwm1_groups[] = {
2227         "pwm1_a",
2228         "pwm1_b",
2229         "pwm1_c",
2230 };
2231
2232 static const char * const pwm2_groups[] = {
2233         "pwm2_a",
2234         "pwm2_b",
2235         "pwm2_c",
2236 };
2237
2238 static const char * const pwm3_groups[] = {
2239         "pwm3_a",
2240         "pwm3_b",
2241         "pwm3_c",
2242 };
2243
2244 static const char * const scif0_groups[] = {
2245         "scif0_data_a",
2246         "scif0_clk_a",
2247         "scif0_data_b",
2248         "scif0_clk_b",
2249         "scif0_ctrl",
2250 };
2251
2252 static const char * const scif1_groups[] = {
2253         "scif1_data_a",
2254         "scif1_clk_a",
2255         "scif1_data_b",
2256         "scif1_clk_b",
2257         "scif1_ctrl",
2258 };
2259
2260 static const char * const scif2_groups[] = {
2261         "scif2_data",
2262         "scif2_clk",
2263 };
2264
2265 static const char * const scif3_groups[] = {
2266         "scif3_data_a",
2267         "scif3_clk_a",
2268         "scif3_data_b",
2269         "scif3_clk_b",
2270 };
2271
2272 static const char * const scif4_groups[] = {
2273         "scif4_data_a",
2274         "scif4_clk_a",
2275         "scif4_data_b",
2276         "scif4_clk_b",
2277 };
2278
2279 static const char * const scif5_groups[] = {
2280         "scif5_data_a",
2281         "scif5_clk_a",
2282         "scif5_data_b",
2283         "scif5_clk_b",
2284 };
2285
2286 static const char * const scif_clk_groups[] = {
2287         "scif_clk",
2288 };
2289
2290 static const char * const ssi_groups[] = {
2291         "ssi3_data",
2292         "ssi34_ctrl",
2293         "ssi4_ctrl_a",
2294         "ssi4_data_a",
2295         "ssi4_ctrl_b",
2296         "ssi4_data_b",
2297 };
2298
2299 static const char * const usb0_groups[] = {
2300         "usb0",
2301 };
2302
2303 static const char * const vin4_groups[] = {
2304         "vin4_data8",
2305         "vin4_data10",
2306         "vin4_data12",
2307         "vin4_data16",
2308         "vin4_data18",
2309         "vin4_data20",
2310         "vin4_data24",
2311         "vin4_sync",
2312         "vin4_field",
2313         "vin4_clkenb",
2314         "vin4_clk",
2315 };
2316
2317 static const char * const msiof0_groups[] = {
2318         "msiof0_clk",
2319         "msiof0_sync",
2320         "msiof0_ss1",
2321         "msiof0_ss2",
2322         "msiof0_txd",
2323         "msiof0_rxd",
2324 };
2325
2326 static const char * const msiof1_groups[] = {
2327         "msiof1_clk",
2328         "msiof1_sync",
2329         "msiof1_ss1",
2330         "msiof1_ss2",
2331         "msiof1_txd",
2332         "msiof1_rxd",
2333 };
2334
2335 static const char * const msiof2_groups[] = {
2336         "msiof2_clk",
2337         "msiof2_sync_a",
2338         "msiof2_sync_b",
2339         "msiof2_ss1",
2340         "msiof2_ss2",
2341         "msiof2_txd",
2342         "msiof2_rxd",
2343 };
2344
2345 static const char * const msiof3_groups[] = {
2346         "msiof3_clk_a",
2347         "msiof3_sync_a",
2348         "msiof3_ss1_a",
2349         "msiof3_ss2_a",
2350         "msiof3_txd_a",
2351         "msiof3_rxd_a",
2352         "msiof3_clk_b",
2353         "msiof3_sync_b",
2354         "msiof3_ss1_b",
2355         "msiof3_ss2_b",
2356         "msiof3_txd_b",
2357         "msiof3_rxd_b",
2358 };
2359
2360 static const struct sh_pfc_function pinmux_functions[] = {
2361         SH_PFC_FUNCTION(audio_clk),
2362         SH_PFC_FUNCTION(avb0),
2363         SH_PFC_FUNCTION(can0),
2364         SH_PFC_FUNCTION(can1),
2365         SH_PFC_FUNCTION(can_clk),
2366         SH_PFC_FUNCTION(canfd0),
2367         SH_PFC_FUNCTION(canfd1),
2368         SH_PFC_FUNCTION(du),
2369         SH_PFC_FUNCTION(i2c0),
2370         SH_PFC_FUNCTION(i2c1),
2371         SH_PFC_FUNCTION(i2c2),
2372         SH_PFC_FUNCTION(i2c3),
2373         SH_PFC_FUNCTION(mmc),
2374         SH_PFC_FUNCTION(msiof0),
2375         SH_PFC_FUNCTION(msiof1),
2376         SH_PFC_FUNCTION(msiof2),
2377         SH_PFC_FUNCTION(msiof3),
2378         SH_PFC_FUNCTION(pwm0),
2379         SH_PFC_FUNCTION(pwm1),
2380         SH_PFC_FUNCTION(pwm2),
2381         SH_PFC_FUNCTION(pwm3),
2382         SH_PFC_FUNCTION(scif0),
2383         SH_PFC_FUNCTION(scif1),
2384         SH_PFC_FUNCTION(scif2),
2385         SH_PFC_FUNCTION(scif3),
2386         SH_PFC_FUNCTION(scif4),
2387         SH_PFC_FUNCTION(scif5),
2388         SH_PFC_FUNCTION(scif_clk),
2389         SH_PFC_FUNCTION(ssi),
2390         SH_PFC_FUNCTION(usb0),
2391         SH_PFC_FUNCTION(vin4),
2392 };
2393
2394 static const struct pinmux_cfg_reg pinmux_config_regs[] = {
2395 #define F_(x, y)        FN_##y
2396 #define FM(x)           FN_##x
2397         { PINMUX_CFG_REG("GPSR0", 0xe6060100, 32, 1, GROUP(
2398                 0, 0,
2399                 0, 0,
2400                 0, 0,
2401                 0, 0,
2402                 0, 0,
2403                 0, 0,
2404                 0, 0,
2405                 0, 0,
2406                 0, 0,
2407                 0, 0,
2408                 0, 0,
2409                 0, 0,
2410                 0, 0,
2411                 0, 0,
2412                 0, 0,
2413                 0, 0,
2414                 0, 0,
2415                 0, 0,
2416                 0, 0,
2417                 0, 0,
2418                 0, 0,
2419                 0, 0,
2420                 0, 0,
2421                 GP_0_8_FN,      GPSR0_8,
2422                 GP_0_7_FN,      GPSR0_7,
2423                 GP_0_6_FN,      GPSR0_6,
2424                 GP_0_5_FN,      GPSR0_5,
2425                 GP_0_4_FN,      GPSR0_4,
2426                 GP_0_3_FN,      GPSR0_3,
2427                 GP_0_2_FN,      GPSR0_2,
2428                 GP_0_1_FN,      GPSR0_1,
2429                 GP_0_0_FN,      GPSR0_0, ))
2430         },
2431         { PINMUX_CFG_REG("GPSR1", 0xe6060104, 32, 1, GROUP(
2432                 GP_1_31_FN,     GPSR1_31,
2433                 GP_1_30_FN,     GPSR1_30,
2434                 GP_1_29_FN,     GPSR1_29,
2435                 GP_1_28_FN,     GPSR1_28,
2436                 GP_1_27_FN,     GPSR1_27,
2437                 GP_1_26_FN,     GPSR1_26,
2438                 GP_1_25_FN,     GPSR1_25,
2439                 GP_1_24_FN,     GPSR1_24,
2440                 GP_1_23_FN,     GPSR1_23,
2441                 GP_1_22_FN,     GPSR1_22,
2442                 GP_1_21_FN,     GPSR1_21,
2443                 GP_1_20_FN,     GPSR1_20,
2444                 GP_1_19_FN,     GPSR1_19,
2445                 GP_1_18_FN,     GPSR1_18,
2446                 GP_1_17_FN,     GPSR1_17,
2447                 GP_1_16_FN,     GPSR1_16,
2448                 GP_1_15_FN,     GPSR1_15,
2449                 GP_1_14_FN,     GPSR1_14,
2450                 GP_1_13_FN,     GPSR1_13,
2451                 GP_1_12_FN,     GPSR1_12,
2452                 GP_1_11_FN,     GPSR1_11,
2453                 GP_1_10_FN,     GPSR1_10,
2454                 GP_1_9_FN,      GPSR1_9,
2455                 GP_1_8_FN,      GPSR1_8,
2456                 GP_1_7_FN,      GPSR1_7,
2457                 GP_1_6_FN,      GPSR1_6,
2458                 GP_1_5_FN,      GPSR1_5,
2459                 GP_1_4_FN,      GPSR1_4,
2460                 GP_1_3_FN,      GPSR1_3,
2461                 GP_1_2_FN,      GPSR1_2,
2462                 GP_1_1_FN,      GPSR1_1,
2463                 GP_1_0_FN,      GPSR1_0, ))
2464         },
2465         { PINMUX_CFG_REG("GPSR2", 0xe6060108, 32, 1, GROUP(
2466                 GP_2_31_FN,     GPSR2_31,
2467                 GP_2_30_FN,     GPSR2_30,
2468                 GP_2_29_FN,     GPSR2_29,
2469                 GP_2_28_FN,     GPSR2_28,
2470                 GP_2_27_FN,     GPSR2_27,
2471                 GP_2_26_FN,     GPSR2_26,
2472                 GP_2_25_FN,     GPSR2_25,
2473                 GP_2_24_FN,     GPSR2_24,
2474                 GP_2_23_FN,     GPSR2_23,
2475                 GP_2_22_FN,     GPSR2_22,
2476                 GP_2_21_FN,     GPSR2_21,
2477                 GP_2_20_FN,     GPSR2_20,
2478                 GP_2_19_FN,     GPSR2_19,
2479                 GP_2_18_FN,     GPSR2_18,
2480                 GP_2_17_FN,     GPSR2_17,
2481                 GP_2_16_FN,     GPSR2_16,
2482                 GP_2_15_FN,     GPSR2_15,
2483                 GP_2_14_FN,     GPSR2_14,
2484                 GP_2_13_FN,     GPSR2_13,
2485                 GP_2_12_FN,     GPSR2_12,
2486                 GP_2_11_FN,     GPSR2_11,
2487                 GP_2_10_FN,     GPSR2_10,
2488                 GP_2_9_FN,      GPSR2_9,
2489                 GP_2_8_FN,      GPSR2_8,
2490                 GP_2_7_FN,      GPSR2_7,
2491                 GP_2_6_FN,      GPSR2_6,
2492                 GP_2_5_FN,      GPSR2_5,
2493                 GP_2_4_FN,      GPSR2_4,
2494                 GP_2_3_FN,      GPSR2_3,
2495                 GP_2_2_FN,      GPSR2_2,
2496                 GP_2_1_FN,      GPSR2_1,
2497                 GP_2_0_FN,      GPSR2_0, ))
2498         },
2499         { PINMUX_CFG_REG("GPSR3", 0xe606010c, 32, 1, GROUP(
2500                 0, 0,
2501                 0, 0,
2502                 0, 0,
2503                 0, 0,
2504                 0, 0,
2505                 0, 0,
2506                 0, 0,
2507                 0, 0,
2508                 0, 0,
2509                 0, 0,
2510                 0, 0,
2511                 0, 0,
2512                 0, 0,
2513                 0, 0,
2514                 0, 0,
2515                 0, 0,
2516                 0, 0,
2517                 0, 0,
2518                 0, 0,
2519                 0, 0,
2520                 0, 0,
2521                 0, 0,
2522                 GP_3_9_FN,      GPSR3_9,
2523                 GP_3_8_FN,      GPSR3_8,
2524                 GP_3_7_FN,      GPSR3_7,
2525                 GP_3_6_FN,      GPSR3_6,
2526                 GP_3_5_FN,      GPSR3_5,
2527                 GP_3_4_FN,      GPSR3_4,
2528                 GP_3_3_FN,      GPSR3_3,
2529                 GP_3_2_FN,      GPSR3_2,
2530                 GP_3_1_FN,      GPSR3_1,
2531                 GP_3_0_FN,      GPSR3_0, ))
2532         },
2533         { PINMUX_CFG_REG("GPSR4", 0xe6060110, 32, 1, GROUP(
2534                 GP_4_31_FN,     GPSR4_31,
2535                 GP_4_30_FN,     GPSR4_30,
2536                 GP_4_29_FN,     GPSR4_29,
2537                 GP_4_28_FN,     GPSR4_28,
2538                 GP_4_27_FN,     GPSR4_27,
2539                 GP_4_26_FN,     GPSR4_26,
2540                 GP_4_25_FN,     GPSR4_25,
2541                 GP_4_24_FN,     GPSR4_24,
2542                 GP_4_23_FN,     GPSR4_23,
2543                 GP_4_22_FN,     GPSR4_22,
2544                 GP_4_21_FN,     GPSR4_21,
2545                 GP_4_20_FN,     GPSR4_20,
2546                 GP_4_19_FN,     GPSR4_19,
2547                 GP_4_18_FN,     GPSR4_18,
2548                 GP_4_17_FN,     GPSR4_17,
2549                 GP_4_16_FN,     GPSR4_16,
2550                 GP_4_15_FN,     GPSR4_15,
2551                 GP_4_14_FN,     GPSR4_14,
2552                 GP_4_13_FN,     GPSR4_13,
2553                 GP_4_12_FN,     GPSR4_12,
2554                 GP_4_11_FN,     GPSR4_11,
2555                 GP_4_10_FN,     GPSR4_10,
2556                 GP_4_9_FN,      GPSR4_9,
2557                 GP_4_8_FN,      GPSR4_8,
2558                 GP_4_7_FN,      GPSR4_7,
2559                 GP_4_6_FN,      GPSR4_6,
2560                 GP_4_5_FN,      GPSR4_5,
2561                 GP_4_4_FN,      GPSR4_4,
2562                 GP_4_3_FN,      GPSR4_3,
2563                 GP_4_2_FN,      GPSR4_2,
2564                 GP_4_1_FN,      GPSR4_1,
2565                 GP_4_0_FN,      GPSR4_0, ))
2566         },
2567         { PINMUX_CFG_REG("GPSR5", 0xe6060114, 32, 1, GROUP(
2568                 0, 0,
2569                 0, 0,
2570                 0, 0,
2571                 0, 0,
2572                 0, 0,
2573                 0, 0,
2574                 0, 0,
2575                 0, 0,
2576                 0, 0,
2577                 0, 0,
2578                 0, 0,
2579                 GP_5_20_FN,     GPSR5_20,
2580                 GP_5_19_FN,     GPSR5_19,
2581                 GP_5_18_FN,     GPSR5_18,
2582                 GP_5_17_FN,     GPSR5_17,
2583                 GP_5_16_FN,     GPSR5_16,
2584                 GP_5_15_FN,     GPSR5_15,
2585                 GP_5_14_FN,     GPSR5_14,
2586                 GP_5_13_FN,     GPSR5_13,
2587                 GP_5_12_FN,     GPSR5_12,
2588                 GP_5_11_FN,     GPSR5_11,
2589                 GP_5_10_FN,     GPSR5_10,
2590                 GP_5_9_FN,      GPSR5_9,
2591                 GP_5_8_FN,      GPSR5_8,
2592                 GP_5_7_FN,      GPSR5_7,
2593                 GP_5_6_FN,      GPSR5_6,
2594                 GP_5_5_FN,      GPSR5_5,
2595                 GP_5_4_FN,      GPSR5_4,
2596                 GP_5_3_FN,      GPSR5_3,
2597                 GP_5_2_FN,      GPSR5_2,
2598                 GP_5_1_FN,      GPSR5_1,
2599                 GP_5_0_FN,      GPSR5_0, ))
2600         },
2601         { PINMUX_CFG_REG("GPSR6", 0xe6060118, 32, 1, GROUP(
2602                 0, 0,
2603                 0, 0,
2604                 0, 0,
2605                 0, 0,
2606                 0, 0,
2607                 0, 0,
2608                 0, 0,
2609                 0, 0,
2610                 0, 0,
2611                 0, 0,
2612                 0, 0,
2613                 0, 0,
2614                 0, 0,
2615                 0, 0,
2616                 0, 0,
2617                 0, 0,
2618                 0, 0,
2619                 0, 0,
2620                 GP_6_13_FN,     GPSR6_13,
2621                 GP_6_12_FN,     GPSR6_12,
2622                 GP_6_11_FN,     GPSR6_11,
2623                 GP_6_10_FN,     GPSR6_10,
2624                 GP_6_9_FN,      GPSR6_9,
2625                 GP_6_8_FN,      GPSR6_8,
2626                 GP_6_7_FN,      GPSR6_7,
2627                 GP_6_6_FN,      GPSR6_6,
2628                 GP_6_5_FN,      GPSR6_5,
2629                 GP_6_4_FN,      GPSR6_4,
2630                 GP_6_3_FN,      GPSR6_3,
2631                 GP_6_2_FN,      GPSR6_2,
2632                 GP_6_1_FN,      GPSR6_1,
2633                 GP_6_0_FN,      GPSR6_0, ))
2634         },
2635 #undef F_
2636 #undef FM
2637
2638 #define F_(x, y)        x,
2639 #define FM(x)           FN_##x,
2640         { PINMUX_CFG_REG("IPSR0", 0xe6060200, 32, 4, GROUP(
2641                 IP0_31_28
2642                 IP0_27_24
2643                 IP0_23_20
2644                 IP0_19_16
2645                 IP0_15_12
2646                 IP0_11_8
2647                 IP0_7_4
2648                 IP0_3_0 ))
2649         },
2650         { PINMUX_CFG_REG("IPSR1", 0xe6060204, 32, 4, GROUP(
2651                 IP1_31_28
2652                 IP1_27_24
2653                 IP1_23_20
2654                 IP1_19_16
2655                 IP1_15_12
2656                 IP1_11_8
2657                 IP1_7_4
2658                 IP1_3_0 ))
2659         },
2660         { PINMUX_CFG_REG("IPSR2", 0xe6060208, 32, 4, GROUP(
2661                 IP2_31_28
2662                 IP2_27_24
2663                 IP2_23_20
2664                 IP2_19_16
2665                 IP2_15_12
2666                 IP2_11_8
2667                 IP2_7_4
2668                 IP2_3_0 ))
2669         },
2670         { PINMUX_CFG_REG("IPSR3", 0xe606020c, 32, 4, GROUP(
2671                 IP3_31_28
2672                 IP3_27_24
2673                 IP3_23_20
2674                 IP3_19_16
2675                 IP3_15_12
2676                 IP3_11_8
2677                 IP3_7_4
2678                 IP3_3_0 ))
2679         },
2680         { PINMUX_CFG_REG("IPSR4", 0xe6060210, 32, 4, GROUP(
2681                 IP4_31_28
2682                 IP4_27_24
2683                 IP4_23_20
2684                 IP4_19_16
2685                 IP4_15_12
2686                 IP4_11_8
2687                 IP4_7_4
2688                 IP4_3_0 ))
2689         },
2690         { PINMUX_CFG_REG("IPSR5", 0xe6060214, 32, 4, GROUP(
2691                 IP5_31_28
2692                 IP5_27_24
2693                 IP5_23_20
2694                 IP5_19_16
2695                 IP5_15_12
2696                 IP5_11_8
2697                 IP5_7_4
2698                 IP5_3_0 ))
2699         },
2700         { PINMUX_CFG_REG("IPSR6", 0xe6060218, 32, 4, GROUP(
2701                 IP6_31_28
2702                 IP6_27_24
2703                 IP6_23_20
2704                 IP6_19_16
2705                 IP6_15_12
2706                 IP6_11_8
2707                 IP6_7_4
2708                 IP6_3_0 ))
2709         },
2710         { PINMUX_CFG_REG("IPSR7", 0xe606021c, 32, 4, GROUP(
2711                 IP7_31_28
2712                 IP7_27_24
2713                 IP7_23_20
2714                 IP7_19_16
2715                 IP7_15_12
2716                 IP7_11_8
2717                 IP7_7_4
2718                 IP7_3_0 ))
2719         },
2720         { PINMUX_CFG_REG("IPSR8", 0xe6060220, 32, 4, GROUP(
2721                 IP8_31_28
2722                 IP8_27_24
2723                 IP8_23_20
2724                 IP8_19_16
2725                 IP8_15_12
2726                 IP8_11_8
2727                 IP8_7_4
2728                 IP8_3_0 ))
2729         },
2730         { PINMUX_CFG_REG("IPSR9", 0xe6060224, 32, 4, GROUP(
2731                 IP9_31_28
2732                 IP9_27_24
2733                 IP9_23_20
2734                 IP9_19_16
2735                 IP9_15_12
2736                 IP9_11_8
2737                 IP9_7_4
2738                 IP9_3_0 ))
2739         },
2740         { PINMUX_CFG_REG("IPSR10", 0xe6060228, 32, 4, GROUP(
2741                 IP10_31_28
2742                 IP10_27_24
2743                 IP10_23_20
2744                 IP10_19_16
2745                 IP10_15_12
2746                 IP10_11_8
2747                 IP10_7_4
2748                 IP10_3_0 ))
2749         },
2750         { PINMUX_CFG_REG("IPSR11", 0xe606022c, 32, 4, GROUP(
2751                 IP11_31_28
2752                 IP11_27_24
2753                 IP11_23_20
2754                 IP11_19_16
2755                 IP11_15_12
2756                 IP11_11_8
2757                 IP11_7_4
2758                 IP11_3_0 ))
2759         },
2760         { PINMUX_CFG_REG("IPSR12", 0xe6060230, 32, 4, GROUP(
2761                 IP12_31_28
2762                 IP12_27_24
2763                 IP12_23_20
2764                 IP12_19_16
2765                 IP12_15_12
2766                 IP12_11_8
2767                 IP12_7_4
2768                 IP12_3_0 ))
2769         },
2770         { PINMUX_CFG_REG("IPSR13", 0xe6060234, 32, 4, GROUP(
2771                 /* IP13_31_28 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2772                 /* IP13_27_24 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2773                 /* IP13_23_20 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2774                 /* IP13_19_16 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2775                 /* IP13_15_12 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2776                 /* IP13_11_8  */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2777                 IP13_7_4
2778                 IP13_3_0 ))
2779         },
2780 #undef F_
2781 #undef FM
2782
2783 #define F_(x, y)        x,
2784 #define FM(x)           FN_##x,
2785         { PINMUX_CFG_REG_VAR("MOD_SEL0", 0xe6060500, 32,
2786                              GROUP(1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1,
2787                                    1, 1, 1, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1),
2788                              GROUP(
2789                 /* RESERVED 31 */
2790                 0, 0,
2791                 MOD_SEL0_30
2792                 MOD_SEL0_29
2793                 MOD_SEL0_28
2794                 MOD_SEL0_27
2795                 MOD_SEL0_26
2796                 MOD_SEL0_25
2797                 MOD_SEL0_24_23
2798                 MOD_SEL0_22_21
2799                 MOD_SEL0_20_19
2800                 MOD_SEL0_18_17
2801                 /* RESERVED 16 */
2802                 0, 0,
2803                 MOD_SEL0_15
2804                 MOD_SEL0_14
2805                 MOD_SEL0_13
2806                 MOD_SEL0_12
2807                 MOD_SEL0_11
2808                 MOD_SEL0_10
2809                 /* RESERVED 9, 8, 7, 6 */
2810                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2811                 MOD_SEL0_5
2812                 MOD_SEL0_4
2813                 MOD_SEL0_3
2814                 MOD_SEL0_2
2815                 MOD_SEL0_1
2816                 MOD_SEL0_0 ))
2817         },
2818         { PINMUX_CFG_REG_VAR("MOD_SEL1", 0xe6060504, 32,
2819                              GROUP(1, 1, 1, 1, 1, 1, 2, 4, 4, 4, 4, 4, 4),
2820                              GROUP(
2821                 MOD_SEL1_31
2822                 MOD_SEL1_30
2823                 MOD_SEL1_29
2824                 MOD_SEL1_28
2825                 MOD_SEL1_27
2826                 MOD_SEL1_26
2827                 /* RESERVED 25, 24 */
2828                 0, 0, 0, 0,
2829                 /* RESERVED 23, 22, 21, 20 */
2830                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2831                 /* RESERVED 19, 18, 17, 16 */
2832                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2833                 /* RESERVED 15, 14, 13, 12 */
2834                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2835                 /* RESERVED 11, 10, 9, 8  */
2836                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2837                 /* RESERVED 7, 6, 5, 4  */
2838                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2839                 /* RESERVED 3, 2, 1, 0  */
2840                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ))
2841         },
2842         { },
2843 };
2844
2845 static int r8a77995_pin_to_pocctrl(struct sh_pfc *pfc, unsigned int pin, u32 *pocctrl)
2846 {
2847         int bit = -EINVAL;
2848
2849         *pocctrl = 0xe6060380;
2850
2851         if (pin >= RCAR_GP_PIN(3, 0) && pin <= RCAR_GP_PIN(3, 9))
2852                 bit = 29 - (pin - RCAR_GP_PIN(3, 0));
2853
2854         return bit;
2855 }
2856
2857 static const struct pinmux_bias_reg pinmux_bias_regs[] = {
2858         { PINMUX_BIAS_REG("PUEN0", 0xe6060400, "PUD0", 0xe6060440) {
2859                 [ 0] = RCAR_GP_PIN(1, 9),       /* DU_DG1 */
2860                 [ 1] = RCAR_GP_PIN(1, 8),       /* DU_DG0 */
2861                 [ 2] = RCAR_GP_PIN(1, 7),       /* DU_DB7 */
2862                 [ 3] = RCAR_GP_PIN(1, 6),       /* DU_DB6 */
2863                 [ 4] = RCAR_GP_PIN(1, 5),       /* DU_DB5 */
2864                 [ 5] = RCAR_GP_PIN(1, 4),       /* DU_DB4 */
2865                 [ 6] = RCAR_GP_PIN(1, 3),       /* DU_DB3 */
2866                 [ 7] = RCAR_GP_PIN(1, 2),       /* DU_DB2 */
2867                 [ 8] = RCAR_GP_PIN(1, 1),       /* DU_DB1 */
2868                 [ 9] = RCAR_GP_PIN(1, 0),       /* DU_DB0 */
2869                 [10] = PIN_MLB_REF,             /* MLB_REF */
2870                 [11] = RCAR_GP_PIN(0, 8),       /* MLB_SIG */
2871                 [12] = RCAR_GP_PIN(0, 7),       /* MLB_DAT */
2872                 [13] = RCAR_GP_PIN(0, 6),       /* MLB_CLK */
2873                 [14] = RCAR_GP_PIN(0, 5),       /* MSIOF2_RXD */
2874                 [15] = RCAR_GP_PIN(0, 4),       /* MSIOF2_TXD */
2875                 [16] = RCAR_GP_PIN(0, 3),       /* MSIOF2_SCK */
2876                 [17] = RCAR_GP_PIN(0, 2),       /* IRQ0_A */
2877                 [18] = RCAR_GP_PIN(0, 1),       /* USB0_OVC */
2878                 [19] = RCAR_GP_PIN(0, 0),       /* USB0_PWEN */
2879                 [20] = PIN_PRESETOUT_N,         /* PRESETOUT# */
2880                 [21] = PIN_DU_DOTCLKIN0,        /* DU_DOTCLKIN0 */
2881                 [22] = PIN_FSCLKST_N,           /* FSCLKST# */
2882                 [23] = SH_PFC_PIN_NONE,
2883                 [24] = SH_PFC_PIN_NONE,
2884                 [25] = SH_PFC_PIN_NONE,
2885                 [26] = SH_PFC_PIN_NONE,
2886                 [27] = SH_PFC_PIN_NONE,
2887                 [28] = PIN_TDI,                 /* TDI */
2888                 [29] = PIN_TMS,                 /* TMS */
2889                 [30] = PIN_TCK,                 /* TCK */
2890                 [31] = PIN_TRST_N,              /* TRST# */
2891         } },
2892         { PINMUX_BIAS_REG("PUEN1", 0xe6060404, "PUD1", 0xe6060444) {
2893                 [ 0] = RCAR_GP_PIN(2, 9),       /* VI4_DATA8 */
2894                 [ 1] = RCAR_GP_PIN(2, 8),       /* VI4_DATA7 */
2895                 [ 2] = RCAR_GP_PIN(2, 7),       /* VI4_DATA6 */
2896                 [ 3] = RCAR_GP_PIN(2, 6),       /* VI4_DATA5 */
2897                 [ 4] = RCAR_GP_PIN(2, 5),       /* VI4_DATA4 */
2898                 [ 5] = RCAR_GP_PIN(2, 4),       /* VI4_DATA3 */
2899                 [ 6] = RCAR_GP_PIN(2, 3),       /* VI4_DATA2 */
2900                 [ 7] = RCAR_GP_PIN(2, 2),       /* VI4_DATA1 */
2901                 [ 8] = RCAR_GP_PIN(2, 1),       /* VI4_DATA0 */
2902                 [ 9] = RCAR_GP_PIN(2, 0),       /* VI4_CLK */
2903                 [10] = RCAR_GP_PIN(1, 31),      /* QPOLB */
2904                 [11] = RCAR_GP_PIN(1, 30),      /* QPOLA */
2905                 [12] = RCAR_GP_PIN(1, 29),      /* DU_CDE */
2906                 [13] = RCAR_GP_PIN(1, 28),      /* DU_DISP/CDE */
2907                 [14] = RCAR_GP_PIN(1, 27),      /* DU_DISP */
2908                 [15] = RCAR_GP_PIN(1, 26),      /* DU_VSYNC */
2909                 [16] = RCAR_GP_PIN(1, 25),      /* DU_HSYNC */
2910                 [17] = RCAR_GP_PIN(1, 24),      /* DU_DOTCLKOUT0 */
2911                 [18] = RCAR_GP_PIN(1, 23),      /* DU_DR7 */
2912                 [19] = RCAR_GP_PIN(1, 22),      /* DU_DR6 */
2913                 [20] = RCAR_GP_PIN(1, 21),      /* DU_DR5 */
2914                 [21] = RCAR_GP_PIN(1, 20),      /* DU_DR4 */
2915                 [22] = RCAR_GP_PIN(1, 19),      /* DU_DR3 */
2916                 [23] = RCAR_GP_PIN(1, 18),      /* DU_DR2 */
2917                 [24] = RCAR_GP_PIN(1, 17),      /* DU_DR1 */
2918                 [25] = RCAR_GP_PIN(1, 16),      /* DU_DR0 */
2919                 [26] = RCAR_GP_PIN(1, 15),      /* DU_DG7 */
2920                 [27] = RCAR_GP_PIN(1, 14),      /* DU_DG6 */
2921                 [28] = RCAR_GP_PIN(1, 13),      /* DU_DG5 */
2922                 [29] = RCAR_GP_PIN(1, 12),      /* DU_DG4 */
2923                 [30] = RCAR_GP_PIN(1, 11),      /* DU_DG3 */
2924                 [31] = RCAR_GP_PIN(1, 10),      /* DU_DG2 */
2925         } },
2926         { PINMUX_BIAS_REG("PUEN2", 0xe6060408, "PUD2", 0xe6060448) {
2927                 [ 0] = RCAR_GP_PIN(3, 8),       /* NFDATA6 */
2928                 [ 1] = RCAR_GP_PIN(3, 7),       /* NFDATA5 */
2929                 [ 2] = RCAR_GP_PIN(3, 6),       /* NFDATA4 */
2930                 [ 3] = RCAR_GP_PIN(3, 5),       /* NFDATA3 */
2931                 [ 4] = RCAR_GP_PIN(3, 4),       /* NFDATA2 */
2932                 [ 5] = RCAR_GP_PIN(3, 3),       /* NFDATA1 */
2933                 [ 6] = RCAR_GP_PIN(3, 2),       /* NFDATA0 */
2934                 [ 7] = RCAR_GP_PIN(3, 1),       /* NFWE# (PUEN) / NFRE# (PUD) */
2935                 [ 8] = RCAR_GP_PIN(3, 0),       /* NFRE# (PUEN) / NFWE# (PUD) */
2936                 [ 9] = RCAR_GP_PIN(4, 0),       /* NFRB# */
2937                 [10] = RCAR_GP_PIN(2, 31),      /* NFCE# */
2938                 [11] = RCAR_GP_PIN(2, 30),      /* NFCLE */
2939                 [12] = RCAR_GP_PIN(2, 29),      /* NFALE */
2940                 [13] = RCAR_GP_PIN(2, 28),      /* VI4_CLKENB */
2941                 [14] = RCAR_GP_PIN(2, 27),      /* VI4_FIELD */
2942                 [15] = RCAR_GP_PIN(2, 26),      /* VI4_HSYNC# */
2943                 [16] = RCAR_GP_PIN(2, 25),      /* VI4_VSYNC# */
2944                 [17] = RCAR_GP_PIN(2, 24),      /* VI4_DATA23 */
2945                 [18] = RCAR_GP_PIN(2, 23),      /* VI4_DATA22 */
2946                 [19] = RCAR_GP_PIN(2, 22),      /* VI4_DATA21 */
2947                 [20] = RCAR_GP_PIN(2, 21),      /* VI4_DATA20 */
2948                 [21] = RCAR_GP_PIN(2, 20),      /* VI4_DATA19 */
2949                 [22] = RCAR_GP_PIN(2, 19),      /* VI4_DATA18 */
2950                 [23] = RCAR_GP_PIN(2, 18),      /* VI4_DATA17 */
2951                 [24] = RCAR_GP_PIN(2, 17),      /* VI4_DATA16 */
2952                 [25] = RCAR_GP_PIN(2, 16),      /* VI4_DATA15 */
2953                 [26] = RCAR_GP_PIN(2, 15),      /* VI4_DATA14 */
2954                 [27] = RCAR_GP_PIN(2, 14),      /* VI4_DATA13 */
2955                 [28] = RCAR_GP_PIN(2, 13),      /* VI4_DATA12 */
2956                 [29] = RCAR_GP_PIN(2, 12),      /* VI4_DATA11 */
2957                 [30] = RCAR_GP_PIN(2, 11),      /* VI4_DATA10 */
2958                 [31] = RCAR_GP_PIN(2, 10),      /* VI4_DATA9 */
2959         } },
2960         { PINMUX_BIAS_REG("PUEN3", 0xe606040c, "PUD3", 0xe606044c) {
2961                 [ 0] = RCAR_GP_PIN(4, 31),      /* CAN0_RX_A */
2962                 [ 1] = RCAR_GP_PIN(5, 2),       /* CAN_CLK */
2963                 [ 2] = RCAR_GP_PIN(5, 1),       /* TPU0TO1_A */
2964                 [ 3] = RCAR_GP_PIN(5, 0),       /* TPU0TO0_A */
2965                 [ 4] = RCAR_GP_PIN(4, 27),      /* TX2 */
2966                 [ 5] = RCAR_GP_PIN(4, 26),      /* RX2 */
2967                 [ 6] = RCAR_GP_PIN(4, 25),      /* SCK2 */
2968                 [ 7] = RCAR_GP_PIN(4, 24),      /* TX1_A */
2969                 [ 8] = RCAR_GP_PIN(4, 23),      /* RX1_A */
2970                 [ 9] = RCAR_GP_PIN(4, 22),      /* SCK1_A */
2971                 [10] = RCAR_GP_PIN(4, 21),      /* TX0_A */
2972                 [11] = RCAR_GP_PIN(4, 20),      /* RX0_A */
2973                 [12] = RCAR_GP_PIN(4, 19),      /* SCK0_A */
2974                 [13] = RCAR_GP_PIN(4, 18),      /* MSIOF1_RXD */
2975                 [14] = RCAR_GP_PIN(4, 17),      /* MSIOF1_TXD */
2976                 [15] = RCAR_GP_PIN(4, 16),      /* MSIOF1_SCK */
2977                 [16] = RCAR_GP_PIN(4, 15),      /* MSIOF0_RXD */
2978                 [17] = RCAR_GP_PIN(4, 14),      /* MSIOF0_TXD */
2979                 [18] = RCAR_GP_PIN(4, 13),      /* MSIOF0_SYNC */
2980                 [19] = RCAR_GP_PIN(4, 12),      /* MSIOF0_SCK */
2981                 [20] = RCAR_GP_PIN(4, 11),      /* SDA1 */
2982                 [21] = RCAR_GP_PIN(4, 10),      /* SCL1 */
2983                 [22] = RCAR_GP_PIN(4, 9),       /* SDA0 */
2984                 [23] = RCAR_GP_PIN(4, 8),       /* SCL0 */
2985                 [24] = RCAR_GP_PIN(4, 7),       /* SSI_WS4_A */
2986                 [25] = RCAR_GP_PIN(4, 6),       /* SSI_SDATA4_A */
2987                 [26] = RCAR_GP_PIN(4, 5),       /* SSI_SCK4_A */
2988                 [27] = RCAR_GP_PIN(4, 4),       /* SSI_WS34 */
2989                 [28] = RCAR_GP_PIN(4, 3),       /* SSI_SDATA3 */
2990                 [29] = RCAR_GP_PIN(4, 2),       /* SSI_SCK34 */
2991                 [30] = RCAR_GP_PIN(4, 1),       /* AUDIO_CLKA */
2992                 [31] = RCAR_GP_PIN(3, 9),       /* NFDATA7 */
2993         } },
2994         { PINMUX_BIAS_REG("PUEN4", 0xe6060410, "PUD4", 0xe6060450) {
2995                 [ 0] = RCAR_GP_PIN(6, 10),      /* QSPI1_IO3 */
2996                 [ 1] = RCAR_GP_PIN(6, 9),       /* QSPI1_IO2 */
2997                 [ 2] = RCAR_GP_PIN(6, 8),       /* QSPI1_MISO_IO1 */
2998                 [ 3] = RCAR_GP_PIN(6, 7),       /* QSPI1_MOSI_IO0 */
2999                 [ 4] = RCAR_GP_PIN(6, 6),       /* QSPI1_SPCLK */
3000                 [ 5] = RCAR_GP_PIN(6, 5),       /* QSPI0_SSL */
3001                 [ 6] = RCAR_GP_PIN(6, 4),       /* QSPI0_IO3 */
3002                 [ 7] = RCAR_GP_PIN(6, 3),       /* QSPI0_IO2 */
3003                 [ 8] = RCAR_GP_PIN(6, 2),       /* QSPI0_MISO_IO1 */
3004                 [ 9] = RCAR_GP_PIN(6, 1),       /* QSPI0_MOSI_IO0 */
3005                 [10] = RCAR_GP_PIN(6, 0),       /* QSPI0_SPCLK */
3006                 [11] = RCAR_GP_PIN(5, 20),      /* AVB0_LINK */
3007                 [12] = RCAR_GP_PIN(5, 19),      /* AVB0_PHY_INT */
3008                 [13] = RCAR_GP_PIN(5, 18),      /* AVB0_MAGIC */
3009                 [14] = RCAR_GP_PIN(5, 17),      /* AVB0_MDC */
3010                 [15] = RCAR_GP_PIN(5, 16),      /* AVB0_MDIO */
3011                 [16] = RCAR_GP_PIN(5, 15),      /* AVB0_TXCREFCLK */
3012                 [17] = RCAR_GP_PIN(5, 14),      /* AVB0_TD3 */
3013                 [18] = RCAR_GP_PIN(5, 13),      /* AVB0_TD2 */
3014                 [19] = RCAR_GP_PIN(5, 12),      /* AVB0_TD1 */
3015                 [20] = RCAR_GP_PIN(5, 11),      /* AVB0_TD0 */
3016                 [21] = RCAR_GP_PIN(5, 10),      /* AVB0_TXC */
3017                 [22] = RCAR_GP_PIN(5, 9),       /* AVB0_TX_CTL */
3018                 [23] = RCAR_GP_PIN(5, 8),       /* AVB0_RD3 */
3019                 [24] = RCAR_GP_PIN(5, 7),       /* AVB0_RD2 */
3020                 [25] = RCAR_GP_PIN(5, 6),       /* AVB0_RD1 */
3021                 [26] = RCAR_GP_PIN(5, 5),       /* AVB0_RD0 */
3022                 [27] = RCAR_GP_PIN(5, 4),       /* AVB0_RXC */
3023                 [28] = RCAR_GP_PIN(5, 3),       /* AVB0_RX_CTL */
3024                 [29] = RCAR_GP_PIN(4, 30),      /* CAN1_TX_A */
3025                 [30] = RCAR_GP_PIN(4, 29),      /* CAN1_RX_A */
3026                 [31] = RCAR_GP_PIN(4, 28),      /* CAN0_TX_A */
3027         } },
3028         { PINMUX_BIAS_REG("PUEN5", 0xe6060414, "PUD4", 0xe6060454) {
3029                 [ 0] = SH_PFC_PIN_NONE,
3030                 [ 1] = SH_PFC_PIN_NONE,
3031                 [ 2] = SH_PFC_PIN_NONE,
3032                 [ 3] = SH_PFC_PIN_NONE,
3033                 [ 4] = SH_PFC_PIN_NONE,
3034                 [ 5] = SH_PFC_PIN_NONE,
3035                 [ 6] = SH_PFC_PIN_NONE,
3036                 [ 7] = SH_PFC_PIN_NONE,
3037                 [ 8] = SH_PFC_PIN_NONE,
3038                 [ 9] = SH_PFC_PIN_NONE,
3039                 [10] = SH_PFC_PIN_NONE,
3040                 [11] = SH_PFC_PIN_NONE,
3041                 [12] = SH_PFC_PIN_NONE,
3042                 [13] = SH_PFC_PIN_NONE,
3043                 [14] = SH_PFC_PIN_NONE,
3044                 [15] = SH_PFC_PIN_NONE,
3045                 [16] = SH_PFC_PIN_NONE,
3046                 [17] = SH_PFC_PIN_NONE,
3047                 [18] = SH_PFC_PIN_NONE,
3048                 [19] = SH_PFC_PIN_NONE,
3049                 [20] = SH_PFC_PIN_NONE,
3050                 [21] = SH_PFC_PIN_NONE,
3051                 [22] = SH_PFC_PIN_NONE,
3052                 [23] = SH_PFC_PIN_NONE,
3053                 [24] = SH_PFC_PIN_NONE,
3054                 [25] = SH_PFC_PIN_NONE,
3055                 [26] = SH_PFC_PIN_NONE,
3056                 [27] = SH_PFC_PIN_NONE,
3057                 [28] = SH_PFC_PIN_NONE,
3058                 [29] = RCAR_GP_PIN(6, 13),      /* RPC_INT# */
3059                 [30] = RCAR_GP_PIN(6, 12),      /* RPC_RESET# */
3060                 [31] = RCAR_GP_PIN(6, 11),      /* QSPI1_SSL */
3061         } },
3062         { /* sentinel */ }
3063 };
3064
3065 enum ioctrl_regs {
3066         TDSELCTRL,
3067 };
3068
3069 static const struct pinmux_ioctrl_reg pinmux_ioctrl_regs[] = {
3070         [TDSELCTRL] = { 0xe60603c0, },
3071         { /* sentinel */ },
3072 };
3073
3074 static const struct pinmux_bias_reg *
3075 r8a77995_pin_to_bias_reg(const struct sh_pfc *pfc, unsigned int pin,
3076                          unsigned int *puen_bit, unsigned int *pud_bit)
3077 {
3078         const struct pinmux_bias_reg *reg;
3079         unsigned int bit;
3080
3081         reg = rcar_pin_to_bias_reg(pfc, pin, &bit);
3082         if (!reg)
3083                 return reg;
3084
3085         *puen_bit = bit;
3086
3087         /* NFWE# and NFRE# use different bit positions in PUD2 */
3088         switch (pin) {
3089         case RCAR_GP_PIN(3, 0): /* NFRE# */
3090                 *pud_bit = 7;
3091                 break;
3092
3093         case RCAR_GP_PIN(3, 1): /* NFWE# */
3094                 *pud_bit = 8;
3095                 break;
3096
3097         default:
3098                 *pud_bit = bit;
3099                 break;
3100         }
3101
3102         return reg;
3103 }
3104
3105 static unsigned int r8a77995_pinmux_get_bias(struct sh_pfc *pfc,
3106                                              unsigned int pin)
3107 {
3108         const struct pinmux_bias_reg *reg;
3109         unsigned int puen_bit, pud_bit;
3110
3111         reg = r8a77995_pin_to_bias_reg(pfc, pin, &puen_bit, &pud_bit);
3112         if (!reg)
3113                 return PIN_CONFIG_BIAS_DISABLE;
3114
3115         if (!(sh_pfc_read(pfc, reg->puen) & BIT(puen_bit)))
3116                 return PIN_CONFIG_BIAS_DISABLE;
3117         else if (sh_pfc_read(pfc, reg->pud) & BIT(pud_bit))
3118                 return PIN_CONFIG_BIAS_PULL_UP;
3119         else
3120                 return PIN_CONFIG_BIAS_PULL_DOWN;
3121 }
3122
3123 static void r8a77995_pinmux_set_bias(struct sh_pfc *pfc, unsigned int pin,
3124                                      unsigned int bias)
3125 {
3126         const struct pinmux_bias_reg *reg;
3127         unsigned int puen_bit, pud_bit;
3128         u32 enable, updown;
3129
3130         reg = r8a77995_pin_to_bias_reg(pfc, pin, &puen_bit, &pud_bit);
3131         if (!reg)
3132                 return;
3133
3134         enable = sh_pfc_read(pfc, reg->puen) & ~BIT(puen_bit);
3135         if (bias != PIN_CONFIG_BIAS_DISABLE) {
3136                 enable |= BIT(puen_bit);
3137
3138                 updown = sh_pfc_read(pfc, reg->pud) & ~BIT(pud_bit);
3139                 if (bias == PIN_CONFIG_BIAS_PULL_UP)
3140                         updown |= BIT(pud_bit);
3141
3142                 sh_pfc_write(pfc, reg->pud, updown);
3143         }
3144         sh_pfc_write(pfc, reg->puen, enable);
3145 }
3146
3147 static const struct sh_pfc_soc_operations r8a77995_pinmux_ops = {
3148         .pin_to_pocctrl = r8a77995_pin_to_pocctrl,
3149         .get_bias = r8a77995_pinmux_get_bias,
3150         .set_bias = r8a77995_pinmux_set_bias,
3151 };
3152
3153 const struct sh_pfc_soc_info r8a77995_pinmux_info = {
3154         .name = "r8a77995_pfc",
3155         .ops = &r8a77995_pinmux_ops,
3156         .unlock_reg = 0xe6060000, /* PMMR */
3157
3158         .function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END },
3159
3160         .pins = pinmux_pins,
3161         .nr_pins = ARRAY_SIZE(pinmux_pins),
3162         .groups = pinmux_groups,
3163         .nr_groups = ARRAY_SIZE(pinmux_groups),
3164         .functions = pinmux_functions,
3165         .nr_functions = ARRAY_SIZE(pinmux_functions),
3166
3167         .cfg_regs = pinmux_config_regs,
3168         .bias_regs = pinmux_bias_regs,
3169         .ioctrl_regs = pinmux_ioctrl_regs,
3170
3171         .pinmux_data = pinmux_data,
3172         .pinmux_data_size = ARRAY_SIZE(pinmux_data),
3173 };