1 // SPDX-License-Identifier: GPL-2.0
2 /*
3  * R8A779A0 processor support - PFC hardware block.
4  *
5  * Copyright (C) 2020 Renesas Electronics Corp.
6  *
7  * This file is based on the drivers/pinctrl/renesas/pfc-r8a7795.c
8  */
9 
10 #include <linux/errno.h>
11 #include <linux/io.h>
12 #include <linux/kernel.h>
13 
14 #include "core.h"
15 #include "sh_pfc.h"
16 
17 #define CFG_FLAGS (SH_PFC_PIN_CFG_DRIVE_STRENGTH | SH_PFC_PIN_CFG_PULL_UP_DOWN)
18 
19 #define CPU_ALL_GP(fn, sfx)	\
20 	PORT_GP_CFG_15(0, fn, sfx, CFG_FLAGS),	\
21 	PORT_GP_CFG_1(0, 15, fn, sfx, CFG_FLAGS | SH_PFC_PIN_CFG_IO_VOLTAGE_18_33),	\
22 	PORT_GP_CFG_1(0, 16, fn, sfx, CFG_FLAGS | SH_PFC_PIN_CFG_IO_VOLTAGE_18_33),	\
23 	PORT_GP_CFG_1(0, 17, fn, sfx, CFG_FLAGS | SH_PFC_PIN_CFG_IO_VOLTAGE_18_33),	\
24 	PORT_GP_CFG_1(0, 18, fn, sfx, CFG_FLAGS | SH_PFC_PIN_CFG_IO_VOLTAGE_18_33),	\
25 	PORT_GP_CFG_1(0, 19, fn, sfx, CFG_FLAGS | SH_PFC_PIN_CFG_IO_VOLTAGE_18_33),	\
26 	PORT_GP_CFG_1(0, 20, fn, sfx, CFG_FLAGS | SH_PFC_PIN_CFG_IO_VOLTAGE_18_33),	\
27 	PORT_GP_CFG_1(0, 21, fn, sfx, CFG_FLAGS | SH_PFC_PIN_CFG_IO_VOLTAGE_18_33),	\
28 	PORT_GP_CFG_1(0, 22, fn, sfx, CFG_FLAGS | SH_PFC_PIN_CFG_IO_VOLTAGE_18_33),	\
29 	PORT_GP_CFG_1(0, 23, fn, sfx, CFG_FLAGS | SH_PFC_PIN_CFG_IO_VOLTAGE_18_33),	\
30 	PORT_GP_CFG_1(0, 24, fn, sfx, CFG_FLAGS | SH_PFC_PIN_CFG_IO_VOLTAGE_18_33),	\
31 	PORT_GP_CFG_1(0, 25, fn, sfx, CFG_FLAGS | SH_PFC_PIN_CFG_IO_VOLTAGE_18_33),	\
32 	PORT_GP_CFG_1(0, 26, fn, sfx, CFG_FLAGS | SH_PFC_PIN_CFG_IO_VOLTAGE_18_33),	\
33 	PORT_GP_CFG_1(0, 27, fn, sfx, CFG_FLAGS | SH_PFC_PIN_CFG_IO_VOLTAGE_18_33),	\
34 	PORT_GP_CFG_31(1, fn, sfx, CFG_FLAGS | SH_PFC_PIN_CFG_IO_VOLTAGE_18_33),	\
35 	PORT_GP_CFG_2(2, fn, sfx, CFG_FLAGS),					\
36 	PORT_GP_CFG_1(2, 2, fn, sfx, CFG_FLAGS | SH_PFC_PIN_CFG_IO_VOLTAGE_18_33),	\
37 	PORT_GP_CFG_1(2, 3, fn, sfx, CFG_FLAGS | SH_PFC_PIN_CFG_IO_VOLTAGE_18_33),	\
38 	PORT_GP_CFG_1(2, 4, fn, sfx, CFG_FLAGS | SH_PFC_PIN_CFG_IO_VOLTAGE_18_33),	\
39 	PORT_GP_CFG_1(2, 5, fn, sfx, CFG_FLAGS | SH_PFC_PIN_CFG_IO_VOLTAGE_18_33),	\
40 	PORT_GP_CFG_1(2, 6, fn, sfx, CFG_FLAGS | SH_PFC_PIN_CFG_IO_VOLTAGE_18_33),	\
41 	PORT_GP_CFG_1(2, 7, fn, sfx, CFG_FLAGS | SH_PFC_PIN_CFG_IO_VOLTAGE_18_33),	\
42 	PORT_GP_CFG_1(2, 8, fn, sfx, CFG_FLAGS | SH_PFC_PIN_CFG_IO_VOLTAGE_18_33),	\
43 	PORT_GP_CFG_1(2, 9, fn, sfx, CFG_FLAGS | SH_PFC_PIN_CFG_IO_VOLTAGE_18_33),	\
44 	PORT_GP_CFG_1(2, 10, fn, sfx, CFG_FLAGS | SH_PFC_PIN_CFG_IO_VOLTAGE_18_33),	\
45 	PORT_GP_CFG_1(2, 11, fn, sfx, CFG_FLAGS | SH_PFC_PIN_CFG_IO_VOLTAGE_18_33),	\
46 	PORT_GP_CFG_1(2, 12, fn, sfx, CFG_FLAGS | SH_PFC_PIN_CFG_IO_VOLTAGE_18_33),	\
47 	PORT_GP_CFG_1(2, 13, fn, sfx, CFG_FLAGS | SH_PFC_PIN_CFG_IO_VOLTAGE_18_33),	\
48 	PORT_GP_CFG_1(2, 14, fn, sfx, CFG_FLAGS | SH_PFC_PIN_CFG_IO_VOLTAGE_18_33),	\
49 	PORT_GP_CFG_1(2, 15, fn, sfx, CFG_FLAGS | SH_PFC_PIN_CFG_IO_VOLTAGE_18_33),	\
50 	PORT_GP_CFG_1(2, 16, fn, sfx, CFG_FLAGS),	\
51 	PORT_GP_CFG_1(2, 17, fn, sfx, CFG_FLAGS),	\
52 	PORT_GP_CFG_1(2, 18, fn, sfx, CFG_FLAGS),	\
53 	PORT_GP_CFG_1(2, 19, fn, sfx, CFG_FLAGS),	\
54 	PORT_GP_CFG_1(2, 20, fn, sfx, CFG_FLAGS),	\
55 	PORT_GP_CFG_1(2, 21, fn, sfx, CFG_FLAGS),	\
56 	PORT_GP_CFG_1(2, 22, fn, sfx, CFG_FLAGS),	\
57 	PORT_GP_CFG_1(2, 23, fn, sfx, CFG_FLAGS),	\
58 	PORT_GP_CFG_1(2, 24, fn, sfx, CFG_FLAGS),	\
59 	PORT_GP_CFG_17(3, fn, sfx, CFG_FLAGS),	\
60 	PORT_GP_CFG_18(4, fn, sfx, CFG_FLAGS | SH_PFC_PIN_CFG_IO_VOLTAGE_25_33),\
61 	PORT_GP_CFG_1(4, 18, fn, sfx, CFG_FLAGS),	\
62 	PORT_GP_CFG_1(4, 19, fn, sfx, CFG_FLAGS),	\
63 	PORT_GP_CFG_1(4, 20, fn, sfx, CFG_FLAGS),	\
64 	PORT_GP_CFG_1(4, 21, fn, sfx, CFG_FLAGS),	\
65 	PORT_GP_CFG_1(4, 22, fn, sfx, CFG_FLAGS),	\
66 	PORT_GP_CFG_1(4, 23, fn, sfx, CFG_FLAGS),	\
67 	PORT_GP_CFG_1(4, 24, fn, sfx, CFG_FLAGS),	\
68 	PORT_GP_CFG_1(4, 25, fn, sfx, CFG_FLAGS),	\
69 	PORT_GP_CFG_1(4, 26, fn, sfx, CFG_FLAGS),	\
70 	PORT_GP_CFG_18(5, fn, sfx, CFG_FLAGS | SH_PFC_PIN_CFG_IO_VOLTAGE_25_33),\
71 	PORT_GP_CFG_1(5, 18, fn, sfx, CFG_FLAGS),	\
72 	PORT_GP_CFG_1(5, 19, fn, sfx, CFG_FLAGS),	\
73 	PORT_GP_CFG_1(5, 20, fn, sfx, CFG_FLAGS),	\
74 	PORT_GP_CFG_18(6, fn, sfx, CFG_FLAGS | SH_PFC_PIN_CFG_IO_VOLTAGE_25_33),\
75 	PORT_GP_CFG_1(6, 18, fn, sfx, CFG_FLAGS),	\
76 	PORT_GP_CFG_1(6, 19, fn, sfx, CFG_FLAGS),	\
77 	PORT_GP_CFG_1(6, 20, fn, sfx, CFG_FLAGS),	\
78 	PORT_GP_CFG_18(7, fn, sfx, CFG_FLAGS | SH_PFC_PIN_CFG_IO_VOLTAGE_25_33),\
79 	PORT_GP_CFG_1(7, 18, fn, sfx, CFG_FLAGS),	\
80 	PORT_GP_CFG_1(7, 19, fn, sfx, CFG_FLAGS),	\
81 	PORT_GP_CFG_1(7, 20, fn, sfx, CFG_FLAGS),	\
82 	PORT_GP_CFG_18(8, fn, sfx, CFG_FLAGS | SH_PFC_PIN_CFG_IO_VOLTAGE_25_33),\
83 	PORT_GP_CFG_1(8, 18, fn, sfx, CFG_FLAGS),	\
84 	PORT_GP_CFG_1(8, 19, fn, sfx, CFG_FLAGS),	\
85 	PORT_GP_CFG_1(8, 20, fn, sfx, CFG_FLAGS),	\
86 	PORT_GP_CFG_18(9, fn, sfx, CFG_FLAGS | SH_PFC_PIN_CFG_IO_VOLTAGE_25_33),\
87 	PORT_GP_CFG_1(9, 18, fn, sfx, CFG_FLAGS),	\
88 	PORT_GP_CFG_1(9, 19, fn, sfx, CFG_FLAGS),	\
89 	PORT_GP_CFG_1(9, 20, fn, sfx, CFG_FLAGS)
90 
91 #define CPU_ALL_NOGP(fn)									\
92 	PIN_NOGP_CFG(PRESETOUT_N, "PRESETOUT#", fn, SH_PFC_PIN_CFG_PULL_UP_DOWN),		\
93 	PIN_NOGP_CFG(EXTALR, "EXTALR", fn, SH_PFC_PIN_CFG_PULL_UP_DOWN),			\
94 	PIN_NOGP_CFG(DCUTRST_N_LPDRST_N, "DCUTRST#_LPDRST#", fn, SH_PFC_PIN_CFG_PULL_UP_DOWN),	\
95 	PIN_NOGP_CFG(DCUTCK_LPDCLK, "DCUTCK_LPDCLK", fn, SH_PFC_PIN_CFG_PULL_UP_DOWN),		\
96 	PIN_NOGP_CFG(DCUTMS, "DCUTMS", fn, SH_PFC_PIN_CFG_PULL_UP_DOWN),			\
97 	PIN_NOGP_CFG(DCUTDI_LPDI, "DCUTDI_LPDI", fn, SH_PFC_PIN_CFG_PULL_UP_DOWN)
98 
99 /*
100  * F_() : just information
101  * FM() : macro for FN_xxx / xxx_MARK
102  */
103 
104 /* GPSR0 */
105 #define GPSR0_27	FM(MMC_D7)
106 #define GPSR0_26	FM(MMC_D6)
107 #define GPSR0_25	FM(MMC_D5)
108 #define GPSR0_24	FM(MMC_D4)
109 #define GPSR0_23	FM(MMC_SD_CLK)
110 #define GPSR0_22	FM(MMC_SD_D3)
111 #define GPSR0_21	FM(MMC_SD_D2)
112 #define GPSR0_20	FM(MMC_SD_D1)
113 #define GPSR0_19	FM(MMC_SD_D0)
114 #define GPSR0_18	FM(MMC_SD_CMD)
115 #define GPSR0_17	FM(MMC_DS)
116 #define GPSR0_16	FM(SD_CD)
117 #define GPSR0_15	FM(SD_WP)
118 #define GPSR0_14	FM(RPC_INT_N)
119 #define GPSR0_13	FM(RPC_WP_N)
120 #define GPSR0_12	FM(RPC_RESET_N)
121 #define GPSR0_11	FM(QSPI1_SSL)
122 #define GPSR0_10	FM(QSPI1_IO3)
123 #define GPSR0_9		FM(QSPI1_IO2)
124 #define GPSR0_8		FM(QSPI1_MISO_IO1)
125 #define GPSR0_7		FM(QSPI1_MOSI_IO0)
126 #define GPSR0_6		FM(QSPI1_SPCLK)
127 #define GPSR0_5		FM(QSPI0_SSL)
128 #define GPSR0_4		FM(QSPI0_IO3)
129 #define GPSR0_3		FM(QSPI0_IO2)
130 #define GPSR0_2		FM(QSPI0_MISO_IO1)
131 #define GPSR0_1		FM(QSPI0_MOSI_IO0)
132 #define GPSR0_0		FM(QSPI0_SPCLK)
133 
134 /* GPSR1 */
135 #define GPSR1_30	F_(GP1_30,	IP3SR1_27_24)
136 #define GPSR1_29	F_(GP1_29,	IP3SR1_23_20)
137 #define GPSR1_28	F_(GP1_28,	IP3SR1_19_16)
138 #define GPSR1_27	F_(IRQ3,	IP3SR1_15_12)
139 #define GPSR1_26	F_(IRQ2,	IP3SR1_11_8)
140 #define GPSR1_25	F_(IRQ1,	IP3SR1_7_4)
141 #define GPSR1_24	F_(IRQ0,	IP3SR1_3_0)
142 #define GPSR1_23	F_(MSIOF2_SS2,	IP2SR1_31_28)
143 #define GPSR1_22	F_(MSIOF2_SS1,	IP2SR1_27_24)
144 #define GPSR1_21	F_(MSIOF2_SYNC,	IP2SR1_23_20)
145 #define GPSR1_20	F_(MSIOF2_SCK,	IP2SR1_19_16)
146 #define GPSR1_19	F_(MSIOF2_TXD,	IP2SR1_15_12)
147 #define GPSR1_18	F_(MSIOF2_RXD,	IP2SR1_11_8)
148 #define GPSR1_17	F_(MSIOF1_SS2,	IP2SR1_7_4)
149 #define GPSR1_16	F_(MSIOF1_SS1,	IP2SR1_3_0)
150 #define GPSR1_15	F_(MSIOF1_SYNC,	IP1SR1_31_28)
151 #define GPSR1_14	F_(MSIOF1_SCK,	IP1SR1_27_24)
152 #define GPSR1_13	F_(MSIOF1_TXD,	IP1SR1_23_20)
153 #define GPSR1_12	F_(MSIOF1_RXD,	IP1SR1_19_16)
154 #define GPSR1_11	F_(MSIOF0_SS2,	IP1SR1_15_12)
155 #define GPSR1_10	F_(MSIOF0_SS1,	IP1SR1_11_8)
156 #define GPSR1_9		F_(MSIOF0_SYNC,	IP1SR1_7_4)
157 #define GPSR1_8		F_(MSIOF0_SCK,	IP1SR1_3_0)
158 #define GPSR1_7		F_(MSIOF0_TXD,	IP0SR1_31_28)
159 #define GPSR1_6		F_(MSIOF0_RXD,	IP0SR1_27_24)
160 #define GPSR1_5		F_(HTX0,	IP0SR1_23_20)
161 #define GPSR1_4		F_(HCTS0_N,	IP0SR1_19_16)
162 #define GPSR1_3		F_(HRTS0_N,	IP0SR1_15_12)
163 #define GPSR1_2		F_(HSCK0,	IP0SR1_11_8)
164 #define GPSR1_1		F_(HRX0,	IP0SR1_7_4)
165 #define GPSR1_0		F_(SCIF_CLK,	IP0SR1_3_0)
166 
167 /* GPSR2 */
168 #define GPSR2_24	FM(TCLK2_A)
169 #define GPSR2_23	F_(TCLK1_A,		IP2SR2_31_28)
170 #define GPSR2_22	F_(TPU0TO1,		IP2SR2_27_24)
171 #define GPSR2_21	F_(TPU0TO0,		IP2SR2_23_20)
172 #define GPSR2_20	F_(CLK_EXTFXR,		IP2SR2_19_16)
173 #define GPSR2_19	F_(RXDB_EXTFXR,		IP2SR2_15_12)
174 #define GPSR2_18	F_(FXR_TXDB,		IP2SR2_11_8)
175 #define GPSR2_17	F_(RXDA_EXTFXR_A,	IP2SR2_7_4)
176 #define GPSR2_16	F_(FXR_TXDA_A,		IP2SR2_3_0)
177 #define GPSR2_15	F_(GP2_15,		IP1SR2_31_28)
178 #define GPSR2_14	F_(GP2_14,		IP1SR2_27_24)
179 #define GPSR2_13	F_(GP2_13,		IP1SR2_23_20)
180 #define GPSR2_12	F_(GP2_12,		IP1SR2_19_16)
181 #define GPSR2_11	F_(GP2_11,		IP1SR2_15_12)
182 #define GPSR2_10	F_(GP2_10,		IP1SR2_11_8)
183 #define GPSR2_9		F_(GP2_09,		IP1SR2_7_4)
184 #define GPSR2_8		F_(GP2_08,		IP1SR2_3_0)
185 #define GPSR2_7		F_(GP2_07,		IP0SR2_31_28)
186 #define GPSR2_6		F_(GP2_06,		IP0SR2_27_24)
187 #define GPSR2_5		F_(GP2_05,		IP0SR2_23_20)
188 #define GPSR2_4		F_(GP2_04,		IP0SR2_19_16)
189 #define GPSR2_3		F_(GP2_03,		IP0SR2_15_12)
190 #define GPSR2_2		F_(GP2_02,		IP0SR2_11_8)
191 #define GPSR2_1		F_(IPC_CLKOUT,		IP0SR2_7_4)
192 #define GPSR2_0		F_(IPC_CLKIN,		IP0SR2_3_0)
193 
194 /* GPSR3 */
195 #define GPSR3_16	FM(CANFD7_RX)
196 #define GPSR3_15	FM(CANFD7_TX)
197 #define GPSR3_14	FM(CANFD6_RX)
198 #define GPSR3_13	F_(CANFD6_TX,	IP1SR3_23_20)
199 #define GPSR3_12	F_(CANFD5_RX,	IP1SR3_19_16)
200 #define GPSR3_11	F_(CANFD5_TX,	IP1SR3_15_12)
201 #define GPSR3_10	F_(CANFD4_RX,	IP1SR3_11_8)
202 #define GPSR3_9		F_(CANFD4_TX,	IP1SR3_7_4)
203 #define GPSR3_8		F_(CANFD3_RX,	IP1SR3_3_0)
204 #define GPSR3_7		F_(CANFD3_TX,	IP0SR3_31_28)
205 #define GPSR3_6		F_(CANFD2_RX,	IP0SR3_27_24)
206 #define GPSR3_5		F_(CANFD2_TX,	IP0SR3_23_20)
207 #define GPSR3_4		FM(CANFD1_RX)
208 #define GPSR3_3		FM(CANFD1_TX)
209 #define GPSR3_2		F_(CANFD0_RX,	IP0SR3_11_8)
210 #define GPSR3_1		F_(CANFD0_TX,	IP0SR3_7_4)
211 #define GPSR3_0		FM(CAN_CLK)
212 
213 /* GPSR4 */
214 #define GPSR4_26	FM(AVS1)
215 #define GPSR4_25	FM(AVS0)
216 #define GPSR4_24	FM(PCIE3_CLKREQ_N)
217 #define GPSR4_23	FM(PCIE2_CLKREQ_N)
218 #define GPSR4_22	FM(PCIE1_CLKREQ_N)
219 #define GPSR4_21	FM(PCIE0_CLKREQ_N)
220 #define GPSR4_20	F_(AVB0_AVTP_PPS,	IP2SR4_19_16)
221 #define GPSR4_19	F_(AVB0_AVTP_CAPTURE,	IP2SR4_15_12)
222 #define GPSR4_18	F_(AVB0_AVTP_MATCH,	IP2SR4_11_8)
223 #define GPSR4_17	F_(AVB0_LINK,		IP2SR4_7_4)
224 #define GPSR4_16	FM(AVB0_PHY_INT)
225 #define GPSR4_15	F_(AVB0_MAGIC,		IP1SR4_31_28)
226 #define GPSR4_14	F_(AVB0_MDC,		IP1SR4_27_24)
227 #define GPSR4_13	F_(AVB0_MDIO,		IP1SR4_23_20)
228 #define GPSR4_12	F_(AVB0_TXCREFCLK,	IP1SR4_19_16)
229 #define GPSR4_11	F_(AVB0_TD3,		IP1SR4_15_12)
230 #define GPSR4_10	F_(AVB0_TD2,		IP1SR4_11_8)
231 #define GPSR4_9		F_(AVB0_TD1,		IP1SR4_7_4)
232 #define GPSR4_8		F_(AVB0_TD0,		IP1SR4_3_0)
233 #define GPSR4_7		F_(AVB0_TXC,		IP0SR4_31_28)
234 #define GPSR4_6		F_(AVB0_TX_CTL,		IP0SR4_27_24)
235 #define GPSR4_5		F_(AVB0_RD3,		IP0SR4_23_20)
236 #define GPSR4_4		F_(AVB0_RD2,		IP0SR4_19_16)
237 #define GPSR4_3		F_(AVB0_RD1,		IP0SR4_15_12)
238 #define GPSR4_2		F_(AVB0_RD0,		IP0SR4_11_8)
239 #define GPSR4_1		F_(AVB0_RXC,		IP0SR4_7_4)
240 #define GPSR4_0		F_(AVB0_RX_CTL,		IP0SR4_3_0)
241 
242 /* GPSR5 */
243 #define GPSR5_20	F_(AVB1_AVTP_PPS,	IP2SR5_19_16)
244 #define GPSR5_19	F_(AVB1_AVTP_CAPTURE,	IP2SR5_15_12)
245 #define GPSR5_18	F_(AVB1_AVTP_MATCH,	IP2SR5_11_8)
246 #define GPSR5_17	F_(AVB1_LINK,		IP2SR5_7_4)
247 #define GPSR5_16	FM(AVB1_PHY_INT)
248 #define GPSR5_15	F_(AVB1_MAGIC,		IP1SR5_31_28)
249 #define GPSR5_14	F_(AVB1_MDC,		IP1SR5_27_24)
250 #define GPSR5_13	F_(AVB1_MDIO,		IP1SR5_23_20)
251 #define GPSR5_12	F_(AVB1_TXCREFCLK,	IP1SR5_19_16)
252 #define GPSR5_11	F_(AVB1_TD3,		IP1SR5_15_12)
253 #define GPSR5_10	F_(AVB1_TD2,		IP1SR5_11_8)
254 #define GPSR5_9		F_(AVB1_TD1,		IP1SR5_7_4)
255 #define GPSR5_8		F_(AVB1_TD0,		IP1SR5_3_0)
256 #define GPSR5_7		F_(AVB1_TXC,		IP0SR5_31_28)
257 #define GPSR5_6		F_(AVB1_TX_CTL,		IP0SR5_27_24)
258 #define GPSR5_5		F_(AVB1_RD3,		IP0SR5_23_20)
259 #define GPSR5_4		F_(AVB1_RD2,		IP0SR5_19_16)
260 #define GPSR5_3		F_(AVB1_RD1,		IP0SR5_15_12)
261 #define GPSR5_2		F_(AVB1_RD0,		IP0SR5_11_8)
262 #define GPSR5_1		F_(AVB1_RXC,		IP0SR5_7_4)
263 #define GPSR5_0		F_(AVB1_RX_CTL,		IP0SR5_3_0)
264 
265 /* GPSR6 */
266 #define GPSR6_20	FM(AVB2_AVTP_PPS)
267 #define GPSR6_19	FM(AVB2_AVTP_CAPTURE)
268 #define GPSR6_18	FM(AVB2_AVTP_MATCH)
269 #define GPSR6_17	FM(AVB2_LINK)
270 #define GPSR6_16	FM(AVB2_PHY_INT)
271 #define GPSR6_15	FM(AVB2_MAGIC)
272 #define GPSR6_14	FM(AVB2_MDC)
273 #define GPSR6_13	FM(AVB2_MDIO)
274 #define GPSR6_12	FM(AVB2_TXCREFCLK)
275 #define GPSR6_11	FM(AVB2_TD3)
276 #define GPSR6_10	FM(AVB2_TD2)
277 #define GPSR6_9		FM(AVB2_TD1)
278 #define GPSR6_8		FM(AVB2_TD0)
279 #define GPSR6_7		FM(AVB2_TXC)
280 #define GPSR6_6		FM(AVB2_TX_CTL)
281 #define GPSR6_5		FM(AVB2_RD3)
282 #define GPSR6_4		FM(AVB2_RD2)
283 #define GPSR6_3		FM(AVB2_RD1)
284 #define GPSR6_2		FM(AVB2_RD0)
285 #define GPSR6_1		FM(AVB2_RXC)
286 #define GPSR6_0		FM(AVB2_RX_CTL)
287 
288 /* GPSR7 */
289 #define GPSR7_20	FM(AVB3_AVTP_PPS)
290 #define GPSR7_19	FM(AVB3_AVTP_CAPTURE)
291 #define GPSR7_18	FM(AVB3_AVTP_MATCH)
292 #define GPSR7_17	FM(AVB3_LINK)
293 #define GPSR7_16	FM(AVB3_PHY_INT)
294 #define GPSR7_15	FM(AVB3_MAGIC)
295 #define GPSR7_14	FM(AVB3_MDC)
296 #define GPSR7_13	FM(AVB3_MDIO)
297 #define GPSR7_12	FM(AVB3_TXCREFCLK)
298 #define GPSR7_11	FM(AVB3_TD3)
299 #define GPSR7_10	FM(AVB3_TD2)
300 #define GPSR7_9		FM(AVB3_TD1)
301 #define GPSR7_8		FM(AVB3_TD0)
302 #define GPSR7_7		FM(AVB3_TXC)
303 #define GPSR7_6		FM(AVB3_TX_CTL)
304 #define GPSR7_5		FM(AVB3_RD3)
305 #define GPSR7_4		FM(AVB3_RD2)
306 #define GPSR7_3		FM(AVB3_RD1)
307 #define GPSR7_2		FM(AVB3_RD0)
308 #define GPSR7_1		FM(AVB3_RXC)
309 #define GPSR7_0		FM(AVB3_RX_CTL)
310 
311 /* GPSR8 */
312 #define GPSR8_20	FM(AVB4_AVTP_PPS)
313 #define GPSR8_19	FM(AVB4_AVTP_CAPTURE)
314 #define GPSR8_18	FM(AVB4_AVTP_MATCH)
315 #define GPSR8_17	FM(AVB4_LINK)
316 #define GPSR8_16	FM(AVB4_PHY_INT)
317 #define GPSR8_15	FM(AVB4_MAGIC)
318 #define GPSR8_14	FM(AVB4_MDC)
319 #define GPSR8_13	FM(AVB4_MDIO)
320 #define GPSR8_12	FM(AVB4_TXCREFCLK)
321 #define GPSR8_11	FM(AVB4_TD3)
322 #define GPSR8_10	FM(AVB4_TD2)
323 #define GPSR8_9		FM(AVB4_TD1)
324 #define GPSR8_8		FM(AVB4_TD0)
325 #define GPSR8_7		FM(AVB4_TXC)
326 #define GPSR8_6		FM(AVB4_TX_CTL)
327 #define GPSR8_5		FM(AVB4_RD3)
328 #define GPSR8_4		FM(AVB4_RD2)
329 #define GPSR8_3		FM(AVB4_RD1)
330 #define GPSR8_2		FM(AVB4_RD0)
331 #define GPSR8_1		FM(AVB4_RXC)
332 #define GPSR8_0		FM(AVB4_RX_CTL)
333 
334 /* GPSR9 */
335 #define GPSR9_20	FM(AVB5_AVTP_PPS)
336 #define GPSR9_19	FM(AVB5_AVTP_CAPTURE)
337 #define GPSR9_18	FM(AVB5_AVTP_MATCH)
338 #define GPSR9_17	FM(AVB5_LINK)
339 #define GPSR9_16	FM(AVB5_PHY_INT)
340 #define GPSR9_15	FM(AVB5_MAGIC)
341 #define GPSR9_14	FM(AVB5_MDC)
342 #define GPSR9_13	FM(AVB5_MDIO)
343 #define GPSR9_12	FM(AVB5_TXCREFCLK)
344 #define GPSR9_11	FM(AVB5_TD3)
345 #define GPSR9_10	FM(AVB5_TD2)
346 #define GPSR9_9		FM(AVB5_TD1)
347 #define GPSR9_8		FM(AVB5_TD0)
348 #define GPSR9_7		FM(AVB5_TXC)
349 #define GPSR9_6		FM(AVB5_TX_CTL)
350 #define GPSR9_5		FM(AVB5_RD3)
351 #define GPSR9_4		FM(AVB5_RD2)
352 #define GPSR9_3		FM(AVB5_RD1)
353 #define GPSR9_2		FM(AVB5_RD0)
354 #define GPSR9_1		FM(AVB5_RXC)
355 #define GPSR9_0		FM(AVB5_RX_CTL)
356 
357 /* IP0SR1 */		/* 0 */		/* 1 */		/* 2 */		/* 3 */		/* 4 */		/* 5 */		/* 6 - F */
358 #define IP0SR1_3_0	FM(SCIF_CLK)	F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0)	FM(A0)		F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
359 #define IP0SR1_7_4	FM(HRX0)	FM(RX0)		F_(0, 0)	F_(0, 0)	F_(0, 0)	FM(A1)		F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
360 #define IP0SR1_11_8	FM(HSCK0)	FM(SCK0)	F_(0, 0)	F_(0, 0)	F_(0, 0)	FM(A2)		F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
361 #define IP0SR1_15_12	FM(HRTS0_N)	FM(RTS0_N)	F_(0, 0)	F_(0, 0)	F_(0, 0)	FM(A3)		F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
362 #define IP0SR1_19_16	FM(HCTS0_N)	FM(CTS0_N)	F_(0, 0)	F_(0, 0)	F_(0, 0)	FM(A4)		F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
363 #define IP0SR1_23_20	FM(HTX0)	FM(TX0)		F_(0, 0)	F_(0, 0)	F_(0, 0)	FM(A5)		F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
364 #define IP0SR1_27_24	FM(MSIOF0_RXD)	F_(0, 0)	F_(0, 0)	F_(0, 0)	FM(DU_DR2)	FM(A6)		F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
365 #define IP0SR1_31_28	FM(MSIOF0_TXD)	F_(0, 0)	F_(0, 0)	F_(0, 0)	FM(DU_DR3)	FM(A7)		F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
366 /* IP1SR1 */		/* 0 */		/* 1 */		/* 2 */		/* 3 */		/* 4 */		/* 5 */		/* 6 - F */
367 #define IP1SR1_3_0	FM(MSIOF0_SCK)	F_(0, 0)	F_(0, 0)	F_(0, 0)	FM(DU_DR4)	FM(A8)		F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
368 #define IP1SR1_7_4	FM(MSIOF0_SYNC)	F_(0, 0)	F_(0, 0)	F_(0, 0)	FM(DU_DR5)	FM(A9)		F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
369 #define IP1SR1_11_8	FM(MSIOF0_SS1)	F_(0, 0)	F_(0, 0)	F_(0, 0)	FM(DU_DR6)	FM(A10)		F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
370 #define IP1SR1_15_12	FM(MSIOF0_SS2)	F_(0, 0)	F_(0, 0)	F_(0, 0)	FM(DU_DR7)	FM(A11)		F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
371 #define IP1SR1_19_16	FM(MSIOF1_RXD)	F_(0, 0)	F_(0, 0)	F_(0, 0)	FM(DU_DG2)	FM(A12)		F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
372 #define IP1SR1_23_20	FM(MSIOF1_TXD)	FM(HRX3)	FM(SCK3)	F_(0, 0)	FM(DU_DG3)	FM(A13)		F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
373 #define IP1SR1_27_24	FM(MSIOF1_SCK)	FM(HSCK3)	FM(CTS3_N)	F_(0, 0)	FM(DU_DG4)	FM(A14)		F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
374 #define IP1SR1_31_28	FM(MSIOF1_SYNC)	FM(HRTS3_N)	FM(RTS3_N)	F_(0, 0)	FM(DU_DG5)	FM(A15)		F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
375 /* IP2SR1 */		/* 0 */		/* 1 */		/* 2 */		/* 3 */		/* 4 */		/* 5 */		/* 6 - F */
376 #define IP2SR1_3_0	FM(MSIOF1_SS1)	FM(HCTS3_N)	FM(RX3)		F_(0, 0)	FM(DU_DG6)	FM(A16)		F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
377 #define IP2SR1_7_4	FM(MSIOF1_SS2)	FM(HTX3)	FM(TX3)		F_(0, 0)	FM(DU_DG7)	FM(A17)		F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
378 #define IP2SR1_11_8	FM(MSIOF2_RXD)	FM(HSCK1)	FM(SCK1)	F_(0, 0)	FM(DU_DB2)	FM(A18)		F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
379 #define IP2SR1_15_12	FM(MSIOF2_TXD)	FM(HCTS1_N)	FM(CTS1_N)	F_(0, 0)	FM(DU_DB3)	FM(A19)		F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
380 #define IP2SR1_19_16	FM(MSIOF2_SCK)	FM(HRTS1_N)	FM(RTS1_N)	F_(0, 0)	FM(DU_DB4)	FM(A20)		F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
381 #define IP2SR1_23_20	FM(MSIOF2_SYNC)	FM(HRX1)	FM(RX1_A)	F_(0, 0)	FM(DU_DB5)	FM(A21)		F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
382 #define IP2SR1_27_24	FM(MSIOF2_SS1)	FM(HTX1)	FM(TX1_A)	F_(0, 0)	FM(DU_DB6)	FM(A22)		F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
383 #define IP2SR1_31_28	FM(MSIOF2_SS2)	FM(TCLK1_B)	F_(0, 0)	F_(0, 0)	FM(DU_DB7)	FM(A23)		F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
384 
385 /* IP3SR1 */		/* 0 */			/* 1 */		/* 2 */		/* 3 */		/* 4 */			/* 5 */		/* 6 - F */
386 #define IP3SR1_3_0	FM(IRQ0)		F_(0, 0)	F_(0, 0)	F_(0, 0)	FM(DU_DOTCLKOUT)	FM(A24)		F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
387 #define IP3SR1_7_4	FM(IRQ1)		F_(0, 0)	F_(0, 0)	F_(0, 0)	FM(DU_HSYNC)		FM(A25)		F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
388 #define IP3SR1_11_8	FM(IRQ2)		F_(0, 0)	F_(0, 0)	F_(0, 0)	FM(DU_VSYNC)		FM(CS1_N_A26)	F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
389 #define IP3SR1_15_12	FM(IRQ3)		F_(0, 0)	F_(0, 0)	F_(0, 0)	FM(DU_ODDF_DISP_CDE)	FM(CS0_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)
390 #define IP3SR1_19_16	FM(GP1_28)		F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0)		FM(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)
391 #define IP3SR1_23_20	FM(GP1_29)		F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0)		FM(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)
392 #define IP3SR1_27_24	FM(GP1_30)		F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0)		FM(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)
393 #define IP3SR1_31_28	F_(0, 0)		F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0)		F_(0, 0)	F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
394 
395 /* IP0SR2 */		/* 0 */			/* 1 */			/* 2 */		/* 3 */		/* 4 */		/* 5 */		/* 6 - F */
396 #define IP0SR2_3_0	FM(IPC_CLKIN)		FM(IPC_CLKEN_IN)	F_(0, 0)	F_(0, 0)	FM(DU_DOTCLKIN)	F_(0, 0)	F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
397 #define IP0SR2_7_4	FM(IPC_CLKOUT)		FM(IPC_CLKEN_OUT)	F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
398 #define IP0SR2_11_8	FM(GP2_02)		F_(0, 0)		F_(0, 0)	F_(0, 0)	F_(0, 0)	FM(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)
399 #define IP0SR2_15_12	FM(GP2_03)		F_(0, 0)		F_(0, 0)	F_(0, 0)	F_(0, 0)	FM(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)
400 #define IP0SR2_19_16	FM(GP2_04)		F_(0, 0)		FM(MSIOF4_RXD)	F_(0, 0)	F_(0, 0)	FM(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)
401 #define IP0SR2_23_20	FM(GP2_05)		FM(HSCK2)		FM(MSIOF4_TXD)	FM(SCK4)	F_(0, 0)	FM(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)
402 #define IP0SR2_27_24	FM(GP2_06)		FM(HCTS2_N)		FM(MSIOF4_SCK)	FM(CTS4_N)	F_(0, 0)	FM(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)
403 #define IP0SR2_31_28	FM(GP2_07)		FM(HRTS2_N)		FM(MSIOF4_SYNC)	FM(RTS4_N)	F_(0, 0)	FM(D8)		F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
404 /* IP1SR2 */		/* 0 */			/* 1 */			/* 2 */		/* 3 */		/* 4 */		/* 5 */		/* 6 - F */
405 #define IP1SR2_3_0	FM(GP2_08)		FM(HRX2)		FM(MSIOF4_SS1)	FM(RX4)		F_(0, 0)	FM(D9)		F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
406 #define IP1SR2_7_4	FM(GP2_09)		FM(HTX2)		FM(MSIOF4_SS2)	FM(TX4)		F_(0, 0)	FM(D10)		F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
407 #define IP1SR2_11_8	FM(GP2_10)		FM(TCLK2_B)		FM(MSIOF5_RXD)	F_(0, 0)	F_(0, 0)	FM(D11)		F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
408 #define IP1SR2_15_12	FM(GP2_11)		FM(TCLK3)		FM(MSIOF5_TXD)	F_(0, 0)	F_(0, 0)	FM(D12)		F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
409 #define IP1SR2_19_16	FM(GP2_12)		FM(TCLK4)		FM(MSIOF5_SCK)	F_(0, 0)	F_(0, 0)	FM(D13)		F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
410 #define IP1SR2_23_20	FM(GP2_13)		F_(0, 0)		FM(MSIOF5_SYNC)	F_(0, 0)	F_(0, 0)	FM(D14)		F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
411 #define IP1SR2_27_24	FM(GP2_14)		FM(IRQ4)		FM(MSIOF5_SS1)	F_(0, 0)	F_(0, 0)	FM(D15)		F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
412 #define IP1SR2_31_28	FM(GP2_15)		FM(IRQ5)		FM(MSIOF5_SS2)	FM(CPG_CPCKOUT)	F_(0, 0)	F_(0, 0)	F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
413 /* IP2SR2 */		/* 0 */			/* 1 */			/* 2 */		/* 3 */		/* 4 */		/* 5 */		/* 6 - F */
414 #define IP2SR2_3_0	FM(FXR_TXDA_A)		FM(MSIOF3_SS1)		F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
415 #define IP2SR2_7_4	FM(RXDA_EXTFXR_A)	FM(MSIOF3_SS2)		F_(0, 0)	F_(0, 0)	F_(0, 0)	FM(BS_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)
416 #define IP2SR2_11_8	FM(FXR_TXDB)		FM(MSIOF3_RXD)		F_(0, 0)	F_(0, 0)	F_(0, 0)	FM(RD_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)
417 #define IP2SR2_15_12	FM(RXDB_EXTFXR)		FM(MSIOF3_TXD)		F_(0, 0)	F_(0, 0)	F_(0, 0)	FM(WE0_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)
418 #define IP2SR2_19_16	FM(CLK_EXTFXR)		FM(MSIOF3_SCK)		F_(0, 0)	F_(0, 0)	F_(0, 0)	FM(WE1_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)
419 #define IP2SR2_23_20	FM(TPU0TO0)		FM(MSIOF3_SYNC)		F_(0, 0)	F_(0, 0)	F_(0, 0)	FM(RD_WR_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)
420 #define IP2SR2_27_24	FM(TPU0TO1)		F_(0, 0)		F_(0, 0)	F_(0, 0)	F_(0, 0)	FM(CLKOUT)	F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
421 #define IP2SR2_31_28	FM(TCLK1_A)		F_(0, 0)		F_(0, 0)	F_(0, 0)	F_(0, 0)	FM(EX_WAIT0)	F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
422 
423 /* IP0SR3 */		/* 0 */		/* 1 */			/* 2 */		/* 3 */			/* 4 */		/* 5 */		/* 6 - F */
424 #define IP0SR3_3_0	F_(0, 0)	F_(0, 0)		F_(0, 0)	F_(0, 0)		F_(0, 0)	F_(0, 0)	F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
425 #define IP0SR3_7_4	FM(CANFD0_TX)	FM(FXR_TXDA_B)		FM(TX1_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)
426 #define IP0SR3_11_8	FM(CANFD0_RX)	FM(RXDA_EXTFXR_B)	FM(RX1_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)
427 #define IP0SR3_15_12	F_(0, 0)	F_(0, 0)		F_(0, 0)	F_(0, 0)		F_(0, 0)	F_(0, 0)	F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
428 #define IP0SR3_19_16	F_(0, 0)	F_(0, 0)		F_(0, 0)	F_(0, 0)		F_(0, 0)	F_(0, 0)	F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
429 #define IP0SR3_23_20	FM(CANFD2_TX)	FM(TPU0TO2)		FM(PWM0)	F_(0, 0)		F_(0, 0)	F_(0, 0)	F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
430 #define IP0SR3_27_24	FM(CANFD2_RX)	FM(TPU0TO3)		FM(PWM1)	F_(0, 0)		F_(0, 0)	F_(0, 0)	F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
431 #define IP0SR3_31_28	FM(CANFD3_TX)	F_(0, 0)		FM(PWM2)	F_(0, 0)		F_(0, 0)	F_(0, 0)	F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
432 /* IP1SR3 */		/* 0 */		/* 1 */			/* 2 */		/* 3 */			/* 4 */		/* 5 */		/* 6 - F */
433 #define IP1SR3_3_0	FM(CANFD3_RX)	F_(0, 0)		FM(PWM3)	F_(0, 0)		F_(0, 0)	F_(0, 0)	F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
434 #define IP1SR3_7_4	FM(CANFD4_TX)	F_(0, 0)		FM(PWM4)	FM(FXR_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) F_(0, 0)
435 #define IP1SR3_11_8	FM(CANFD4_RX)	F_(0, 0)		F_(0, 0)	FM(FXR_CLKOUT2)		F_(0, 0)	F_(0, 0)	F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
436 #define IP1SR3_15_12	FM(CANFD5_TX)	F_(0, 0)		F_(0, 0)	FM(FXR_TXENA_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)
437 #define IP1SR3_19_16	FM(CANFD5_RX)	F_(0, 0)		F_(0, 0)	FM(FXR_TXENB_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)
438 #define IP1SR3_23_20	FM(CANFD6_TX)	F_(0, 0)		F_(0, 0)	FM(STPWT_EXTFXR)	F_(0, 0)	F_(0, 0)	F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
439 #define IP1SR3_27_24	F_(0, 0)	F_(0, 0)		F_(0, 0)	F_(0, 0)		F_(0, 0)	F_(0, 0)	F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
440 #define IP1SR3_31_28	F_(0, 0)	F_(0, 0)		F_(0, 0)	F_(0, 0)		F_(0, 0)	F_(0, 0)	F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
441 
442 /* IP0SR4 */		/* 0 */		/* 1 */			/* 2 */		/* 3 */		/* 4 */		/* 5 */		/* 6 - F */
443 #define IP0SR4_3_0	FM(AVB0_RX_CTL)	FM(AVB0_MII_RX_DV)	F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
444 #define IP0SR4_7_4	FM(AVB0_RXC)	FM(AVB0_MII_RXC)	F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
445 #define IP0SR4_11_8	FM(AVB0_RD0)	FM(AVB0_MII_RD0)	F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
446 #define IP0SR4_15_12	FM(AVB0_RD1)	FM(AVB0_MII_RD1)	F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
447 #define IP0SR4_19_16	FM(AVB0_RD2)	FM(AVB0_MII_RD2)	F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
448 #define IP0SR4_23_20	FM(AVB0_RD3)	FM(AVB0_MII_RD3)	F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
449 #define IP0SR4_27_24	FM(AVB0_TX_CTL)	FM(AVB0_MII_TX_EN)	F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
450 #define IP0SR4_31_28	FM(AVB0_TXC)	FM(AVB0_MII_TXC)	F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
451 /* IP1SR4 */		/* 0 */			/* 1 */			/* 2 */		/* 3 */		/* 4 */		/* 5 */		/* 6 - F */
452 #define IP1SR4_3_0	FM(AVB0_TD0)		FM(AVB0_MII_TD0)	F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
453 #define IP1SR4_7_4	FM(AVB0_TD1)		FM(AVB0_MII_TD1)	F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
454 #define IP1SR4_11_8	FM(AVB0_TD2)		FM(AVB0_MII_TD2)	F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
455 #define IP1SR4_15_12	FM(AVB0_TD3)		FM(AVB0_MII_TD3)	F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
456 #define IP1SR4_19_16	FM(AVB0_TXCREFCLK)	F_(0, 0)		F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
457 #define IP1SR4_23_20	FM(AVB0_MDIO)		F_(0, 0)		F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
458 #define IP1SR4_27_24	FM(AVB0_MDC)		F_(0, 0)		F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
459 #define IP1SR4_31_28	FM(AVB0_MAGIC)		F_(0, 0)		F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
460 /* IP2SR4 */		/* 0 */			/* 1 */			/* 2 */		/* 3 */		/* 4 */		/* 5 */		/* 6 - F */
461 #define IP2SR4_3_0	F_(0, 0)		F_(0, 0)		F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
462 #define IP2SR4_7_4	FM(AVB0_LINK)		FM(AVB0_MII_TX_ER)	F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
463 #define IP2SR4_11_8	FM(AVB0_AVTP_MATCH)	FM(AVB0_MII_RX_ER)	FM(CC5_OSCOUT)	F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
464 #define IP2SR4_15_12	FM(AVB0_AVTP_CAPTURE)	FM(AVB0_MII_CRS)	F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
465 #define IP2SR4_19_16	FM(AVB0_AVTP_PPS)	FM(AVB0_MII_COL)	F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
466 #define IP2SR4_23_20	F_(0, 0)		F_(0, 0)		F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
467 #define IP2SR4_27_24	F_(0, 0)		F_(0, 0)		F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
468 #define IP2SR4_31_28	F_(0, 0)		F_(0, 0)		F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
469 
470 /* IP0SR5 */		/* 0 */			/* 1 */			/* 2 */		/* 3 */		/* 4 */		/* 5 */		/* 6 - F */
471 #define IP0SR5_3_0	FM(AVB1_RX_CTL)		FM(AVB1_MII_RX_DV)	F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
472 #define IP0SR5_7_4	FM(AVB1_RXC)		FM(AVB1_MII_RXC)	F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
473 #define IP0SR5_11_8	FM(AVB1_RD0)		FM(AVB1_MII_RD0)	F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
474 #define IP0SR5_15_12	FM(AVB1_RD1)		FM(AVB1_MII_RD1)	F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
475 #define IP0SR5_19_16	FM(AVB1_RD2)		FM(AVB1_MII_RD2)	F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
476 #define IP0SR5_23_20	FM(AVB1_RD3)		FM(AVB1_MII_RD3)	F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
477 #define IP0SR5_27_24	FM(AVB1_TX_CTL)		FM(AVB1_MII_TX_EN)	F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
478 #define IP0SR5_31_28	FM(AVB1_TXC)		FM(AVB1_MII_TXC)	F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
479 /* IP1SR5 */		/* 0 */			/* 1 */			/* 2 */		/* 3 */		/* 4 */		/* 5 */		/* 6 - F */
480 #define IP1SR5_3_0	FM(AVB1_TD0)		FM(AVB1_MII_TD0)	F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
481 #define IP1SR5_7_4	FM(AVB1_TD1)		FM(AVB1_MII_TD1)	F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
482 #define IP1SR5_11_8	FM(AVB1_TD2)		FM(AVB1_MII_TD2)	F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
483 #define IP1SR5_15_12	FM(AVB1_TD3)		FM(AVB1_MII_TD3)	F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
484 #define IP1SR5_19_16	FM(AVB1_TXCREFCLK)	F_(0, 0)		F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
485 #define IP1SR5_23_20	FM(AVB1_MDIO)		F_(0, 0)		F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
486 #define IP1SR5_27_24	FM(AVB1_MDC)		F_(0, 0)		F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
487 #define IP1SR5_31_28	FM(AVB1_MAGIC)		F_(0, 0)		F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
488 /* IP2SR5 */		/* 0 */			/* 1 */			/* 2 */		/* 3 */		/* 4 */		/* 5 */		/* 6 - F */
489 #define IP2SR5_3_0	F_(0, 0)		F_(0, 0)		F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
490 #define IP2SR5_7_4	FM(AVB1_LINK)		FM(AVB1_MII_TX_ER)	F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
491 #define IP2SR5_11_8	FM(AVB1_AVTP_MATCH)	FM(AVB1_MII_RX_ER)	F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
492 #define IP2SR5_15_12	FM(AVB1_AVTP_CAPTURE)	FM(AVB1_MII_CRS)	F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
493 #define IP2SR5_19_16	FM(AVB1_AVTP_PPS)	FM(AVB1_MII_COL)	F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
494 #define IP2SR5_23_20	F_(0, 0)		F_(0, 0)		F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
495 #define IP2SR5_27_24	F_(0, 0)		F_(0, 0)		F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
496 #define IP2SR5_31_28	F_(0, 0)		F_(0, 0)		F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0)	F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
497 
498 #define PINMUX_GPSR		\
499 				\
500 		GPSR1_30	\
501 		GPSR1_29	\
502 		GPSR1_28	\
503 GPSR0_27	GPSR1_27	\
504 GPSR0_26	GPSR1_26					GPSR4_26 \
505 GPSR0_25	GPSR1_25					GPSR4_25 \
506 GPSR0_24	GPSR1_24	GPSR2_24			GPSR4_24 \
507 GPSR0_23	GPSR1_23	GPSR2_23			GPSR4_23 \
508 GPSR0_22	GPSR1_22	GPSR2_22			GPSR4_22 \
509 GPSR0_21	GPSR1_21	GPSR2_21			GPSR4_21 \
510 GPSR0_20	GPSR1_20	GPSR2_20			GPSR4_20	GPSR5_20	GPSR6_20	GPSR7_20	GPSR8_20	GPSR9_20 \
511 GPSR0_19	GPSR1_19	GPSR2_19			GPSR4_19	GPSR5_19	GPSR6_19	GPSR7_19	GPSR8_19	GPSR9_19 \
512 GPSR0_18	GPSR1_18	GPSR2_18			GPSR4_18	GPSR5_18	GPSR6_18	GPSR7_18	GPSR8_18	GPSR9_18 \
513 GPSR0_17	GPSR1_17	GPSR2_17			GPSR4_17	GPSR5_17	GPSR6_17	GPSR7_17	GPSR8_17	GPSR9_17 \
514 GPSR0_16	GPSR1_16	GPSR2_16	GPSR3_16	GPSR4_16	GPSR5_16	GPSR6_16	GPSR7_16	GPSR8_16	GPSR9_16 \
515 GPSR0_15	GPSR1_15	GPSR2_15	GPSR3_15	GPSR4_15	GPSR5_15	GPSR6_15	GPSR7_15	GPSR8_15	GPSR9_15 \
516 GPSR0_14	GPSR1_14	GPSR2_14	GPSR3_14	GPSR4_14	GPSR5_14	GPSR6_14	GPSR7_14	GPSR8_14	GPSR9_14 \
517 GPSR0_13	GPSR1_13	GPSR2_13	GPSR3_13	GPSR4_13	GPSR5_13	GPSR6_13	GPSR7_13	GPSR8_13	GPSR9_13 \
518 GPSR0_12	GPSR1_12	GPSR2_12	GPSR3_12	GPSR4_12	GPSR5_12	GPSR6_12	GPSR7_12	GPSR8_12	GPSR9_12 \
519 GPSR0_11	GPSR1_11	GPSR2_11	GPSR3_11	GPSR4_11	GPSR5_11	GPSR6_11	GPSR7_11	GPSR8_11	GPSR9_11 \
520 GPSR0_10	GPSR1_10	GPSR2_10	GPSR3_10	GPSR4_10	GPSR5_10	GPSR6_10	GPSR7_10	GPSR8_10	GPSR9_10 \
521 GPSR0_9		GPSR1_9		GPSR2_9		GPSR3_9		GPSR4_9		GPSR5_9		GPSR6_9		GPSR7_9		GPSR8_9		GPSR9_9 \
522 GPSR0_8		GPSR1_8		GPSR2_8		GPSR3_8		GPSR4_8		GPSR5_8		GPSR6_8		GPSR7_8		GPSR8_8		GPSR9_8 \
523 GPSR0_7		GPSR1_7		GPSR2_7		GPSR3_7		GPSR4_7		GPSR5_7		GPSR6_7		GPSR7_7		GPSR8_7		GPSR9_7 \
524 GPSR0_6		GPSR1_6		GPSR2_6		GPSR3_6		GPSR4_6		GPSR5_6		GPSR6_6		GPSR7_6		GPSR8_6		GPSR9_6 \
525 GPSR0_5		GPSR1_5		GPSR2_5		GPSR3_5		GPSR4_5		GPSR5_5		GPSR6_5		GPSR7_5		GPSR8_5		GPSR9_5 \
526 GPSR0_4		GPSR1_4		GPSR2_4		GPSR3_4		GPSR4_4		GPSR5_4		GPSR6_4		GPSR7_4		GPSR8_4		GPSR9_4 \
527 GPSR0_3		GPSR1_3		GPSR2_3		GPSR3_3		GPSR4_3		GPSR5_3		GPSR6_3		GPSR7_3		GPSR8_3		GPSR9_3 \
528 GPSR0_2		GPSR1_2		GPSR2_2		GPSR3_2		GPSR4_2		GPSR5_2		GPSR6_2		GPSR7_2		GPSR8_2		GPSR9_2 \
529 GPSR0_1		GPSR1_1		GPSR2_1		GPSR3_1		GPSR4_1		GPSR5_1		GPSR6_1		GPSR7_1		GPSR8_1		GPSR9_1 \
530 GPSR0_0		GPSR1_0		GPSR2_0		GPSR3_0		GPSR4_0		GPSR5_0		GPSR6_0		GPSR7_0		GPSR8_0		GPSR9_0
531 
532 #define PINMUX_IPSR	\
533 \
534 FM(IP0SR1_3_0)		IP0SR1_3_0	FM(IP1SR1_3_0)		IP1SR1_3_0	FM(IP2SR1_3_0)		IP2SR1_3_0	FM(IP3SR1_3_0)		IP3SR1_3_0 \
535 FM(IP0SR1_7_4)		IP0SR1_7_4	FM(IP1SR1_7_4)		IP1SR1_7_4	FM(IP2SR1_7_4)		IP2SR1_7_4	FM(IP3SR1_7_4)		IP3SR1_7_4 \
536 FM(IP0SR1_11_8)		IP0SR1_11_8	FM(IP1SR1_11_8)		IP1SR1_11_8	FM(IP2SR1_11_8)		IP2SR1_11_8	FM(IP3SR1_11_8)		IP3SR1_11_8 \
537 FM(IP0SR1_15_12)	IP0SR1_15_12	FM(IP1SR1_15_12)	IP1SR1_15_12	FM(IP2SR1_15_12)	IP2SR1_15_12	FM(IP3SR1_15_12)	IP3SR1_15_12 \
538 FM(IP0SR1_19_16)	IP0SR1_19_16	FM(IP1SR1_19_16)	IP1SR1_19_16	FM(IP2SR1_19_16)	IP2SR1_19_16	FM(IP3SR1_19_16)	IP3SR1_19_16 \
539 FM(IP0SR1_23_20)	IP0SR1_23_20	FM(IP1SR1_23_20)	IP1SR1_23_20	FM(IP2SR1_23_20)	IP2SR1_23_20	FM(IP3SR1_23_20)	IP3SR1_23_20 \
540 FM(IP0SR1_27_24)	IP0SR1_27_24	FM(IP1SR1_27_24)	IP1SR1_27_24	FM(IP2SR1_27_24)	IP2SR1_27_24	FM(IP3SR1_27_24)	IP3SR1_27_24 \
541 FM(IP0SR1_31_28)	IP0SR1_31_28	FM(IP1SR1_31_28)	IP1SR1_31_28	FM(IP2SR1_31_28)	IP2SR1_31_28	FM(IP3SR1_31_28)	IP3SR1_31_28 \
542 \
543 FM(IP0SR2_3_0)		IP0SR2_3_0	FM(IP1SR2_3_0)		IP1SR2_3_0	FM(IP2SR2_3_0)		IP2SR2_3_0 \
544 FM(IP0SR2_7_4)		IP0SR2_7_4	FM(IP1SR2_7_4)		IP1SR2_7_4	FM(IP2SR2_7_4)		IP2SR2_7_4 \
545 FM(IP0SR2_11_8)		IP0SR2_11_8	FM(IP1SR2_11_8)		IP1SR2_11_8	FM(IP2SR2_11_8)		IP2SR2_11_8 \
546 FM(IP0SR2_15_12)	IP0SR2_15_12	FM(IP1SR2_15_12)	IP1SR2_15_12	FM(IP2SR2_15_12)	IP2SR2_15_12 \
547 FM(IP0SR2_19_16)	IP0SR2_19_16	FM(IP1SR2_19_16)	IP1SR2_19_16	FM(IP2SR2_19_16)	IP2SR2_19_16 \
548 FM(IP0SR2_23_20)	IP0SR2_23_20	FM(IP1SR2_23_20)	IP1SR2_23_20	FM(IP2SR2_23_20)	IP2SR2_23_20 \
549 FM(IP0SR2_27_24)	IP0SR2_27_24	FM(IP1SR2_27_24)	IP1SR2_27_24	FM(IP2SR2_27_24)	IP2SR2_27_24 \
550 FM(IP0SR2_31_28)	IP0SR2_31_28	FM(IP1SR2_31_28)	IP1SR2_31_28	FM(IP2SR2_31_28)	IP2SR2_31_28 \
551 \
552 FM(IP0SR3_3_0)		IP0SR3_3_0	FM(IP1SR3_3_0)		IP1SR3_3_0	\
553 FM(IP0SR3_7_4)		IP0SR3_7_4	FM(IP1SR3_7_4)		IP1SR3_7_4	\
554 FM(IP0SR3_11_8)		IP0SR3_11_8	FM(IP1SR3_11_8)		IP1SR3_11_8	\
555 FM(IP0SR3_15_12)	IP0SR3_15_12	FM(IP1SR3_15_12)	IP1SR3_15_12	\
556 FM(IP0SR3_19_16)	IP0SR3_19_16	FM(IP1SR3_19_16)	IP1SR3_19_16	\
557 FM(IP0SR3_23_20)	IP0SR3_23_20	FM(IP1SR3_23_20)	IP1SR3_23_20	\
558 FM(IP0SR3_27_24)	IP0SR3_27_24	FM(IP1SR3_27_24)	IP1SR3_27_24	\
559 FM(IP0SR3_31_28)	IP0SR3_31_28	FM(IP1SR3_31_28)	IP1SR3_31_28	\
560 \
561 FM(IP0SR4_3_0)		IP0SR4_3_0	FM(IP1SR4_3_0)		IP1SR4_3_0	FM(IP2SR4_3_0)		IP2SR4_3_0 \
562 FM(IP0SR4_7_4)		IP0SR4_7_4	FM(IP1SR4_7_4)		IP1SR4_7_4	FM(IP2SR4_7_4)		IP2SR4_7_4 \
563 FM(IP0SR4_11_8)		IP0SR4_11_8	FM(IP1SR4_11_8)		IP1SR4_11_8	FM(IP2SR4_11_8)		IP2SR4_11_8 \
564 FM(IP0SR4_15_12)	IP0SR4_15_12	FM(IP1SR4_15_12)	IP1SR4_15_12	FM(IP2SR4_15_12)	IP2SR4_15_12 \
565 FM(IP0SR4_19_16)	IP0SR4_19_16	FM(IP1SR4_19_16)	IP1SR4_19_16	FM(IP2SR4_19_16)	IP2SR4_19_16 \
566 FM(IP0SR4_23_20)	IP0SR4_23_20	FM(IP1SR4_23_20)	IP1SR4_23_20	FM(IP2SR4_23_20)	IP2SR4_23_20 \
567 FM(IP0SR4_27_24)	IP0SR4_27_24	FM(IP1SR4_27_24)	IP1SR4_27_24	FM(IP2SR4_27_24)	IP2SR4_27_24 \
568 FM(IP0SR4_31_28)	IP0SR4_31_28	FM(IP1SR4_31_28)	IP1SR4_31_28	FM(IP2SR4_31_28)	IP2SR4_31_28 \
569 \
570 FM(IP0SR5_3_0)		IP0SR5_3_0	FM(IP1SR5_3_0)		IP1SR5_3_0	FM(IP2SR5_3_0)		IP2SR5_3_0 \
571 FM(IP0SR5_7_4)		IP0SR5_7_4	FM(IP1SR5_7_4)		IP1SR5_7_4	FM(IP2SR5_7_4)		IP2SR5_7_4 \
572 FM(IP0SR5_11_8)		IP0SR5_11_8	FM(IP1SR5_11_8)		IP1SR5_11_8	FM(IP2SR5_11_8)		IP2SR5_11_8 \
573 FM(IP0SR5_15_12)	IP0SR5_15_12	FM(IP1SR5_15_12)	IP1SR5_15_12	FM(IP2SR5_15_12)	IP2SR5_15_12 \
574 FM(IP0SR5_19_16)	IP0SR5_19_16	FM(IP1SR5_19_16)	IP1SR5_19_16	FM(IP2SR5_19_16)	IP2SR5_19_16 \
575 FM(IP0SR5_23_20)	IP0SR5_23_20	FM(IP1SR5_23_20)	IP1SR5_23_20	FM(IP2SR5_23_20)	IP2SR5_23_20 \
576 FM(IP0SR5_27_24)	IP0SR5_27_24	FM(IP1SR5_27_24)	IP1SR5_27_24	FM(IP2SR5_27_24)	IP2SR5_27_24 \
577 FM(IP0SR5_31_28)	IP0SR5_31_28	FM(IP1SR5_31_28)	IP1SR5_31_28	FM(IP2SR5_31_28)	IP2SR5_31_28
578 
579 /* MOD_SEL2 */			/* 0 */		/* 1 */		/* 2 */		/* 3 */
580 #define MOD_SEL2_14_15		FM(SEL_I2C6_0)	F_(0, 0)	F_(0, 0)	FM(SEL_I2C6_3)
581 #define MOD_SEL2_12_13		FM(SEL_I2C5_0)	F_(0, 0)	F_(0, 0)	FM(SEL_I2C5_3)
582 #define MOD_SEL2_10_11		FM(SEL_I2C4_0)	F_(0, 0)	F_(0, 0)	FM(SEL_I2C4_3)
583 #define MOD_SEL2_8_9		FM(SEL_I2C3_0)	F_(0, 0)	F_(0, 0)	FM(SEL_I2C3_3)
584 #define MOD_SEL2_6_7		FM(SEL_I2C2_0)	F_(0, 0)	F_(0, 0)	FM(SEL_I2C2_3)
585 #define MOD_SEL2_4_5		FM(SEL_I2C1_0)	F_(0, 0)	F_(0, 0)	FM(SEL_I2C1_3)
586 #define MOD_SEL2_2_3		FM(SEL_I2C0_0)	F_(0, 0)	F_(0, 0)	FM(SEL_I2C0_3)
587 
588 #define PINMUX_MOD_SELS \
589 \
590 MOD_SEL2_14_15 \
591 MOD_SEL2_12_13 \
592 MOD_SEL2_10_11 \
593 MOD_SEL2_8_9 \
594 MOD_SEL2_6_7 \
595 MOD_SEL2_4_5 \
596 MOD_SEL2_2_3
597 
598 #define PINMUX_PHYS \
599 	FM(SCL0) FM(SDA0) FM(SCL1) FM(SDA1) FM(SCL2) FM(SDA2) FM(SCL3) FM(SDA3) \
600 	FM(SCL4) FM(SDA4) FM(SCL5) FM(SDA5) FM(SCL6) FM(SDA6)
601 
602 enum {
603 	PINMUX_RESERVED = 0,
604 
605 	PINMUX_DATA_BEGIN,
606 	GP_ALL(DATA),
607 	PINMUX_DATA_END,
608 
609 #define F_(x, y)
610 #define FM(x)   FN_##x,
611 	PINMUX_FUNCTION_BEGIN,
612 	GP_ALL(FN),
613 	PINMUX_GPSR
614 	PINMUX_IPSR
615 	PINMUX_MOD_SELS
616 	PINMUX_FUNCTION_END,
617 #undef F_
618 #undef FM
619 
620 #define F_(x, y)
621 #define FM(x)	x##_MARK,
622 	PINMUX_MARK_BEGIN,
623 	PINMUX_GPSR
624 	PINMUX_IPSR
625 	PINMUX_MOD_SELS
626 	PINMUX_PHYS
627 	PINMUX_MARK_END,
628 #undef F_
629 #undef FM
630 };
631 
632 static const u16 pinmux_data[] = {
633 	PINMUX_DATA_GP_ALL(),
634 
635 	PINMUX_SINGLE(MMC_D7),
636 	PINMUX_SINGLE(MMC_D6),
637 	PINMUX_SINGLE(MMC_D5),
638 	PINMUX_SINGLE(MMC_D4),
639 	PINMUX_SINGLE(MMC_SD_CLK),
640 	PINMUX_SINGLE(MMC_SD_D3),
641 	PINMUX_SINGLE(MMC_SD_D2),
642 	PINMUX_SINGLE(MMC_SD_D1),
643 	PINMUX_SINGLE(MMC_SD_D0),
644 	PINMUX_SINGLE(MMC_SD_CMD),
645 	PINMUX_SINGLE(MMC_DS),
646 
647 	PINMUX_SINGLE(SD_CD),
648 	PINMUX_SINGLE(SD_WP),
649 
650 	PINMUX_SINGLE(RPC_INT_N),
651 	PINMUX_SINGLE(RPC_WP_N),
652 	PINMUX_SINGLE(RPC_RESET_N),
653 
654 	PINMUX_SINGLE(QSPI1_SSL),
655 	PINMUX_SINGLE(QSPI1_IO3),
656 	PINMUX_SINGLE(QSPI1_IO2),
657 	PINMUX_SINGLE(QSPI1_MISO_IO1),
658 	PINMUX_SINGLE(QSPI1_MOSI_IO0),
659 	PINMUX_SINGLE(QSPI1_SPCLK),
660 	PINMUX_SINGLE(QSPI0_SSL),
661 	PINMUX_SINGLE(QSPI0_IO3),
662 	PINMUX_SINGLE(QSPI0_IO2),
663 	PINMUX_SINGLE(QSPI0_MISO_IO1),
664 	PINMUX_SINGLE(QSPI0_MOSI_IO0),
665 	PINMUX_SINGLE(QSPI0_SPCLK),
666 
667 	PINMUX_SINGLE(TCLK2_A),
668 
669 	PINMUX_SINGLE(CANFD7_RX),
670 	PINMUX_SINGLE(CANFD7_TX),
671 	PINMUX_SINGLE(CANFD6_RX),
672 	PINMUX_SINGLE(CANFD1_RX),
673 	PINMUX_SINGLE(CANFD1_TX),
674 	PINMUX_SINGLE(CAN_CLK),
675 
676 	PINMUX_SINGLE(AVS1),
677 	PINMUX_SINGLE(AVS0),
678 
679 	PINMUX_SINGLE(PCIE3_CLKREQ_N),
680 	PINMUX_SINGLE(PCIE2_CLKREQ_N),
681 	PINMUX_SINGLE(PCIE1_CLKREQ_N),
682 	PINMUX_SINGLE(PCIE0_CLKREQ_N),
683 
684 	PINMUX_SINGLE(AVB0_PHY_INT),
685 	PINMUX_SINGLE(AVB0_MAGIC),
686 	PINMUX_SINGLE(AVB0_MDC),
687 	PINMUX_SINGLE(AVB0_MDIO),
688 	PINMUX_SINGLE(AVB0_TXCREFCLK),
689 
690 	PINMUX_SINGLE(AVB1_PHY_INT),
691 	PINMUX_SINGLE(AVB1_MAGIC),
692 	PINMUX_SINGLE(AVB1_MDC),
693 	PINMUX_SINGLE(AVB1_MDIO),
694 	PINMUX_SINGLE(AVB1_TXCREFCLK),
695 
696 	PINMUX_SINGLE(AVB2_AVTP_PPS),
697 	PINMUX_SINGLE(AVB2_AVTP_CAPTURE),
698 	PINMUX_SINGLE(AVB2_AVTP_MATCH),
699 	PINMUX_SINGLE(AVB2_LINK),
700 	PINMUX_SINGLE(AVB2_PHY_INT),
701 	PINMUX_SINGLE(AVB2_MAGIC),
702 	PINMUX_SINGLE(AVB2_MDC),
703 	PINMUX_SINGLE(AVB2_MDIO),
704 	PINMUX_SINGLE(AVB2_TXCREFCLK),
705 	PINMUX_SINGLE(AVB2_TD3),
706 	PINMUX_SINGLE(AVB2_TD2),
707 	PINMUX_SINGLE(AVB2_TD1),
708 	PINMUX_SINGLE(AVB2_TD0),
709 	PINMUX_SINGLE(AVB2_TXC),
710 	PINMUX_SINGLE(AVB2_TX_CTL),
711 	PINMUX_SINGLE(AVB2_RD3),
712 	PINMUX_SINGLE(AVB2_RD2),
713 	PINMUX_SINGLE(AVB2_RD1),
714 	PINMUX_SINGLE(AVB2_RD0),
715 	PINMUX_SINGLE(AVB2_RXC),
716 	PINMUX_SINGLE(AVB2_RX_CTL),
717 
718 	PINMUX_SINGLE(AVB3_AVTP_PPS),
719 	PINMUX_SINGLE(AVB3_AVTP_CAPTURE),
720 	PINMUX_SINGLE(AVB3_AVTP_MATCH),
721 	PINMUX_SINGLE(AVB3_LINK),
722 	PINMUX_SINGLE(AVB3_PHY_INT),
723 	PINMUX_SINGLE(AVB3_MAGIC),
724 	PINMUX_SINGLE(AVB3_MDC),
725 	PINMUX_SINGLE(AVB3_MDIO),
726 	PINMUX_SINGLE(AVB3_TXCREFCLK),
727 	PINMUX_SINGLE(AVB3_TD3),
728 	PINMUX_SINGLE(AVB3_TD2),
729 	PINMUX_SINGLE(AVB3_TD1),
730 	PINMUX_SINGLE(AVB3_TD0),
731 	PINMUX_SINGLE(AVB3_TXC),
732 	PINMUX_SINGLE(AVB3_TX_CTL),
733 	PINMUX_SINGLE(AVB3_RD3),
734 	PINMUX_SINGLE(AVB3_RD2),
735 	PINMUX_SINGLE(AVB3_RD1),
736 	PINMUX_SINGLE(AVB3_RD0),
737 	PINMUX_SINGLE(AVB3_RXC),
738 	PINMUX_SINGLE(AVB3_RX_CTL),
739 
740 	PINMUX_SINGLE(AVB4_AVTP_PPS),
741 	PINMUX_SINGLE(AVB4_AVTP_CAPTURE),
742 	PINMUX_SINGLE(AVB4_AVTP_MATCH),
743 	PINMUX_SINGLE(AVB4_LINK),
744 	PINMUX_SINGLE(AVB4_PHY_INT),
745 	PINMUX_SINGLE(AVB4_MAGIC),
746 	PINMUX_SINGLE(AVB4_MDC),
747 	PINMUX_SINGLE(AVB4_MDIO),
748 	PINMUX_SINGLE(AVB4_TXCREFCLK),
749 	PINMUX_SINGLE(AVB4_TD3),
750 	PINMUX_SINGLE(AVB4_TD2),
751 	PINMUX_SINGLE(AVB4_TD1),
752 	PINMUX_SINGLE(AVB4_TD0),
753 	PINMUX_SINGLE(AVB4_TXC),
754 	PINMUX_SINGLE(AVB4_TX_CTL),
755 	PINMUX_SINGLE(AVB4_RD3),
756 	PINMUX_SINGLE(AVB4_RD2),
757 	PINMUX_SINGLE(AVB4_RD1),
758 	PINMUX_SINGLE(AVB4_RD0),
759 	PINMUX_SINGLE(AVB4_RXC),
760 	PINMUX_SINGLE(AVB4_RX_CTL),
761 
762 	PINMUX_SINGLE(AVB5_AVTP_PPS),
763 	PINMUX_SINGLE(AVB5_AVTP_CAPTURE),
764 	PINMUX_SINGLE(AVB5_AVTP_MATCH),
765 	PINMUX_SINGLE(AVB5_LINK),
766 	PINMUX_SINGLE(AVB5_PHY_INT),
767 	PINMUX_SINGLE(AVB5_MAGIC),
768 	PINMUX_SINGLE(AVB5_MDC),
769 	PINMUX_SINGLE(AVB5_MDIO),
770 	PINMUX_SINGLE(AVB5_TXCREFCLK),
771 	PINMUX_SINGLE(AVB5_TD3),
772 	PINMUX_SINGLE(AVB5_TD2),
773 	PINMUX_SINGLE(AVB5_TD1),
774 	PINMUX_SINGLE(AVB5_TD0),
775 	PINMUX_SINGLE(AVB5_TXC),
776 	PINMUX_SINGLE(AVB5_TX_CTL),
777 	PINMUX_SINGLE(AVB5_RD3),
778 	PINMUX_SINGLE(AVB5_RD2),
779 	PINMUX_SINGLE(AVB5_RD1),
780 	PINMUX_SINGLE(AVB5_RD0),
781 	PINMUX_SINGLE(AVB5_RXC),
782 	PINMUX_SINGLE(AVB5_RX_CTL),
783 
784 	/* IP0SR1 */
785 	PINMUX_IPSR_GPSR(IP0SR1_3_0,	SCIF_CLK),
786 	PINMUX_IPSR_GPSR(IP0SR1_3_0,	A0),
787 
788 	PINMUX_IPSR_GPSR(IP0SR1_7_4,	HRX0),
789 	PINMUX_IPSR_GPSR(IP0SR1_7_4,	RX0),
790 	PINMUX_IPSR_GPSR(IP0SR1_7_4,	A1),
791 
792 	PINMUX_IPSR_GPSR(IP0SR1_11_8,	HSCK0),
793 	PINMUX_IPSR_GPSR(IP0SR1_11_8,	SCK0),
794 	PINMUX_IPSR_GPSR(IP0SR1_11_8,	A2),
795 
796 	PINMUX_IPSR_GPSR(IP0SR1_15_12,	HRTS0_N),
797 	PINMUX_IPSR_GPSR(IP0SR1_15_12,	RTS0_N),
798 	PINMUX_IPSR_GPSR(IP0SR1_15_12,	A3),
799 
800 	PINMUX_IPSR_GPSR(IP0SR1_19_16,	HCTS0_N),
801 	PINMUX_IPSR_GPSR(IP0SR1_19_16,	CTS0_N),
802 	PINMUX_IPSR_GPSR(IP0SR1_19_16,	A4),
803 
804 	PINMUX_IPSR_GPSR(IP0SR1_23_20,	HTX0),
805 	PINMUX_IPSR_GPSR(IP0SR1_23_20,	TX0),
806 	PINMUX_IPSR_GPSR(IP0SR1_23_20,	A5),
807 
808 	PINMUX_IPSR_GPSR(IP0SR1_27_24,	MSIOF0_RXD),
809 	PINMUX_IPSR_GPSR(IP0SR1_27_24,	DU_DR2),
810 	PINMUX_IPSR_GPSR(IP0SR1_27_24,	A6),
811 
812 	PINMUX_IPSR_GPSR(IP0SR1_31_28,	MSIOF0_TXD),
813 	PINMUX_IPSR_GPSR(IP0SR1_31_28,	DU_DR3),
814 	PINMUX_IPSR_GPSR(IP0SR1_31_28,	A7),
815 
816 	/* IP1SR1 */
817 	PINMUX_IPSR_GPSR(IP1SR1_3_0,	MSIOF0_SCK),
818 	PINMUX_IPSR_GPSR(IP1SR1_3_0,	DU_DR4),
819 	PINMUX_IPSR_GPSR(IP1SR1_3_0,	A8),
820 
821 	PINMUX_IPSR_GPSR(IP1SR1_7_4,	MSIOF0_SYNC),
822 	PINMUX_IPSR_GPSR(IP1SR1_7_4,	DU_DR5),
823 	PINMUX_IPSR_GPSR(IP1SR1_7_4,	A9),
824 
825 	PINMUX_IPSR_GPSR(IP1SR1_11_8,	MSIOF0_SS1),
826 	PINMUX_IPSR_GPSR(IP1SR1_11_8,	DU_DR6),
827 	PINMUX_IPSR_GPSR(IP1SR1_11_8,	A10),
828 
829 	PINMUX_IPSR_GPSR(IP1SR1_15_12,	MSIOF0_SS2),
830 	PINMUX_IPSR_GPSR(IP1SR1_15_12,	DU_DR7),
831 	PINMUX_IPSR_GPSR(IP1SR1_15_12,	A11),
832 
833 	PINMUX_IPSR_GPSR(IP1SR1_19_16,	MSIOF1_RXD),
834 	PINMUX_IPSR_GPSR(IP1SR1_19_16,	DU_DG2),
835 	PINMUX_IPSR_GPSR(IP1SR1_19_16,	A12),
836 
837 	PINMUX_IPSR_GPSR(IP1SR1_23_20,	MSIOF1_TXD),
838 	PINMUX_IPSR_GPSR(IP1SR1_23_20,	HRX3),
839 	PINMUX_IPSR_GPSR(IP1SR1_23_20,	SCK3),
840 	PINMUX_IPSR_GPSR(IP1SR1_23_20,	DU_DG3),
841 	PINMUX_IPSR_GPSR(IP1SR1_23_20,	A13),
842 
843 	PINMUX_IPSR_GPSR(IP1SR1_27_24,	MSIOF1_SCK),
844 	PINMUX_IPSR_GPSR(IP1SR1_27_24,	HSCK3),
845 	PINMUX_IPSR_GPSR(IP1SR1_27_24,	CTS3_N),
846 	PINMUX_IPSR_GPSR(IP1SR1_27_24,	DU_DG4),
847 	PINMUX_IPSR_GPSR(IP1SR1_27_24,	A14),
848 
849 	PINMUX_IPSR_GPSR(IP1SR1_31_28,	MSIOF1_SYNC),
850 	PINMUX_IPSR_GPSR(IP1SR1_31_28,	HRTS3_N),
851 	PINMUX_IPSR_GPSR(IP1SR1_31_28,	RTS3_N),
852 	PINMUX_IPSR_GPSR(IP1SR1_31_28,	DU_DG5),
853 	PINMUX_IPSR_GPSR(IP1SR1_31_28,	A15),
854 
855 	/* IP2SR1 */
856 	PINMUX_IPSR_GPSR(IP2SR1_3_0,	MSIOF1_SS1),
857 	PINMUX_IPSR_GPSR(IP2SR1_3_0,	HCTS3_N),
858 	PINMUX_IPSR_GPSR(IP2SR1_3_0,	RX3),
859 	PINMUX_IPSR_GPSR(IP2SR1_3_0,	DU_DG6),
860 	PINMUX_IPSR_GPSR(IP2SR1_3_0,	A16),
861 
862 	PINMUX_IPSR_GPSR(IP2SR1_7_4,	MSIOF1_SS2),
863 	PINMUX_IPSR_GPSR(IP2SR1_7_4,	HTX3),
864 	PINMUX_IPSR_GPSR(IP2SR1_7_4,	TX3),
865 	PINMUX_IPSR_GPSR(IP2SR1_7_4,	DU_DG7),
866 	PINMUX_IPSR_GPSR(IP2SR1_7_4,	A17),
867 
868 	PINMUX_IPSR_GPSR(IP2SR1_11_8,	MSIOF2_RXD),
869 	PINMUX_IPSR_GPSR(IP2SR1_11_8,	HSCK1),
870 	PINMUX_IPSR_GPSR(IP2SR1_11_8,	SCK1),
871 	PINMUX_IPSR_GPSR(IP2SR1_11_8,	DU_DB2),
872 	PINMUX_IPSR_GPSR(IP2SR1_11_8,	A18),
873 
874 	PINMUX_IPSR_GPSR(IP2SR1_15_12,	MSIOF2_TXD),
875 	PINMUX_IPSR_GPSR(IP2SR1_15_12,	HCTS1_N),
876 	PINMUX_IPSR_GPSR(IP2SR1_15_12,	CTS1_N),
877 	PINMUX_IPSR_GPSR(IP2SR1_15_12,	DU_DB3),
878 	PINMUX_IPSR_GPSR(IP2SR1_15_12,	A19),
879 
880 	PINMUX_IPSR_GPSR(IP2SR1_19_16,	MSIOF2_SCK),
881 	PINMUX_IPSR_GPSR(IP2SR1_19_16,	HRTS1_N),
882 	PINMUX_IPSR_GPSR(IP2SR1_19_16,	RTS1_N),
883 	PINMUX_IPSR_GPSR(IP2SR1_19_16,	DU_DB4),
884 	PINMUX_IPSR_GPSR(IP2SR1_19_16,	A20),
885 
886 	PINMUX_IPSR_GPSR(IP2SR1_23_20,	MSIOF2_SYNC),
887 	PINMUX_IPSR_GPSR(IP2SR1_23_20,	HRX1),
888 	PINMUX_IPSR_GPSR(IP2SR1_23_20,	RX1_A),
889 	PINMUX_IPSR_GPSR(IP2SR1_23_20,	DU_DB5),
890 	PINMUX_IPSR_GPSR(IP2SR1_23_20,	A21),
891 
892 	PINMUX_IPSR_GPSR(IP2SR1_27_24,	MSIOF2_SS1),
893 	PINMUX_IPSR_GPSR(IP2SR1_27_24,	HTX1),
894 	PINMUX_IPSR_GPSR(IP2SR1_27_24,	TX1_A),
895 	PINMUX_IPSR_GPSR(IP2SR1_27_24,	DU_DB6),
896 	PINMUX_IPSR_GPSR(IP2SR1_27_24,	A22),
897 
898 	PINMUX_IPSR_GPSR(IP2SR1_31_28,	MSIOF2_SS2),
899 	PINMUX_IPSR_GPSR(IP2SR1_31_28,	TCLK1_B),
900 	PINMUX_IPSR_GPSR(IP2SR1_31_28,	DU_DB7),
901 	PINMUX_IPSR_GPSR(IP2SR1_31_28,	A23),
902 
903 	/* IP3SR1 */
904 	PINMUX_IPSR_GPSR(IP3SR1_3_0,	IRQ0),
905 	PINMUX_IPSR_GPSR(IP3SR1_3_0,	DU_DOTCLKOUT),
906 	PINMUX_IPSR_GPSR(IP3SR1_3_0,	A24),
907 
908 	PINMUX_IPSR_GPSR(IP3SR1_7_4,	IRQ1),
909 	PINMUX_IPSR_GPSR(IP3SR1_7_4,	DU_HSYNC),
910 	PINMUX_IPSR_GPSR(IP3SR1_7_4,	A25),
911 
912 	PINMUX_IPSR_GPSR(IP3SR1_11_8,	IRQ2),
913 	PINMUX_IPSR_GPSR(IP3SR1_11_8,	DU_VSYNC),
914 	PINMUX_IPSR_GPSR(IP3SR1_11_8,	CS1_N_A26),
915 
916 	PINMUX_IPSR_GPSR(IP3SR1_15_12,	IRQ3),
917 	PINMUX_IPSR_GPSR(IP3SR1_15_12,	DU_ODDF_DISP_CDE),
918 	PINMUX_IPSR_GPSR(IP3SR1_15_12,	CS0_N),
919 
920 	PINMUX_IPSR_GPSR(IP3SR1_19_16,	GP1_28),
921 	PINMUX_IPSR_GPSR(IP3SR1_19_16,	D0),
922 
923 	PINMUX_IPSR_GPSR(IP3SR1_23_20,	GP1_29),
924 	PINMUX_IPSR_GPSR(IP3SR1_23_20,	D1),
925 
926 	PINMUX_IPSR_GPSR(IP3SR1_27_24,	GP1_30),
927 	PINMUX_IPSR_GPSR(IP3SR1_27_24,	D2),
928 
929 	/* IP0SR2 */
930 	PINMUX_IPSR_GPSR(IP0SR2_3_0,	IPC_CLKIN),
931 	PINMUX_IPSR_GPSR(IP0SR2_3_0,	IPC_CLKEN_IN),
932 	PINMUX_IPSR_GPSR(IP0SR2_3_0,	DU_DOTCLKIN),
933 
934 	PINMUX_IPSR_GPSR(IP0SR2_7_4,	IPC_CLKOUT),
935 	PINMUX_IPSR_GPSR(IP0SR2_7_4,	IPC_CLKEN_OUT),
936 
937 	/* GP2_02 = SCL0 */
938 	PINMUX_IPSR_MSEL(IP0SR2_11_8,	GP2_02,	SEL_I2C0_0),
939 	PINMUX_IPSR_MSEL(IP0SR2_11_8,	D3,	SEL_I2C0_0),
940 	PINMUX_IPSR_PHYS(IP0SR2_11_8,	SCL0,	SEL_I2C0_3),
941 
942 	/* GP2_03 = SDA0 */
943 	PINMUX_IPSR_MSEL(IP0SR2_15_12,	GP2_03,	SEL_I2C0_0),
944 	PINMUX_IPSR_MSEL(IP0SR2_15_12,	D4,	SEL_I2C0_0),
945 	PINMUX_IPSR_PHYS(IP0SR2_15_12,	SDA0,	SEL_I2C0_3),
946 
947 	/* GP2_04 = SCL1 */
948 	PINMUX_IPSR_MSEL(IP0SR2_19_16,	GP2_04,		SEL_I2C1_0),
949 	PINMUX_IPSR_MSEL(IP0SR2_19_16,	MSIOF4_RXD,	SEL_I2C1_0),
950 	PINMUX_IPSR_MSEL(IP0SR2_19_16,	D5,		SEL_I2C1_0),
951 	PINMUX_IPSR_PHYS(IP0SR2_19_16,	SCL1,		SEL_I2C1_3),
952 
953 	/* GP2_05 = SDA1 */
954 	PINMUX_IPSR_MSEL(IP0SR2_23_20,	GP2_05,		SEL_I2C1_0),
955 	PINMUX_IPSR_MSEL(IP0SR2_23_20,	HSCK2,		SEL_I2C1_0),
956 	PINMUX_IPSR_MSEL(IP0SR2_23_20,	MSIOF4_TXD,	SEL_I2C1_0),
957 	PINMUX_IPSR_MSEL(IP0SR2_23_20,	SCK4,		SEL_I2C1_0),
958 	PINMUX_IPSR_MSEL(IP0SR2_23_20,	D6,		SEL_I2C1_0),
959 	PINMUX_IPSR_PHYS(IP0SR2_23_20,	SDA1,		SEL_I2C1_3),
960 
961 	/* GP2_06 = SCL2 */
962 	PINMUX_IPSR_MSEL(IP0SR2_27_24,	GP2_06,		SEL_I2C2_0),
963 	PINMUX_IPSR_MSEL(IP0SR2_27_24,	HCTS2_N,	SEL_I2C2_0),
964 	PINMUX_IPSR_MSEL(IP0SR2_27_24,	MSIOF4_SCK,	SEL_I2C2_0),
965 	PINMUX_IPSR_MSEL(IP0SR2_27_24,	CTS4_N,		SEL_I2C2_0),
966 	PINMUX_IPSR_MSEL(IP0SR2_27_24,	D7,		SEL_I2C2_0),
967 	PINMUX_IPSR_PHYS(IP0SR2_27_24,	SCL2,		SEL_I2C2_3),
968 
969 	/* GP2_07 = SDA2 */
970 	PINMUX_IPSR_MSEL(IP0SR2_31_28,	GP2_07,		SEL_I2C2_0),
971 	PINMUX_IPSR_MSEL(IP0SR2_31_28,	HRTS2_N,	SEL_I2C2_0),
972 	PINMUX_IPSR_MSEL(IP0SR2_31_28,	MSIOF4_SYNC,	SEL_I2C2_0),
973 	PINMUX_IPSR_MSEL(IP0SR2_31_28,	RTS4_N,		SEL_I2C2_0),
974 	PINMUX_IPSR_MSEL(IP0SR2_31_28,	D8,		SEL_I2C2_0),
975 	PINMUX_IPSR_PHYS(IP0SR2_31_28,	SDA2,		SEL_I2C2_3),
976 
977 	/* GP2_08 = SCL3 */
978 	PINMUX_IPSR_MSEL(IP1SR2_3_0,	GP2_08,		SEL_I2C3_0),
979 	PINMUX_IPSR_MSEL(IP1SR2_3_0,	HRX2,		SEL_I2C3_0),
980 	PINMUX_IPSR_MSEL(IP1SR2_3_0,	MSIOF4_SS1,	SEL_I2C3_0),
981 	PINMUX_IPSR_MSEL(IP1SR2_3_0,	RX4,		SEL_I2C3_0),
982 	PINMUX_IPSR_MSEL(IP1SR2_3_0,	D9,		SEL_I2C3_0),
983 	PINMUX_IPSR_PHYS(IP1SR2_3_0,	SCL3,		SEL_I2C3_3),
984 
985 	/* GP2_09 = SDA3 */
986 	PINMUX_IPSR_MSEL(IP1SR2_7_4,	GP2_09,		SEL_I2C3_0),
987 	PINMUX_IPSR_MSEL(IP1SR2_7_4,	HTX2,		SEL_I2C3_0),
988 	PINMUX_IPSR_MSEL(IP1SR2_7_4,	MSIOF4_SS2,	SEL_I2C3_0),
989 	PINMUX_IPSR_MSEL(IP1SR2_7_4,	TX4,		SEL_I2C3_0),
990 	PINMUX_IPSR_MSEL(IP1SR2_7_4,	D10,		SEL_I2C3_0),
991 	PINMUX_IPSR_PHYS(IP1SR2_7_4,	SDA3,		SEL_I2C3_3),
992 
993 	/* GP2_10 = SCL4 */
994 	PINMUX_IPSR_MSEL(IP1SR2_11_8,	GP2_10,		SEL_I2C4_0),
995 	PINMUX_IPSR_MSEL(IP1SR2_11_8,	TCLK2_B,	SEL_I2C4_0),
996 	PINMUX_IPSR_MSEL(IP1SR2_11_8,	MSIOF5_RXD,	SEL_I2C4_0),
997 	PINMUX_IPSR_MSEL(IP1SR2_11_8,	D11,		SEL_I2C4_0),
998 	PINMUX_IPSR_PHYS(IP1SR2_11_8,	SCL4,		SEL_I2C4_3),
999 
1000 	/* GP2_11 = SDA4 */
1001 	PINMUX_IPSR_MSEL(IP1SR2_15_12,	GP2_11,		SEL_I2C4_0),
1002 	PINMUX_IPSR_MSEL(IP1SR2_15_12,	TCLK3,		SEL_I2C4_0),
1003 	PINMUX_IPSR_MSEL(IP1SR2_15_12,	MSIOF5_TXD,	SEL_I2C4_0),
1004 	PINMUX_IPSR_MSEL(IP1SR2_15_12,	D12,		SEL_I2C4_0),
1005 	PINMUX_IPSR_PHYS(IP1SR2_15_12,	SDA4,		SEL_I2C4_3),
1006 
1007 	/* GP2_12 = SCL5 */
1008 	PINMUX_IPSR_MSEL(IP1SR2_19_16,	GP2_12,		SEL_I2C5_0),
1009 	PINMUX_IPSR_MSEL(IP1SR2_19_16,	TCLK4,		SEL_I2C5_0),
1010 	PINMUX_IPSR_MSEL(IP1SR2_19_16,	MSIOF5_SCK,	SEL_I2C5_0),
1011 	PINMUX_IPSR_MSEL(IP1SR2_19_16,	D13,		SEL_I2C5_0),
1012 	PINMUX_IPSR_PHYS(IP1SR2_19_16,	SCL5,		SEL_I2C5_3),
1013 
1014 	/* GP2_13 = SDA5 */
1015 	PINMUX_IPSR_MSEL(IP1SR2_23_20,	GP2_13,		SEL_I2C5_0),
1016 	PINMUX_IPSR_MSEL(IP1SR2_23_20,	MSIOF5_SYNC,	SEL_I2C5_0),
1017 	PINMUX_IPSR_MSEL(IP1SR2_23_20,	D14,		SEL_I2C5_0),
1018 	PINMUX_IPSR_PHYS(IP1SR2_23_20,	SDA5,		SEL_I2C5_3),
1019 
1020 	/* GP2_14 = SCL6 */
1021 	PINMUX_IPSR_MSEL(IP1SR2_27_24,	GP2_14,		SEL_I2C6_0),
1022 	PINMUX_IPSR_MSEL(IP1SR2_27_24,	IRQ4,		SEL_I2C6_0),
1023 	PINMUX_IPSR_MSEL(IP1SR2_27_24,	MSIOF5_SS1,	SEL_I2C6_0),
1024 	PINMUX_IPSR_MSEL(IP1SR2_27_24,	D15,		SEL_I2C6_0),
1025 	PINMUX_IPSR_PHYS(IP1SR2_27_24,	SCL6,		SEL_I2C6_3),
1026 
1027 	/* GP2_15 = SDA6 */
1028 	PINMUX_IPSR_MSEL(IP1SR2_31_28,	GP2_15,		SEL_I2C6_0),
1029 	PINMUX_IPSR_MSEL(IP1SR2_31_28,	IRQ5,		SEL_I2C6_0),
1030 	PINMUX_IPSR_MSEL(IP1SR2_31_28,	MSIOF5_SS2,	SEL_I2C6_0),
1031 	PINMUX_IPSR_MSEL(IP1SR2_31_28,	CPG_CPCKOUT,	SEL_I2C6_0),
1032 	PINMUX_IPSR_PHYS(IP1SR2_31_28,	SDA6,		SEL_I2C6_3),
1033 
1034 	/* IP2SR2 */
1035 	PINMUX_IPSR_GPSR(IP2SR2_3_0,	FXR_TXDA_A),
1036 	PINMUX_IPSR_GPSR(IP2SR2_3_0,	MSIOF3_SS1),
1037 
1038 	PINMUX_IPSR_GPSR(IP2SR2_7_4,	RXDA_EXTFXR_A),
1039 	PINMUX_IPSR_GPSR(IP2SR2_7_4,	MSIOF3_SS2),
1040 	PINMUX_IPSR_GPSR(IP2SR2_7_4,	BS_N),
1041 
1042 	PINMUX_IPSR_GPSR(IP2SR2_11_8,	FXR_TXDB),
1043 	PINMUX_IPSR_GPSR(IP2SR2_11_8,	MSIOF3_RXD),
1044 	PINMUX_IPSR_GPSR(IP2SR2_11_8,	RD_N),
1045 
1046 	PINMUX_IPSR_GPSR(IP2SR2_15_12,	RXDB_EXTFXR),
1047 	PINMUX_IPSR_GPSR(IP2SR2_15_12,	MSIOF3_TXD),
1048 	PINMUX_IPSR_GPSR(IP2SR2_15_12,	WE0_N),
1049 
1050 	PINMUX_IPSR_GPSR(IP2SR2_19_16,	CLK_EXTFXR),
1051 	PINMUX_IPSR_GPSR(IP2SR2_19_16,	MSIOF3_SCK),
1052 	PINMUX_IPSR_GPSR(IP2SR2_19_16,	WE1_N),
1053 
1054 	PINMUX_IPSR_GPSR(IP2SR2_23_20,	TPU0TO0),
1055 	PINMUX_IPSR_GPSR(IP2SR2_23_20,	MSIOF3_SYNC),
1056 	PINMUX_IPSR_GPSR(IP2SR2_23_20,	RD_WR_N),
1057 
1058 	PINMUX_IPSR_GPSR(IP2SR2_27_24,	TPU0TO1),
1059 	PINMUX_IPSR_GPSR(IP2SR2_27_24,	CLKOUT),
1060 
1061 	PINMUX_IPSR_GPSR(IP2SR2_31_28,	TCLK1_A),
1062 	PINMUX_IPSR_GPSR(IP2SR2_31_28,	EX_WAIT0),
1063 
1064 	/* IP0SR3 */
1065 	PINMUX_IPSR_GPSR(IP0SR3_7_4,	CANFD0_TX),
1066 	PINMUX_IPSR_GPSR(IP0SR3_7_4,	FXR_TXDA_B),
1067 	PINMUX_IPSR_GPSR(IP0SR3_7_4,	TX1_B),
1068 
1069 	PINMUX_IPSR_GPSR(IP0SR3_11_8,	CANFD0_RX),
1070 	PINMUX_IPSR_GPSR(IP0SR3_11_8,	RXDA_EXTFXR_B),
1071 	PINMUX_IPSR_GPSR(IP0SR3_11_8,	RX1_B),
1072 
1073 	PINMUX_IPSR_GPSR(IP0SR3_23_20,	CANFD2_TX),
1074 	PINMUX_IPSR_GPSR(IP0SR3_23_20,	TPU0TO2),
1075 	PINMUX_IPSR_GPSR(IP0SR3_23_20,	PWM0),
1076 
1077 	PINMUX_IPSR_GPSR(IP0SR3_27_24,	CANFD2_RX),
1078 	PINMUX_IPSR_GPSR(IP0SR3_27_24,	TPU0TO3),
1079 	PINMUX_IPSR_GPSR(IP0SR3_27_24,	PWM1),
1080 
1081 	PINMUX_IPSR_GPSR(IP0SR3_31_28,	CANFD3_TX),
1082 	PINMUX_IPSR_GPSR(IP0SR3_31_28,	PWM2),
1083 
1084 	/* IP1SR3 */
1085 	PINMUX_IPSR_GPSR(IP1SR3_3_0,	CANFD3_RX),
1086 	PINMUX_IPSR_GPSR(IP1SR3_3_0,	PWM3),
1087 
1088 	PINMUX_IPSR_GPSR(IP1SR3_7_4,	CANFD4_TX),
1089 	PINMUX_IPSR_GPSR(IP1SR3_7_4,	PWM4),
1090 	PINMUX_IPSR_GPSR(IP1SR3_7_4,	FXR_CLKOUT1),
1091 
1092 	PINMUX_IPSR_GPSR(IP1SR3_11_8,	CANFD4_RX),
1093 	PINMUX_IPSR_GPSR(IP1SR3_11_8,	FXR_CLKOUT2),
1094 
1095 	PINMUX_IPSR_GPSR(IP1SR3_15_12,	CANFD5_TX),
1096 	PINMUX_IPSR_GPSR(IP1SR3_15_12,	FXR_TXENA_N),
1097 
1098 	PINMUX_IPSR_GPSR(IP1SR3_19_16,	CANFD5_RX),
1099 	PINMUX_IPSR_GPSR(IP1SR3_19_16,	FXR_TXENB_N),
1100 
1101 	PINMUX_IPSR_GPSR(IP1SR3_23_20,	CANFD6_TX),
1102 	PINMUX_IPSR_GPSR(IP1SR3_23_20,	STPWT_EXTFXR),
1103 
1104 	/* IP0SR4 */
1105 	PINMUX_IPSR_GPSR(IP0SR4_3_0,	AVB0_RX_CTL),
1106 	PINMUX_IPSR_GPSR(IP0SR4_3_0,	AVB0_MII_RX_DV),
1107 
1108 	PINMUX_IPSR_GPSR(IP0SR4_7_4,	AVB0_RXC),
1109 	PINMUX_IPSR_GPSR(IP0SR4_7_4,	AVB0_MII_RXC),
1110 
1111 	PINMUX_IPSR_GPSR(IP0SR4_11_8,	AVB0_RD0),
1112 	PINMUX_IPSR_GPSR(IP0SR4_11_8,	AVB0_MII_RD0),
1113 
1114 	PINMUX_IPSR_GPSR(IP0SR4_15_12,	AVB0_RD1),
1115 	PINMUX_IPSR_GPSR(IP0SR4_15_12,	AVB0_MII_RD1),
1116 
1117 	PINMUX_IPSR_GPSR(IP0SR4_19_16,	AVB0_RD2),
1118 	PINMUX_IPSR_GPSR(IP0SR4_19_16,	AVB0_MII_RD2),
1119 
1120 	PINMUX_IPSR_GPSR(IP0SR4_23_20,	AVB0_RD3),
1121 	PINMUX_IPSR_GPSR(IP0SR4_23_20,	AVB0_MII_RD3),
1122 
1123 	PINMUX_IPSR_GPSR(IP0SR4_27_24,	AVB0_TX_CTL),
1124 	PINMUX_IPSR_GPSR(IP0SR4_27_24,	AVB0_MII_TX_EN),
1125 
1126 	PINMUX_IPSR_GPSR(IP0SR4_31_28,	AVB0_TXC),
1127 	PINMUX_IPSR_GPSR(IP0SR4_31_28,	AVB0_MII_TXC),
1128 
1129 	/* IP1SR4 */
1130 	PINMUX_IPSR_GPSR(IP1SR4_3_0,	AVB0_TD0),
1131 	PINMUX_IPSR_GPSR(IP1SR4_3_0,	AVB0_MII_TD0),
1132 
1133 	PINMUX_IPSR_GPSR(IP1SR4_7_4,	AVB0_TD1),
1134 	PINMUX_IPSR_GPSR(IP1SR4_7_4,	AVB0_MII_TD1),
1135 
1136 	PINMUX_IPSR_GPSR(IP1SR4_11_8,	AVB0_TD2),
1137 	PINMUX_IPSR_GPSR(IP1SR4_11_8,	AVB0_MII_TD2),
1138 
1139 	PINMUX_IPSR_GPSR(IP1SR4_15_12,	AVB0_TD3),
1140 	PINMUX_IPSR_GPSR(IP1SR4_15_12,	AVB0_MII_TD3),
1141 
1142 	PINMUX_IPSR_GPSR(IP1SR4_19_16,	AVB0_TXCREFCLK),
1143 
1144 	PINMUX_IPSR_GPSR(IP1SR4_23_20,	AVB0_MDIO),
1145 
1146 	PINMUX_IPSR_GPSR(IP1SR4_27_24,	AVB0_MDC),
1147 
1148 	PINMUX_IPSR_GPSR(IP1SR4_31_28,	AVB0_MAGIC),
1149 
1150 	/* IP2SR4 */
1151 	PINMUX_IPSR_GPSR(IP2SR4_7_4,	AVB0_LINK),
1152 	PINMUX_IPSR_GPSR(IP2SR4_7_4,	AVB0_MII_TX_ER),
1153 
1154 	PINMUX_IPSR_GPSR(IP2SR4_11_8,	AVB0_AVTP_MATCH),
1155 	PINMUX_IPSR_GPSR(IP2SR4_11_8,	AVB0_MII_RX_ER),
1156 	PINMUX_IPSR_GPSR(IP2SR4_11_8,	CC5_OSCOUT),
1157 
1158 	PINMUX_IPSR_GPSR(IP2SR4_15_12,	AVB0_AVTP_CAPTURE),
1159 	PINMUX_IPSR_GPSR(IP2SR4_15_12,	AVB0_MII_CRS),
1160 
1161 	PINMUX_IPSR_GPSR(IP2SR4_19_16,	AVB0_AVTP_PPS),
1162 	PINMUX_IPSR_GPSR(IP2SR4_19_16,	AVB0_MII_COL),
1163 
1164 	/* IP0SR5 */
1165 	PINMUX_IPSR_GPSR(IP0SR5_3_0,	AVB1_RX_CTL),
1166 	PINMUX_IPSR_GPSR(IP0SR5_3_0,	AVB1_MII_RX_DV),
1167 
1168 	PINMUX_IPSR_GPSR(IP0SR5_7_4,	AVB1_RXC),
1169 	PINMUX_IPSR_GPSR(IP0SR5_7_4,	AVB1_MII_RXC),
1170 
1171 	PINMUX_IPSR_GPSR(IP0SR5_11_8,	AVB1_RD0),
1172 	PINMUX_IPSR_GPSR(IP0SR5_11_8,	AVB1_MII_RD0),
1173 
1174 	PINMUX_IPSR_GPSR(IP0SR5_15_12,	AVB1_RD1),
1175 	PINMUX_IPSR_GPSR(IP0SR5_15_12,	AVB1_MII_RD1),
1176 
1177 	PINMUX_IPSR_GPSR(IP0SR5_19_16,	AVB1_RD2),
1178 	PINMUX_IPSR_GPSR(IP0SR5_19_16,	AVB1_MII_RD2),
1179 
1180 	PINMUX_IPSR_GPSR(IP0SR5_23_20,	AVB1_RD3),
1181 	PINMUX_IPSR_GPSR(IP0SR5_23_20,	AVB1_MII_RD3),
1182 
1183 	PINMUX_IPSR_GPSR(IP0SR5_27_24,	AVB1_TX_CTL),
1184 	PINMUX_IPSR_GPSR(IP0SR5_27_24,	AVB1_MII_TX_EN),
1185 
1186 	PINMUX_IPSR_GPSR(IP0SR5_31_28,	AVB1_TXC),
1187 	PINMUX_IPSR_GPSR(IP0SR5_31_28,	AVB1_MII_TXC),
1188 
1189 	/* IP1SR5 */
1190 	PINMUX_IPSR_GPSR(IP1SR5_3_0,	AVB1_TD0),
1191 	PINMUX_IPSR_GPSR(IP1SR5_3_0,	AVB1_MII_TD0),
1192 
1193 	PINMUX_IPSR_GPSR(IP1SR5_7_4,	AVB1_TD1),
1194 	PINMUX_IPSR_GPSR(IP1SR5_7_4,	AVB1_MII_TD1),
1195 
1196 	PINMUX_IPSR_GPSR(IP1SR5_11_8,	AVB1_TD2),
1197 	PINMUX_IPSR_GPSR(IP1SR5_11_8,	AVB1_MII_TD2),
1198 
1199 	PINMUX_IPSR_GPSR(IP1SR5_15_12,	AVB1_TD3),
1200 	PINMUX_IPSR_GPSR(IP1SR5_15_12,	AVB1_MII_TD3),
1201 
1202 	PINMUX_IPSR_GPSR(IP1SR5_19_16,	AVB1_TXCREFCLK),
1203 
1204 	PINMUX_IPSR_GPSR(IP1SR5_23_20,	AVB1_MDIO),
1205 
1206 	PINMUX_IPSR_GPSR(IP1SR5_27_24,	AVB1_MDC),
1207 
1208 	PINMUX_IPSR_GPSR(IP1SR5_31_28,	AVB1_MAGIC),
1209 
1210 	/* IP2SR5 */
1211 	PINMUX_IPSR_GPSR(IP2SR5_7_4,	AVB1_LINK),
1212 	PINMUX_IPSR_GPSR(IP2SR5_7_4,	AVB1_MII_TX_ER),
1213 
1214 	PINMUX_IPSR_GPSR(IP2SR5_11_8,	AVB1_AVTP_MATCH),
1215 	PINMUX_IPSR_GPSR(IP2SR5_11_8,	AVB1_MII_RX_ER),
1216 
1217 	PINMUX_IPSR_GPSR(IP2SR5_15_12,	AVB1_AVTP_CAPTURE),
1218 	PINMUX_IPSR_GPSR(IP2SR5_15_12,	AVB1_MII_CRS),
1219 
1220 	PINMUX_IPSR_GPSR(IP2SR5_19_16,	AVB1_AVTP_PPS),
1221 	PINMUX_IPSR_GPSR(IP2SR5_19_16,	AVB1_MII_COL),
1222 };
1223 
1224 /*
1225  * Pins not associated with a GPIO port.
1226  */
1227 enum {
1228 	GP_ASSIGN_LAST(),
1229 	NOGP_ALL(),
1230 };
1231 
1232 static const struct sh_pfc_pin pinmux_pins[] = {
1233 	PINMUX_GPIO_GP_ALL(),
1234 };
1235 
1236 /* - AVB0 ------------------------------------------------ */
1237 static const unsigned int avb0_link_pins[] = {
1238 	/* AVB0_LINK */
1239 	RCAR_GP_PIN(4, 17),
1240 };
1241 static const unsigned int avb0_link_mux[] = {
1242 	AVB0_LINK_MARK,
1243 };
1244 static const unsigned int avb0_magic_pins[] = {
1245 	/* AVB0_MAGIC */
1246 	RCAR_GP_PIN(4, 15),
1247 };
1248 static const unsigned int avb0_magic_mux[] = {
1249 	AVB0_MAGIC_MARK,
1250 };
1251 static const unsigned int avb0_phy_int_pins[] = {
1252 	/* AVB0_PHY_INT */
1253 	RCAR_GP_PIN(4, 16),
1254 };
1255 static const unsigned int avb0_phy_int_mux[] = {
1256 	AVB0_PHY_INT_MARK,
1257 };
1258 static const unsigned int avb0_mdio_pins[] = {
1259 	/* AVB0_MDC, AVB0_MDIO */
1260 	RCAR_GP_PIN(4, 14), RCAR_GP_PIN(4, 13),
1261 };
1262 static const unsigned int avb0_mdio_mux[] = {
1263 	AVB0_MDC_MARK, AVB0_MDIO_MARK,
1264 };
1265 static const unsigned int avb0_rgmii_pins[] = {
1266 	/*
1267 	 * AVB0_TX_CTL, AVB0_TXC, AVB0_TD0, AVB0_TD1, AVB0_TD2, AVB0_TD3,
1268 	 * AVB0_RX_CTL, AVB0_RXC, AVB0_RD0, AVB0_RD1, AVB0_RD2, AVB0_RD3,
1269 	 */
1270 	RCAR_GP_PIN(4, 6), RCAR_GP_PIN(4, 7),
1271 	RCAR_GP_PIN(4, 8), RCAR_GP_PIN(4, 9),
1272 	RCAR_GP_PIN(4, 10), RCAR_GP_PIN(4, 11),
1273 	RCAR_GP_PIN(4, 0), RCAR_GP_PIN(4, 1),
1274 	RCAR_GP_PIN(4, 2), RCAR_GP_PIN(4, 3),
1275 	RCAR_GP_PIN(4, 4), RCAR_GP_PIN(4, 5),
1276 };
1277 static const unsigned int avb0_rgmii_mux[] = {
1278 	AVB0_TX_CTL_MARK, AVB0_TXC_MARK,
1279 	AVB0_TD0_MARK, AVB0_TD1_MARK, AVB0_TD2_MARK, AVB0_TD3_MARK,
1280 	AVB0_RX_CTL_MARK, AVB0_RXC_MARK,
1281 	AVB0_RD0_MARK, AVB0_RD1_MARK, AVB0_RD2_MARK, AVB0_RD3_MARK,
1282 };
1283 static const unsigned int avb0_txcrefclk_pins[] = {
1284 	/* AVB0_TXCREFCLK */
1285 	RCAR_GP_PIN(4, 12),
1286 };
1287 static const unsigned int avb0_txcrefclk_mux[] = {
1288 	AVB0_TXCREFCLK_MARK,
1289 };
1290 static const unsigned int avb0_avtp_pps_pins[] = {
1291 	/* AVB0_AVTP_PPS */
1292 	RCAR_GP_PIN(4, 20),
1293 };
1294 static const unsigned int avb0_avtp_pps_mux[] = {
1295 	AVB0_AVTP_PPS_MARK,
1296 };
1297 static const unsigned int avb0_avtp_capture_pins[] = {
1298 	/* AVB0_AVTP_CAPTURE */
1299 	RCAR_GP_PIN(4, 19),
1300 };
1301 static const unsigned int avb0_avtp_capture_mux[] = {
1302 	AVB0_AVTP_CAPTURE_MARK,
1303 };
1304 static const unsigned int avb0_avtp_match_pins[] = {
1305 	/* AVB0_AVTP_MATCH */
1306 	RCAR_GP_PIN(4, 18),
1307 };
1308 static const unsigned int avb0_avtp_match_mux[] = {
1309 	AVB0_AVTP_MATCH_MARK,
1310 };
1311 
1312 /* - AVB1 ------------------------------------------------ */
1313 static const unsigned int avb1_link_pins[] = {
1314 	/* AVB1_LINK */
1315 	RCAR_GP_PIN(5, 17),
1316 };
1317 static const unsigned int avb1_link_mux[] = {
1318 	AVB1_LINK_MARK,
1319 };
1320 static const unsigned int avb1_magic_pins[] = {
1321 	/* AVB1_MAGIC */
1322 	RCAR_GP_PIN(5, 15),
1323 };
1324 static const unsigned int avb1_magic_mux[] = {
1325 	AVB1_MAGIC_MARK,
1326 };
1327 static const unsigned int avb1_phy_int_pins[] = {
1328 	/* AVB1_PHY_INT */
1329 	RCAR_GP_PIN(5, 16),
1330 };
1331 static const unsigned int avb1_phy_int_mux[] = {
1332 	AVB1_PHY_INT_MARK,
1333 };
1334 static const unsigned int avb1_mdio_pins[] = {
1335 	/* AVB1_MDC, AVB1_MDIO */
1336 	RCAR_GP_PIN(5, 14), RCAR_GP_PIN(5, 13),
1337 };
1338 static const unsigned int avb1_mdio_mux[] = {
1339 	AVB1_MDC_MARK, AVB1_MDIO_MARK,
1340 };
1341 static const unsigned int avb1_rgmii_pins[] = {
1342 	/*
1343 	 * AVB1_TX_CTL, AVB1_TXC, AVB1_TD0, AVB1_TD1, AVB1_TD2, AVB1_TD3,
1344 	 * AVB1_RX_CTL, AVB1_RXC, AVB1_RD0, AVB1_RD1, AVB1_RD2, AVB1_RD3,
1345 	 */
1346 	RCAR_GP_PIN(5, 6), RCAR_GP_PIN(5, 7),
1347 	RCAR_GP_PIN(5, 8), RCAR_GP_PIN(5, 9),
1348 	RCAR_GP_PIN(5, 10), RCAR_GP_PIN(5, 11),
1349 	RCAR_GP_PIN(5, 0), RCAR_GP_PIN(5, 1),
1350 	RCAR_GP_PIN(5, 2), RCAR_GP_PIN(5, 3),
1351 	RCAR_GP_PIN(5, 4), RCAR_GP_PIN(5, 5),
1352 };
1353 static const unsigned int avb1_rgmii_mux[] = {
1354 	AVB1_TX_CTL_MARK, AVB1_TXC_MARK,
1355 	AVB1_TD0_MARK, AVB1_TD1_MARK, AVB1_TD2_MARK, AVB1_TD3_MARK,
1356 	AVB1_RX_CTL_MARK, AVB1_RXC_MARK,
1357 	AVB1_RD0_MARK, AVB1_RD1_MARK, AVB1_RD2_MARK, AVB1_RD3_MARK,
1358 };
1359 static const unsigned int avb1_txcrefclk_pins[] = {
1360 	/* AVB1_TXCREFCLK */
1361 	RCAR_GP_PIN(5, 12),
1362 };
1363 static const unsigned int avb1_txcrefclk_mux[] = {
1364 	AVB1_TXCREFCLK_MARK,
1365 };
1366 static const unsigned int avb1_avtp_pps_pins[] = {
1367 	/* AVB1_AVTP_PPS */
1368 	RCAR_GP_PIN(5, 20),
1369 };
1370 static const unsigned int avb1_avtp_pps_mux[] = {
1371 	AVB1_AVTP_PPS_MARK,
1372 };
1373 static const unsigned int avb1_avtp_capture_pins[] = {
1374 	/* AVB1_AVTP_CAPTURE */
1375 	RCAR_GP_PIN(5, 19),
1376 };
1377 static const unsigned int avb1_avtp_capture_mux[] = {
1378 	AVB1_AVTP_CAPTURE_MARK,
1379 };
1380 static const unsigned int avb1_avtp_match_pins[] = {
1381 	/* AVB1_AVTP_MATCH */
1382 	RCAR_GP_PIN(5, 18),
1383 };
1384 static const unsigned int avb1_avtp_match_mux[] = {
1385 	AVB1_AVTP_MATCH_MARK,
1386 };
1387 
1388 /* - AVB2 ------------------------------------------------ */
1389 static const unsigned int avb2_link_pins[] = {
1390 	/* AVB2_LINK */
1391 	RCAR_GP_PIN(6, 17),
1392 };
1393 static const unsigned int avb2_link_mux[] = {
1394 	AVB2_LINK_MARK,
1395 };
1396 static const unsigned int avb2_magic_pins[] = {
1397 	/* AVB2_MAGIC */
1398 	RCAR_GP_PIN(6, 15),
1399 };
1400 static const unsigned int avb2_magic_mux[] = {
1401 	AVB2_MAGIC_MARK,
1402 };
1403 static const unsigned int avb2_phy_int_pins[] = {
1404 	/* AVB2_PHY_INT */
1405 	RCAR_GP_PIN(6, 16),
1406 };
1407 static const unsigned int avb2_phy_int_mux[] = {
1408 	AVB2_PHY_INT_MARK,
1409 };
1410 static const unsigned int avb2_mdio_pins[] = {
1411 	/* AVB2_MDC, AVB2_MDIO */
1412 	RCAR_GP_PIN(6, 14), RCAR_GP_PIN(6, 13),
1413 };
1414 static const unsigned int avb2_mdio_mux[] = {
1415 	AVB2_MDC_MARK, AVB2_MDIO_MARK,
1416 };
1417 static const unsigned int avb2_rgmii_pins[] = {
1418 	/*
1419 	 * AVB2_TX_CTL, AVB2_TXC, AVB2_TD0, AVB2_TD1, AVB2_TD2, AVB2_TD3,
1420 	 * AVB2_RX_CTL, AVB2_RXC, AVB2_RD0, AVB2_RD1, AVB2_RD2, AVB2_RD3,
1421 	 */
1422 	RCAR_GP_PIN(6, 6), RCAR_GP_PIN(6, 7),
1423 	RCAR_GP_PIN(6, 8), RCAR_GP_PIN(6, 9),
1424 	RCAR_GP_PIN(6, 10), RCAR_GP_PIN(6, 11),
1425 	RCAR_GP_PIN(6, 0), RCAR_GP_PIN(6, 1),
1426 	RCAR_GP_PIN(6, 2), RCAR_GP_PIN(6, 3),
1427 	RCAR_GP_PIN(6, 4), RCAR_GP_PIN(6, 5),
1428 };
1429 static const unsigned int avb2_rgmii_mux[] = {
1430 	AVB2_TX_CTL_MARK, AVB2_TXC_MARK,
1431 	AVB2_TD0_MARK, AVB2_TD1_MARK, AVB2_TD2_MARK, AVB2_TD3_MARK,
1432 	AVB2_RX_CTL_MARK, AVB2_RXC_MARK,
1433 	AVB2_RD0_MARK, AVB2_RD1_MARK, AVB2_RD2_MARK, AVB2_RD3_MARK,
1434 };
1435 static const unsigned int avb2_txcrefclk_pins[] = {
1436 	/* AVB2_TXCREFCLK */
1437 	RCAR_GP_PIN(6, 12),
1438 };
1439 static const unsigned int avb2_txcrefclk_mux[] = {
1440 	AVB2_TXCREFCLK_MARK,
1441 };
1442 static const unsigned int avb2_avtp_pps_pins[] = {
1443 	/* AVB2_AVTP_PPS */
1444 	RCAR_GP_PIN(6, 20),
1445 };
1446 static const unsigned int avb2_avtp_pps_mux[] = {
1447 	AVB2_AVTP_PPS_MARK,
1448 };
1449 static const unsigned int avb2_avtp_capture_pins[] = {
1450 	/* AVB2_AVTP_CAPTURE */
1451 	RCAR_GP_PIN(6, 19),
1452 };
1453 static const unsigned int avb2_avtp_capture_mux[] = {
1454 	AVB2_AVTP_CAPTURE_MARK,
1455 };
1456 static const unsigned int avb2_avtp_match_pins[] = {
1457 	/* AVB2_AVTP_MATCH */
1458 	RCAR_GP_PIN(6, 18),
1459 };
1460 static const unsigned int avb2_avtp_match_mux[] = {
1461 	AVB2_AVTP_MATCH_MARK,
1462 };
1463 
1464 /* - AVB3 ------------------------------------------------ */
1465 static const unsigned int avb3_link_pins[] = {
1466 	/* AVB3_LINK */
1467 	RCAR_GP_PIN(7, 17),
1468 };
1469 static const unsigned int avb3_link_mux[] = {
1470 	AVB3_LINK_MARK,
1471 };
1472 static const unsigned int avb3_magic_pins[] = {
1473 	/* AVB3_MAGIC */
1474 	RCAR_GP_PIN(7, 15),
1475 };
1476 static const unsigned int avb3_magic_mux[] = {
1477 	AVB3_MAGIC_MARK,
1478 };
1479 static const unsigned int avb3_phy_int_pins[] = {
1480 	/* AVB3_PHY_INT */
1481 	RCAR_GP_PIN(7, 16),
1482 };
1483 static const unsigned int avb3_phy_int_mux[] = {
1484 	AVB3_PHY_INT_MARK,
1485 };
1486 static const unsigned int avb3_mdio_pins[] = {
1487 	/* AVB3_MDC, AVB3_MDIO */
1488 	RCAR_GP_PIN(7, 14), RCAR_GP_PIN(7, 13),
1489 };
1490 static const unsigned int avb3_mdio_mux[] = {
1491 	AVB3_MDC_MARK, AVB3_MDIO_MARK,
1492 };
1493 static const unsigned int avb3_rgmii_pins[] = {
1494 	/*
1495 	 * AVB3_TX_CTL, AVB3_TXC, AVB3_TD0, AVB3_TD1, AVB3_TD2, AVB3_TD3,
1496 	 * AVB3_RX_CTL, AVB3_RXC, AVB3_RD0, AVB3_RD1, AVB3_RD2, AVB3_RD3,
1497 	 */
1498 	RCAR_GP_PIN(7, 6), RCAR_GP_PIN(7, 7),
1499 	RCAR_GP_PIN(7, 8), RCAR_GP_PIN(7, 9),
1500 	RCAR_GP_PIN(7, 10), RCAR_GP_PIN(7, 11),
1501 	RCAR_GP_PIN(7, 0), RCAR_GP_PIN(7, 1),
1502 	RCAR_GP_PIN(7, 2), RCAR_GP_PIN(7, 3),
1503 	RCAR_GP_PIN(7, 4), RCAR_GP_PIN(7, 5),
1504 };
1505 static const unsigned int avb3_rgmii_mux[] = {
1506 	AVB3_TX_CTL_MARK, AVB3_TXC_MARK,
1507 	AVB3_TD0_MARK, AVB3_TD1_MARK, AVB3_TD2_MARK, AVB3_TD3_MARK,
1508 	AVB3_RX_CTL_MARK, AVB3_RXC_MARK,
1509 	AVB3_RD0_MARK, AVB3_RD1_MARK, AVB3_RD2_MARK, AVB3_RD3_MARK,
1510 };
1511 static const unsigned int avb3_txcrefclk_pins[] = {
1512 	/* AVB3_TXCREFCLK */
1513 	RCAR_GP_PIN(7, 12),
1514 };
1515 static const unsigned int avb3_txcrefclk_mux[] = {
1516 	AVB3_TXCREFCLK_MARK,
1517 };
1518 static const unsigned int avb3_avtp_pps_pins[] = {
1519 	/* AVB3_AVTP_PPS */
1520 	RCAR_GP_PIN(7, 20),
1521 };
1522 static const unsigned int avb3_avtp_pps_mux[] = {
1523 	AVB3_AVTP_PPS_MARK,
1524 };
1525 static const unsigned int avb3_avtp_capture_pins[] = {
1526 	/* AVB3_AVTP_CAPTURE */
1527 	RCAR_GP_PIN(7, 19),
1528 };
1529 static const unsigned int avb3_avtp_capture_mux[] = {
1530 	AVB3_AVTP_CAPTURE_MARK,
1531 };
1532 static const unsigned int avb3_avtp_match_pins[] = {
1533 	/* AVB3_AVTP_MATCH */
1534 	RCAR_GP_PIN(7, 18),
1535 };
1536 static const unsigned int avb3_avtp_match_mux[] = {
1537 	AVB3_AVTP_MATCH_MARK,
1538 };
1539 
1540 /* - AVB4 ------------------------------------------------ */
1541 static const unsigned int avb4_link_pins[] = {
1542 	/* AVB4_LINK */
1543 	RCAR_GP_PIN(8, 17),
1544 };
1545 static const unsigned int avb4_link_mux[] = {
1546 	AVB4_LINK_MARK,
1547 };
1548 static const unsigned int avb4_magic_pins[] = {
1549 	/* AVB4_MAGIC */
1550 	RCAR_GP_PIN(8, 15),
1551 };
1552 static const unsigned int avb4_magic_mux[] = {
1553 	AVB4_MAGIC_MARK,
1554 };
1555 static const unsigned int avb4_phy_int_pins[] = {
1556 	/* AVB4_PHY_INT */
1557 	RCAR_GP_PIN(8, 16),
1558 };
1559 static const unsigned int avb4_phy_int_mux[] = {
1560 	AVB4_PHY_INT_MARK,
1561 };
1562 static const unsigned int avb4_mdio_pins[] = {
1563 	/* AVB4_MDC, AVB4_MDIO */
1564 	RCAR_GP_PIN(8, 14), RCAR_GP_PIN(8, 13),
1565 };
1566 static const unsigned int avb4_mdio_mux[] = {
1567 	AVB4_MDC_MARK, AVB4_MDIO_MARK,
1568 };
1569 static const unsigned int avb4_rgmii_pins[] = {
1570 	/*
1571 	 * AVB4_TX_CTL, AVB4_TXC, AVB4_TD0, AVB4_TD1, AVB4_TD2, AVB4_TD3,
1572 	 * AVB4_RX_CTL, AVB4_RXC, AVB4_RD0, AVB4_RD1, AVB4_RD2, AVB4_RD3,
1573 	 */
1574 	RCAR_GP_PIN(8, 6), RCAR_GP_PIN(8, 7),
1575 	RCAR_GP_PIN(8, 8), RCAR_GP_PIN(8, 9),
1576 	RCAR_GP_PIN(8, 10), RCAR_GP_PIN(8, 11),
1577 	RCAR_GP_PIN(8, 0), RCAR_GP_PIN(8, 1),
1578 	RCAR_GP_PIN(8, 2), RCAR_GP_PIN(8, 3),
1579 	RCAR_GP_PIN(8, 4), RCAR_GP_PIN(8, 5),
1580 };
1581 static const unsigned int avb4_rgmii_mux[] = {
1582 	AVB4_TX_CTL_MARK, AVB4_TXC_MARK,
1583 	AVB4_TD0_MARK, AVB4_TD1_MARK, AVB4_TD2_MARK, AVB4_TD3_MARK,
1584 	AVB4_RX_CTL_MARK, AVB4_RXC_MARK,
1585 	AVB4_RD0_MARK, AVB4_RD1_MARK, AVB4_RD2_MARK, AVB4_RD3_MARK,
1586 };
1587 static const unsigned int avb4_txcrefclk_pins[] = {
1588 	/* AVB4_TXCREFCLK */
1589 	RCAR_GP_PIN(8, 12),
1590 };
1591 static const unsigned int avb4_txcrefclk_mux[] = {
1592 	AVB4_TXCREFCLK_MARK,
1593 };
1594 static const unsigned int avb4_avtp_pps_pins[] = {
1595 	/* AVB4_AVTP_PPS */
1596 	RCAR_GP_PIN(8, 20),
1597 };
1598 static const unsigned int avb4_avtp_pps_mux[] = {
1599 	AVB4_AVTP_PPS_MARK,
1600 };
1601 static const unsigned int avb4_avtp_capture_pins[] = {
1602 	/* AVB4_AVTP_CAPTURE */
1603 	RCAR_GP_PIN(8, 19),
1604 };
1605 static const unsigned int avb4_avtp_capture_mux[] = {
1606 	AVB4_AVTP_CAPTURE_MARK,
1607 };
1608 static const unsigned int avb4_avtp_match_pins[] = {
1609 	/* AVB4_AVTP_MATCH */
1610 	RCAR_GP_PIN(8, 18),
1611 };
1612 static const unsigned int avb4_avtp_match_mux[] = {
1613 	AVB4_AVTP_MATCH_MARK,
1614 };
1615 
1616 /* - AVB5 ------------------------------------------------ */
1617 static const unsigned int avb5_link_pins[] = {
1618 	/* AVB5_LINK */
1619 	RCAR_GP_PIN(9, 17),
1620 };
1621 static const unsigned int avb5_link_mux[] = {
1622 	AVB5_LINK_MARK,
1623 };
1624 static const unsigned int avb5_magic_pins[] = {
1625 	/* AVB5_MAGIC */
1626 	RCAR_GP_PIN(9, 15),
1627 };
1628 static const unsigned int avb5_magic_mux[] = {
1629 	AVB5_MAGIC_MARK,
1630 };
1631 static const unsigned int avb5_phy_int_pins[] = {
1632 	/* AVB5_PHY_INT */
1633 	RCAR_GP_PIN(9, 16),
1634 };
1635 static const unsigned int avb5_phy_int_mux[] = {
1636 	AVB5_PHY_INT_MARK,
1637 };
1638 static const unsigned int avb5_mdio_pins[] = {
1639 	/* AVB5_MDC, AVB5_MDIO */
1640 	RCAR_GP_PIN(9, 14), RCAR_GP_PIN(9, 13),
1641 };
1642 static const unsigned int avb5_mdio_mux[] = {
1643 	AVB5_MDC_MARK, AVB5_MDIO_MARK,
1644 };
1645 static const unsigned int avb5_rgmii_pins[] = {
1646 	/*
1647 	 * AVB5_TX_CTL, AVB5_TXC, AVB5_TD0, AVB5_TD1, AVB5_TD2, AVB5_TD3,
1648 	 * AVB5_RX_CTL, AVB5_RXC, AVB5_RD0, AVB5_RD1, AVB5_RD2, AVB5_RD3,
1649 	 */
1650 	RCAR_GP_PIN(9, 6), RCAR_GP_PIN(9, 7),
1651 	RCAR_GP_PIN(9, 8), RCAR_GP_PIN(9, 9),
1652 	RCAR_GP_PIN(9, 10), RCAR_GP_PIN(9, 11),
1653 	RCAR_GP_PIN(9, 0), RCAR_GP_PIN(9, 1),
1654 	RCAR_GP_PIN(9, 2), RCAR_GP_PIN(9, 3),
1655 	RCAR_GP_PIN(9, 4), RCAR_GP_PIN(9, 5),
1656 };
1657 static const unsigned int avb5_rgmii_mux[] = {
1658 	AVB5_TX_CTL_MARK, AVB5_TXC_MARK,
1659 	AVB5_TD0_MARK, AVB5_TD1_MARK, AVB5_TD2_MARK, AVB5_TD3_MARK,
1660 	AVB5_RX_CTL_MARK, AVB5_RXC_MARK,
1661 	AVB5_RD0_MARK, AVB5_RD1_MARK, AVB5_RD2_MARK, AVB5_RD3_MARK,
1662 };
1663 static const unsigned int avb5_txcrefclk_pins[] = {
1664 	/* AVB5_TXCREFCLK */
1665 	RCAR_GP_PIN(9, 12),
1666 };
1667 static const unsigned int avb5_txcrefclk_mux[] = {
1668 	AVB5_TXCREFCLK_MARK,
1669 };
1670 static const unsigned int avb5_avtp_pps_pins[] = {
1671 	/* AVB5_AVTP_PPS */
1672 	RCAR_GP_PIN(9, 20),
1673 };
1674 static const unsigned int avb5_avtp_pps_mux[] = {
1675 	AVB5_AVTP_PPS_MARK,
1676 };
1677 static const unsigned int avb5_avtp_capture_pins[] = {
1678 	/* AVB5_AVTP_CAPTURE */
1679 	RCAR_GP_PIN(9, 19),
1680 };
1681 static const unsigned int avb5_avtp_capture_mux[] = {
1682 	AVB5_AVTP_CAPTURE_MARK,
1683 };
1684 static const unsigned int avb5_avtp_match_pins[] = {
1685 	/* AVB5_AVTP_MATCH */
1686 	RCAR_GP_PIN(9, 18),
1687 };
1688 static const unsigned int avb5_avtp_match_mux[] = {
1689 	AVB5_AVTP_MATCH_MARK,
1690 };
1691 
1692 /* - CANFD0 ----------------------------------------------------------------- */
1693 static const unsigned int canfd0_data_pins[] = {
1694 	/* CANFD0_TX, CANFD0_RX */
1695 	RCAR_GP_PIN(3, 1), RCAR_GP_PIN(3, 2),
1696 };
1697 static const unsigned int canfd0_data_mux[] = {
1698 	CANFD0_TX_MARK, CANFD0_RX_MARK,
1699 };
1700 
1701 /* - CANFD1 ----------------------------------------------------------------- */
1702 static const unsigned int canfd1_data_pins[] = {
1703 	/* CANFD1_TX, CANFD1_RX */
1704 	RCAR_GP_PIN(3, 3), RCAR_GP_PIN(3, 4),
1705 };
1706 static const unsigned int canfd1_data_mux[] = {
1707 	CANFD1_TX_MARK, CANFD1_RX_MARK,
1708 };
1709 
1710 /* - CANFD2 ----------------------------------------------------------------- */
1711 static const unsigned int canfd2_data_pins[] = {
1712 	/* CANFD2_TX, CANFD2_RX */
1713 	RCAR_GP_PIN(3, 5), RCAR_GP_PIN(3, 6),
1714 };
1715 static const unsigned int canfd2_data_mux[] = {
1716 	CANFD2_TX_MARK, CANFD2_RX_MARK,
1717 };
1718 
1719 /* - CANFD3 ----------------------------------------------------------------- */
1720 static const unsigned int canfd3_data_pins[] = {
1721 	/* CANFD3_TX, CANFD3_RX */
1722 	RCAR_GP_PIN(3, 7), RCAR_GP_PIN(3, 8),
1723 };
1724 static const unsigned int canfd3_data_mux[] = {
1725 	CANFD3_TX_MARK, CANFD3_RX_MARK,
1726 };
1727 
1728 /* - CANFD4 ----------------------------------------------------------------- */
1729 static const unsigned int canfd4_data_pins[] = {
1730 	/* CANFD4_TX, CANFD4_RX */
1731 	RCAR_GP_PIN(3, 9), RCAR_GP_PIN(3, 10),
1732 };
1733 static const unsigned int canfd4_data_mux[] = {
1734 	CANFD4_TX_MARK, CANFD4_RX_MARK,
1735 };
1736 
1737 /* - CANFD5 ----------------------------------------------------------------- */
1738 static const unsigned int canfd5_data_pins[] = {
1739 	/* CANFD5_TX, CANFD5_RX */
1740 	RCAR_GP_PIN(3, 11), RCAR_GP_PIN(3, 12),
1741 };
1742 static const unsigned int canfd5_data_mux[] = {
1743 	CANFD5_TX_MARK, CANFD5_RX_MARK,
1744 };
1745 
1746 /* - CANFD6 ----------------------------------------------------------------- */
1747 static const unsigned int canfd6_data_pins[] = {
1748 	/* CANFD6_TX, CANFD6_RX */
1749 	RCAR_GP_PIN(3, 13), RCAR_GP_PIN(3, 14),
1750 };
1751 static const unsigned int canfd6_data_mux[] = {
1752 	CANFD6_TX_MARK, CANFD6_RX_MARK,
1753 };
1754 
1755 /* - CANFD7 ----------------------------------------------------------------- */
1756 static const unsigned int canfd7_data_pins[] = {
1757 	/* CANFD7_TX, CANFD7_RX */
1758 	RCAR_GP_PIN(3, 15), RCAR_GP_PIN(3, 16),
1759 };
1760 static const unsigned int canfd7_data_mux[] = {
1761 	CANFD7_TX_MARK, CANFD7_RX_MARK,
1762 };
1763 
1764 /* - CANFD Clock ------------------------------------------------------------ */
1765 static const unsigned int can_clk_pins[] = {
1766 	/* CAN_CLK */
1767 	RCAR_GP_PIN(3, 0),
1768 };
1769 static const unsigned int can_clk_mux[] = {
1770 	CAN_CLK_MARK,
1771 };
1772 
1773 /* - DU --------------------------------------------------------------------- */
1774 static const unsigned int du_rgb888_pins[] = {
1775 	/* DU_DR[7:2], DU_DG[7:2], DU_DB[7:2] */
1776 	RCAR_GP_PIN(1, 11), RCAR_GP_PIN(1, 10), RCAR_GP_PIN(1, 9),
1777 	RCAR_GP_PIN(1, 8), RCAR_GP_PIN(1, 7), RCAR_GP_PIN(1, 6),
1778 	RCAR_GP_PIN(1, 17), RCAR_GP_PIN(1, 16), RCAR_GP_PIN(1, 15),
1779 	RCAR_GP_PIN(1, 14), RCAR_GP_PIN(1, 13), RCAR_GP_PIN(1, 12),
1780 	RCAR_GP_PIN(1, 23), RCAR_GP_PIN(1, 22), RCAR_GP_PIN(1, 21),
1781 	RCAR_GP_PIN(1, 20), RCAR_GP_PIN(1, 19), RCAR_GP_PIN(1, 18),
1782 };
1783 static const unsigned int du_rgb888_mux[] = {
1784 	DU_DR7_MARK, DU_DR6_MARK, DU_DR5_MARK,
1785 	DU_DR4_MARK, DU_DR3_MARK, DU_DR2_MARK,
1786 	DU_DG7_MARK, DU_DG6_MARK, DU_DG5_MARK,
1787 	DU_DG4_MARK, DU_DG3_MARK, DU_DG2_MARK,
1788 	DU_DB7_MARK, DU_DB6_MARK, DU_DB5_MARK,
1789 	DU_DB4_MARK, DU_DB3_MARK, DU_DB2_MARK,
1790 };
1791 static const unsigned int du_clk_out_pins[] = {
1792 	/* DU_DOTCLKOUT */
1793 	RCAR_GP_PIN(1, 24),
1794 };
1795 static const unsigned int du_clk_out_mux[] = {
1796 	DU_DOTCLKOUT_MARK,
1797 };
1798 static const unsigned int du_sync_pins[] = {
1799 	/* DU_HSYNC, DU_VSYNC */
1800 	RCAR_GP_PIN(1, 25), RCAR_GP_PIN(1, 26),
1801 };
1802 static const unsigned int du_sync_mux[] = {
1803 	DU_HSYNC_MARK, DU_VSYNC_MARK,
1804 };
1805 static const unsigned int du_oddf_pins[] = {
1806 	/* DU_EXODDF/DU_ODDF/DISP/CDE */
1807 	RCAR_GP_PIN(1, 27),
1808 };
1809 static const unsigned int du_oddf_mux[] = {
1810 	DU_ODDF_DISP_CDE_MARK,
1811 };
1812 
1813 /* - HSCIF0 ----------------------------------------------------------------- */
1814 static const unsigned int hscif0_data_pins[] = {
1815 	/* HRX0, HTX0 */
1816 	RCAR_GP_PIN(1, 1), RCAR_GP_PIN(1, 5),
1817 };
1818 static const unsigned int hscif0_data_mux[] = {
1819 	HRX0_MARK, HTX0_MARK,
1820 };
1821 static const unsigned int hscif0_clk_pins[] = {
1822 	/* HSCK0 */
1823 	RCAR_GP_PIN(1, 2),
1824 };
1825 static const unsigned int hscif0_clk_mux[] = {
1826 	HSCK0_MARK,
1827 };
1828 static const unsigned int hscif0_ctrl_pins[] = {
1829 	/* HRTS0#, HCTS0# */
1830 	RCAR_GP_PIN(1, 3), RCAR_GP_PIN(1, 4),
1831 };
1832 static const unsigned int hscif0_ctrl_mux[] = {
1833 	HRTS0_N_MARK, HCTS0_N_MARK,
1834 };
1835 
1836 /* - HSCIF1 ----------------------------------------------------------------- */
1837 static const unsigned int hscif1_data_pins[] = {
1838 	/* HRX1, HTX1 */
1839 	RCAR_GP_PIN(1, 21), RCAR_GP_PIN(1, 22),
1840 };
1841 static const unsigned int hscif1_data_mux[] = {
1842 	HRX1_MARK, HTX1_MARK,
1843 };
1844 static const unsigned int hscif1_clk_pins[] = {
1845 	/* HSCK1 */
1846 	RCAR_GP_PIN(1, 18),
1847 };
1848 static const unsigned int hscif1_clk_mux[] = {
1849 	HSCK1_MARK,
1850 };
1851 static const unsigned int hscif1_ctrl_pins[] = {
1852 	/* HRTS1#, HCTS1# */
1853 	RCAR_GP_PIN(1, 20), RCAR_GP_PIN(1, 19),
1854 };
1855 static const unsigned int hscif1_ctrl_mux[] = {
1856 	HRTS1_N_MARK, HCTS1_N_MARK,
1857 };
1858 
1859 /* - HSCIF2 ----------------------------------------------------------------- */
1860 static const unsigned int hscif2_data_pins[] = {
1861 	/* HRX2, HTX2 */
1862 	RCAR_GP_PIN(2, 8), RCAR_GP_PIN(2, 9),
1863 };
1864 static const unsigned int hscif2_data_mux[] = {
1865 	HRX2_MARK, HTX2_MARK,
1866 };
1867 static const unsigned int hscif2_clk_pins[] = {
1868 	/* HSCK2 */
1869 	RCAR_GP_PIN(2, 5),
1870 };
1871 static const unsigned int hscif2_clk_mux[] = {
1872 	HSCK2_MARK,
1873 };
1874 static const unsigned int hscif2_ctrl_pins[] = {
1875 	/* HRTS2#, HCTS2# */
1876 	RCAR_GP_PIN(2, 7), RCAR_GP_PIN(2, 6),
1877 };
1878 static const unsigned int hscif2_ctrl_mux[] = {
1879 	HRTS2_N_MARK, HCTS2_N_MARK,
1880 };
1881 
1882 /* - HSCIF3 ----------------------------------------------------------------- */
1883 static const unsigned int hscif3_data_pins[] = {
1884 	/* HRX3, HTX3 */
1885 	RCAR_GP_PIN(1, 13), RCAR_GP_PIN(1, 17),
1886 };
1887 static const unsigned int hscif3_data_mux[] = {
1888 	HRX3_MARK, HTX3_MARK,
1889 };
1890 static const unsigned int hscif3_clk_pins[] = {
1891 	/* HSCK3 */
1892 	RCAR_GP_PIN(1, 14),
1893 };
1894 static const unsigned int hscif3_clk_mux[] = {
1895 	HSCK3_MARK,
1896 };
1897 static const unsigned int hscif3_ctrl_pins[] = {
1898 	/* HRTS3#, HCTS3# */
1899 	RCAR_GP_PIN(1, 15), RCAR_GP_PIN(1, 16),
1900 };
1901 static const unsigned int hscif3_ctrl_mux[] = {
1902 	HRTS3_N_MARK, HCTS3_N_MARK,
1903 };
1904 
1905 /* - I2C0 ------------------------------------------------------------------- */
1906 static const unsigned int i2c0_pins[] = {
1907 	/* SDA0, SCL0 */
1908 	RCAR_GP_PIN(2, 3), RCAR_GP_PIN(2, 2),
1909 };
1910 static const unsigned int i2c0_mux[] = {
1911 	SDA0_MARK, SCL0_MARK,
1912 };
1913 
1914 /* - I2C1 ------------------------------------------------------------------- */
1915 static const unsigned int i2c1_pins[] = {
1916 	/* SDA1, SCL1 */
1917 	RCAR_GP_PIN(2, 5), RCAR_GP_PIN(2, 4),
1918 };
1919 static const unsigned int i2c1_mux[] = {
1920 	SDA1_MARK, SCL1_MARK,
1921 };
1922 
1923 /* - I2C2 ------------------------------------------------------------------- */
1924 static const unsigned int i2c2_pins[] = {
1925 	/* SDA2, SCL2 */
1926 	RCAR_GP_PIN(2, 7), RCAR_GP_PIN(2, 6),
1927 };
1928 static const unsigned int i2c2_mux[] = {
1929 	SDA2_MARK, SCL2_MARK,
1930 };
1931 
1932 /* - I2C3 ------------------------------------------------------------------- */
1933 static const unsigned int i2c3_pins[] = {
1934 	/* SDA3, SCL3 */
1935 	RCAR_GP_PIN(2, 9), RCAR_GP_PIN(2, 8),
1936 };
1937 static const unsigned int i2c3_mux[] = {
1938 	SDA3_MARK, SCL3_MARK,
1939 };
1940 
1941 /* - I2C4 ------------------------------------------------------------------- */
1942 static const unsigned int i2c4_pins[] = {
1943 	/* SDA4, SCL4 */
1944 	RCAR_GP_PIN(2, 11), RCAR_GP_PIN(2, 10),
1945 };
1946 static const unsigned int i2c4_mux[] = {
1947 	SDA4_MARK, SCL4_MARK,
1948 };
1949 
1950 /* - I2C5 ------------------------------------------------------------------- */
1951 static const unsigned int i2c5_pins[] = {
1952 	/* SDA5, SCL5 */
1953 	RCAR_GP_PIN(2, 13), RCAR_GP_PIN(2, 12),
1954 };
1955 static const unsigned int i2c5_mux[] = {
1956 	SDA5_MARK, SCL5_MARK,
1957 };
1958 
1959 /* - I2C6 ------------------------------------------------------------------- */
1960 static const unsigned int i2c6_pins[] = {
1961 	/* SDA6, SCL6 */
1962 	RCAR_GP_PIN(2, 15), RCAR_GP_PIN(2, 14),
1963 };
1964 static const unsigned int i2c6_mux[] = {
1965 	SDA6_MARK, SCL6_MARK,
1966 };
1967 
1968 /* - INTC-EX ---------------------------------------------------------------- */
1969 static const unsigned int intc_ex_irq0_pins[] = {
1970 	/* IRQ0 */
1971 	RCAR_GP_PIN(1, 24),
1972 };
1973 static const unsigned int intc_ex_irq0_mux[] = {
1974 	IRQ0_MARK,
1975 };
1976 static const unsigned int intc_ex_irq1_pins[] = {
1977 	/* IRQ1 */
1978 	RCAR_GP_PIN(1, 25),
1979 };
1980 static const unsigned int intc_ex_irq1_mux[] = {
1981 	IRQ1_MARK,
1982 };
1983 static const unsigned int intc_ex_irq2_pins[] = {
1984 	/* IRQ2 */
1985 	RCAR_GP_PIN(1, 26),
1986 };
1987 static const unsigned int intc_ex_irq2_mux[] = {
1988 	IRQ2_MARK,
1989 };
1990 static const unsigned int intc_ex_irq3_pins[] = {
1991 	/* IRQ3 */
1992 	RCAR_GP_PIN(1, 27),
1993 };
1994 static const unsigned int intc_ex_irq3_mux[] = {
1995 	IRQ3_MARK,
1996 };
1997 static const unsigned int intc_ex_irq4_pins[] = {
1998 	/* IRQ4 */
1999 	RCAR_GP_PIN(2, 14),
2000 };
2001 static const unsigned int intc_ex_irq4_mux[] = {
2002 	IRQ4_MARK,
2003 };
2004 static const unsigned int intc_ex_irq5_pins[] = {
2005 	/* IRQ5 */
2006 	RCAR_GP_PIN(2, 15),
2007 };
2008 static const unsigned int intc_ex_irq5_mux[] = {
2009 	IRQ5_MARK,
2010 };
2011 
2012 /* - MMC -------------------------------------------------------------------- */
2013 static const unsigned int mmc_data1_pins[] = {
2014 	/* MMC_SD_D0 */
2015 	RCAR_GP_PIN(0, 19),
2016 };
2017 static const unsigned int mmc_data1_mux[] = {
2018 	MMC_SD_D0_MARK,
2019 };
2020 static const unsigned int mmc_data4_pins[] = {
2021 	/* MMC_SD_D[0:3] */
2022 	RCAR_GP_PIN(0, 19), RCAR_GP_PIN(0, 20),
2023 	RCAR_GP_PIN(0, 21), RCAR_GP_PIN(0, 22),
2024 };
2025 static const unsigned int mmc_data4_mux[] = {
2026 	MMC_SD_D0_MARK, MMC_SD_D1_MARK,
2027 	MMC_SD_D2_MARK, MMC_SD_D3_MARK,
2028 };
2029 static const unsigned int mmc_data8_pins[] = {
2030 	/* MMC_SD_D[0:3], MMC_D[4:7] */
2031 	RCAR_GP_PIN(0, 19), RCAR_GP_PIN(0, 20),
2032 	RCAR_GP_PIN(0, 21), RCAR_GP_PIN(0, 22),
2033 	RCAR_GP_PIN(0, 24), RCAR_GP_PIN(0, 25),
2034 	RCAR_GP_PIN(0, 26), RCAR_GP_PIN(0, 27),
2035 };
2036 static const unsigned int mmc_data8_mux[] = {
2037 	MMC_SD_D0_MARK, MMC_SD_D1_MARK,
2038 	MMC_SD_D2_MARK, MMC_SD_D3_MARK,
2039 	MMC_D4_MARK, MMC_D5_MARK,
2040 	MMC_D6_MARK, MMC_D7_MARK,
2041 };
2042 static const unsigned int mmc_ctrl_pins[] = {
2043 	/* MMC_SD_CLK, MMC_SD_CMD */
2044 	RCAR_GP_PIN(0, 23), RCAR_GP_PIN(0, 18),
2045 };
2046 static const unsigned int mmc_ctrl_mux[] = {
2047 	MMC_SD_CLK_MARK, MMC_SD_CMD_MARK,
2048 };
2049 static const unsigned int mmc_cd_pins[] = {
2050 	/* SD_CD */
2051 	RCAR_GP_PIN(0, 16),
2052 };
2053 static const unsigned int mmc_cd_mux[] = {
2054 	SD_CD_MARK,
2055 };
2056 static const unsigned int mmc_wp_pins[] = {
2057 	/* SD_WP */
2058 	RCAR_GP_PIN(0, 15),
2059 };
2060 static const unsigned int mmc_wp_mux[] = {
2061 	SD_WP_MARK,
2062 };
2063 static const unsigned int mmc_ds_pins[] = {
2064 	/* MMC_DS */
2065 	RCAR_GP_PIN(0, 17),
2066 };
2067 static const unsigned int mmc_ds_mux[] = {
2068 	MMC_DS_MARK,
2069 };
2070 
2071 /* - MSIOF0 ----------------------------------------------------------------- */
2072 static const unsigned int msiof0_clk_pins[] = {
2073 	/* MSIOF0_SCK */
2074 	RCAR_GP_PIN(1, 8),
2075 };
2076 static const unsigned int msiof0_clk_mux[] = {
2077 	MSIOF0_SCK_MARK,
2078 };
2079 static const unsigned int msiof0_sync_pins[] = {
2080 	/* MSIOF0_SYNC */
2081 	RCAR_GP_PIN(1, 9),
2082 };
2083 static const unsigned int msiof0_sync_mux[] = {
2084 	MSIOF0_SYNC_MARK,
2085 };
2086 static const unsigned int msiof0_ss1_pins[] = {
2087 	/* MSIOF0_SS1 */
2088 	RCAR_GP_PIN(1, 10),
2089 };
2090 static const unsigned int msiof0_ss1_mux[] = {
2091 	MSIOF0_SS1_MARK,
2092 };
2093 static const unsigned int msiof0_ss2_pins[] = {
2094 	/* MSIOF0_SS2 */
2095 	RCAR_GP_PIN(1, 11),
2096 };
2097 static const unsigned int msiof0_ss2_mux[] = {
2098 	MSIOF0_SS2_MARK,
2099 };
2100 static const unsigned int msiof0_txd_pins[] = {
2101 	/* MSIOF0_TXD */
2102 	RCAR_GP_PIN(1, 7),
2103 };
2104 static const unsigned int msiof0_txd_mux[] = {
2105 	MSIOF0_TXD_MARK,
2106 };
2107 static const unsigned int msiof0_rxd_pins[] = {
2108 	/* MSIOF0_RXD */
2109 	RCAR_GP_PIN(1, 6),
2110 };
2111 static const unsigned int msiof0_rxd_mux[] = {
2112 	MSIOF0_RXD_MARK,
2113 };
2114 
2115 /* - MSIOF1 ----------------------------------------------------------------- */
2116 static const unsigned int msiof1_clk_pins[] = {
2117 	/* MSIOF1_SCK */
2118 	RCAR_GP_PIN(1, 14),
2119 };
2120 static const unsigned int msiof1_clk_mux[] = {
2121 	MSIOF1_SCK_MARK,
2122 };
2123 static const unsigned int msiof1_sync_pins[] = {
2124 	/* MSIOF1_SYNC */
2125 	RCAR_GP_PIN(1, 15),
2126 };
2127 static const unsigned int msiof1_sync_mux[] = {
2128 	MSIOF1_SYNC_MARK,
2129 };
2130 static const unsigned int msiof1_ss1_pins[] = {
2131 	/* MSIOF1_SS1 */
2132 	RCAR_GP_PIN(1, 16),
2133 };
2134 static const unsigned int msiof1_ss1_mux[] = {
2135 	MSIOF1_SS1_MARK,
2136 };
2137 static const unsigned int msiof1_ss2_pins[] = {
2138 	/* MSIOF1_SS2 */
2139 	RCAR_GP_PIN(1, 17),
2140 };
2141 static const unsigned int msiof1_ss2_mux[] = {
2142 	MSIOF1_SS2_MARK,
2143 };
2144 static const unsigned int msiof1_txd_pins[] = {
2145 	/* MSIOF1_TXD */
2146 	RCAR_GP_PIN(1, 13),
2147 };
2148 static const unsigned int msiof1_txd_mux[] = {
2149 	MSIOF1_TXD_MARK,
2150 };
2151 static const unsigned int msiof1_rxd_pins[] = {
2152 	/* MSIOF1_RXD */
2153 	RCAR_GP_PIN(1, 12),
2154 };
2155 static const unsigned int msiof1_rxd_mux[] = {
2156 	MSIOF1_RXD_MARK,
2157 };
2158 
2159 /* - MSIOF2 ----------------------------------------------------------------- */
2160 static const unsigned int msiof2_clk_pins[] = {
2161 	/* MSIOF2_SCK */
2162 	RCAR_GP_PIN(1, 20),
2163 };
2164 static const unsigned int msiof2_clk_mux[] = {
2165 	MSIOF2_SCK_MARK,
2166 };
2167 static const unsigned int msiof2_sync_pins[] = {
2168 	/* MSIOF2_SYNC */
2169 	RCAR_GP_PIN(1, 21),
2170 };
2171 static const unsigned int msiof2_sync_mux[] = {
2172 	MSIOF2_SYNC_MARK,
2173 };
2174 static const unsigned int msiof2_ss1_pins[] = {
2175 	/* MSIOF2_SS1 */
2176 	RCAR_GP_PIN(1, 22),
2177 };
2178 static const unsigned int msiof2_ss1_mux[] = {
2179 	MSIOF2_SS1_MARK,
2180 };
2181 static const unsigned int msiof2_ss2_pins[] = {
2182 	/* MSIOF2_SS2 */
2183 	RCAR_GP_PIN(1, 23),
2184 };
2185 static const unsigned int msiof2_ss2_mux[] = {
2186 	MSIOF2_SS2_MARK,
2187 };
2188 static const unsigned int msiof2_txd_pins[] = {
2189 	/* MSIOF2_TXD */
2190 	RCAR_GP_PIN(1, 19),
2191 };
2192 static const unsigned int msiof2_txd_mux[] = {
2193 	MSIOF2_TXD_MARK,
2194 };
2195 static const unsigned int msiof2_rxd_pins[] = {
2196 	/* MSIOF2_RXD */
2197 	RCAR_GP_PIN(1, 18),
2198 };
2199 static const unsigned int msiof2_rxd_mux[] = {
2200 	MSIOF2_RXD_MARK,
2201 };
2202 
2203 /* - MSIOF3 ----------------------------------------------------------------- */
2204 static const unsigned int msiof3_clk_pins[] = {
2205 	/* MSIOF3_SCK */
2206 	RCAR_GP_PIN(2, 20),
2207 };
2208 static const unsigned int msiof3_clk_mux[] = {
2209 	MSIOF3_SCK_MARK,
2210 };
2211 static const unsigned int msiof3_sync_pins[] = {
2212 	/* MSIOF3_SYNC */
2213 	RCAR_GP_PIN(2, 21),
2214 };
2215 static const unsigned int msiof3_sync_mux[] = {
2216 	MSIOF3_SYNC_MARK,
2217 };
2218 static const unsigned int msiof3_ss1_pins[] = {
2219 	/* MSIOF3_SS1 */
2220 	RCAR_GP_PIN(2, 16),
2221 };
2222 static const unsigned int msiof3_ss1_mux[] = {
2223 	MSIOF3_SS1_MARK,
2224 };
2225 static const unsigned int msiof3_ss2_pins[] = {
2226 	/* MSIOF3_SS2 */
2227 	RCAR_GP_PIN(2, 17),
2228 };
2229 static const unsigned int msiof3_ss2_mux[] = {
2230 	MSIOF3_SS2_MARK,
2231 };
2232 static const unsigned int msiof3_txd_pins[] = {
2233 	/* MSIOF3_TXD */
2234 	RCAR_GP_PIN(2, 19),
2235 };
2236 static const unsigned int msiof3_txd_mux[] = {
2237 	MSIOF3_TXD_MARK,
2238 };
2239 static const unsigned int msiof3_rxd_pins[] = {
2240 	/* MSIOF3_RXD */
2241 	RCAR_GP_PIN(2, 18),
2242 };
2243 static const unsigned int msiof3_rxd_mux[] = {
2244 	MSIOF3_RXD_MARK,
2245 };
2246 
2247 /* - MSIOF4 ----------------------------------------------------------------- */
2248 static const unsigned int msiof4_clk_pins[] = {
2249 	/* MSIOF4_SCK */
2250 	RCAR_GP_PIN(2, 6),
2251 };
2252 static const unsigned int msiof4_clk_mux[] = {
2253 	MSIOF4_SCK_MARK,
2254 };
2255 static const unsigned int msiof4_sync_pins[] = {
2256 	/* MSIOF4_SYNC */
2257 	RCAR_GP_PIN(2, 7),
2258 };
2259 static const unsigned int msiof4_sync_mux[] = {
2260 	MSIOF4_SYNC_MARK,
2261 };
2262 static const unsigned int msiof4_ss1_pins[] = {
2263 	/* MSIOF4_SS1 */
2264 	RCAR_GP_PIN(2, 8),
2265 };
2266 static const unsigned int msiof4_ss1_mux[] = {
2267 	MSIOF4_SS1_MARK,
2268 };
2269 static const unsigned int msiof4_ss2_pins[] = {
2270 	/* MSIOF4_SS2 */
2271 	RCAR_GP_PIN(2, 9),
2272 };
2273 static const unsigned int msiof4_ss2_mux[] = {
2274 	MSIOF4_SS2_MARK,
2275 };
2276 static const unsigned int msiof4_txd_pins[] = {
2277 	/* MSIOF4_TXD */
2278 	RCAR_GP_PIN(2, 5),
2279 };
2280 static const unsigned int msiof4_txd_mux[] = {
2281 	MSIOF4_TXD_MARK,
2282 };
2283 static const unsigned int msiof4_rxd_pins[] = {
2284 	/* MSIOF4_RXD */
2285 	RCAR_GP_PIN(2, 4),
2286 };
2287 static const unsigned int msiof4_rxd_mux[] = {
2288 	MSIOF4_RXD_MARK,
2289 };
2290 
2291 /* - MSIOF5 ----------------------------------------------------------------- */
2292 static const unsigned int msiof5_clk_pins[] = {
2293 	/* MSIOF5_SCK */
2294 	RCAR_GP_PIN(2, 12),
2295 };
2296 static const unsigned int msiof5_clk_mux[] = {
2297 	MSIOF5_SCK_MARK,
2298 };
2299 static const unsigned int msiof5_sync_pins[] = {
2300 	/* MSIOF5_SYNC */
2301 	RCAR_GP_PIN(2, 13),
2302 };
2303 static const unsigned int msiof5_sync_mux[] = {
2304 	MSIOF5_SYNC_MARK,
2305 };
2306 static const unsigned int msiof5_ss1_pins[] = {
2307 	/* MSIOF5_SS1 */
2308 	RCAR_GP_PIN(2, 14),
2309 };
2310 static const unsigned int msiof5_ss1_mux[] = {
2311 	MSIOF5_SS1_MARK,
2312 };
2313 static const unsigned int msiof5_ss2_pins[] = {
2314 	/* MSIOF5_SS2 */
2315 	RCAR_GP_PIN(2, 15),
2316 };
2317 static const unsigned int msiof5_ss2_mux[] = {
2318 	MSIOF5_SS2_MARK,
2319 };
2320 static const unsigned int msiof5_txd_pins[] = {
2321 	/* MSIOF5_TXD */
2322 	RCAR_GP_PIN(2, 11),
2323 };
2324 static const unsigned int msiof5_txd_mux[] = {
2325 	MSIOF5_TXD_MARK,
2326 };
2327 static const unsigned int msiof5_rxd_pins[] = {
2328 	/* MSIOF5_RXD */
2329 	RCAR_GP_PIN(2, 10),
2330 };
2331 static const unsigned int msiof5_rxd_mux[] = {
2332 	MSIOF5_RXD_MARK,
2333 };
2334 
2335 /* - PWM0 ------------------------------------------------------------------- */
2336 static const unsigned int pwm0_pins[] = {
2337 	/* PWM0 */
2338 	RCAR_GP_PIN(3, 5),
2339 };
2340 static const unsigned int pwm0_mux[] = {
2341 	PWM0_MARK,
2342 };
2343 
2344 /* - PWM1 ------------------------------------------------------------------- */
2345 static const unsigned int pwm1_pins[] = {
2346 	/* PWM1 */
2347 	RCAR_GP_PIN(3, 6),
2348 };
2349 static const unsigned int pwm1_mux[] = {
2350 	PWM1_MARK,
2351 };
2352 
2353 /* - PWM2 ------------------------------------------------------------------- */
2354 static const unsigned int pwm2_pins[] = {
2355 	/* PWM2 */
2356 	RCAR_GP_PIN(3, 7),
2357 };
2358 static const unsigned int pwm2_mux[] = {
2359 	PWM2_MARK,
2360 };
2361 
2362 /* - PWM3 ------------------------------------------------------------------- */
2363 static const unsigned int pwm3_pins[] = {
2364 	/* PWM3 */
2365 	RCAR_GP_PIN(3, 8),
2366 };
2367 static const unsigned int pwm3_mux[] = {
2368 	PWM3_MARK,
2369 };
2370 
2371 /* - PWM4 ------------------------------------------------------------------- */
2372 static const unsigned int pwm4_pins[] = {
2373 	/* PWM4 */
2374 	RCAR_GP_PIN(3, 9),
2375 };
2376 static const unsigned int pwm4_mux[] = {
2377 	PWM4_MARK,
2378 };
2379 
2380 /* - QSPI0 ------------------------------------------------------------------ */
2381 static const unsigned int qspi0_ctrl_pins[] = {
2382 	/* SPCLK, SSL */
2383 	RCAR_GP_PIN(0, 0), RCAR_GP_PIN(0, 5),
2384 };
2385 static const unsigned int qspi0_ctrl_mux[] = {
2386 	QSPI0_SPCLK_MARK, QSPI0_SSL_MARK,
2387 };
2388 static const unsigned int qspi0_data2_pins[] = {
2389 	/* MOSI_IO0, MISO_IO1 */
2390 	RCAR_GP_PIN(0, 1), RCAR_GP_PIN(0, 2),
2391 };
2392 static const unsigned int qspi0_data2_mux[] = {
2393 	QSPI0_MOSI_IO0_MARK, QSPI0_MISO_IO1_MARK,
2394 };
2395 static const unsigned int qspi0_data4_pins[] = {
2396 	/* MOSI_IO0, MISO_IO1, IO2, IO3 */
2397 	RCAR_GP_PIN(0, 1), RCAR_GP_PIN(0, 2),
2398 	RCAR_GP_PIN(0, 3), RCAR_GP_PIN(0, 4),
2399 };
2400 static const unsigned int qspi0_data4_mux[] = {
2401 	QSPI0_MOSI_IO0_MARK, QSPI0_MISO_IO1_MARK,
2402 	QSPI0_IO2_MARK, QSPI0_IO3_MARK
2403 };
2404 
2405 /* - QSPI1 ------------------------------------------------------------------ */
2406 static const unsigned int qspi1_ctrl_pins[] = {
2407 	/* SPCLK, SSL */
2408 	RCAR_GP_PIN(0, 6), RCAR_GP_PIN(0, 11),
2409 };
2410 static const unsigned int qspi1_ctrl_mux[] = {
2411 	QSPI1_SPCLK_MARK, QSPI1_SSL_MARK,
2412 };
2413 static const unsigned int qspi1_data2_pins[] = {
2414 	/* MOSI_IO0, MISO_IO1 */
2415 	RCAR_GP_PIN(0, 7), RCAR_GP_PIN(0, 8),
2416 };
2417 static const unsigned int qspi1_data2_mux[] = {
2418 	QSPI1_MOSI_IO0_MARK, QSPI1_MISO_IO1_MARK,
2419 };
2420 static const unsigned int qspi1_data4_pins[] = {
2421 	/* MOSI_IO0, MISO_IO1, IO2, IO3 */
2422 	RCAR_GP_PIN(0, 7), RCAR_GP_PIN(0, 8),
2423 	RCAR_GP_PIN(0, 9), RCAR_GP_PIN(0, 10),
2424 };
2425 static const unsigned int qspi1_data4_mux[] = {
2426 	QSPI1_MOSI_IO0_MARK, QSPI1_MISO_IO1_MARK,
2427 	QSPI1_IO2_MARK, QSPI1_IO3_MARK
2428 };
2429 
2430 /* - SCIF0 ------------------------------------------------------------------ */
2431 static const unsigned int scif0_data_pins[] = {
2432 	/* RX0, TX0 */
2433 	RCAR_GP_PIN(1, 1), RCAR_GP_PIN(1, 5),
2434 };
2435 static const unsigned int scif0_data_mux[] = {
2436 	RX0_MARK, TX0_MARK,
2437 };
2438 static const unsigned int scif0_clk_pins[] = {
2439 	/* SCK0 */
2440 	RCAR_GP_PIN(1, 2),
2441 };
2442 static const unsigned int scif0_clk_mux[] = {
2443 	SCK0_MARK,
2444 };
2445 static const unsigned int scif0_ctrl_pins[] = {
2446 	/* RTS0#, CTS0# */
2447 	RCAR_GP_PIN(1, 3), RCAR_GP_PIN(1, 4),
2448 };
2449 static const unsigned int scif0_ctrl_mux[] = {
2450 	RTS0_N_MARK, CTS0_N_MARK,
2451 };
2452 
2453 /* - SCIF1 ------------------------------------------------------------------ */
2454 static const unsigned int scif1_data_a_pins[] = {
2455 	/* RX, TX */
2456 	RCAR_GP_PIN(1, 21), RCAR_GP_PIN(1, 22),
2457 };
2458 static const unsigned int scif1_data_a_mux[] = {
2459 	RX1_A_MARK, TX1_A_MARK,
2460 };
2461 static const unsigned int scif1_data_b_pins[] = {
2462 	/* RX, TX */
2463 	RCAR_GP_PIN(3, 2), RCAR_GP_PIN(3, 1),
2464 };
2465 static const unsigned int scif1_data_b_mux[] = {
2466 	RX1_B_MARK, TX1_B_MARK,
2467 };
2468 static const unsigned int scif1_clk_pins[] = {
2469 	/* SCK1 */
2470 	RCAR_GP_PIN(1, 18),
2471 };
2472 static const unsigned int scif1_clk_mux[] = {
2473 	SCK1_MARK,
2474 };
2475 static const unsigned int scif1_ctrl_pins[] = {
2476 	/* RTS1#, CTS1# */
2477 	RCAR_GP_PIN(1, 20), RCAR_GP_PIN(1, 19),
2478 };
2479 static const unsigned int scif1_ctrl_mux[] = {
2480 	RTS1_N_MARK, CTS1_N_MARK,
2481 };
2482 
2483 /* - SCIF3 ------------------------------------------------------------------ */
2484 static const unsigned int scif3_data_pins[] = {
2485 	/* RX3, TX3 */
2486 	RCAR_GP_PIN(1, 16), RCAR_GP_PIN(1, 17),
2487 };
2488 static const unsigned int scif3_data_mux[] = {
2489 	RX3_MARK, TX3_MARK,
2490 };
2491 static const unsigned int scif3_clk_pins[] = {
2492 	/* SCK3 */
2493 	RCAR_GP_PIN(1, 13),
2494 };
2495 static const unsigned int scif3_clk_mux[] = {
2496 	SCK3_MARK,
2497 };
2498 static const unsigned int scif3_ctrl_pins[] = {
2499 	/* RTS3#, CTS3# */
2500 	RCAR_GP_PIN(1, 15), RCAR_GP_PIN(1, 14),
2501 };
2502 static const unsigned int scif3_ctrl_mux[] = {
2503 	RTS3_N_MARK, CTS3_N_MARK,
2504 };
2505 
2506 /* - SCIF4 ------------------------------------------------------------------ */
2507 static const unsigned int scif4_data_pins[] = {
2508 	/* RX4, TX4 */
2509 	RCAR_GP_PIN(2, 8), RCAR_GP_PIN(2, 9),
2510 };
2511 static const unsigned int scif4_data_mux[] = {
2512 	RX4_MARK, TX4_MARK,
2513 };
2514 static const unsigned int scif4_clk_pins[] = {
2515 	/* SCK4 */
2516 	RCAR_GP_PIN(2, 5),
2517 };
2518 static const unsigned int scif4_clk_mux[] = {
2519 	SCK4_MARK,
2520 };
2521 static const unsigned int scif4_ctrl_pins[] = {
2522 	/* RTS4#, CTS4# */
2523 	RCAR_GP_PIN(2, 7), RCAR_GP_PIN(2, 6),
2524 };
2525 static const unsigned int scif4_ctrl_mux[] = {
2526 	RTS4_N_MARK, CTS4_N_MARK,
2527 };
2528 
2529 /* - SCIF Clock ------------------------------------------------------------- */
2530 static const unsigned int scif_clk_pins[] = {
2531 	/* SCIF_CLK */
2532 	RCAR_GP_PIN(1, 0),
2533 };
2534 static const unsigned int scif_clk_mux[] = {
2535 	SCIF_CLK_MARK,
2536 };
2537 
2538 /* - TMU -------------------------------------------------------------------- */
2539 static const unsigned int tmu_tclk1_a_pins[] = {
2540 	/* TCLK1 */
2541 	RCAR_GP_PIN(2, 23),
2542 };
2543 static const unsigned int tmu_tclk1_a_mux[] = {
2544 	TCLK1_A_MARK,
2545 };
2546 static const unsigned int tmu_tclk1_b_pins[] = {
2547 	/* TCLK1 */
2548 	RCAR_GP_PIN(1, 23),
2549 };
2550 static const unsigned int tmu_tclk1_b_mux[] = {
2551 	TCLK1_B_MARK,
2552 };
2553 
2554 static const unsigned int tmu_tclk2_a_pins[] = {
2555 	/* TCLK2 */
2556 	RCAR_GP_PIN(2, 24),
2557 };
2558 static const unsigned int tmu_tclk2_a_mux[] = {
2559 	TCLK2_A_MARK,
2560 };
2561 static const unsigned int tmu_tclk2_b_pins[] = {
2562 	/* TCLK2 */
2563 	RCAR_GP_PIN(2, 10),
2564 };
2565 static const unsigned int tmu_tclk2_b_mux[] = {
2566 	TCLK2_B_MARK,
2567 };
2568 
2569 static const unsigned int tmu_tclk3_pins[] = {
2570 	/* TCLK3 */
2571 	RCAR_GP_PIN(2, 11),
2572 };
2573 static const unsigned int tmu_tclk3_mux[] = {
2574 	TCLK3_MARK,
2575 };
2576 
2577 static const unsigned int tmu_tclk4_pins[] = {
2578 	/* TCLK4 */
2579 	RCAR_GP_PIN(2, 12),
2580 };
2581 static const unsigned int tmu_tclk4_mux[] = {
2582 	TCLK4_MARK,
2583 };
2584 
2585 /* - TPU ------------------------------------------------------------------- */
2586 static const unsigned int tpu_to0_pins[] = {
2587 	/* TPU0TO0 */
2588 	RCAR_GP_PIN(2, 21),
2589 };
2590 static const unsigned int tpu_to0_mux[] = {
2591 	TPU0TO0_MARK,
2592 };
2593 static const unsigned int tpu_to1_pins[] = {
2594 	/* TPU0TO1 */
2595 	RCAR_GP_PIN(2, 22),
2596 };
2597 static const unsigned int tpu_to1_mux[] = {
2598 	TPU0TO1_MARK,
2599 };
2600 static const unsigned int tpu_to2_pins[] = {
2601 	/* TPU0TO2 */
2602 	RCAR_GP_PIN(3, 5),
2603 };
2604 static const unsigned int tpu_to2_mux[] = {
2605 	TPU0TO2_MARK,
2606 };
2607 static const unsigned int tpu_to3_pins[] = {
2608 	/* TPU0TO3 */
2609 	RCAR_GP_PIN(3, 6),
2610 };
2611 static const unsigned int tpu_to3_mux[] = {
2612 	TPU0TO3_MARK,
2613 };
2614 
2615 static const struct sh_pfc_pin_group pinmux_groups[] = {
2616 	SH_PFC_PIN_GROUP(avb0_link),
2617 	SH_PFC_PIN_GROUP(avb0_magic),
2618 	SH_PFC_PIN_GROUP(avb0_phy_int),
2619 	SH_PFC_PIN_GROUP(avb0_mdio),
2620 	SH_PFC_PIN_GROUP(avb0_rgmii),
2621 	SH_PFC_PIN_GROUP(avb0_txcrefclk),
2622 	SH_PFC_PIN_GROUP(avb0_avtp_pps),
2623 	SH_PFC_PIN_GROUP(avb0_avtp_capture),
2624 	SH_PFC_PIN_GROUP(avb0_avtp_match),
2625 
2626 	SH_PFC_PIN_GROUP(avb1_link),
2627 	SH_PFC_PIN_GROUP(avb1_magic),
2628 	SH_PFC_PIN_GROUP(avb1_phy_int),
2629 	SH_PFC_PIN_GROUP(avb1_mdio),
2630 	SH_PFC_PIN_GROUP(avb1_rgmii),
2631 	SH_PFC_PIN_GROUP(avb1_txcrefclk),
2632 	SH_PFC_PIN_GROUP(avb1_avtp_pps),
2633 	SH_PFC_PIN_GROUP(avb1_avtp_capture),
2634 	SH_PFC_PIN_GROUP(avb1_avtp_match),
2635 
2636 	SH_PFC_PIN_GROUP(avb2_link),
2637 	SH_PFC_PIN_GROUP(avb2_magic),
2638 	SH_PFC_PIN_GROUP(avb2_phy_int),
2639 	SH_PFC_PIN_GROUP(avb2_mdio),
2640 	SH_PFC_PIN_GROUP(avb2_rgmii),
2641 	SH_PFC_PIN_GROUP(avb2_txcrefclk),
2642 	SH_PFC_PIN_GROUP(avb2_avtp_pps),
2643 	SH_PFC_PIN_GROUP(avb2_avtp_capture),
2644 	SH_PFC_PIN_GROUP(avb2_avtp_match),
2645 
2646 	SH_PFC_PIN_GROUP(avb3_link),
2647 	SH_PFC_PIN_GROUP(avb3_magic),
2648 	SH_PFC_PIN_GROUP(avb3_phy_int),
2649 	SH_PFC_PIN_GROUP(avb3_mdio),
2650 	SH_PFC_PIN_GROUP(avb3_rgmii),
2651 	SH_PFC_PIN_GROUP(avb3_txcrefclk),
2652 	SH_PFC_PIN_GROUP(avb3_avtp_pps),
2653 	SH_PFC_PIN_GROUP(avb3_avtp_capture),
2654 	SH_PFC_PIN_GROUP(avb3_avtp_match),
2655 
2656 	SH_PFC_PIN_GROUP(avb4_link),
2657 	SH_PFC_PIN_GROUP(avb4_magic),
2658 	SH_PFC_PIN_GROUP(avb4_phy_int),
2659 	SH_PFC_PIN_GROUP(avb4_mdio),
2660 	SH_PFC_PIN_GROUP(avb4_rgmii),
2661 	SH_PFC_PIN_GROUP(avb4_txcrefclk),
2662 	SH_PFC_PIN_GROUP(avb4_avtp_pps),
2663 	SH_PFC_PIN_GROUP(avb4_avtp_capture),
2664 	SH_PFC_PIN_GROUP(avb4_avtp_match),
2665 
2666 	SH_PFC_PIN_GROUP(avb5_link),
2667 	SH_PFC_PIN_GROUP(avb5_magic),
2668 	SH_PFC_PIN_GROUP(avb5_phy_int),
2669 	SH_PFC_PIN_GROUP(avb5_mdio),
2670 	SH_PFC_PIN_GROUP(avb5_rgmii),
2671 	SH_PFC_PIN_GROUP(avb5_txcrefclk),
2672 	SH_PFC_PIN_GROUP(avb5_avtp_pps),
2673 	SH_PFC_PIN_GROUP(avb5_avtp_capture),
2674 	SH_PFC_PIN_GROUP(avb5_avtp_match),
2675 
2676 	SH_PFC_PIN_GROUP(canfd0_data),
2677 	SH_PFC_PIN_GROUP(canfd1_data),
2678 	SH_PFC_PIN_GROUP(canfd2_data),
2679 	SH_PFC_PIN_GROUP(canfd3_data),
2680 	SH_PFC_PIN_GROUP(canfd4_data),
2681 	SH_PFC_PIN_GROUP(canfd5_data),
2682 	SH_PFC_PIN_GROUP(canfd6_data),
2683 	SH_PFC_PIN_GROUP(canfd7_data),
2684 	SH_PFC_PIN_GROUP(can_clk),
2685 
2686 	SH_PFC_PIN_GROUP(du_rgb888),
2687 	SH_PFC_PIN_GROUP(du_clk_out),
2688 	SH_PFC_PIN_GROUP(du_sync),
2689 	SH_PFC_PIN_GROUP(du_oddf),
2690 
2691 	SH_PFC_PIN_GROUP(hscif0_data),
2692 	SH_PFC_PIN_GROUP(hscif0_clk),
2693 	SH_PFC_PIN_GROUP(hscif0_ctrl),
2694 	SH_PFC_PIN_GROUP(hscif1_data),
2695 	SH_PFC_PIN_GROUP(hscif1_clk),
2696 	SH_PFC_PIN_GROUP(hscif1_ctrl),
2697 	SH_PFC_PIN_GROUP(hscif2_data),
2698 	SH_PFC_PIN_GROUP(hscif2_clk),
2699 	SH_PFC_PIN_GROUP(hscif2_ctrl),
2700 	SH_PFC_PIN_GROUP(hscif3_data),
2701 	SH_PFC_PIN_GROUP(hscif3_clk),
2702 	SH_PFC_PIN_GROUP(hscif3_ctrl),
2703 
2704 	SH_PFC_PIN_GROUP(i2c0),
2705 	SH_PFC_PIN_GROUP(i2c1),
2706 	SH_PFC_PIN_GROUP(i2c2),
2707 	SH_PFC_PIN_GROUP(i2c3),
2708 	SH_PFC_PIN_GROUP(i2c4),
2709 	SH_PFC_PIN_GROUP(i2c5),
2710 	SH_PFC_PIN_GROUP(i2c6),
2711 
2712 	SH_PFC_PIN_GROUP(intc_ex_irq0),
2713 	SH_PFC_PIN_GROUP(intc_ex_irq1),
2714 	SH_PFC_PIN_GROUP(intc_ex_irq2),
2715 	SH_PFC_PIN_GROUP(intc_ex_irq3),
2716 	SH_PFC_PIN_GROUP(intc_ex_irq4),
2717 	SH_PFC_PIN_GROUP(intc_ex_irq5),
2718 
2719 	SH_PFC_PIN_GROUP(mmc_data1),
2720 	SH_PFC_PIN_GROUP(mmc_data4),
2721 	SH_PFC_PIN_GROUP(mmc_data8),
2722 	SH_PFC_PIN_GROUP(mmc_ctrl),
2723 	SH_PFC_PIN_GROUP(mmc_cd),
2724 	SH_PFC_PIN_GROUP(mmc_wp),
2725 	SH_PFC_PIN_GROUP(mmc_ds),
2726 
2727 	SH_PFC_PIN_GROUP(msiof0_clk),
2728 	SH_PFC_PIN_GROUP(msiof0_sync),
2729 	SH_PFC_PIN_GROUP(msiof0_ss1),
2730 	SH_PFC_PIN_GROUP(msiof0_ss2),
2731 	SH_PFC_PIN_GROUP(msiof0_txd),
2732 	SH_PFC_PIN_GROUP(msiof0_rxd),
2733 	SH_PFC_PIN_GROUP(msiof1_clk),
2734 	SH_PFC_PIN_GROUP(msiof1_sync),
2735 	SH_PFC_PIN_GROUP(msiof1_ss1),
2736 	SH_PFC_PIN_GROUP(msiof1_ss2),
2737 	SH_PFC_PIN_GROUP(msiof1_txd),
2738 	SH_PFC_PIN_GROUP(msiof1_rxd),
2739 	SH_PFC_PIN_GROUP(msiof2_clk),
2740 	SH_PFC_PIN_GROUP(msiof2_sync),
2741 	SH_PFC_PIN_GROUP(msiof2_ss1),
2742 	SH_PFC_PIN_GROUP(msiof2_ss2),
2743 	SH_PFC_PIN_GROUP(msiof2_txd),
2744 	SH_PFC_PIN_GROUP(msiof2_rxd),
2745 	SH_PFC_PIN_GROUP(msiof3_clk),
2746 	SH_PFC_PIN_GROUP(msiof3_sync),
2747 	SH_PFC_PIN_GROUP(msiof3_ss1),
2748 	SH_PFC_PIN_GROUP(msiof3_ss2),
2749 	SH_PFC_PIN_GROUP(msiof3_txd),
2750 	SH_PFC_PIN_GROUP(msiof3_rxd),
2751 	SH_PFC_PIN_GROUP(msiof4_clk),
2752 	SH_PFC_PIN_GROUP(msiof4_sync),
2753 	SH_PFC_PIN_GROUP(msiof4_ss1),
2754 	SH_PFC_PIN_GROUP(msiof4_ss2),
2755 	SH_PFC_PIN_GROUP(msiof4_txd),
2756 	SH_PFC_PIN_GROUP(msiof4_rxd),
2757 	SH_PFC_PIN_GROUP(msiof5_clk),
2758 	SH_PFC_PIN_GROUP(msiof5_sync),
2759 	SH_PFC_PIN_GROUP(msiof5_ss1),
2760 	SH_PFC_PIN_GROUP(msiof5_ss2),
2761 	SH_PFC_PIN_GROUP(msiof5_txd),
2762 	SH_PFC_PIN_GROUP(msiof5_rxd),
2763 
2764 	SH_PFC_PIN_GROUP(pwm0),
2765 	SH_PFC_PIN_GROUP(pwm1),
2766 	SH_PFC_PIN_GROUP(pwm2),
2767 	SH_PFC_PIN_GROUP(pwm3),
2768 	SH_PFC_PIN_GROUP(pwm4),
2769 
2770 	SH_PFC_PIN_GROUP(qspi0_ctrl),
2771 	SH_PFC_PIN_GROUP(qspi0_data2),
2772 	SH_PFC_PIN_GROUP(qspi0_data4),
2773 	SH_PFC_PIN_GROUP(qspi1_ctrl),
2774 	SH_PFC_PIN_GROUP(qspi1_data2),
2775 	SH_PFC_PIN_GROUP(qspi1_data4),
2776 
2777 	SH_PFC_PIN_GROUP(scif0_data),
2778 	SH_PFC_PIN_GROUP(scif0_clk),
2779 	SH_PFC_PIN_GROUP(scif0_ctrl),
2780 	SH_PFC_PIN_GROUP(scif1_data_a),
2781 	SH_PFC_PIN_GROUP(scif1_data_b),
2782 	SH_PFC_PIN_GROUP(scif1_clk),
2783 	SH_PFC_PIN_GROUP(scif1_ctrl),
2784 	SH_PFC_PIN_GROUP(scif3_data),
2785 	SH_PFC_PIN_GROUP(scif3_clk),
2786 	SH_PFC_PIN_GROUP(scif3_ctrl),
2787 	SH_PFC_PIN_GROUP(scif4_data),
2788 	SH_PFC_PIN_GROUP(scif4_clk),
2789 	SH_PFC_PIN_GROUP(scif4_ctrl),
2790 	SH_PFC_PIN_GROUP(scif_clk),
2791 
2792 	SH_PFC_PIN_GROUP(tmu_tclk1_a),
2793 	SH_PFC_PIN_GROUP(tmu_tclk1_b),
2794 	SH_PFC_PIN_GROUP(tmu_tclk2_a),
2795 	SH_PFC_PIN_GROUP(tmu_tclk2_b),
2796 	SH_PFC_PIN_GROUP(tmu_tclk3),
2797 	SH_PFC_PIN_GROUP(tmu_tclk4),
2798 
2799 	SH_PFC_PIN_GROUP(tpu_to0),
2800 	SH_PFC_PIN_GROUP(tpu_to1),
2801 	SH_PFC_PIN_GROUP(tpu_to2),
2802 	SH_PFC_PIN_GROUP(tpu_to3),
2803 };
2804 
2805 static const char * const avb0_groups[] = {
2806 	"avb0_link",
2807 	"avb0_magic",
2808 	"avb0_phy_int",
2809 	"avb0_mdio",
2810 	"avb0_rgmii",
2811 	"avb0_txcrefclk",
2812 	"avb0_avtp_pps",
2813 	"avb0_avtp_capture",
2814 	"avb0_avtp_match",
2815 };
2816 
2817 static const char * const avb1_groups[] = {
2818 	"avb1_link",
2819 	"avb1_magic",
2820 	"avb1_phy_int",
2821 	"avb1_mdio",
2822 	"avb1_rgmii",
2823 	"avb1_txcrefclk",
2824 	"avb1_avtp_pps",
2825 	"avb1_avtp_capture",
2826 	"avb1_avtp_match",
2827 };
2828 
2829 static const char * const avb2_groups[] = {
2830 	"avb2_link",
2831 	"avb2_magic",
2832 	"avb2_phy_int",
2833 	"avb2_mdio",
2834 	"avb2_rgmii",
2835 	"avb2_txcrefclk",
2836 	"avb2_avtp_pps",
2837 	"avb2_avtp_capture",
2838 	"avb2_avtp_match",
2839 };
2840 
2841 static const char * const avb3_groups[] = {
2842 	"avb3_link",
2843 	"avb3_magic",
2844 	"avb3_phy_int",
2845 	"avb3_mdio",
2846 	"avb3_rgmii",
2847 	"avb3_txcrefclk",
2848 	"avb3_avtp_pps",
2849 	"avb3_avtp_capture",
2850 	"avb3_avtp_match",
2851 };
2852 
2853 static const char * const avb4_groups[] = {
2854 	"avb4_link",
2855 	"avb4_magic",
2856 	"avb4_phy_int",
2857 	"avb4_mdio",
2858 	"avb4_rgmii",
2859 	"avb4_txcrefclk",
2860 	"avb4_avtp_pps",
2861 	"avb4_avtp_capture",
2862 	"avb4_avtp_match",
2863 };
2864 
2865 static const char * const avb5_groups[] = {
2866 	"avb5_link",
2867 	"avb5_magic",
2868 	"avb5_phy_int",
2869 	"avb5_mdio",
2870 	"avb5_rgmii",
2871 	"avb5_txcrefclk",
2872 	"avb5_avtp_pps",
2873 	"avb5_avtp_capture",
2874 	"avb5_avtp_match",
2875 };
2876 
2877 static const char * const canfd0_groups[] = {
2878 	"canfd0_data",
2879 };
2880 
2881 static const char * const canfd1_groups[] = {
2882 	"canfd1_data",
2883 };
2884 
2885 static const char * const canfd2_groups[] = {
2886 	"canfd2_data",
2887 };
2888 
2889 static const char * const canfd3_groups[] = {
2890 	"canfd3_data",
2891 };
2892 
2893 static const char * const canfd4_groups[] = {
2894 	"canfd4_data",
2895 };
2896 
2897 static const char * const canfd5_groups[] = {
2898 	"canfd5_data",
2899 };
2900 
2901 static const char * const canfd6_groups[] = {
2902 	"canfd6_data",
2903 };
2904 
2905 static const char * const canfd7_groups[] = {
2906 	"canfd7_data",
2907 };
2908 
2909 static const char * const can_clk_groups[] = {
2910 	"can_clk",
2911 };
2912 
2913 static const char * const du_groups[] = {
2914 	"du_rgb888",
2915 	"du_clk_out",
2916 	"du_sync",
2917 	"du_oddf",
2918 };
2919 
2920 static const char * const hscif0_groups[] = {
2921 	"hscif0_data",
2922 	"hscif0_clk",
2923 	"hscif0_ctrl",
2924 };
2925 
2926 static const char * const hscif1_groups[] = {
2927 	"hscif1_data",
2928 	"hscif1_clk",
2929 	"hscif1_ctrl",
2930 };
2931 
2932 static const char * const hscif2_groups[] = {
2933 	"hscif2_data",
2934 	"hscif2_clk",
2935 	"hscif2_ctrl",
2936 };
2937 
2938 static const char * const hscif3_groups[] = {
2939 	"hscif3_data",
2940 	"hscif3_clk",
2941 	"hscif3_ctrl",
2942 };
2943 
2944 static const char * const i2c0_groups[] = {
2945 	"i2c0",
2946 };
2947 
2948 static const char * const i2c1_groups[] = {
2949 	"i2c1",
2950 };
2951 
2952 static const char * const i2c2_groups[] = {
2953 	"i2c2",
2954 };
2955 
2956 static const char * const i2c3_groups[] = {
2957 	"i2c3",
2958 };
2959 
2960 static const char * const i2c4_groups[] = {
2961 	"i2c4",
2962 };
2963 
2964 static const char * const i2c5_groups[] = {
2965 	"i2c5",
2966 };
2967 
2968 static const char * const i2c6_groups[] = {
2969 	"i2c6",
2970 };
2971 
2972 static const char * const intc_ex_groups[] = {
2973 	"intc_ex_irq0",
2974 	"intc_ex_irq1",
2975 	"intc_ex_irq2",
2976 	"intc_ex_irq3",
2977 	"intc_ex_irq4",
2978 	"intc_ex_irq5",
2979 };
2980 
2981 static const char * const mmc_groups[] = {
2982 	"mmc_data1",
2983 	"mmc_data4",
2984 	"mmc_data8",
2985 	"mmc_ctrl",
2986 	"mmc_cd",
2987 	"mmc_wp",
2988 	"mmc_ds",
2989 };
2990 
2991 static const char * const msiof0_groups[] = {
2992 	"msiof0_clk",
2993 	"msiof0_sync",
2994 	"msiof0_ss1",
2995 	"msiof0_ss2",
2996 	"msiof0_txd",
2997 	"msiof0_rxd",
2998 };
2999 
3000 static const char * const msiof1_groups[] = {
3001 	"msiof1_clk",
3002 	"msiof1_sync",
3003 	"msiof1_ss1",
3004 	"msiof1_ss2",
3005 	"msiof1_txd",
3006 	"msiof1_rxd",
3007 };
3008 
3009 static const char * const msiof2_groups[] = {
3010 	"msiof2_clk",
3011 	"msiof2_sync",
3012 	"msiof2_ss1",
3013 	"msiof2_ss2",
3014 	"msiof2_txd",
3015 	"msiof2_rxd",
3016 };
3017 
3018 static const char * const msiof3_groups[] = {
3019 	"msiof3_clk",
3020 	"msiof3_sync",
3021 	"msiof3_ss1",
3022 	"msiof3_ss2",
3023 	"msiof3_txd",
3024 	"msiof3_rxd",
3025 };
3026 
3027 static const char * const msiof4_groups[] = {
3028 	"msiof4_clk",
3029 	"msiof4_sync",
3030 	"msiof4_ss1",
3031 	"msiof4_ss2",
3032 	"msiof4_txd",
3033 	"msiof4_rxd",
3034 };
3035 
3036 static const char * const msiof5_groups[] = {
3037 	"msiof5_clk",
3038 	"msiof5_sync",
3039 	"msiof5_ss1",
3040 	"msiof5_ss2",
3041 	"msiof5_txd",
3042 	"msiof5_rxd",
3043 };
3044 
3045 static const char * const pwm0_groups[] = {
3046 	"pwm0",
3047 };
3048 
3049 static const char * const pwm1_groups[] = {
3050 	"pwm1",
3051 };
3052 
3053 static const char * const pwm2_groups[] = {
3054 	"pwm2",
3055 };
3056 
3057 static const char * const pwm3_groups[] = {
3058 	"pwm3",
3059 };
3060 
3061 static const char * const pwm4_groups[] = {
3062 	"pwm4",
3063 };
3064 
3065 static const char * const qspi0_groups[] = {
3066 	"qspi0_ctrl",
3067 	"qspi0_data2",
3068 	"qspi0_data4",
3069 };
3070 
3071 static const char * const qspi1_groups[] = {
3072 	"qspi1_ctrl",
3073 	"qspi1_data2",
3074 	"qspi1_data4",
3075 };
3076 
3077 static const char * const scif0_groups[] = {
3078 	"scif0_data",
3079 	"scif0_clk",
3080 	"scif0_ctrl",
3081 };
3082 
3083 static const char * const scif1_groups[] = {
3084 	"scif1_data_a",
3085 	"scif1_data_b",
3086 	"scif1_clk",
3087 	"scif1_ctrl",
3088 };
3089 
3090 static const char * const scif3_groups[] = {
3091 	"scif3_data",
3092 	"scif3_clk",
3093 	"scif3_ctrl",
3094 };
3095 
3096 static const char * const scif4_groups[] = {
3097 	"scif4_data",
3098 	"scif4_clk",
3099 	"scif4_ctrl",
3100 };
3101 
3102 static const char * const scif_clk_groups[] = {
3103 	"scif_clk",
3104 };
3105 
3106 static const char * const tmu_groups[] = {
3107 	"tmu_tclk1_a",
3108 	"tmu_tclk1_b",
3109 	"tmu_tclk2_a",
3110 	"tmu_tclk2_b",
3111 	"tmu_tclk3",
3112 	"tmu_tclk4",
3113 };
3114 
3115 static const char * const tpu_groups[] = {
3116 	"tpu_to0",
3117 	"tpu_to1",
3118 	"tpu_to2",
3119 	"tpu_to3",
3120 };
3121 
3122 static const struct sh_pfc_function pinmux_functions[] = {
3123 	SH_PFC_FUNCTION(avb0),
3124 	SH_PFC_FUNCTION(avb1),
3125 	SH_PFC_FUNCTION(avb2),
3126 	SH_PFC_FUNCTION(avb3),
3127 	SH_PFC_FUNCTION(avb4),
3128 	SH_PFC_FUNCTION(avb5),
3129 
3130 	SH_PFC_FUNCTION(canfd0),
3131 	SH_PFC_FUNCTION(canfd1),
3132 	SH_PFC_FUNCTION(canfd2),
3133 	SH_PFC_FUNCTION(canfd3),
3134 	SH_PFC_FUNCTION(canfd4),
3135 	SH_PFC_FUNCTION(canfd5),
3136 	SH_PFC_FUNCTION(canfd6),
3137 	SH_PFC_FUNCTION(canfd7),
3138 	SH_PFC_FUNCTION(can_clk),
3139 
3140 	SH_PFC_FUNCTION(du),
3141 
3142 	SH_PFC_FUNCTION(hscif0),
3143 	SH_PFC_FUNCTION(hscif1),
3144 	SH_PFC_FUNCTION(hscif2),
3145 	SH_PFC_FUNCTION(hscif3),
3146 
3147 	SH_PFC_FUNCTION(i2c0),
3148 	SH_PFC_FUNCTION(i2c1),
3149 	SH_PFC_FUNCTION(i2c2),
3150 	SH_PFC_FUNCTION(i2c3),
3151 	SH_PFC_FUNCTION(i2c4),
3152 	SH_PFC_FUNCTION(i2c5),
3153 	SH_PFC_FUNCTION(i2c6),
3154 
3155 	SH_PFC_FUNCTION(intc_ex),
3156 
3157 	SH_PFC_FUNCTION(mmc),
3158 
3159 	SH_PFC_FUNCTION(msiof0),
3160 	SH_PFC_FUNCTION(msiof1),
3161 	SH_PFC_FUNCTION(msiof2),
3162 	SH_PFC_FUNCTION(msiof3),
3163 	SH_PFC_FUNCTION(msiof4),
3164 	SH_PFC_FUNCTION(msiof5),
3165 
3166 	SH_PFC_FUNCTION(pwm0),
3167 	SH_PFC_FUNCTION(pwm1),
3168 	SH_PFC_FUNCTION(pwm2),
3169 	SH_PFC_FUNCTION(pwm3),
3170 	SH_PFC_FUNCTION(pwm4),
3171 
3172 	SH_PFC_FUNCTION(qspi0),
3173 	SH_PFC_FUNCTION(qspi1),
3174 
3175 	SH_PFC_FUNCTION(scif0),
3176 	SH_PFC_FUNCTION(scif1),
3177 	SH_PFC_FUNCTION(scif3),
3178 	SH_PFC_FUNCTION(scif4),
3179 	SH_PFC_FUNCTION(scif_clk),
3180 
3181 	SH_PFC_FUNCTION(tmu),
3182 
3183 	SH_PFC_FUNCTION(tpu),
3184 };
3185 
3186 static const struct pinmux_cfg_reg pinmux_config_regs[] = {
3187 #define F_(x, y)	FN_##y
3188 #define FM(x)		FN_##x
3189 	{ PINMUX_CFG_REG("GPSR0", 0xe6058040, 32, 1, GROUP(
3190 		0, 0,
3191 		0, 0,
3192 		0, 0,
3193 		0, 0,
3194 		GP_0_27_FN,	GPSR0_27,
3195 		GP_0_26_FN,	GPSR0_26,
3196 		GP_0_25_FN,	GPSR0_25,
3197 		GP_0_24_FN,	GPSR0_24,
3198 		GP_0_23_FN,	GPSR0_23,
3199 		GP_0_22_FN,	GPSR0_22,
3200 		GP_0_21_FN,	GPSR0_21,
3201 		GP_0_20_FN,	GPSR0_20,
3202 		GP_0_19_FN,	GPSR0_19,
3203 		GP_0_18_FN,	GPSR0_18,
3204 		GP_0_17_FN,	GPSR0_17,
3205 		GP_0_16_FN,	GPSR0_16,
3206 		GP_0_15_FN,	GPSR0_15,
3207 		GP_0_14_FN,	GPSR0_14,
3208 		GP_0_13_FN,	GPSR0_13,
3209 		GP_0_12_FN,	GPSR0_12,
3210 		GP_0_11_FN,	GPSR0_11,
3211 		GP_0_10_FN,	GPSR0_10,
3212 		GP_0_9_FN,	GPSR0_9,
3213 		GP_0_8_FN,	GPSR0_8,
3214 		GP_0_7_FN,	GPSR0_7,
3215 		GP_0_6_FN,	GPSR0_6,
3216 		GP_0_5_FN,	GPSR0_5,
3217 		GP_0_4_FN,	GPSR0_4,
3218 		GP_0_3_FN,	GPSR0_3,
3219 		GP_0_2_FN,	GPSR0_2,
3220 		GP_0_1_FN,	GPSR0_1,
3221 		GP_0_0_FN,	GPSR0_0, ))
3222 	},
3223 	{ PINMUX_CFG_REG("GPSR1", 0xe6050040, 32, 1, GROUP(
3224 		0, 0,
3225 		GP_1_30_FN,	GPSR1_30,
3226 		GP_1_29_FN,	GPSR1_29,
3227 		GP_1_28_FN,	GPSR1_28,
3228 		GP_1_27_FN,	GPSR1_27,
3229 		GP_1_26_FN,	GPSR1_26,
3230 		GP_1_25_FN,	GPSR1_25,
3231 		GP_1_24_FN,	GPSR1_24,
3232 		GP_1_23_FN,	GPSR1_23,
3233 		GP_1_22_FN,	GPSR1_22,
3234 		GP_1_21_FN,	GPSR1_21,
3235 		GP_1_20_FN,	GPSR1_20,
3236 		GP_1_19_FN,	GPSR1_19,
3237 		GP_1_18_FN,	GPSR1_18,
3238 		GP_1_17_FN,	GPSR1_17,
3239 		GP_1_16_FN,	GPSR1_16,
3240 		GP_1_15_FN,	GPSR1_15,
3241 		GP_1_14_FN,	GPSR1_14,
3242 		GP_1_13_FN,	GPSR1_13,
3243 		GP_1_12_FN,	GPSR1_12,
3244 		GP_1_11_FN,	GPSR1_11,
3245 		GP_1_10_FN,	GPSR1_10,
3246 		GP_1_9_FN,	GPSR1_9,
3247 		GP_1_8_FN,	GPSR1_8,
3248 		GP_1_7_FN,	GPSR1_7,
3249 		GP_1_6_FN,	GPSR1_6,
3250 		GP_1_5_FN,	GPSR1_5,
3251 		GP_1_4_FN,	GPSR1_4,
3252 		GP_1_3_FN,	GPSR1_3,
3253 		GP_1_2_FN,	GPSR1_2,
3254 		GP_1_1_FN,	GPSR1_1,
3255 		GP_1_0_FN,	GPSR1_0, ))
3256 	},
3257 	{ PINMUX_CFG_REG("GPSR2", 0xe6050840, 32, 1, GROUP(
3258 		0, 0,
3259 		0, 0,
3260 		0, 0,
3261 		0, 0,
3262 		0, 0,
3263 		0, 0,
3264 		0, 0,
3265 		GP_2_24_FN,	GPSR2_24,
3266 		GP_2_23_FN,	GPSR2_23,
3267 		GP_2_22_FN,	GPSR2_22,
3268 		GP_2_21_FN,	GPSR2_21,
3269 		GP_2_20_FN,	GPSR2_20,
3270 		GP_2_19_FN,	GPSR2_19,
3271 		GP_2_18_FN,	GPSR2_18,
3272 		GP_2_17_FN,	GPSR2_17,
3273 		GP_2_16_FN,	GPSR2_16,
3274 		GP_2_15_FN,	GPSR2_15,
3275 		GP_2_14_FN,	GPSR2_14,
3276 		GP_2_13_FN,	GPSR2_13,
3277 		GP_2_12_FN,	GPSR2_12,
3278 		GP_2_11_FN,	GPSR2_11,
3279 		GP_2_10_FN,	GPSR2_10,
3280 		GP_2_9_FN,	GPSR2_9,
3281 		GP_2_8_FN,	GPSR2_8,
3282 		GP_2_7_FN,	GPSR2_7,
3283 		GP_2_6_FN,	GPSR2_6,
3284 		GP_2_5_FN,	GPSR2_5,
3285 		GP_2_4_FN,	GPSR2_4,
3286 		GP_2_3_FN,	GPSR2_3,
3287 		GP_2_2_FN,	GPSR2_2,
3288 		GP_2_1_FN,	GPSR2_1,
3289 		GP_2_0_FN,	GPSR2_0, ))
3290 	},
3291 	{ PINMUX_CFG_REG("GPSR3", 0xe6058840, 32, 1, GROUP(
3292 		0, 0,
3293 		0, 0,
3294 		0, 0,
3295 		0, 0,
3296 		0, 0,
3297 		0, 0,
3298 		0, 0,
3299 		0, 0,
3300 		0, 0,
3301 		0, 0,
3302 		0, 0,
3303 		0, 0,
3304 		0, 0,
3305 		0, 0,
3306 		0, 0,
3307 		GP_3_16_FN,	GPSR3_16,
3308 		GP_3_15_FN,	GPSR3_15,
3309 		GP_3_14_FN,	GPSR3_14,
3310 		GP_3_13_FN,	GPSR3_13,
3311 		GP_3_12_FN,	GPSR3_12,
3312 		GP_3_11_FN,	GPSR3_11,
3313 		GP_3_10_FN,	GPSR3_10,
3314 		GP_3_9_FN,	GPSR3_9,
3315 		GP_3_8_FN,	GPSR3_8,
3316 		GP_3_7_FN,	GPSR3_7,
3317 		GP_3_6_FN,	GPSR3_6,
3318 		GP_3_5_FN,	GPSR3_5,
3319 		GP_3_4_FN,	GPSR3_4,
3320 		GP_3_3_FN,	GPSR3_3,
3321 		GP_3_2_FN,	GPSR3_2,
3322 		GP_3_1_FN,	GPSR3_1,
3323 		GP_3_0_FN,	GPSR3_0, ))
3324 	},
3325 	{ PINMUX_CFG_REG("GPSR4", 0xe6060040, 32, 1, GROUP(
3326 		0, 0,
3327 		0, 0,
3328 		0, 0,
3329 		0, 0,
3330 		0, 0,
3331 		GP_4_26_FN,	GPSR4_26,
3332 		GP_4_25_FN,	GPSR4_25,
3333 		GP_4_24_FN,	GPSR4_24,
3334 		GP_4_23_FN,	GPSR4_23,
3335 		GP_4_22_FN,	GPSR4_22,
3336 		GP_4_21_FN,	GPSR4_21,
3337 		GP_4_20_FN,	GPSR4_20,
3338 		GP_4_19_FN,	GPSR4_19,
3339 		GP_4_18_FN,	GPSR4_18,
3340 		GP_4_17_FN,	GPSR4_17,
3341 		GP_4_16_FN,	GPSR4_16,
3342 		GP_4_15_FN,	GPSR4_15,
3343 		GP_4_14_FN,	GPSR4_14,
3344 		GP_4_13_FN,	GPSR4_13,
3345 		GP_4_12_FN,	GPSR4_12,
3346 		GP_4_11_FN,	GPSR4_11,
3347 		GP_4_10_FN,	GPSR4_10,
3348 		GP_4_9_FN,	GPSR4_9,
3349 		GP_4_8_FN,	GPSR4_8,
3350 		GP_4_7_FN,	GPSR4_7,
3351 		GP_4_6_FN,	GPSR4_6,
3352 		GP_4_5_FN,	GPSR4_5,
3353 		GP_4_4_FN,	GPSR4_4,
3354 		GP_4_3_FN,	GPSR4_3,
3355 		GP_4_2_FN,	GPSR4_2,
3356 		GP_4_1_FN,	GPSR4_1,
3357 		GP_4_0_FN,	GPSR4_0, ))
3358 	},
3359 	{ PINMUX_CFG_REG("GPSR5", 0xe6060840, 32, 1, GROUP(
3360 		0, 0,
3361 		0, 0,
3362 		0, 0,
3363 		0, 0,
3364 		0, 0,
3365 		0, 0,
3366 		0, 0,
3367 		0, 0,
3368 		0, 0,
3369 		0, 0,
3370 		0, 0,
3371 		GP_5_20_FN,	GPSR5_20,
3372 		GP_5_19_FN,	GPSR5_19,
3373 		GP_5_18_FN,	GPSR5_18,
3374 		GP_5_17_FN,	GPSR5_17,
3375 		GP_5_16_FN,	GPSR5_16,
3376 		GP_5_15_FN,	GPSR5_15,
3377 		GP_5_14_FN,	GPSR5_14,
3378 		GP_5_13_FN,	GPSR5_13,
3379 		GP_5_12_FN,	GPSR5_12,
3380 		GP_5_11_FN,	GPSR5_11,
3381 		GP_5_10_FN,	GPSR5_10,
3382 		GP_5_9_FN,	GPSR5_9,
3383 		GP_5_8_FN,	GPSR5_8,
3384 		GP_5_7_FN,	GPSR5_7,
3385 		GP_5_6_FN,	GPSR5_6,
3386 		GP_5_5_FN,	GPSR5_5,
3387 		GP_5_4_FN,	GPSR5_4,
3388 		GP_5_3_FN,	GPSR5_3,
3389 		GP_5_2_FN,	GPSR5_2,
3390 		GP_5_1_FN,	GPSR5_1,
3391 		GP_5_0_FN,	GPSR5_0, ))
3392 	},
3393 	{ PINMUX_CFG_REG("GPSR6", 0xe6068040, 32, 1, GROUP(
3394 		0, 0,
3395 		0, 0,
3396 		0, 0,
3397 		0, 0,
3398 		0, 0,
3399 		0, 0,
3400 		0, 0,
3401 		0, 0,
3402 		0, 0,
3403 		0, 0,
3404 		0, 0,
3405 		GP_6_20_FN,	GPSR6_20,
3406 		GP_6_19_FN,	GPSR6_19,
3407 		GP_6_18_FN,	GPSR6_18,
3408 		GP_6_17_FN,	GPSR6_17,
3409 		GP_6_16_FN,	GPSR6_16,
3410 		GP_6_15_FN,	GPSR6_15,
3411 		GP_6_14_FN,	GPSR6_14,
3412 		GP_6_13_FN,	GPSR6_13,
3413 		GP_6_12_FN,	GPSR6_12,
3414 		GP_6_11_FN,	GPSR6_11,
3415 		GP_6_10_FN,	GPSR6_10,
3416 		GP_6_9_FN,	GPSR6_9,
3417 		GP_6_8_FN,	GPSR6_8,
3418 		GP_6_7_FN,	GPSR6_7,
3419 		GP_6_6_FN,	GPSR6_6,
3420 		GP_6_5_FN,	GPSR6_5,
3421 		GP_6_4_FN,	GPSR6_4,
3422 		GP_6_3_FN,	GPSR6_3,
3423 		GP_6_2_FN,	GPSR6_2,
3424 		GP_6_1_FN,	GPSR6_1,
3425 		GP_6_0_FN,	GPSR6_0, ))
3426 	},
3427 	{ PINMUX_CFG_REG("GPSR7", 0xe6068840, 32, 1, GROUP(
3428 		0, 0,
3429 		0, 0,
3430 		0, 0,
3431 		0, 0,
3432 		0, 0,
3433 		0, 0,
3434 		0, 0,
3435 		0, 0,
3436 		0, 0,
3437 		0, 0,
3438 		0, 0,
3439 		GP_7_20_FN,	GPSR7_20,
3440 		GP_7_19_FN,	GPSR7_19,
3441 		GP_7_18_FN,	GPSR7_18,
3442 		GP_7_17_FN,	GPSR7_17,
3443 		GP_7_16_FN,	GPSR7_16,
3444 		GP_7_15_FN,	GPSR7_15,
3445 		GP_7_14_FN,	GPSR7_14,
3446 		GP_7_13_FN,	GPSR7_13,
3447 		GP_7_12_FN,	GPSR7_12,
3448 		GP_7_11_FN,	GPSR7_11,
3449 		GP_7_10_FN,	GPSR7_10,
3450 		GP_7_9_FN,	GPSR7_9,
3451 		GP_7_8_FN,	GPSR7_8,
3452 		GP_7_7_FN,	GPSR7_7,
3453 		GP_7_6_FN,	GPSR7_6,
3454 		GP_7_5_FN,	GPSR7_5,
3455 		GP_7_4_FN,	GPSR7_4,
3456 		GP_7_3_FN,	GPSR7_3,
3457 		GP_7_2_FN,	GPSR7_2,
3458 		GP_7_1_FN,	GPSR7_1,
3459 		GP_7_0_FN,	GPSR7_0, ))
3460 	},
3461 	{ PINMUX_CFG_REG("GPSR8", 0xe6069040, 32, 1, GROUP(
3462 		0, 0,
3463 		0, 0,
3464 		0, 0,
3465 		0, 0,
3466 		0, 0,
3467 		0, 0,
3468 		0, 0,
3469 		0, 0,
3470 		0, 0,
3471 		0, 0,
3472 		0, 0,
3473 		GP_8_20_FN,	GPSR8_20,
3474 		GP_8_19_FN,	GPSR8_19,
3475 		GP_8_18_FN,	GPSR8_18,
3476 		GP_8_17_FN,	GPSR8_17,
3477 		GP_8_16_FN,	GPSR8_16,
3478 		GP_8_15_FN,	GPSR8_15,
3479 		GP_8_14_FN,	GPSR8_14,
3480 		GP_8_13_FN,	GPSR8_13,
3481 		GP_8_12_FN,	GPSR8_12,
3482 		GP_8_11_FN,	GPSR8_11,
3483 		GP_8_10_FN,	GPSR8_10,
3484 		GP_8_9_FN,	GPSR8_9,
3485 		GP_8_8_FN,	GPSR8_8,
3486 		GP_8_7_FN,	GPSR8_7,
3487 		GP_8_6_FN,	GPSR8_6,
3488 		GP_8_5_FN,	GPSR8_5,
3489 		GP_8_4_FN,	GPSR8_4,
3490 		GP_8_3_FN,	GPSR8_3,
3491 		GP_8_2_FN,	GPSR8_2,
3492 		GP_8_1_FN,	GPSR8_1,
3493 		GP_8_0_FN,	GPSR8_0, ))
3494 	},
3495 	{ PINMUX_CFG_REG("GPSR9", 0xe6069840, 32, 1, GROUP(
3496 		0, 0,
3497 		0, 0,
3498 		0, 0,
3499 		0, 0,
3500 		0, 0,
3501 		0, 0,
3502 		0, 0,
3503 		0, 0,
3504 		0, 0,
3505 		0, 0,
3506 		0, 0,
3507 		GP_9_20_FN,	GPSR9_20,
3508 		GP_9_19_FN,	GPSR9_19,
3509 		GP_9_18_FN,	GPSR9_18,
3510 		GP_9_17_FN,	GPSR9_17,
3511 		GP_9_16_FN,	GPSR9_16,
3512 		GP_9_15_FN,	GPSR9_15,
3513 		GP_9_14_FN,	GPSR9_14,
3514 		GP_9_13_FN,	GPSR9_13,
3515 		GP_9_12_FN,	GPSR9_12,
3516 		GP_9_11_FN,	GPSR9_11,
3517 		GP_9_10_FN,	GPSR9_10,
3518 		GP_9_9_FN,	GPSR9_9,
3519 		GP_9_8_FN,	GPSR9_8,
3520 		GP_9_7_FN,	GPSR9_7,
3521 		GP_9_6_FN,	GPSR9_6,
3522 		GP_9_5_FN,	GPSR9_5,
3523 		GP_9_4_FN,	GPSR9_4,
3524 		GP_9_3_FN,	GPSR9_3,
3525 		GP_9_2_FN,	GPSR9_2,
3526 		GP_9_1_FN,	GPSR9_1,
3527 		GP_9_0_FN,	GPSR9_0, ))
3528 	},
3529 #undef F_
3530 #undef FM
3531 
3532 #define F_(x, y)	x,
3533 #define FM(x)		FN_##x,
3534 	{ PINMUX_CFG_REG("IP0SR1", 0xe6050060, 32, 4, GROUP(
3535 		IP0SR1_31_28
3536 		IP0SR1_27_24
3537 		IP0SR1_23_20
3538 		IP0SR1_19_16
3539 		IP0SR1_15_12
3540 		IP0SR1_11_8
3541 		IP0SR1_7_4
3542 		IP0SR1_3_0))
3543 	},
3544 	{ PINMUX_CFG_REG("IP1SR1", 0xe6050064, 32, 4, GROUP(
3545 		IP1SR1_31_28
3546 		IP1SR1_27_24
3547 		IP1SR1_23_20
3548 		IP1SR1_19_16
3549 		IP1SR1_15_12
3550 		IP1SR1_11_8
3551 		IP1SR1_7_4
3552 		IP1SR1_3_0))
3553 	},
3554 	{ PINMUX_CFG_REG("IP2SR1", 0xe6050068, 32, 4, GROUP(
3555 		IP2SR1_31_28
3556 		IP2SR1_27_24
3557 		IP2SR1_23_20
3558 		IP2SR1_19_16
3559 		IP2SR1_15_12
3560 		IP2SR1_11_8
3561 		IP2SR1_7_4
3562 		IP2SR1_3_0))
3563 	},
3564 	{ PINMUX_CFG_REG("IP3SR1", 0xe605006c, 32, 4, GROUP(
3565 		IP3SR1_31_28
3566 		IP3SR1_27_24
3567 		IP3SR1_23_20
3568 		IP3SR1_19_16
3569 		IP3SR1_15_12
3570 		IP3SR1_11_8
3571 		IP3SR1_7_4
3572 		IP3SR1_3_0))
3573 	},
3574 	{ PINMUX_CFG_REG("IP0SR2", 0xe6050860, 32, 4, GROUP(
3575 		IP0SR2_31_28
3576 		IP0SR2_27_24
3577 		IP0SR2_23_20
3578 		IP0SR2_19_16
3579 		IP0SR2_15_12
3580 		IP0SR2_11_8
3581 		IP0SR2_7_4
3582 		IP0SR2_3_0))
3583 	},
3584 	{ PINMUX_CFG_REG("IP1SR2", 0xe6050864, 32, 4, GROUP(
3585 		IP1SR2_31_28
3586 		IP1SR2_27_24
3587 		IP1SR2_23_20
3588 		IP1SR2_19_16
3589 		IP1SR2_15_12
3590 		IP1SR2_11_8
3591 		IP1SR2_7_4
3592 		IP1SR2_3_0))
3593 	},
3594 	{ PINMUX_CFG_REG("IP2SR2", 0xe6050868, 32, 4, GROUP(
3595 		IP2SR2_31_28
3596 		IP2SR2_27_24
3597 		IP2SR2_23_20
3598 		IP2SR2_19_16
3599 		IP2SR2_15_12
3600 		IP2SR2_11_8
3601 		IP2SR2_7_4
3602 		IP2SR2_3_0))
3603 	},
3604 	{ PINMUX_CFG_REG("IP0SR3", 0xe6058860, 32, 4, GROUP(
3605 		IP0SR3_31_28
3606 		IP0SR3_27_24
3607 		IP0SR3_23_20
3608 		IP0SR3_19_16
3609 		IP0SR3_15_12
3610 		IP0SR3_11_8
3611 		IP0SR3_7_4
3612 		IP0SR3_3_0))
3613 	},
3614 	{ PINMUX_CFG_REG("IP1SR3", 0xe6058864, 32, 4, GROUP(
3615 		IP1SR3_31_28
3616 		IP1SR3_27_24
3617 		IP1SR3_23_20
3618 		IP1SR3_19_16
3619 		IP1SR3_15_12
3620 		IP1SR3_11_8
3621 		IP1SR3_7_4
3622 		IP1SR3_3_0))
3623 	},
3624 	{ PINMUX_CFG_REG("IP0SR4", 0xe6060060, 32, 4, GROUP(
3625 		IP0SR4_31_28
3626 		IP0SR4_27_24
3627 		IP0SR4_23_20
3628 		IP0SR4_19_16
3629 		IP0SR4_15_12
3630 		IP0SR4_11_8
3631 		IP0SR4_7_4
3632 		IP0SR4_3_0))
3633 	},
3634 	{ PINMUX_CFG_REG("IP1SR4", 0xe6060064, 32, 4, GROUP(
3635 		IP1SR4_31_28
3636 		IP1SR4_27_24
3637 		IP1SR4_23_20
3638 		IP1SR4_19_16
3639 		IP1SR4_15_12
3640 		IP1SR4_11_8
3641 		IP1SR4_7_4
3642 		IP1SR4_3_0))
3643 	},
3644 	{ PINMUX_CFG_REG("IP2SR4", 0xe6060068, 32, 4, GROUP(
3645 		IP2SR4_31_28
3646 		IP2SR4_27_24
3647 		IP2SR4_23_20
3648 		IP2SR4_19_16
3649 		IP2SR4_15_12
3650 		IP2SR4_11_8
3651 		IP2SR4_7_4
3652 		IP2SR4_3_0))
3653 	},
3654 	{ PINMUX_CFG_REG("IP0SR5", 0xe6060860, 32, 4, GROUP(
3655 		IP0SR5_31_28
3656 		IP0SR5_27_24
3657 		IP0SR5_23_20
3658 		IP0SR5_19_16
3659 		IP0SR5_15_12
3660 		IP0SR5_11_8
3661 		IP0SR5_7_4
3662 		IP0SR5_3_0))
3663 	},
3664 	{ PINMUX_CFG_REG("IP1SR5", 0xe6060864, 32, 4, GROUP(
3665 		IP1SR5_31_28
3666 		IP1SR5_27_24
3667 		IP1SR5_23_20
3668 		IP1SR5_19_16
3669 		IP1SR5_15_12
3670 		IP1SR5_11_8
3671 		IP1SR5_7_4
3672 		IP1SR5_3_0))
3673 	},
3674 	{ PINMUX_CFG_REG("IP2SR5", 0xe6060868, 32, 4, GROUP(
3675 		IP2SR5_31_28
3676 		IP2SR5_27_24
3677 		IP2SR5_23_20
3678 		IP2SR5_19_16
3679 		IP2SR5_15_12
3680 		IP2SR5_11_8
3681 		IP2SR5_7_4
3682 		IP2SR5_3_0))
3683 	},
3684 #undef F_
3685 #undef FM
3686 
3687 #define F_(x, y)	x,
3688 #define FM(x)		FN_##x,
3689 	{ PINMUX_CFG_REG_VAR("MOD_SEL2", 0xe6050900, 32,
3690 			     GROUP(4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 1, 1),
3691 			     GROUP(
3692 		/* RESERVED 31, 30, 29, 28 */
3693 		0, 0, 0, 0, 0, 0, 0, 0,	0, 0, 0, 0, 0, 0, 0, 0,
3694 		/* RESERVED 27, 26, 25, 24 */
3695 		0, 0, 0, 0, 0, 0, 0, 0,	0, 0, 0, 0, 0, 0, 0, 0,
3696 		/* RESERVED 23, 22, 21, 20 */
3697 		0, 0, 0, 0, 0, 0, 0, 0,	0, 0, 0, 0, 0, 0, 0, 0,
3698 		/* RESERVED 19, 18, 17, 16 */
3699 		0, 0, 0, 0, 0, 0, 0, 0,	0, 0, 0, 0, 0, 0, 0, 0,
3700 		MOD_SEL2_14_15
3701 		MOD_SEL2_12_13
3702 		MOD_SEL2_10_11
3703 		MOD_SEL2_8_9
3704 		MOD_SEL2_6_7
3705 		MOD_SEL2_4_5
3706 		MOD_SEL2_2_3
3707 		0, 0,
3708 		0, 0, ))
3709 	},
3710 	{ },
3711 };
3712 
3713 static const struct pinmux_drive_reg pinmux_drive_regs[] = {
3714 	{ PINMUX_DRIVE_REG("DRV0CTRL0", 0xe6058080) {
3715 		{ RCAR_GP_PIN(0,  7), 28, 2 },	/* QSPI1_MOSI_IO0 */
3716 		{ RCAR_GP_PIN(0,  6), 24, 2 },	/* QSPI1_SPCLK */
3717 		{ RCAR_GP_PIN(0,  5), 20, 2 },	/* QSPI0_SSL */
3718 		{ RCAR_GP_PIN(0,  4), 16, 2 },	/* QSPI0_IO3 */
3719 		{ RCAR_GP_PIN(0,  3), 12, 2 },	/* QSPI0_IO2 */
3720 		{ RCAR_GP_PIN(0,  2),  8, 2 },	/* QSPI0_MISO_IO1 */
3721 		{ RCAR_GP_PIN(0,  1),  4, 2 },	/* QSPI0_MOSI_IO0 */
3722 		{ RCAR_GP_PIN(0,  0),  0, 2 },	/* QSPI0_SPCLK */
3723 	} },
3724 	{ PINMUX_DRIVE_REG("DRV1CTRL0", 0xe6058084) {
3725 		{ RCAR_GP_PIN(0, 15), 28, 3 },	/* SD_WP */
3726 		{ RCAR_GP_PIN(0, 14), 24, 2 },	/* RPC_INT_N */
3727 		{ RCAR_GP_PIN(0, 13), 20, 2 },	/* RPC_WP_N */
3728 		{ RCAR_GP_PIN(0, 12), 16, 2 },	/* RPC_RESET_N */
3729 		{ RCAR_GP_PIN(0, 11), 12, 2 },	/* QSPI1_SSL */
3730 		{ RCAR_GP_PIN(0, 10),  8, 2 },	/* QSPI1_IO3 */
3731 		{ RCAR_GP_PIN(0,  9),  4, 2 },	/* QSPI1_IO2 */
3732 		{ RCAR_GP_PIN(0,  8),  0, 2 },	/* QSPI1_MISO_IO1 */
3733 	} },
3734 	{ PINMUX_DRIVE_REG("DRV2CTRL0", 0xe6058088) {
3735 		{ RCAR_GP_PIN(0, 23), 28, 3 },	/* MMC_SD_CLK */
3736 		{ RCAR_GP_PIN(0, 22), 24, 3 },	/* MMC_SD_D3 */
3737 		{ RCAR_GP_PIN(0, 21), 20, 3 },	/* MMC_SD_D2 */
3738 		{ RCAR_GP_PIN(0, 20), 16, 3 },	/* MMC_SD_D1 */
3739 		{ RCAR_GP_PIN(0, 19), 12, 3 },	/* MMC_SD_D0 */
3740 		{ RCAR_GP_PIN(0, 18),  8, 3 },	/* MMC_SD_CMD */
3741 		{ RCAR_GP_PIN(0, 17),  4, 3 },	/* MMC_DS */
3742 		{ RCAR_GP_PIN(0, 16),  0, 3 },	/* SD_CD */
3743 	} },
3744 	{ PINMUX_DRIVE_REG("DRV3CTRL0", 0xe605808c) {
3745 		{ RCAR_GP_PIN(0, 27), 12, 3 },	/* MMC_D7 */
3746 		{ RCAR_GP_PIN(0, 26),  8, 3 },	/* MMC_D6 */
3747 		{ RCAR_GP_PIN(0, 25),  4, 3 },	/* MMC_D5 */
3748 		{ RCAR_GP_PIN(0, 24),  0, 3 },	/* MMC_D4 */
3749 	} },
3750 	{ PINMUX_DRIVE_REG("DRV0CTRL1", 0xe6050080) {
3751 		{ RCAR_GP_PIN(1,  7), 28, 3 },	/* MSIOF0_TXD */
3752 		{ RCAR_GP_PIN(1,  6), 24, 3 },	/* MSIOF0_RXD */
3753 		{ RCAR_GP_PIN(1,  5), 20, 3 },	/* HTX0 */
3754 		{ RCAR_GP_PIN(1,  4), 16, 3 },	/* HCTS0_N */
3755 		{ RCAR_GP_PIN(1,  3), 12, 3 },	/* HRTS0_N */
3756 		{ RCAR_GP_PIN(1,  2),  8, 3 },	/* HSCK0 */
3757 		{ RCAR_GP_PIN(1,  1),  4, 3 },	/* HRX0 */
3758 		{ RCAR_GP_PIN(1,  0),  0, 3 },	/* SCIF_CLK */
3759 	} },
3760 	{ PINMUX_DRIVE_REG("DRV1CTRL1", 0xe6050084) {
3761 		{ RCAR_GP_PIN(1, 15), 28, 3 },	/* MSIOF1_SYNC */
3762 		{ RCAR_GP_PIN(1, 14), 24, 3 },	/* MSIOF1_SCK */
3763 		{ RCAR_GP_PIN(1, 13), 20, 3 },	/* MSIOF1_TXD */
3764 		{ RCAR_GP_PIN(1, 12), 16, 3 },	/* MSIOF1_RXD */
3765 		{ RCAR_GP_PIN(1, 11), 12, 3 },	/* MSIOF0_SS2 */
3766 		{ RCAR_GP_PIN(1, 10),  8, 3 },	/* MSIOF0_SS1 */
3767 		{ RCAR_GP_PIN(1,  9),  4, 3 },	/* MSIOF0_SYNC */
3768 		{ RCAR_GP_PIN(1,  8),  0, 3 },	/* MSIOF0_SCK */
3769 	} },
3770 	{ PINMUX_DRIVE_REG("DRV2CTRL1", 0xe6050088) {
3771 		{ RCAR_GP_PIN(1, 23), 28, 3 },	/* MSIOF2_SS2 */
3772 		{ RCAR_GP_PIN(1, 22), 24, 3 },	/* MSIOF2_SS1 */
3773 		{ RCAR_GP_PIN(1, 21), 20, 3 },	/* MSIOF2_SYNC */
3774 		{ RCAR_GP_PIN(1, 20), 16, 3 },	/* MSIOF2_SCK */
3775 		{ RCAR_GP_PIN(1, 19), 12, 3 },	/* MSIOF2_TXD */
3776 		{ RCAR_GP_PIN(1, 18),  8, 3 },	/* MSIOF2_RXD */
3777 		{ RCAR_GP_PIN(1, 17),  4, 3 },	/* MSIOF1_SS2 */
3778 		{ RCAR_GP_PIN(1, 16),  0, 3 },	/* MSIOF1_SS1 */
3779 	} },
3780 	{ PINMUX_DRIVE_REG("DRV3CTRL1", 0xe605008c) {
3781 		{ RCAR_GP_PIN(1, 30), 24, 3 },	/* GP1_30 */
3782 		{ RCAR_GP_PIN(1, 29), 20, 3 },	/* GP1_29 */
3783 		{ RCAR_GP_PIN(1, 28), 16, 3 },	/* GP1_28 */
3784 		{ RCAR_GP_PIN(1, 27), 12, 3 },	/* IRQ3 */
3785 		{ RCAR_GP_PIN(1, 26),  8, 3 },	/* IRQ2 */
3786 		{ RCAR_GP_PIN(1, 25),  4, 3 },	/* IRQ1 */
3787 		{ RCAR_GP_PIN(1, 24),  0, 3 },	/* IRQ0 */
3788 	} },
3789 	{ PINMUX_DRIVE_REG("DRV0CTRL2", 0xe6050880) {
3790 		{ RCAR_GP_PIN(2,  7), 28, 3 },	/* GP2_07 */
3791 		{ RCAR_GP_PIN(2,  6), 24, 3 },	/* GP2_06 */
3792 		{ RCAR_GP_PIN(2,  5), 20, 3 },	/* GP2_05 */
3793 		{ RCAR_GP_PIN(2,  4), 16, 3 },	/* GP2_04 */
3794 		{ RCAR_GP_PIN(2,  3), 12, 3 },	/* GP2_03 */
3795 		{ RCAR_GP_PIN(2,  2),  8, 3 },	/* GP2_02 */
3796 		{ RCAR_GP_PIN(2,  1),  4, 2 },	/* IPC_CLKOUT */
3797 		{ RCAR_GP_PIN(2,  0),  0, 2 },	/* IPC_CLKIN */
3798 	} },
3799 	{ PINMUX_DRIVE_REG("DRV1CTRL2", 0xe6050884) {
3800 		{ RCAR_GP_PIN(2, 15), 28, 3 },	/* GP2_15 */
3801 		{ RCAR_GP_PIN(2, 14), 24, 3 },	/* GP2_14 */
3802 		{ RCAR_GP_PIN(2, 13), 20, 3 },	/* GP2_13 */
3803 		{ RCAR_GP_PIN(2, 12), 16, 3 },	/* GP2_12 */
3804 		{ RCAR_GP_PIN(2, 11), 12, 3 },	/* GP2_11 */
3805 		{ RCAR_GP_PIN(2, 10),  8, 3 },	/* GP2_10 */
3806 		{ RCAR_GP_PIN(2,  9),  4, 3 },	/* GP2_9 */
3807 		{ RCAR_GP_PIN(2,  8),  0, 3 },	/* GP2_8 */
3808 	} },
3809 	{ PINMUX_DRIVE_REG("DRV2CTRL2", 0xe6050888) {
3810 		{ RCAR_GP_PIN(2, 23), 28, 3 },	/* TCLK1_A */
3811 		{ RCAR_GP_PIN(2, 22), 24, 3 },	/* TPU0TO1 */
3812 		{ RCAR_GP_PIN(2, 21), 20, 3 },	/* TPU0TO0 */
3813 		{ RCAR_GP_PIN(2, 20), 16, 3 },	/* CLK_EXTFXR */
3814 		{ RCAR_GP_PIN(2, 19), 12, 3 },	/* RXDB_EXTFXR */
3815 		{ RCAR_GP_PIN(2, 18),  8, 3 },	/* FXR_TXDB */
3816 		{ RCAR_GP_PIN(2, 17),  4, 3 },	/* RXDA_EXTFXR_A */
3817 		{ RCAR_GP_PIN(2, 16),  0, 3 },	/* FXR_TXDA_A */
3818 	} },
3819 	{ PINMUX_DRIVE_REG("DRV3CTRL2", 0xe605088c) {
3820 		{ RCAR_GP_PIN(2, 24), 0, 3 },	/* TCLK2_A */
3821 	} },
3822 	{ PINMUX_DRIVE_REG("DRV0CTRL3", 0xe6058880) {
3823 		{ RCAR_GP_PIN(3,  7), 28, 3 },	/* CANFD3_TX */
3824 		{ RCAR_GP_PIN(3,  6), 24, 3 },	/* CANFD2_RX */
3825 		{ RCAR_GP_PIN(3,  5), 20, 3 },	/* CANFD2_TX */
3826 		{ RCAR_GP_PIN(3,  4), 16, 3 },	/* CANFD1_RX */
3827 		{ RCAR_GP_PIN(3,  3), 12, 3 },	/* CANFD1_TX */
3828 		{ RCAR_GP_PIN(3,  2),  8, 3 },	/* CANFD0_RX */
3829 		{ RCAR_GP_PIN(3,  1),  4, 2 },	/* CANFD0_TX */
3830 		{ RCAR_GP_PIN(3,  0),  0, 2 },	/* CAN_CLK */
3831 	} },
3832 	{ PINMUX_DRIVE_REG("DRV1CTRL3", 0xe6058884) {
3833 		{ RCAR_GP_PIN(3, 15), 28, 3 },	/* CANFD7_TX */
3834 		{ RCAR_GP_PIN(3, 14), 24, 3 },	/* CANFD6_RX */
3835 		{ RCAR_GP_PIN(3, 13), 20, 3 },	/* CANFD6_TX */
3836 		{ RCAR_GP_PIN(3, 12), 16, 3 },	/* CANFD5_RX */
3837 		{ RCAR_GP_PIN(3, 11), 12, 3 },	/* CANFD5_TX */
3838 		{ RCAR_GP_PIN(3, 10),  8, 3 },	/* CANFD4_RX */
3839 		{ RCAR_GP_PIN(3,  9),  4, 3 },	/* CANFD4_TX*/
3840 		{ RCAR_GP_PIN(3,  8),  0, 3 },	/* CANFD3_RX */
3841 	} },
3842 	{ PINMUX_DRIVE_REG("DRV2CTRL3", 0xe6058888) {
3843 		{ RCAR_GP_PIN(3,  16),  0, 3 },	/* CANFD7_RX */
3844 	} },
3845 	{ PINMUX_DRIVE_REG("DRV0CTRL4", 0xe6060080) {
3846 		{ RCAR_GP_PIN(4,  7), 28, 3 },	/* AVB0_TXC */
3847 		{ RCAR_GP_PIN(4,  6), 24, 3 },	/* AVB0_TX_CTL */
3848 		{ RCAR_GP_PIN(4,  5), 20, 3 },	/* AVB0_RD3 */
3849 		{ RCAR_GP_PIN(4,  4), 16, 3 },	/* AVB0_RD2 */
3850 		{ RCAR_GP_PIN(4,  3), 12, 3 },	/* AVB0_RD1 */
3851 		{ RCAR_GP_PIN(4,  2),  8, 3 },	/* AVB0_RD0 */
3852 		{ RCAR_GP_PIN(4,  1),  4, 3 },	/* AVB0_RXC */
3853 		{ RCAR_GP_PIN(4,  0),  0, 3 },	/* AVB0_RX_CTL */
3854 	} },
3855 	{ PINMUX_DRIVE_REG("DRV1CTRL4", 0xe6060084) {
3856 		{ RCAR_GP_PIN(4, 15), 28, 3 },	/* AVB0_MAGIC */
3857 		{ RCAR_GP_PIN(4, 14), 24, 3 },	/* AVB0_MDC */
3858 		{ RCAR_GP_PIN(4, 13), 20, 3 },	/* AVB0_MDIO */
3859 		{ RCAR_GP_PIN(4, 12), 16, 3 },	/* AVB0_TXCREFCLK */
3860 		{ RCAR_GP_PIN(4, 11), 12, 3 },	/* AVB0_TD3 */
3861 		{ RCAR_GP_PIN(4, 10),  8, 3 },	/* AVB0_TD2 */
3862 		{ RCAR_GP_PIN(4,  9),  4, 3 },	/* AVB0_TD1*/
3863 		{ RCAR_GP_PIN(4,  8),  0, 3 },	/* AVB0_TD0 */
3864 	} },
3865 	{ PINMUX_DRIVE_REG("DRV2CTRL4", 0xe6060088) {
3866 		{ RCAR_GP_PIN(4, 23), 28, 3 },	/* PCIE2_CLKREQ_N */
3867 		{ RCAR_GP_PIN(4, 22), 24, 3 },	/* PCIE1_CLKREQ_N */
3868 		{ RCAR_GP_PIN(4, 21), 20, 3 },	/* PCIE0_CLKREQ_N */
3869 		{ RCAR_GP_PIN(4, 20), 16, 3 },	/* AVB0_AVTP_PPS */
3870 		{ RCAR_GP_PIN(4, 19), 12, 3 },	/* AVB0_AVTP_CAPTURE */
3871 		{ RCAR_GP_PIN(4, 18),  8, 3 },	/* AVB0_AVTP_MATCH */
3872 		{ RCAR_GP_PIN(4, 17),  4, 3 },	/* AVB0_LINK */
3873 		{ RCAR_GP_PIN(4, 16),  0, 3 },	/* AVB0_PHY_INT */
3874 	} },
3875 	{ PINMUX_DRIVE_REG("DRV3CTRL4", 0xe606008c) {
3876 		{ RCAR_GP_PIN(4, 26),  8, 3 },	/* AVS1 */
3877 		{ RCAR_GP_PIN(4, 25),  4, 3 },	/* AVS0 */
3878 		{ RCAR_GP_PIN(4, 24),  0, 3 },	/* PCIE3_CLKREQ_N */
3879 	} },
3880 	{ PINMUX_DRIVE_REG("DRV0CTRL5", 0xe6060880) {
3881 		{ RCAR_GP_PIN(5,  7), 28, 3 },	/* AVB1_TXC */
3882 		{ RCAR_GP_PIN(5,  6), 24, 3 },	/* AVB1_TX_CTL */
3883 		{ RCAR_GP_PIN(5,  5), 20, 3 },	/* AVB1_RD3 */
3884 		{ RCAR_GP_PIN(5,  4), 16, 3 },	/* AVB1_RD2 */
3885 		{ RCAR_GP_PIN(5,  3), 12, 3 },	/* AVB1_RD1 */
3886 		{ RCAR_GP_PIN(5,  2),  8, 3 },	/* AVB1_RD0 */
3887 		{ RCAR_GP_PIN(5,  1),  4, 3 },	/* AVB1_RXC */
3888 		{ RCAR_GP_PIN(5,  0),  0, 3 },	/* AVB1_RX_CTL */
3889 	} },
3890 	{ PINMUX_DRIVE_REG("DRV1CTRL5", 0xe6060884) {
3891 		{ RCAR_GP_PIN(5, 15), 28, 3 },	/* AVB1_MAGIC */
3892 		{ RCAR_GP_PIN(5, 14), 24, 3 },	/* AVB1_MDC */
3893 		{ RCAR_GP_PIN(5, 13), 20, 3 },	/* AVB1_MDIO */
3894 		{ RCAR_GP_PIN(5, 12), 16, 3 },	/* AVB1_TXCREFCLK */
3895 		{ RCAR_GP_PIN(5, 11), 12, 3 },	/* AVB1_TD3 */
3896 		{ RCAR_GP_PIN(5, 10),  8, 3 },	/* AVB1_TD2 */
3897 		{ RCAR_GP_PIN(5,  9),  4, 3 },	/* AVB1_TD1*/
3898 		{ RCAR_GP_PIN(5,  8),  0, 3 },	/* AVB1_TD0 */
3899 	} },
3900 	{ PINMUX_DRIVE_REG("DRV2CTRL5", 0xe6060888) {
3901 		{ RCAR_GP_PIN(5, 20), 16, 3 },	/* AVB1_AVTP_PPS */
3902 		{ RCAR_GP_PIN(5, 19), 12, 3 },	/* AVB1_AVTP_CAPTURE */
3903 		{ RCAR_GP_PIN(5, 18),  8, 3 },	/* AVB1_AVTP_MATCH */
3904 		{ RCAR_GP_PIN(5, 17),  4, 3 },	/* AVB1_LINK */
3905 		{ RCAR_GP_PIN(5, 16),  0, 3 },	/* AVB1_PHY_INT */
3906 	} },
3907 	{ PINMUX_DRIVE_REG("DRV0CTRL6", 0xe6068080) {
3908 		{ RCAR_GP_PIN(6,  7), 28, 3 },	/* AVB2_TXC */
3909 		{ RCAR_GP_PIN(6,  6), 24, 3 },	/* AVB2_TX_CTL */
3910 		{ RCAR_GP_PIN(6,  5), 20, 3 },	/* AVB2_RD3 */
3911 		{ RCAR_GP_PIN(6,  4), 16, 3 },	/* AVB2_RD2 */
3912 		{ RCAR_GP_PIN(6,  3), 12, 3 },	/* AVB2_RD1 */
3913 		{ RCAR_GP_PIN(6,  2),  8, 3 },	/* AVB2_RD0 */
3914 		{ RCAR_GP_PIN(6,  1),  4, 3 },	/* AVB2_RXC */
3915 		{ RCAR_GP_PIN(6,  0),  0, 3 },	/* AVB2_RX_CTL */
3916 	} },
3917 	{ PINMUX_DRIVE_REG("DRV1CTRL6", 0xe6068084) {
3918 		{ RCAR_GP_PIN(6, 15), 28, 3 },	/* AVB2_MAGIC */
3919 		{ RCAR_GP_PIN(6, 14), 24, 3 },	/* AVB2_MDC */
3920 		{ RCAR_GP_PIN(6, 13), 20, 3 },	/* AVB2_MDIO */
3921 		{ RCAR_GP_PIN(6, 12), 16, 3 },	/* AVB2_TXCREFCLK */
3922 		{ RCAR_GP_PIN(6, 11), 12, 3 },	/* AVB2_TD3 */
3923 		{ RCAR_GP_PIN(6, 10),  8, 3 },	/* AVB2_TD2 */
3924 		{ RCAR_GP_PIN(6,  9),  4, 3 },	/* AVB2_TD1*/
3925 		{ RCAR_GP_PIN(6,  8),  0, 3 },	/* AVB2_TD0 */
3926 	} },
3927 	{ PINMUX_DRIVE_REG("DRV2CTRL6", 0xe6068088) {
3928 		{ RCAR_GP_PIN(6, 20), 16, 3 },	/* AVB2_AVTP_PPS */
3929 		{ RCAR_GP_PIN(6, 19), 12, 3 },	/* AVB2_AVTP_CAPTURE */
3930 		{ RCAR_GP_PIN(6, 18),  8, 3 },	/* AVB2_AVTP_MATCH */
3931 		{ RCAR_GP_PIN(6, 17),  4, 3 },	/* AVB2_LINK */
3932 		{ RCAR_GP_PIN(6, 16),  0, 3 },	/* AVB2_PHY_INT */
3933 	} },
3934 	{ PINMUX_DRIVE_REG("DRV0CTRL7", 0xe6068880) {
3935 		{ RCAR_GP_PIN(7,  7), 28, 3 },	/* AVB3_TXC */
3936 		{ RCAR_GP_PIN(7,  6), 24, 3 },	/* AVB3_TX_CTL */
3937 		{ RCAR_GP_PIN(7,  5), 20, 3 },	/* AVB3_RD3 */
3938 		{ RCAR_GP_PIN(7,  4), 16, 3 },	/* AVB3_RD2 */
3939 		{ RCAR_GP_PIN(7,  3), 12, 3 },	/* AVB3_RD1 */
3940 		{ RCAR_GP_PIN(7,  2),  8, 3 },	/* AVB3_RD0 */
3941 		{ RCAR_GP_PIN(7,  1),  4, 3 },	/* AVB3_RXC */
3942 		{ RCAR_GP_PIN(7,  0),  0, 3 },	/* AVB3_RX_CTL */
3943 	} },
3944 	{ PINMUX_DRIVE_REG("DRV1CTRL7", 0xe6068884) {
3945 		{ RCAR_GP_PIN(7, 15), 28, 3 },	/* AVB3_MAGIC */
3946 		{ RCAR_GP_PIN(7, 14), 24, 3 },	/* AVB3_MDC */
3947 		{ RCAR_GP_PIN(7, 13), 20, 3 },	/* AVB3_MDIO */
3948 		{ RCAR_GP_PIN(7, 12), 16, 3 },	/* AVB3_TXCREFCLK */
3949 		{ RCAR_GP_PIN(7, 11), 12, 3 },	/* AVB3_TD3 */
3950 		{ RCAR_GP_PIN(7, 10),  8, 3 },	/* AVB3_TD2 */
3951 		{ RCAR_GP_PIN(7,  9),  4, 3 },	/* AVB3_TD1*/
3952 		{ RCAR_GP_PIN(7,  8),  0, 3 },	/* AVB3_TD0 */
3953 	} },
3954 	{ PINMUX_DRIVE_REG("DRV2CTRL7", 0xe6068888) {
3955 		{ RCAR_GP_PIN(7, 20), 16, 3 },	/* AVB3_AVTP_PPS */
3956 		{ RCAR_GP_PIN(7, 19), 12, 3 },	/* AVB3_AVTP_CAPTURE */
3957 		{ RCAR_GP_PIN(7, 18),  8, 3 },	/* AVB3_AVTP_MATCH */
3958 		{ RCAR_GP_PIN(7, 17),  4, 3 },	/* AVB3_LINK */
3959 		{ RCAR_GP_PIN(7, 16),  0, 3 },	/* AVB3_PHY_INT */
3960 	} },
3961 	{ PINMUX_DRIVE_REG("DRV0CTRL8", 0xe6069080) {
3962 		{ RCAR_GP_PIN(8,  7), 28, 3 },	/* AVB4_TXC */
3963 		{ RCAR_GP_PIN(8,  6), 24, 3 },	/* AVB4_TX_CTL */
3964 		{ RCAR_GP_PIN(8,  5), 20, 3 },	/* AVB4_RD3 */
3965 		{ RCAR_GP_PIN(8,  4), 16, 3 },	/* AVB4_RD2 */
3966 		{ RCAR_GP_PIN(8,  3), 12, 3 },	/* AVB4_RD1 */
3967 		{ RCAR_GP_PIN(8,  2),  8, 3 },	/* AVB4_RD0 */
3968 		{ RCAR_GP_PIN(8,  1),  4, 3 },	/* AVB4_RXC */
3969 		{ RCAR_GP_PIN(8,  0),  0, 3 },	/* AVB4_RX_CTL */
3970 	} },
3971 	{ PINMUX_DRIVE_REG("DRV1CTRL8", 0xe6069084) {
3972 		{ RCAR_GP_PIN(8, 15), 28, 3 },	/* AVB4_MAGIC */
3973 		{ RCAR_GP_PIN(8, 14), 24, 3 },	/* AVB4_MDC */
3974 		{ RCAR_GP_PIN(8, 13), 20, 3 },	/* AVB4_MDIO */
3975 		{ RCAR_GP_PIN(8, 12), 16, 3 },	/* AVB4_TXCREFCLK */
3976 		{ RCAR_GP_PIN(8, 11), 12, 3 },	/* AVB4_TD3 */
3977 		{ RCAR_GP_PIN(8, 10),  8, 3 },	/* AVB4_TD2 */
3978 		{ RCAR_GP_PIN(8,  9),  4, 3 },	/* AVB4_TD1*/
3979 		{ RCAR_GP_PIN(8,  8),  0, 3 },	/* AVB4_TD0 */
3980 	} },
3981 	{ PINMUX_DRIVE_REG("DRV2CTRL8", 0xe6069088) {
3982 		{ RCAR_GP_PIN(8, 20), 16, 3 },	/* AVB4_AVTP_PPS */
3983 		{ RCAR_GP_PIN(8, 19), 12, 3 },	/* AVB4_AVTP_CAPTURE */
3984 		{ RCAR_GP_PIN(8, 18),  8, 3 },	/* AVB4_AVTP_MATCH */
3985 		{ RCAR_GP_PIN(8, 17),  4, 3 },	/* AVB4_LINK */
3986 		{ RCAR_GP_PIN(8, 16),  0, 3 },	/* AVB4_PHY_INT */
3987 	} },
3988 	{ PINMUX_DRIVE_REG("DRV0CTRL9", 0xe6069880) {
3989 		{ RCAR_GP_PIN(9,  7), 28, 3 },	/* AVB5_TXC */
3990 		{ RCAR_GP_PIN(9,  6), 24, 3 },	/* AVB5_TX_CTL */
3991 		{ RCAR_GP_PIN(9,  5), 20, 3 },	/* AVB5_RD3 */
3992 		{ RCAR_GP_PIN(9,  4), 16, 3 },	/* AVB5_RD2 */
3993 		{ RCAR_GP_PIN(9,  3), 12, 3 },	/* AVB5_RD1 */
3994 		{ RCAR_GP_PIN(9,  2),  8, 3 },	/* AVB5_RD0 */
3995 		{ RCAR_GP_PIN(9,  1),  4, 3 },	/* AVB5_RXC */
3996 		{ RCAR_GP_PIN(9,  0),  0, 3 },	/* AVB5_RX_CTL */
3997 	} },
3998 	{ PINMUX_DRIVE_REG("DRV1CTRL9", 0xe6069884) {
3999 		{ RCAR_GP_PIN(9, 15), 28, 3 },	/* AVB5_MAGIC */
4000 		{ RCAR_GP_PIN(9, 14), 24, 3 },	/* AVB5_MDC */
4001 		{ RCAR_GP_PIN(9, 13), 20, 3 },	/* AVB5_MDIO */
4002 		{ RCAR_GP_PIN(9, 12), 16, 3 },	/* AVB5_TXCREFCLK */
4003 		{ RCAR_GP_PIN(9, 11), 12, 3 },	/* AVB5_TD3 */
4004 		{ RCAR_GP_PIN(9, 10),  8, 3 },	/* AVB5_TD2 */
4005 		{ RCAR_GP_PIN(9,  9),  4, 3 },	/* AVB5_TD1*/
4006 		{ RCAR_GP_PIN(9,  8),  0, 3 },	/* AVB5_TD0 */
4007 	} },
4008 	{ PINMUX_DRIVE_REG("DRV2CTRL9", 0xe6069888) {
4009 		{ RCAR_GP_PIN(9, 20), 16, 3 },	/* AVB5_AVTP_PPS */
4010 		{ RCAR_GP_PIN(9, 19), 12, 3 },	/* AVB5_AVTP_CAPTURE */
4011 		{ RCAR_GP_PIN(9, 18),  8, 3 },	/* AVB5_AVTP_MATCH */
4012 		{ RCAR_GP_PIN(9, 17),  4, 3 },	/* AVB5_LINK */
4013 		{ RCAR_GP_PIN(9, 16),  0, 3 },	/* AVB5_PHY_INT */
4014 	} },
4015 	{ },
4016 };
4017 
4018 enum ioctrl_regs {
4019 	POC0,
4020 	POC1,
4021 	POC2,
4022 	POC4,
4023 	POC5,
4024 	POC6,
4025 	POC7,
4026 	POC8,
4027 	POC9,
4028 	TD1SEL0,
4029 };
4030 
4031 static const struct pinmux_ioctrl_reg pinmux_ioctrl_regs[] = {
4032 	[POC0] = { 0xe60580a0, },
4033 	[POC1] = { 0xe60500a0, },
4034 	[POC2] = { 0xe60508a0, },
4035 	[POC4] = { 0xe60600a0, },
4036 	[POC5] = { 0xe60608a0, },
4037 	[POC6] = { 0xe60680a0, },
4038 	[POC7] = { 0xe60688a0, },
4039 	[POC8] = { 0xe60690a0, },
4040 	[POC9] = { 0xe60698a0, },
4041 	[TD1SEL0] = { 0xe6058124, },
4042 	{ /* sentinel */ },
4043 };
4044 
4045 static int r8a779a0_pin_to_pocctrl(struct sh_pfc *pfc, unsigned int pin,
4046 				   u32 *pocctrl)
4047 {
4048 	int bit = pin & 0x1f;
4049 
4050 	*pocctrl = pinmux_ioctrl_regs[POC0].reg;
4051 	if (pin >= RCAR_GP_PIN(0, 15) && pin <= RCAR_GP_PIN(0, 27))
4052 		return bit;
4053 
4054 	*pocctrl = pinmux_ioctrl_regs[POC1].reg;
4055 	if (pin >= RCAR_GP_PIN(1, 0) && pin <= RCAR_GP_PIN(1, 30))
4056 		return bit;
4057 
4058 	*pocctrl = pinmux_ioctrl_regs[POC2].reg;
4059 	if (pin >= RCAR_GP_PIN(2, 2) && pin <= RCAR_GP_PIN(2, 15))
4060 		return bit;
4061 
4062 	*pocctrl = pinmux_ioctrl_regs[POC4].reg;
4063 	if (pin >= RCAR_GP_PIN(4, 0) && pin <= RCAR_GP_PIN(4, 17))
4064 		return bit;
4065 
4066 	*pocctrl = pinmux_ioctrl_regs[POC5].reg;
4067 	if (pin >= RCAR_GP_PIN(5, 0) && pin <= RCAR_GP_PIN(5, 17))
4068 		return bit;
4069 
4070 	*pocctrl = pinmux_ioctrl_regs[POC6].reg;
4071 	if (pin >= RCAR_GP_PIN(6, 0) && pin <= RCAR_GP_PIN(6, 17))
4072 		return bit;
4073 
4074 	*pocctrl = pinmux_ioctrl_regs[POC7].reg;
4075 	if (pin >= RCAR_GP_PIN(7, 0) && pin <= RCAR_GP_PIN(7, 17))
4076 		return bit;
4077 
4078 	*pocctrl = pinmux_ioctrl_regs[POC8].reg;
4079 	if (pin >= RCAR_GP_PIN(8, 0) && pin <= RCAR_GP_PIN(8, 17))
4080 		return bit;
4081 
4082 	*pocctrl = pinmux_ioctrl_regs[POC9].reg;
4083 	if (pin >= RCAR_GP_PIN(9, 0) && pin <= RCAR_GP_PIN(9, 17))
4084 		return bit;
4085 
4086 	return -EINVAL;
4087 }
4088 
4089 static const struct pinmux_bias_reg pinmux_bias_regs[] = {
4090 	{ PINMUX_BIAS_REG("PUEN0", 0xe60580c0, "PUD0", 0xe60580e0) {
4091 		[ 0] = RCAR_GP_PIN(0,  0),	/* QSPI0_SPCLK */
4092 		[ 1] = RCAR_GP_PIN(0,  1),	/* QSPI0_MOSI_IO0 */
4093 		[ 2] = RCAR_GP_PIN(0,  2),	/* QSPI0_MISO_IO1 */
4094 		[ 3] = RCAR_GP_PIN(0,  3),	/* QSPI0_IO2 */
4095 		[ 4] = RCAR_GP_PIN(0,  4),	/* QSPI0_IO3 */
4096 		[ 5] = RCAR_GP_PIN(0,  5),	/* QSPI0_SSL */
4097 		[ 6] = RCAR_GP_PIN(0,  6),	/* QSPI1_SPCLK */
4098 		[ 7] = RCAR_GP_PIN(0,  7),	/* QSPI1_MOSI_IO0 */
4099 		[ 8] = RCAR_GP_PIN(0,  8),	/* QSPI1_MISO_IO1 */
4100 		[ 9] = RCAR_GP_PIN(0,  9),	/* QSPI1_IO2 */
4101 		[10] = RCAR_GP_PIN(0, 10),	/* QSPI1_IO3 */
4102 		[11] = RCAR_GP_PIN(0, 11),	/* QSPI1_SSL */
4103 		[12] = RCAR_GP_PIN(0, 12),	/* RPC_RESET_N */
4104 		[13] = RCAR_GP_PIN(0, 13),	/* RPC_WP_N */
4105 		[14] = RCAR_GP_PIN(0, 14),	/* RPC_INT_N */
4106 		[15] = RCAR_GP_PIN(0, 15),	/* SD_WP */
4107 		[16] = RCAR_GP_PIN(0, 16),	/* SD_CD */
4108 		[17] = RCAR_GP_PIN(0, 17),	/* MMC_DS */
4109 		[18] = RCAR_GP_PIN(0, 18),	/* MMC_SD_CMD */
4110 		[19] = RCAR_GP_PIN(0, 19),	/* MMC_SD_D0 */
4111 		[20] = RCAR_GP_PIN(0, 20),	/* MMC_SD_D1 */
4112 		[21] = RCAR_GP_PIN(0, 21),	/* MMC_SD_D2 */
4113 		[22] = RCAR_GP_PIN(0, 22),	/* MMC_SD_D3 */
4114 		[23] = RCAR_GP_PIN(0, 23),	/* MMC_SD_CLK */
4115 		[24] = RCAR_GP_PIN(0, 24),	/* MMC_D4 */
4116 		[25] = RCAR_GP_PIN(0, 25),	/* MMC_D5 */
4117 		[26] = RCAR_GP_PIN(0, 26),	/* MMC_D6 */
4118 		[27] = RCAR_GP_PIN(0, 27),	/* MMC_D7 */
4119 		[28] = SH_PFC_PIN_NONE,
4120 		[29] = SH_PFC_PIN_NONE,
4121 		[30] = SH_PFC_PIN_NONE,
4122 		[31] = SH_PFC_PIN_NONE,
4123 	} },
4124 	{ PINMUX_BIAS_REG("PUEN1", 0xe60500c0, "PUD1", 0xe60500e0) {
4125 		[ 0] = RCAR_GP_PIN(1,  0),	/* SCIF_CLK */
4126 		[ 1] = RCAR_GP_PIN(1,  1),	/* HRX0 */
4127 		[ 2] = RCAR_GP_PIN(1,  2),	/* HSCK0 */
4128 		[ 3] = RCAR_GP_PIN(1,  3),	/* HRTS0_N */
4129 		[ 4] = RCAR_GP_PIN(1,  4),	/* HCTS0_N */
4130 		[ 5] = RCAR_GP_PIN(1,  5),	/* HTX0 */
4131 		[ 6] = RCAR_GP_PIN(1,  6),	/* MSIOF0_RXD */
4132 		[ 7] = RCAR_GP_PIN(1,  7),	/* MSIOF0_TXD */
4133 		[ 8] = RCAR_GP_PIN(1,  8),	/* MSIOF0_SCK */
4134 		[ 9] = RCAR_GP_PIN(1,  9),	/* MSIOF0_SYNC */
4135 		[10] = RCAR_GP_PIN(1, 10),	/* MSIOF0_SS1 */
4136 		[11] = RCAR_GP_PIN(1, 11),	/* MSIOF0_SS2 */
4137 		[12] = RCAR_GP_PIN(1, 12),	/* MSIOF1_RXD */
4138 		[13] = RCAR_GP_PIN(1, 13),	/* MSIOF1_TXD */
4139 		[14] = RCAR_GP_PIN(1, 14),	/* MSIOF1_SCK */
4140 		[15] = RCAR_GP_PIN(1, 15),	/* MSIOF1_SYNC */
4141 		[16] = RCAR_GP_PIN(1, 16),	/* MSIOF1_SS1 */
4142 		[17] = RCAR_GP_PIN(1, 17),	/* MSIOF1_SS2 */
4143 		[18] = RCAR_GP_PIN(1, 18),	/* MSIOF2_RXD */
4144 		[19] = RCAR_GP_PIN(1, 19),	/* MSIOF2_TXD */
4145 		[20] = RCAR_GP_PIN(1, 20),	/* MSIOF2_SCK */
4146 		[21] = RCAR_GP_PIN(1, 21),	/* MSIOF2_SYNC */
4147 		[22] = RCAR_GP_PIN(1, 22),	/* MSIOF2_SS1 */
4148 		[23] = RCAR_GP_PIN(1, 23),	/* MSIOF2_SS2 */
4149 		[24] = RCAR_GP_PIN(1, 24),	/* IRQ0 */
4150 		[25] = RCAR_GP_PIN(1, 25),	/* IRQ1 */
4151 		[26] = RCAR_GP_PIN(1, 26),	/* IRQ2 */
4152 		[27] = RCAR_GP_PIN(1, 27),	/* IRQ3 */
4153 		[28] = RCAR_GP_PIN(1, 28),	/* GP1_28 */
4154 		[29] = RCAR_GP_PIN(1, 29),	/* GP1_29 */
4155 		[30] = RCAR_GP_PIN(1, 30),	/* GP1_30 */
4156 		[31] = SH_PFC_PIN_NONE,
4157 	} },
4158 	{ PINMUX_BIAS_REG("PUEN2", 0xe60508c0, "PUD2", 0xe60508e0) {
4159 		[ 0] = RCAR_GP_PIN(2,  0),	/* IPC_CLKIN */
4160 		[ 1] = RCAR_GP_PIN(2,  1),	/* IPC_CLKOUT */
4161 		[ 2] = RCAR_GP_PIN(2,  2),	/* GP2_02 */
4162 		[ 3] = RCAR_GP_PIN(2,  3),	/* GP2_03 */
4163 		[ 4] = RCAR_GP_PIN(2,  4),	/* GP2_04 */
4164 		[ 5] = RCAR_GP_PIN(2,  5),	/* GP2_05 */
4165 		[ 6] = RCAR_GP_PIN(2,  6),	/* GP2_06 */
4166 		[ 7] = RCAR_GP_PIN(2,  7),	/* GP2_07 */
4167 		[ 8] = RCAR_GP_PIN(2,  8),	/* GP2_08 */
4168 		[ 9] = RCAR_GP_PIN(2,  9),	/* GP2_09 */
4169 		[10] = RCAR_GP_PIN(2, 10),	/* GP2_10 */
4170 		[11] = RCAR_GP_PIN(2, 11),	/* GP2_11 */
4171 		[12] = RCAR_GP_PIN(2, 12),	/* GP2_12 */
4172 		[13] = RCAR_GP_PIN(2, 13),	/* GP2_13 */
4173 		[14] = RCAR_GP_PIN(2, 14),	/* GP2_14 */
4174 		[15] = RCAR_GP_PIN(2, 15),	/* GP2_15 */
4175 		[16] = RCAR_GP_PIN(2, 16),	/* FXR_TXDA_A */
4176 		[17] = RCAR_GP_PIN(2, 17),	/* RXDA_EXTFXR_A */
4177 		[18] = RCAR_GP_PIN(2, 18),	/* FXR_TXDB */
4178 		[19] = RCAR_GP_PIN(2, 19),	/* RXDB_EXTFXR */
4179 		[20] = RCAR_GP_PIN(2, 20),	/* CLK_EXTFXR */
4180 		[21] = RCAR_GP_PIN(2, 21),	/* TPU0TO0 */
4181 		[22] = RCAR_GP_PIN(2, 22),	/* TPU0TO1 */
4182 		[23] = RCAR_GP_PIN(2, 23),	/* TCLK1_A */
4183 		[24] = RCAR_GP_PIN(2, 24),	/* TCLK2_A */
4184 		[25] = SH_PFC_PIN_NONE,
4185 		[26] = SH_PFC_PIN_NONE,
4186 		[27] = SH_PFC_PIN_NONE,
4187 		[28] = SH_PFC_PIN_NONE,
4188 		[29] = SH_PFC_PIN_NONE,
4189 		[30] = SH_PFC_PIN_NONE,
4190 		[31] = SH_PFC_PIN_NONE,
4191 	} },
4192 	{ PINMUX_BIAS_REG("PUEN3", 0xe60588c0, "PUD3", 0xe60588e0) {
4193 		[ 0] = RCAR_GP_PIN(3,  0),	/* CAN_CLK */
4194 		[ 1] = RCAR_GP_PIN(3,  1),	/* CANFD0_TX */
4195 		[ 2] = RCAR_GP_PIN(3,  2),	/* CANFD0_RX */
4196 		[ 3] = RCAR_GP_PIN(3,  3),	/* CANFD1_TX */
4197 		[ 4] = RCAR_GP_PIN(3,  4),	/* CANFD1_RX */
4198 		[ 5] = RCAR_GP_PIN(3,  5),	/* CANFD2_TX */
4199 		[ 6] = RCAR_GP_PIN(3,  6),	/* CANFD2_RX */
4200 		[ 7] = RCAR_GP_PIN(3,  7),	/* CANFD3_TX */
4201 		[ 8] = RCAR_GP_PIN(3,  8),	/* CANFD3_RX */
4202 		[ 9] = RCAR_GP_PIN(3,  9),	/* CANFD4_TX */
4203 		[10] = RCAR_GP_PIN(3, 10),	/* CANFD4_RX */
4204 		[11] = RCAR_GP_PIN(3, 11),	/* CANFD5_TX */
4205 		[12] = RCAR_GP_PIN(3, 12),	/* CANFD5_RX */
4206 		[13] = RCAR_GP_PIN(3, 13),	/* CANFD6_TX */
4207 		[14] = RCAR_GP_PIN(3, 14),	/* CANFD6_RX */
4208 		[15] = RCAR_GP_PIN(3, 15),	/* CANFD7_TX */
4209 		[16] = RCAR_GP_PIN(3, 16),	/* CANFD7_RX */
4210 		[17] = SH_PFC_PIN_NONE,
4211 		[18] = SH_PFC_PIN_NONE,
4212 		[19] = SH_PFC_PIN_NONE,
4213 		[20] = SH_PFC_PIN_NONE,
4214 		[21] = SH_PFC_PIN_NONE,
4215 		[22] = SH_PFC_PIN_NONE,
4216 		[23] = SH_PFC_PIN_NONE,
4217 		[24] = SH_PFC_PIN_NONE,
4218 		[25] = SH_PFC_PIN_NONE,
4219 		[26] = SH_PFC_PIN_NONE,
4220 		[27] = SH_PFC_PIN_NONE,
4221 		[28] = SH_PFC_PIN_NONE,
4222 		[29] = SH_PFC_PIN_NONE,
4223 		[30] = SH_PFC_PIN_NONE,
4224 		[31] = SH_PFC_PIN_NONE,
4225 	} },
4226 	{ PINMUX_BIAS_REG("PUEN4", 0xe60600c0, "PUD4", 0xe60600e0) {
4227 		[ 0] = RCAR_GP_PIN(4,  0),	/* AVB0_RX_CTL */
4228 		[ 1] = RCAR_GP_PIN(4,  1),	/* AVB0_RXC */
4229 		[ 2] = RCAR_GP_PIN(4,  2),	/* AVB0_RD0 */
4230 		[ 3] = RCAR_GP_PIN(4,  3),	/* AVB0_RD1 */
4231 		[ 4] = RCAR_GP_PIN(4,  4),	/* AVB0_RD2 */
4232 		[ 5] = RCAR_GP_PIN(4,  5),	/* AVB0_RD3 */
4233 		[ 6] = RCAR_GP_PIN(4,  6),	/* AVB0_TX_CTL */
4234 		[ 7] = RCAR_GP_PIN(4,  7),	/* AVB0_TXC */
4235 		[ 8] = RCAR_GP_PIN(4,  8),	/* AVB0_TD0 */
4236 		[ 9] = RCAR_GP_PIN(4,  9),	/* AVB0_TD1 */
4237 		[10] = RCAR_GP_PIN(4, 10),	/* AVB0_TD2 */
4238 		[11] = RCAR_GP_PIN(4, 11),	/* AVB0_TD3 */
4239 		[12] = RCAR_GP_PIN(4, 12),	/* AVB0_TXREFCLK */
4240 		[13] = RCAR_GP_PIN(4, 13),	/* AVB0_MDIO */
4241 		[14] = RCAR_GP_PIN(4, 14),	/* AVB0_MDC */
4242 		[15] = RCAR_GP_PIN(4, 15),	/* AVB0_MAGIC */
4243 		[16] = RCAR_GP_PIN(4, 16),	/* AVB0_PHY_INT */
4244 		[17] = RCAR_GP_PIN(4, 17),	/* AVB0_LINK */
4245 		[18] = RCAR_GP_PIN(4, 18),	/* AVB0_AVTP_MATCH */
4246 		[19] = RCAR_GP_PIN(4, 19),	/* AVB0_AVTP_CAPTURE */
4247 		[20] = RCAR_GP_PIN(4, 20),	/* AVB0_AVTP_PPS */
4248 		[21] = RCAR_GP_PIN(4, 21),	/* PCIE0_CLKREQ_N */
4249 		[22] = RCAR_GP_PIN(4, 22),	/* PCIE1_CLKREQ_N */
4250 		[23] = RCAR_GP_PIN(4, 23),	/* PCIE2_CLKREQ_N */
4251 		[24] = RCAR_GP_PIN(4, 24),	/* PCIE3_CLKREQ_N */
4252 		[25] = RCAR_GP_PIN(4, 25),	/* AVS0 */
4253 		[26] = RCAR_GP_PIN(4, 26),	/* AVS1 */
4254 		[27] = SH_PFC_PIN_NONE,
4255 		[28] = SH_PFC_PIN_NONE,
4256 		[29] = SH_PFC_PIN_NONE,
4257 		[30] = SH_PFC_PIN_NONE,
4258 		[31] = SH_PFC_PIN_NONE,
4259 	} },
4260 	{ PINMUX_BIAS_REG("PUEN5", 0xe60608c0, "PUD5", 0xe60608e0) {
4261 		[ 0] = RCAR_GP_PIN(5,  0),	/* AVB1_RX_CTL */
4262 		[ 1] = RCAR_GP_PIN(5,  1),	/* AVB1_RXC */
4263 		[ 2] = RCAR_GP_PIN(5,  2),	/* AVB1_RD0 */
4264 		[ 3] = RCAR_GP_PIN(5,  3),	/* AVB1_RD1 */
4265 		[ 4] = RCAR_GP_PIN(5,  4),	/* AVB1_RD2 */
4266 		[ 5] = RCAR_GP_PIN(5,  5),	/* AVB1_RD3 */
4267 		[ 6] = RCAR_GP_PIN(5,  6),	/* AVB1_TX_CTL */
4268 		[ 7] = RCAR_GP_PIN(5,  7),	/* AVB1_TXC */
4269 		[ 8] = RCAR_GP_PIN(5,  8),	/* AVB1_TD0 */
4270 		[ 9] = RCAR_GP_PIN(5,  9),	/* AVB1_TD1 */
4271 		[10] = RCAR_GP_PIN(5, 10),	/* AVB1_TD2 */
4272 		[11] = RCAR_GP_PIN(5, 11),	/* AVB1_TD3 */
4273 		[12] = RCAR_GP_PIN(5, 12),	/* AVB1_TXCREFCLK */
4274 		[13] = RCAR_GP_PIN(5, 13),	/* AVB1_MDIO */
4275 		[14] = RCAR_GP_PIN(5, 14),	/* AVB1_MDC */
4276 		[15] = RCAR_GP_PIN(5, 15),	/* AVB1_MAGIC */
4277 		[16] = RCAR_GP_PIN(5, 16),	/* AVB1_PHY_INT */
4278 		[17] = RCAR_GP_PIN(5, 17),	/* AVB1_LINK */
4279 		[18] = RCAR_GP_PIN(5, 18),	/* AVB1_AVTP_MATCH */
4280 		[19] = RCAR_GP_PIN(5, 19),	/* AVB1_AVTP_CAPTURE */
4281 		[20] = RCAR_GP_PIN(5, 20),	/* AVB1_AVTP_PPS */
4282 		[21] = SH_PFC_PIN_NONE,
4283 		[22] = SH_PFC_PIN_NONE,
4284 		[23] = SH_PFC_PIN_NONE,
4285 		[24] = SH_PFC_PIN_NONE,
4286 		[25] = SH_PFC_PIN_NONE,
4287 		[26] = SH_PFC_PIN_NONE,
4288 		[27] = SH_PFC_PIN_NONE,
4289 		[28] = SH_PFC_PIN_NONE,
4290 		[29] = SH_PFC_PIN_NONE,
4291 		[30] = SH_PFC_PIN_NONE,
4292 		[31] = SH_PFC_PIN_NONE,
4293 	} },
4294 	{ PINMUX_BIAS_REG("PUEN6", 0xe60680c0, "PUD6", 0xe60680e0) {
4295 		[ 0] = RCAR_GP_PIN(6,  0),	/* AVB2_RX_CTL */
4296 		[ 1] = RCAR_GP_PIN(6,  1),	/* AVB2_RXC */
4297 		[ 2] = RCAR_GP_PIN(6,  2),	/* AVB2_RD0 */
4298 		[ 3] = RCAR_GP_PIN(6,  3),	/* AVB2_RD1 */
4299 		[ 4] = RCAR_GP_PIN(6,  4),	/* AVB2_RD2 */
4300 		[ 5] = RCAR_GP_PIN(6,  5),	/* AVB2_RD3 */
4301 		[ 6] = RCAR_GP_PIN(6,  6),	/* AVB2_TX_CTL */
4302 		[ 7] = RCAR_GP_PIN(6,  7),	/* AVB2_TXC */
4303 		[ 8] = RCAR_GP_PIN(6,  8),	/* AVB2_TD0 */
4304 		[ 9] = RCAR_GP_PIN(6,  9),	/* AVB2_TD1 */
4305 		[10] = RCAR_GP_PIN(6, 10),	/* AVB2_TD2 */
4306 		[11] = RCAR_GP_PIN(6, 11),	/* AVB2_TD3 */
4307 		[12] = RCAR_GP_PIN(6, 12),	/* AVB2_TXCREFCLK */
4308 		[13] = RCAR_GP_PIN(6, 13),	/* AVB2_MDIO */
4309 		[14] = RCAR_GP_PIN(6, 14),	/* AVB2_MDC*/
4310 		[15] = RCAR_GP_PIN(6, 15),	/* AVB2_MAGIC */
4311 		[16] = RCAR_GP_PIN(6, 16),	/* AVB2_PHY_INT */
4312 		[17] = RCAR_GP_PIN(6, 17),	/* AVB2_LINK */
4313 		[18] = RCAR_GP_PIN(6, 18),	/* AVB2_AVTP_MATCH */
4314 		[19] = RCAR_GP_PIN(6, 19),	/* AVB2_AVTP_CAPTURE */
4315 		[20] = RCAR_GP_PIN(6, 20),	/* AVB2_AVTP_PPS */
4316 		[21] = SH_PFC_PIN_NONE,
4317 		[22] = SH_PFC_PIN_NONE,
4318 		[23] = SH_PFC_PIN_NONE,
4319 		[24] = SH_PFC_PIN_NONE,
4320 		[25] = SH_PFC_PIN_NONE,
4321 		[26] = SH_PFC_PIN_NONE,
4322 		[27] = SH_PFC_PIN_NONE,
4323 		[28] = SH_PFC_PIN_NONE,
4324 		[29] = SH_PFC_PIN_NONE,
4325 		[30] = SH_PFC_PIN_NONE,
4326 		[31] = SH_PFC_PIN_NONE,
4327 	} },
4328 	{ PINMUX_BIAS_REG("PUEN7", 0xe60688c0, "PUD7", 0xe60688e0) {
4329 		[ 0] = RCAR_GP_PIN(7,  0),	/* AVB3_RX_CTL */
4330 		[ 1] = RCAR_GP_PIN(7,  1),	/* AVB3_RXC */
4331 		[ 2] = RCAR_GP_PIN(7,  2),	/* AVB3_RD0 */
4332 		[ 3] = RCAR_GP_PIN(7,  3),	/* AVB3_RD1 */
4333 		[ 4] = RCAR_GP_PIN(7,  4),	/* AVB3_RD2 */
4334 		[ 5] = RCAR_GP_PIN(7,  5),	/* AVB3_RD3 */
4335 		[ 6] = RCAR_GP_PIN(7,  6),	/* AVB3_TX_CTL */
4336 		[ 7] = RCAR_GP_PIN(7,  7),	/* AVB3_TXC */
4337 		[ 8] = RCAR_GP_PIN(7,  8),	/* AVB3_TD0 */
4338 		[ 9] = RCAR_GP_PIN(7,  9),	/* AVB3_TD1 */
4339 		[10] = RCAR_GP_PIN(7, 10),	/* AVB3_TD2 */
4340 		[11] = RCAR_GP_PIN(7, 11),	/* AVB3_TD3 */
4341 		[12] = RCAR_GP_PIN(7, 12),	/* AVB3_TXCREFCLK */
4342 		[13] = RCAR_GP_PIN(7, 13),	/* AVB3_MDIO */
4343 		[14] = RCAR_GP_PIN(7, 14),	/* AVB3_MDC */
4344 		[15] = RCAR_GP_PIN(7, 15),	/* AVB3_MAGIC */
4345 		[16] = RCAR_GP_PIN(7, 16),	/* AVB3_PHY_INT */
4346 		[17] = RCAR_GP_PIN(7, 17),	/* AVB3_LINK */
4347 		[18] = RCAR_GP_PIN(7, 18),	/* AVB3_AVTP_MATCH */
4348 		[19] = RCAR_GP_PIN(7, 19),	/* AVB3_AVTP_CAPTURE */
4349 		[20] = RCAR_GP_PIN(7, 20),	/* AVB3_AVTP_PPS */
4350 		[21] = SH_PFC_PIN_NONE,
4351 		[22] = SH_PFC_PIN_NONE,
4352 		[23] = SH_PFC_PIN_NONE,
4353 		[24] = SH_PFC_PIN_NONE,
4354 		[25] = SH_PFC_PIN_NONE,
4355 		[26] = SH_PFC_PIN_NONE,
4356 		[27] = SH_PFC_PIN_NONE,
4357 		[28] = SH_PFC_PIN_NONE,
4358 		[29] = SH_PFC_PIN_NONE,
4359 		[30] = SH_PFC_PIN_NONE,
4360 		[31] = SH_PFC_PIN_NONE,
4361 	} },
4362 	{ PINMUX_BIAS_REG("PUEN8", 0xe60690c0, "PUD8", 0xe60690e0) {
4363 		[ 0] = RCAR_GP_PIN(8,  0),	/* AVB4_RX_CTL */
4364 		[ 1] = RCAR_GP_PIN(8,  1),	/* AVB4_RXC */
4365 		[ 2] = RCAR_GP_PIN(8,  2),	/* AVB4_RD0 */
4366 		[ 3] = RCAR_GP_PIN(8,  3),	/* AVB4_RD1 */
4367 		[ 4] = RCAR_GP_PIN(8,  4),	/* AVB4_RD2 */
4368 		[ 5] = RCAR_GP_PIN(8,  5),	/* AVB4_RD3 */
4369 		[ 6] = RCAR_GP_PIN(8,  6),	/* AVB4_TX_CTL */
4370 		[ 7] = RCAR_GP_PIN(8,  7),	/* AVB4_TXC */
4371 		[ 8] = RCAR_GP_PIN(8,  8),	/* AVB4_TD0 */
4372 		[ 9] = RCAR_GP_PIN(8,  9),	/* AVB4_TD1 */
4373 		[10] = RCAR_GP_PIN(8, 10),	/* AVB4_TD2 */
4374 		[11] = RCAR_GP_PIN(8, 11),	/* AVB4_TD3 */
4375 		[12] = RCAR_GP_PIN(8, 12),	/* AVB4_TXCREFCLK */
4376 		[13] = RCAR_GP_PIN(8, 13),	/* AVB4_MDIO */
4377 		[14] = RCAR_GP_PIN(8, 14),	/* AVB4_MDC */
4378 		[15] = RCAR_GP_PIN(8, 15),	/* AVB4_MAGIC */
4379 		[16] = RCAR_GP_PIN(8, 16),	/* AVB4_PHY_INT */
4380 		[17] = RCAR_GP_PIN(8, 17),	/* AVB4_LINK */
4381 		[18] = RCAR_GP_PIN(8, 18),	/* AVB4_AVTP_MATCH */
4382 		[19] = RCAR_GP_PIN(8, 19),	/* AVB4_AVTP_CAPTURE */
4383 		[20] = RCAR_GP_PIN(8, 20),	/* AVB4_AVTP_PPS */
4384 		[21] = SH_PFC_PIN_NONE,
4385 		[22] = SH_PFC_PIN_NONE,
4386 		[23] = SH_PFC_PIN_NONE,
4387 		[24] = SH_PFC_PIN_NONE,
4388 		[25] = SH_PFC_PIN_NONE,
4389 		[26] = SH_PFC_PIN_NONE,
4390 		[27] = SH_PFC_PIN_NONE,
4391 		[28] = SH_PFC_PIN_NONE,
4392 		[29] = SH_PFC_PIN_NONE,
4393 		[30] = SH_PFC_PIN_NONE,
4394 		[31] = SH_PFC_PIN_NONE,
4395 	} },
4396 	{ PINMUX_BIAS_REG("PUEN9", 0xe60698c0, "PUD9", 0xe60698e0) {
4397 		[ 0] = RCAR_GP_PIN(9,  0),	/* AVB5_RX_CTL */
4398 		[ 1] = RCAR_GP_PIN(9,  1),	/* AVB5_RXC */
4399 		[ 2] = RCAR_GP_PIN(9,  2),	/* AVB5_RD0 */
4400 		[ 3] = RCAR_GP_PIN(9,  3),	/* AVB5_RD1 */
4401 		[ 4] = RCAR_GP_PIN(9,  4),	/* AVB5_RD2 */
4402 		[ 5] = RCAR_GP_PIN(9,  5),	/* AVB5_RD3 */
4403 		[ 6] = RCAR_GP_PIN(9,  6),	/* AVB5_TX_CTL */
4404 		[ 7] = RCAR_GP_PIN(9,  7),	/* AVB5_TXC */
4405 		[ 8] = RCAR_GP_PIN(9,  8),	/* AVB5_TD0 */
4406 		[ 9] = RCAR_GP_PIN(9,  9),	/* AVB5_TD1 */
4407 		[10] = RCAR_GP_PIN(9, 10),	/* AVB5_TD2 */
4408 		[11] = RCAR_GP_PIN(9, 11),	/* AVB5_TD3 */
4409 		[12] = RCAR_GP_PIN(9, 12),	/* AVB5_TXCREFCLK */
4410 		[13] = RCAR_GP_PIN(9, 13),	/* AVB5_MDIO */
4411 		[14] = RCAR_GP_PIN(9, 14),	/* AVB5_MDC */
4412 		[15] = RCAR_GP_PIN(9, 15),	/* AVB5_MAGIC */
4413 		[16] = RCAR_GP_PIN(9, 16),	/* AVB5_PHY_INT */
4414 		[17] = RCAR_GP_PIN(9, 17),	/* AVB5_LINK */
4415 		[18] = RCAR_GP_PIN(9, 18),	/* AVB5_AVTP_MATCH */
4416 		[19] = RCAR_GP_PIN(9, 19),	/* AVB5_AVTP_CAPTURE */
4417 		[20] = RCAR_GP_PIN(9, 20),	/* AVB5_AVTP_PPS */
4418 		[21] = SH_PFC_PIN_NONE,
4419 		[22] = SH_PFC_PIN_NONE,
4420 		[23] = SH_PFC_PIN_NONE,
4421 		[24] = SH_PFC_PIN_NONE,
4422 		[25] = SH_PFC_PIN_NONE,
4423 		[26] = SH_PFC_PIN_NONE,
4424 		[27] = SH_PFC_PIN_NONE,
4425 		[28] = SH_PFC_PIN_NONE,
4426 		[29] = SH_PFC_PIN_NONE,
4427 		[30] = SH_PFC_PIN_NONE,
4428 		[31] = SH_PFC_PIN_NONE,
4429 	} },
4430 	{ /* sentinel */ },
4431 };
4432 
4433 static const struct sh_pfc_soc_operations pinmux_ops = {
4434 	.pin_to_pocctrl = r8a779a0_pin_to_pocctrl,
4435 	.get_bias = rcar_pinmux_get_bias,
4436 	.set_bias = rcar_pinmux_set_bias,
4437 };
4438 
4439 const struct sh_pfc_soc_info r8a779a0_pinmux_info = {
4440 	.name = "r8a779a0_pfc",
4441 	.ops = &pinmux_ops,
4442 	.unlock_reg = 0x1ff,	/* PMMRn mask */
4443 
4444 	.function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END },
4445 
4446 	.pins = pinmux_pins,
4447 	.nr_pins = ARRAY_SIZE(pinmux_pins),
4448 	.groups = pinmux_groups,
4449 	.nr_groups = ARRAY_SIZE(pinmux_groups),
4450 	.functions = pinmux_functions,
4451 	.nr_functions = ARRAY_SIZE(pinmux_functions),
4452 
4453 	.cfg_regs = pinmux_config_regs,
4454 	.drive_regs = pinmux_drive_regs,
4455 	.bias_regs = pinmux_bias_regs,
4456 	.ioctrl_regs = pinmux_ioctrl_regs,
4457 
4458 	.pinmux_data = pinmux_data,
4459 	.pinmux_data_size = ARRAY_SIZE(pinmux_data),
4460 };
4461