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