1 // SPDX-License-Identifier: GPL-2.0
2 /*
3  * r8a7792 processor support - PFC hardware block.
4  *
5  * Copyright (C) 2013-2014 Renesas Electronics Corporation
6  * Copyright (C) 2016 Cogent Embedded, Inc., <source@cogentembedded.com>
7  */
8 
9 #include <linux/kernel.h>
10 
11 #include "sh_pfc.h"
12 
13 #define CPU_ALL_GP(fn, sfx)						\
14 	PORT_GP_CFG_29(0, fn, sfx, SH_PFC_PIN_CFG_PULL_UP),		\
15 	PORT_GP_CFG_23(1, fn, sfx, SH_PFC_PIN_CFG_PULL_UP),		\
16 	PORT_GP_CFG_32(2, fn, sfx, SH_PFC_PIN_CFG_PULL_UP),		\
17 	PORT_GP_CFG_28(3, fn, sfx, SH_PFC_PIN_CFG_PULL_UP),		\
18 	PORT_GP_CFG_17(4, fn, sfx, SH_PFC_PIN_CFG_PULL_UP),		\
19 	PORT_GP_CFG_17(5, fn, sfx, SH_PFC_PIN_CFG_PULL_UP),		\
20 	PORT_GP_CFG_17(6, fn, sfx, SH_PFC_PIN_CFG_PULL_UP),		\
21 	PORT_GP_CFG_17(7, fn, sfx, SH_PFC_PIN_CFG_PULL_UP),		\
22 	PORT_GP_CFG_17(8, fn, sfx, SH_PFC_PIN_CFG_PULL_UP),		\
23 	PORT_GP_CFG_17(9, fn, sfx, SH_PFC_PIN_CFG_PULL_UP),		\
24 	PORT_GP_CFG_32(10, fn, sfx, SH_PFC_PIN_CFG_PULL_UP),		\
25 	PORT_GP_CFG_30(11, fn, sfx, SH_PFC_PIN_CFG_PULL_UP)
26 
27 #define CPU_ALL_NOGP(fn)						\
28 	PIN_NOGP_CFG(DU0_DOTCLKIN, "DU0_DOTCLKIN", fn, SH_PFC_PIN_CFG_PULL_UP),	\
29 	PIN_NOGP_CFG(DU0_DOTCLKOUT, "DU0_DOTCLKOUT", fn, SH_PFC_PIN_CFG_PULL_UP),	\
30 	PIN_NOGP_CFG(DU1_DOTCLKIN, "DU1_DOTCLKIN", fn, SH_PFC_PIN_CFG_PULL_UP),	\
31 	PIN_NOGP_CFG(DU1_DOTCLKOUT, "DU1_DOTCLKOUT", fn, SH_PFC_PIN_CFG_PULL_UP),	\
32 	PIN_NOGP_CFG(EDBGREQ, "EDBGREQ", fn, SH_PFC_PIN_CFG_PULL_DOWN),	\
33 	PIN_NOGP_CFG(TCK, "TCK", fn, SH_PFC_PIN_CFG_PULL_UP),		\
34 	PIN_NOGP_CFG(TDI, "TDI", fn, SH_PFC_PIN_CFG_PULL_UP),		\
35 	PIN_NOGP_CFG(TMS, "TMS", fn, SH_PFC_PIN_CFG_PULL_UP),		\
36 	PIN_NOGP_CFG(TRST_N, "TRST#", fn, SH_PFC_PIN_CFG_PULL_UP)
37 
38 enum {
39 	PINMUX_RESERVED = 0,
40 
41 	PINMUX_DATA_BEGIN,
42 	GP_ALL(DATA),
43 	PINMUX_DATA_END,
44 
45 	PINMUX_FUNCTION_BEGIN,
46 	GP_ALL(FN),
47 
48 	/* GPSR0 */
49 	FN_IP0_0, FN_IP0_1, FN_IP0_2, FN_IP0_3, FN_IP0_4, FN_IP0_5,
50 	FN_IP0_6, FN_IP0_7, FN_IP0_8, FN_IP0_9, FN_IP0_10, FN_IP0_11,
51 	FN_IP0_12, FN_IP0_13, FN_IP0_14, FN_IP0_15, FN_IP0_16,
52 	FN_IP0_17, FN_IP0_18, FN_IP0_19, FN_IP0_20, FN_IP0_21,
53 	FN_IP0_22, FN_IP0_23, FN_IP1_0, FN_IP1_1, FN_IP1_2,
54 	FN_IP1_3, FN_IP1_4,
55 
56 	/* GPSR1 */
57 	FN_IP1_5, FN_IP1_6, FN_IP1_7, FN_IP1_8, FN_IP1_9, FN_IP1_10,
58 	FN_IP1_11, FN_IP1_12, FN_IP1_13, FN_IP1_14, FN_IP1_15, FN_IP1_16,
59 	FN_DU1_DB2_C0_DATA12, FN_DU1_DB3_C1_DATA13, FN_DU1_DB4_C2_DATA14,
60 	FN_DU1_DB5_C3_DATA15, FN_DU1_DB6_C4, FN_DU1_DB7_C5,
61 	FN_DU1_EXHSYNC_DU1_HSYNC, FN_DU1_EXVSYNC_DU1_VSYNC,
62 	FN_DU1_EXODDF_DU1_ODDF_DISP_CDE, FN_DU1_DISP, FN_DU1_CDE,
63 
64 	/* GPSR2 */
65 	FN_D0, FN_D1, FN_D2, FN_D3, FN_D4, FN_D5, FN_D6, FN_D7,
66 	FN_D8, FN_D9, FN_D10, FN_D11, FN_D12, FN_D13, FN_D14, FN_D15,
67 	FN_A0, FN_A1, FN_A2, FN_A3, FN_A4, FN_A5, FN_A6, FN_A7,
68 	FN_A8, FN_A9, FN_A10, FN_A11, FN_A12, FN_A13, FN_A14, FN_A15,
69 
70 	/* GPSR3 */
71 	FN_A16, FN_A17, FN_A18, FN_A19, FN_IP1_17, FN_IP1_18,
72 	FN_CS1_N_A26, FN_EX_CS0_N, FN_EX_CS1_N, FN_EX_CS2_N, FN_EX_CS3_N,
73 	FN_EX_CS4_N, FN_EX_CS5_N, FN_BS_N, FN_RD_N, FN_RD_WR_N,
74 	FN_WE0_N, FN_WE1_N, FN_EX_WAIT0, FN_IRQ0, FN_IRQ1, FN_IRQ2, FN_IRQ3,
75 	FN_IP1_19, FN_IP1_20, FN_IP1_21, FN_IP1_22, FN_CS0_N,
76 
77 	/* GPSR4 */
78 	FN_VI0_CLK, FN_VI0_CLKENB, FN_VI0_HSYNC_N, FN_VI0_VSYNC_N,
79 	FN_VI0_D0_B0_C0, FN_VI0_D1_B1_C1, FN_VI0_D2_B2_C2, FN_VI0_D3_B3_C3,
80 	FN_VI0_D4_B4_C4, FN_VI0_D5_B5_C5, FN_VI0_D6_B6_C6, FN_VI0_D7_B7_C7,
81 	FN_VI0_D8_G0_Y0, FN_VI0_D9_G1_Y1, FN_VI0_D10_G2_Y2, FN_VI0_D11_G3_Y3,
82 	FN_VI0_FIELD,
83 
84 	/* GPSR5 */
85 	FN_VI1_CLK, FN_VI1_CLKENB, FN_VI1_HSYNC_N, FN_VI1_VSYNC_N,
86 	FN_VI1_D0_B0_C0, FN_VI1_D1_B1_C1, FN_VI1_D2_B2_C2, FN_VI1_D3_B3_C3,
87 	FN_VI1_D4_B4_C4, FN_VI1_D5_B5_C5, FN_VI1_D6_B6_C6, FN_VI1_D7_B7_C7,
88 	FN_VI1_D8_G0_Y0, FN_VI1_D9_G1_Y1, FN_VI1_D10_G2_Y2, FN_VI1_D11_G3_Y3,
89 	FN_VI1_FIELD,
90 
91 	/* GPSR6 */
92 	FN_IP2_0, FN_IP2_1, FN_IP2_2, FN_IP2_3, FN_IP2_4, FN_IP2_5, FN_IP2_6,
93 	FN_IP2_7, FN_IP2_8, FN_IP2_9, FN_IP2_10, FN_IP2_11, FN_IP2_12,
94 	FN_IP2_13, FN_IP2_14, FN_IP2_15, FN_IP2_16,
95 
96 	/* GPSR7 */
97 	FN_IP3_0, FN_IP3_1, FN_IP3_2, FN_IP3_3, FN_IP3_4, FN_IP3_5, FN_IP3_6,
98 	FN_IP3_7, FN_IP3_8, FN_IP3_9, FN_IP3_10, FN_IP3_11, FN_IP3_12,
99 	FN_IP3_13, FN_VI3_D10_Y2, FN_IP3_14, FN_VI3_FIELD,
100 
101 	/* GPSR8 */
102 	FN_VI4_CLK, FN_IP4_0, FN_IP4_1, FN_IP4_3_2, FN_IP4_4, FN_IP4_6_5,
103 	FN_IP4_8_7, FN_IP4_10_9, FN_IP4_12_11, FN_IP4_14_13, FN_IP4_16_15,
104 	FN_IP4_18_17, FN_IP4_20_19, FN_IP4_21, FN_IP4_22, FN_IP4_23, FN_IP4_24,
105 
106 	/* GPSR9 */
107 	FN_VI5_CLK, FN_IP5_0, FN_IP5_1, FN_IP5_2, FN_IP5_3, FN_IP5_4, FN_IP5_5,
108 	FN_IP5_6, FN_IP5_7, FN_IP5_8, FN_IP5_9, FN_IP5_10, FN_IP5_11,
109 	FN_VI5_D9_Y1, FN_VI5_D10_Y2, FN_VI5_D11_Y3, FN_VI5_FIELD,
110 
111 	/* GPSR10 */
112 	FN_IP6_0, FN_IP6_1, FN_HRTS0_N, FN_IP6_2, FN_IP6_3, FN_IP6_4, FN_IP6_5,
113 	FN_HCTS1_N, FN_IP6_6, FN_IP6_7,	FN_SCK0, FN_CTS0_N, FN_RTS0_N,
114 	FN_TX0, FN_RX0, FN_SCK1, FN_CTS1_N, FN_RTS1_N, FN_TX1, FN_RX1,
115 	FN_IP6_9_8, FN_IP6_11_10, FN_IP6_13_12, FN_IP6_15_14, FN_IP6_16,
116 	FN_IP6_18_17, FN_SCIF_CLK, FN_CAN0_TX, FN_CAN0_RX, FN_CAN_CLK,
117 	FN_CAN1_TX, FN_CAN1_RX,
118 
119 	/* GPSR11 */
120 	FN_IP7_1_0, FN_IP7_3_2, FN_IP7_5_4, FN_IP7_6, FN_IP7_7, FN_SD0_CLK,
121 	FN_SD0_CMD, FN_SD0_DAT0, FN_SD0_DAT1, FN_SD0_DAT2, FN_SD0_DAT3,
122 	FN_SD0_CD, FN_SD0_WP, FN_IP7_9_8, FN_IP7_11_10, FN_IP7_13_12,
123 	FN_IP7_15_14, FN_IP7_16, FN_IP7_17, FN_IP7_18, FN_IP7_19, FN_IP7_20,
124 	FN_ADICLK, FN_ADICS_SAMP, FN_ADIDATA, FN_ADICHS0, FN_ADICHS1,
125 	FN_ADICHS2, FN_AVS1, FN_AVS2,
126 
127 	/* IPSR0 */
128 	FN_DU0_DR0_DATA0, FN_DU0_DR1_DATA1, FN_DU0_DR2_Y4_DATA2,
129 	FN_DU0_DR3_Y5_DATA3, FN_DU0_DR4_Y6_DATA4, FN_DU0_DR5_Y7_DATA5,
130 	FN_DU0_DR6_Y8_DATA6, FN_DU0_DR7_Y9_DATA7, FN_DU0_DG0_DATA8,
131 	FN_DU0_DG1_DATA9, FN_DU0_DG2_C6_DATA10, FN_DU0_DG3_C7_DATA11,
132 	FN_DU0_DG4_Y0_DATA12, FN_DU0_DG5_Y1_DATA13, FN_DU0_DG6_Y2_DATA14,
133 	FN_DU0_DG7_Y3_DATA15, FN_DU0_DB0, FN_DU0_DB1, FN_DU0_DB2_C0,
134 	FN_DU0_DB3_C1, FN_DU0_DB4_C2, FN_DU0_DB5_C3, FN_DU0_DB6_C4,
135 	FN_DU0_DB7_C5,
136 
137 	/* IPSR1 */
138 	FN_DU0_EXHSYNC_DU0_HSYNC, FN_DU0_EXVSYNC_DU0_VSYNC,
139 	FN_DU0_EXODDF_DU0_ODDF_DISP_CDE, FN_DU0_DISP, FN_DU0_CDE,
140 	FN_DU1_DR2_Y4_DATA0, FN_DU1_DR3_Y5_DATA1, FN_DU1_DR4_Y6_DATA2,
141 	FN_DU1_DR5_Y7_DATA3, FN_DU1_DR6_DATA4, FN_DU1_DR7_DATA5,
142 	FN_DU1_DG2_C6_DATA6, FN_DU1_DG3_C7_DATA7, FN_DU1_DG4_Y0_DATA8,
143 	FN_DU1_DG5_Y1_DATA9, FN_DU1_DG6_Y2_DATA10, FN_DU1_DG7_Y3_DATA11,
144 	FN_A20, FN_MOSI_IO0, FN_A21, FN_MISO_IO1, FN_A22, FN_IO2,
145 	FN_A23, FN_IO3, FN_A24, FN_SPCLK, FN_A25, FN_SSL,
146 
147 	/* IPSR2 */
148 	FN_VI2_CLK, FN_AVB_RX_CLK, FN_VI2_CLKENB, FN_AVB_RX_DV,
149 	FN_VI2_HSYNC_N, FN_AVB_RXD0, FN_VI2_VSYNC_N, FN_AVB_RXD1,
150 	FN_VI2_D0_C0, FN_AVB_RXD2, FN_VI2_D1_C1, FN_AVB_RXD3,
151 	FN_VI2_D2_C2, FN_AVB_RXD4, FN_VI2_D3_C3, FN_AVB_RXD5,
152 	FN_VI2_D4_C4, FN_AVB_RXD6, FN_VI2_D5_C5, FN_AVB_RXD7,
153 	FN_VI2_D6_C6, FN_AVB_RX_ER, FN_VI2_D7_C7, FN_AVB_COL,
154 	FN_VI2_D8_Y0, FN_AVB_TXD3, FN_VI2_D9_Y1, FN_AVB_TX_EN,
155 	FN_VI2_D10_Y2, FN_AVB_TXD0, FN_VI2_D11_Y3, FN_AVB_TXD1,
156 	FN_VI2_FIELD, FN_AVB_TXD2,
157 
158 	/* IPSR3 */
159 	FN_VI3_CLK, FN_AVB_TX_CLK, FN_VI3_CLKENB, FN_AVB_TXD4,
160 	FN_VI3_HSYNC_N, FN_AVB_TXD5, FN_VI3_VSYNC_N, FN_AVB_TXD6,
161 	FN_VI3_D0_C0, FN_AVB_TXD7, FN_VI3_D1_C1, FN_AVB_TX_ER,
162 	FN_VI3_D2_C2, FN_AVB_GTX_CLK, FN_VI3_D3_C3, FN_AVB_MDC,
163 	FN_VI3_D4_C4, FN_AVB_MDIO, FN_VI3_D5_C5, FN_AVB_LINK,
164 	FN_VI3_D6_C6, FN_AVB_MAGIC, FN_VI3_D7_C7, FN_AVB_PHY_INT,
165 	FN_VI3_D8_Y0, FN_AVB_CRS, FN_VI3_D9_Y1, FN_AVB_GTXREFCLK,
166 	FN_VI3_D11_Y3, FN_AVB_AVTP_MATCH,
167 
168 	/* IPSR4 */
169 	FN_VI4_CLKENB, FN_VI0_D12_G4_Y4, FN_VI4_HSYNC_N, FN_VI0_D13_G5_Y5,
170 	FN_VI4_VSYNC_N, FN_VI0_D14_G6_Y6, FN_RDR_CLKOUT,
171 	FN_VI4_D0_C0, FN_VI0_D15_G7_Y7,
172 	FN_VI4_D1_C1, FN_VI0_D16_R0, FN_VI1_D12_G4_Y4,
173 	FN_VI4_D2_C2, FN_VI0_D17_R1, FN_VI1_D13_G5_Y5,
174 	FN_VI4_D3_C3, FN_VI0_D18_R2, FN_VI1_D14_G6_Y6,
175 	FN_VI4_D4_C4, FN_VI0_D19_R3, FN_VI1_D15_G7_Y7,
176 	FN_VI4_D5_C5, FN_VI0_D20_R4, FN_VI2_D12_Y4,
177 	FN_VI4_D6_C6, FN_VI0_D21_R5, FN_VI2_D13_Y5,
178 	FN_VI4_D7_C7, FN_VI0_D22_R6, FN_VI2_D14_Y6,
179 	FN_VI4_D8_Y0, FN_VI0_D23_R7, FN_VI2_D15_Y7,
180 	FN_VI4_D9_Y1, FN_VI3_D12_Y4, FN_VI4_D10_Y2, FN_VI3_D13_Y5,
181 	FN_VI4_D11_Y3, FN_VI3_D14_Y6, FN_VI4_FIELD, FN_VI3_D15_Y7,
182 
183 	/* IPSR5 */
184 	FN_VI5_CLKENB, FN_VI1_D12_G4_Y4_B, FN_VI5_HSYNC_N, FN_VI1_D13_G5_Y5_B,
185 	FN_VI5_VSYNC_N, FN_VI1_D14_G6_Y6_B, FN_VI5_D0_C0, FN_VI1_D15_G7_Y7_B,
186 	FN_VI5_D1_C1, FN_VI1_D16_R0, FN_VI5_D2_C2, FN_VI1_D17_R1,
187 	FN_VI5_D3_C3, FN_VI1_D18_R2, FN_VI5_D4_C4, FN_VI1_D19_R3,
188 	FN_VI5_D5_C5, FN_VI1_D20_R4, FN_VI5_D6_C6, FN_VI1_D21_R5,
189 	FN_VI5_D7_C7, FN_VI1_D22_R6, FN_VI5_D8_Y0, FN_VI1_D23_R7,
190 
191 	/* IPSR6 */
192 	FN_MSIOF0_SCK, FN_HSCK0, FN_MSIOF0_SYNC, FN_HCTS0_N,
193 	FN_MSIOF0_TXD, FN_HTX0, FN_MSIOF0_RXD, FN_HRX0,
194 	FN_MSIOF1_SCK, FN_HSCK1, FN_MSIOF1_SYNC, FN_HRTS1_N,
195 	FN_MSIOF1_TXD, FN_HTX1, FN_MSIOF1_RXD, FN_HRX1,
196 	FN_DRACK0, FN_SCK2, FN_DACK0, FN_TX2, FN_DREQ0_N, FN_RX2,
197 	FN_DACK1, FN_SCK3, FN_TX3, FN_DREQ1_N, FN_RX3,
198 
199 	/* IPSR7 */
200 	FN_PWM0, FN_TCLK1, FN_FSO_CFE_0, FN_PWM1, FN_TCLK2, FN_FSO_CFE_1,
201 	FN_PWM2, FN_TCLK3, FN_FSO_TOE, FN_PWM3, FN_PWM4,
202 	FN_SSI_SCK34, FN_TPU0TO0, FN_SSI_WS34, FN_TPU0TO1,
203 	FN_SSI_SDATA3, FN_TPU0TO2, FN_SSI_SCK4, FN_TPU0TO3,
204 	FN_SSI_WS4, FN_SSI_SDATA4, FN_AUDIO_CLKOUT,
205 	FN_AUDIO_CLKA, FN_AUDIO_CLKB,
206 
207 	/* MOD_SEL */
208 	FN_SEL_VI1_0, FN_SEL_VI1_1,
209 	PINMUX_FUNCTION_END,
210 
211 	PINMUX_MARK_BEGIN,
212 	DU1_DB2_C0_DATA12_MARK, DU1_DB3_C1_DATA13_MARK,
213 	DU1_DB4_C2_DATA14_MARK, DU1_DB5_C3_DATA15_MARK,
214 	DU1_DB6_C4_MARK, DU1_DB7_C5_MARK, DU1_EXHSYNC_DU1_HSYNC_MARK,
215 	DU1_EXVSYNC_DU1_VSYNC_MARK, DU1_EXODDF_DU1_ODDF_DISP_CDE_MARK,
216 	DU1_DISP_MARK, DU1_CDE_MARK,
217 
218 	D0_MARK, D1_MARK, D2_MARK, D3_MARK, D4_MARK, D5_MARK, D6_MARK,
219 	D7_MARK, D8_MARK, D9_MARK, D10_MARK, D11_MARK, D12_MARK, D13_MARK,
220 	D14_MARK, D15_MARK, A0_MARK, A1_MARK, A2_MARK, A3_MARK, A4_MARK,
221 	A5_MARK, A6_MARK, A7_MARK, A8_MARK, A9_MARK, A10_MARK, A11_MARK,
222 	A12_MARK, A13_MARK, A14_MARK, A15_MARK,
223 
224 	A16_MARK, A17_MARK, A18_MARK, A19_MARK, CS1_N_A26_MARK,
225 	EX_CS0_N_MARK, EX_CS1_N_MARK, EX_CS2_N_MARK, EX_CS3_N_MARK,
226 	EX_CS4_N_MARK, EX_CS5_N_MARK, BS_N_MARK, RD_N_MARK, RD_WR_N_MARK,
227 	WE0_N_MARK, WE1_N_MARK, EX_WAIT0_MARK,
228 	IRQ0_MARK, IRQ1_MARK, IRQ2_MARK, IRQ3_MARK, CS0_N_MARK,
229 
230 	VI0_CLK_MARK, VI0_CLKENB_MARK, VI0_HSYNC_N_MARK, VI0_VSYNC_N_MARK,
231 	VI0_D0_B0_C0_MARK, VI0_D1_B1_C1_MARK, VI0_D2_B2_C2_MARK,
232 	VI0_D3_B3_C3_MARK, VI0_D4_B4_C4_MARK, VI0_D5_B5_C5_MARK,
233 	VI0_D6_B6_C6_MARK, VI0_D7_B7_C7_MARK, VI0_D8_G0_Y0_MARK,
234 	VI0_D9_G1_Y1_MARK, VI0_D10_G2_Y2_MARK, VI0_D11_G3_Y3_MARK,
235 	VI0_FIELD_MARK,
236 
237 	VI1_CLK_MARK, VI1_CLKENB_MARK, VI1_HSYNC_N_MARK, VI1_VSYNC_N_MARK,
238 	VI1_D0_B0_C0_MARK, VI1_D1_B1_C1_MARK, VI1_D2_B2_C2_MARK,
239 	VI1_D3_B3_C3_MARK, VI1_D4_B4_C4_MARK, VI1_D5_B5_C5_MARK,
240 	VI1_D6_B6_C6_MARK, VI1_D7_B7_C7_MARK, VI1_D8_G0_Y0_MARK,
241 	VI1_D9_G1_Y1_MARK, VI1_D10_G2_Y2_MARK, VI1_D11_G3_Y3_MARK,
242 	VI1_FIELD_MARK,
243 
244 	VI3_D10_Y2_MARK, VI3_FIELD_MARK,
245 
246 	VI4_CLK_MARK,
247 
248 	VI5_CLK_MARK, VI5_D9_Y1_MARK, VI5_D10_Y2_MARK, VI5_D11_Y3_MARK,
249 	VI5_FIELD_MARK,
250 
251 	HRTS0_N_MARK, HCTS1_N_MARK, SCK0_MARK, CTS0_N_MARK, RTS0_N_MARK,
252 	TX0_MARK, RX0_MARK, SCK1_MARK, CTS1_N_MARK, RTS1_N_MARK,
253 	TX1_MARK, RX1_MARK, SCIF_CLK_MARK, CAN0_TX_MARK, CAN0_RX_MARK,
254 	CAN_CLK_MARK, CAN1_TX_MARK, CAN1_RX_MARK,
255 
256 	SD0_CLK_MARK, SD0_CMD_MARK, SD0_DAT0_MARK, SD0_DAT1_MARK,
257 	SD0_DAT2_MARK, SD0_DAT3_MARK, SD0_CD_MARK, SD0_WP_MARK,
258 	ADICLK_MARK, ADICS_SAMP_MARK, ADIDATA_MARK, ADICHS0_MARK,
259 	ADICHS1_MARK, ADICHS2_MARK, AVS1_MARK, AVS2_MARK,
260 
261 	/* IPSR0 */
262 	DU0_DR0_DATA0_MARK, DU0_DR1_DATA1_MARK, DU0_DR2_Y4_DATA2_MARK,
263 	DU0_DR3_Y5_DATA3_MARK, DU0_DR4_Y6_DATA4_MARK, DU0_DR5_Y7_DATA5_MARK,
264 	DU0_DR6_Y8_DATA6_MARK, DU0_DR7_Y9_DATA7_MARK, DU0_DG0_DATA8_MARK,
265 	DU0_DG1_DATA9_MARK, DU0_DG2_C6_DATA10_MARK, DU0_DG3_C7_DATA11_MARK,
266 	DU0_DG4_Y0_DATA12_MARK, DU0_DG5_Y1_DATA13_MARK, DU0_DG6_Y2_DATA14_MARK,
267 	DU0_DG7_Y3_DATA15_MARK, DU0_DB0_MARK, DU0_DB1_MARK,
268 	DU0_DB2_C0_MARK, DU0_DB3_C1_MARK, DU0_DB4_C2_MARK, DU0_DB5_C3_MARK,
269 	DU0_DB6_C4_MARK, DU0_DB7_C5_MARK,
270 
271 	/* IPSR1 */
272 	DU0_EXHSYNC_DU0_HSYNC_MARK, DU0_EXVSYNC_DU0_VSYNC_MARK,
273 	DU0_EXODDF_DU0_ODDF_DISP_CDE_MARK, DU0_DISP_MARK, DU0_CDE_MARK,
274 	DU1_DR2_Y4_DATA0_MARK, DU1_DR3_Y5_DATA1_MARK, DU1_DR4_Y6_DATA2_MARK,
275 	DU1_DR5_Y7_DATA3_MARK, DU1_DR6_DATA4_MARK, DU1_DR7_DATA5_MARK,
276 	DU1_DG2_C6_DATA6_MARK, DU1_DG3_C7_DATA7_MARK, DU1_DG4_Y0_DATA8_MARK,
277 	DU1_DG5_Y1_DATA9_MARK, DU1_DG6_Y2_DATA10_MARK, DU1_DG7_Y3_DATA11_MARK,
278 	A20_MARK, MOSI_IO0_MARK, A21_MARK, MISO_IO1_MARK, A22_MARK, IO2_MARK,
279 	A23_MARK, IO3_MARK, A24_MARK, SPCLK_MARK, A25_MARK, SSL_MARK,
280 
281 	/* IPSR2 */
282 	VI2_CLK_MARK, AVB_RX_CLK_MARK, VI2_CLKENB_MARK, AVB_RX_DV_MARK,
283 	VI2_HSYNC_N_MARK, AVB_RXD0_MARK, VI2_VSYNC_N_MARK, AVB_RXD1_MARK,
284 	VI2_D0_C0_MARK, AVB_RXD2_MARK, VI2_D1_C1_MARK, AVB_TX_CLK_MARK,
285 	VI2_D2_C2_MARK, AVB_RXD4_MARK, VI2_D3_C3_MARK, AVB_RXD5_MARK,
286 	VI2_D4_C4_MARK, AVB_RXD6_MARK, VI2_D5_C5_MARK, AVB_RXD7_MARK,
287 	VI2_D6_C6_MARK, AVB_RX_ER_MARK, VI2_D7_C7_MARK, AVB_COL_MARK,
288 	VI2_D8_Y0_MARK, AVB_RXD3_MARK, VI2_D9_Y1_MARK, AVB_TX_EN_MARK,
289 	VI2_D10_Y2_MARK, AVB_TXD0_MARK,
290 	VI2_D11_Y3_MARK, AVB_TXD1_MARK, VI2_FIELD_MARK, AVB_TXD2_MARK,
291 
292 	/* IPSR3 */
293 	VI3_CLK_MARK, AVB_TXD3_MARK, VI3_CLKENB_MARK, AVB_TXD4_MARK,
294 	VI3_HSYNC_N_MARK, AVB_TXD5_MARK, VI3_VSYNC_N_MARK, AVB_TXD6_MARK,
295 	VI3_D0_C0_MARK, AVB_TXD7_MARK, VI3_D1_C1_MARK, AVB_TX_ER_MARK,
296 	VI3_D2_C2_MARK, AVB_GTX_CLK_MARK, VI3_D3_C3_MARK, AVB_MDC_MARK,
297 	VI3_D4_C4_MARK, AVB_MDIO_MARK, VI3_D5_C5_MARK, AVB_LINK_MARK,
298 	VI3_D6_C6_MARK, AVB_MAGIC_MARK, VI3_D7_C7_MARK, AVB_PHY_INT_MARK,
299 	VI3_D8_Y0_MARK, AVB_CRS_MARK, VI3_D9_Y1_MARK, AVB_GTXREFCLK_MARK,
300 	VI3_D11_Y3_MARK, AVB_AVTP_MATCH_MARK,
301 
302 	/* IPSR4 */
303 	VI4_CLKENB_MARK, VI0_D12_G4_Y4_MARK, VI4_HSYNC_N_MARK,
304 	VI0_D13_G5_Y5_MARK, VI4_VSYNC_N_MARK, VI0_D14_G6_Y6_MARK,
305 	RDR_CLKOUT_MARK, VI4_D0_C0_MARK, VI0_D15_G7_Y7_MARK, VI4_D1_C1_MARK,
306 	VI0_D16_R0_MARK, VI1_D12_G4_Y4_MARK, VI4_D2_C2_MARK, VI0_D17_R1_MARK,
307 	VI1_D13_G5_Y5_MARK, VI4_D3_C3_MARK, VI0_D18_R2_MARK, VI1_D14_G6_Y6_MARK,
308 	VI4_D4_C4_MARK,	VI0_D19_R3_MARK, VI1_D15_G7_Y7_MARK, VI4_D5_C5_MARK,
309 	VI0_D20_R4_MARK, VI2_D12_Y4_MARK, VI4_D6_C6_MARK, VI0_D21_R5_MARK,
310 	VI2_D13_Y5_MARK, VI4_D7_C7_MARK, VI0_D22_R6_MARK, VI2_D14_Y6_MARK,
311 	VI4_D8_Y0_MARK, VI0_D23_R7_MARK, VI2_D15_Y7_MARK, VI4_D9_Y1_MARK,
312 	VI3_D12_Y4_MARK, VI4_D10_Y2_MARK, VI3_D13_Y5_MARK, VI4_D11_Y3_MARK,
313 	VI3_D14_Y6_MARK, VI4_FIELD_MARK, VI3_D15_Y7_MARK,
314 
315 	/* IPSR5 */
316 	VI5_CLKENB_MARK, VI1_D12_G4_Y4_B_MARK, VI5_HSYNC_N_MARK,
317 	VI1_D13_G5_Y5_B_MARK, VI5_VSYNC_N_MARK, VI1_D14_G6_Y6_B_MARK,
318 	VI5_D0_C0_MARK, VI1_D15_G7_Y7_B_MARK, VI5_D1_C1_MARK, VI1_D16_R0_MARK,
319 	VI5_D2_C2_MARK, VI1_D17_R1_MARK, VI5_D3_C3_MARK, VI1_D18_R2_MARK,
320 	VI5_D4_C4_MARK, VI1_D19_R3_MARK, VI5_D5_C5_MARK, VI1_D20_R4_MARK,
321 	VI5_D6_C6_MARK, VI1_D21_R5_MARK, VI5_D7_C7_MARK, VI1_D22_R6_MARK,
322 	VI5_D8_Y0_MARK, VI1_D23_R7_MARK,
323 
324 	/* IPSR6 */
325 	MSIOF0_SCK_MARK, HSCK0_MARK, MSIOF0_SYNC_MARK, HCTS0_N_MARK,
326 	MSIOF0_TXD_MARK, HTX0_MARK, MSIOF0_RXD_MARK, HRX0_MARK,
327 	MSIOF1_SCK_MARK, HSCK1_MARK, MSIOF1_SYNC_MARK, HRTS1_N_MARK,
328 	MSIOF1_TXD_MARK, HTX1_MARK, MSIOF1_RXD_MARK, HRX1_MARK,
329 	DRACK0_MARK, SCK2_MARK, DACK0_MARK, TX2_MARK, DREQ0_N_MARK,
330 	RX2_MARK, DACK1_MARK, SCK3_MARK, TX3_MARK, DREQ1_N_MARK,
331 	RX3_MARK,
332 
333 	/* IPSR7 */
334 	PWM0_MARK, TCLK1_MARK, FSO_CFE_0_MARK, PWM1_MARK, TCLK2_MARK,
335 	FSO_CFE_1_MARK, PWM2_MARK, TCLK3_MARK, FSO_TOE_MARK, PWM3_MARK,
336 	PWM4_MARK, SSI_SCK34_MARK, TPU0TO0_MARK, SSI_WS34_MARK, TPU0TO1_MARK,
337 	SSI_SDATA3_MARK, TPU0TO2_MARK, SSI_SCK4_MARK, TPU0TO3_MARK,
338 	SSI_WS4_MARK, SSI_SDATA4_MARK, AUDIO_CLKOUT_MARK, AUDIO_CLKA_MARK,
339 	AUDIO_CLKB_MARK,
340 	PINMUX_MARK_END,
341 };
342 
343 static const u16 pinmux_data[] = {
344 	PINMUX_DATA_GP_ALL(), /* PINMUX_DATA(GP_M_N_DATA, GP_M_N_FN...), */
345 
346 	PINMUX_SINGLE(DU1_DB2_C0_DATA12),
347 	PINMUX_SINGLE(DU1_DB3_C1_DATA13),
348 	PINMUX_SINGLE(DU1_DB4_C2_DATA14),
349 	PINMUX_SINGLE(DU1_DB5_C3_DATA15),
350 	PINMUX_SINGLE(DU1_DB6_C4),
351 	PINMUX_SINGLE(DU1_DB7_C5),
352 	PINMUX_SINGLE(DU1_EXHSYNC_DU1_HSYNC),
353 	PINMUX_SINGLE(DU1_EXVSYNC_DU1_VSYNC),
354 	PINMUX_SINGLE(DU1_EXODDF_DU1_ODDF_DISP_CDE),
355 	PINMUX_SINGLE(DU1_DISP),
356 	PINMUX_SINGLE(DU1_CDE),
357 	PINMUX_SINGLE(D0),
358 	PINMUX_SINGLE(D1),
359 	PINMUX_SINGLE(D2),
360 	PINMUX_SINGLE(D3),
361 	PINMUX_SINGLE(D4),
362 	PINMUX_SINGLE(D5),
363 	PINMUX_SINGLE(D6),
364 	PINMUX_SINGLE(D7),
365 	PINMUX_SINGLE(D8),
366 	PINMUX_SINGLE(D9),
367 	PINMUX_SINGLE(D10),
368 	PINMUX_SINGLE(D11),
369 	PINMUX_SINGLE(D12),
370 	PINMUX_SINGLE(D13),
371 	PINMUX_SINGLE(D14),
372 	PINMUX_SINGLE(D15),
373 	PINMUX_SINGLE(A0),
374 	PINMUX_SINGLE(A1),
375 	PINMUX_SINGLE(A2),
376 	PINMUX_SINGLE(A3),
377 	PINMUX_SINGLE(A4),
378 	PINMUX_SINGLE(A5),
379 	PINMUX_SINGLE(A6),
380 	PINMUX_SINGLE(A7),
381 	PINMUX_SINGLE(A8),
382 	PINMUX_SINGLE(A9),
383 	PINMUX_SINGLE(A10),
384 	PINMUX_SINGLE(A11),
385 	PINMUX_SINGLE(A12),
386 	PINMUX_SINGLE(A13),
387 	PINMUX_SINGLE(A14),
388 	PINMUX_SINGLE(A15),
389 	PINMUX_SINGLE(A16),
390 	PINMUX_SINGLE(A17),
391 	PINMUX_SINGLE(A18),
392 	PINMUX_SINGLE(A19),
393 	PINMUX_SINGLE(CS1_N_A26),
394 	PINMUX_SINGLE(EX_CS0_N),
395 	PINMUX_SINGLE(EX_CS1_N),
396 	PINMUX_SINGLE(EX_CS2_N),
397 	PINMUX_SINGLE(EX_CS3_N),
398 	PINMUX_SINGLE(EX_CS4_N),
399 	PINMUX_SINGLE(EX_CS5_N),
400 	PINMUX_SINGLE(BS_N),
401 	PINMUX_SINGLE(RD_N),
402 	PINMUX_SINGLE(RD_WR_N),
403 	PINMUX_SINGLE(WE0_N),
404 	PINMUX_SINGLE(WE1_N),
405 	PINMUX_SINGLE(EX_WAIT0),
406 	PINMUX_SINGLE(IRQ0),
407 	PINMUX_SINGLE(IRQ1),
408 	PINMUX_SINGLE(IRQ2),
409 	PINMUX_SINGLE(IRQ3),
410 	PINMUX_SINGLE(CS0_N),
411 	PINMUX_SINGLE(VI0_CLK),
412 	PINMUX_SINGLE(VI0_CLKENB),
413 	PINMUX_SINGLE(VI0_HSYNC_N),
414 	PINMUX_SINGLE(VI0_VSYNC_N),
415 	PINMUX_SINGLE(VI0_D0_B0_C0),
416 	PINMUX_SINGLE(VI0_D1_B1_C1),
417 	PINMUX_SINGLE(VI0_D2_B2_C2),
418 	PINMUX_SINGLE(VI0_D3_B3_C3),
419 	PINMUX_SINGLE(VI0_D4_B4_C4),
420 	PINMUX_SINGLE(VI0_D5_B5_C5),
421 	PINMUX_SINGLE(VI0_D6_B6_C6),
422 	PINMUX_SINGLE(VI0_D7_B7_C7),
423 	PINMUX_SINGLE(VI0_D8_G0_Y0),
424 	PINMUX_SINGLE(VI0_D9_G1_Y1),
425 	PINMUX_SINGLE(VI0_D10_G2_Y2),
426 	PINMUX_SINGLE(VI0_D11_G3_Y3),
427 	PINMUX_SINGLE(VI0_FIELD),
428 	PINMUX_SINGLE(VI1_CLK),
429 	PINMUX_SINGLE(VI1_CLKENB),
430 	PINMUX_SINGLE(VI1_HSYNC_N),
431 	PINMUX_SINGLE(VI1_VSYNC_N),
432 	PINMUX_SINGLE(VI1_D0_B0_C0),
433 	PINMUX_SINGLE(VI1_D1_B1_C1),
434 	PINMUX_SINGLE(VI1_D2_B2_C2),
435 	PINMUX_SINGLE(VI1_D3_B3_C3),
436 	PINMUX_SINGLE(VI1_D4_B4_C4),
437 	PINMUX_SINGLE(VI1_D5_B5_C5),
438 	PINMUX_SINGLE(VI1_D6_B6_C6),
439 	PINMUX_SINGLE(VI1_D7_B7_C7),
440 	PINMUX_SINGLE(VI1_D8_G0_Y0),
441 	PINMUX_SINGLE(VI1_D9_G1_Y1),
442 	PINMUX_SINGLE(VI1_D10_G2_Y2),
443 	PINMUX_SINGLE(VI1_D11_G3_Y3),
444 	PINMUX_SINGLE(VI1_FIELD),
445 	PINMUX_SINGLE(VI3_D10_Y2),
446 	PINMUX_SINGLE(VI3_FIELD),
447 	PINMUX_SINGLE(VI4_CLK),
448 	PINMUX_SINGLE(VI5_CLK),
449 	PINMUX_SINGLE(VI5_D9_Y1),
450 	PINMUX_SINGLE(VI5_D10_Y2),
451 	PINMUX_SINGLE(VI5_D11_Y3),
452 	PINMUX_SINGLE(VI5_FIELD),
453 	PINMUX_SINGLE(HRTS0_N),
454 	PINMUX_SINGLE(HCTS1_N),
455 	PINMUX_SINGLE(SCK0),
456 	PINMUX_SINGLE(CTS0_N),
457 	PINMUX_SINGLE(RTS0_N),
458 	PINMUX_SINGLE(TX0),
459 	PINMUX_SINGLE(RX0),
460 	PINMUX_SINGLE(SCK1),
461 	PINMUX_SINGLE(CTS1_N),
462 	PINMUX_SINGLE(RTS1_N),
463 	PINMUX_SINGLE(TX1),
464 	PINMUX_SINGLE(RX1),
465 	PINMUX_SINGLE(SCIF_CLK),
466 	PINMUX_SINGLE(CAN0_TX),
467 	PINMUX_SINGLE(CAN0_RX),
468 	PINMUX_SINGLE(CAN_CLK),
469 	PINMUX_SINGLE(CAN1_TX),
470 	PINMUX_SINGLE(CAN1_RX),
471 	PINMUX_SINGLE(SD0_CLK),
472 	PINMUX_SINGLE(SD0_CMD),
473 	PINMUX_SINGLE(SD0_DAT0),
474 	PINMUX_SINGLE(SD0_DAT1),
475 	PINMUX_SINGLE(SD0_DAT2),
476 	PINMUX_SINGLE(SD0_DAT3),
477 	PINMUX_SINGLE(SD0_CD),
478 	PINMUX_SINGLE(SD0_WP),
479 	PINMUX_SINGLE(ADICLK),
480 	PINMUX_SINGLE(ADICS_SAMP),
481 	PINMUX_SINGLE(ADIDATA),
482 	PINMUX_SINGLE(ADICHS0),
483 	PINMUX_SINGLE(ADICHS1),
484 	PINMUX_SINGLE(ADICHS2),
485 	PINMUX_SINGLE(AVS1),
486 	PINMUX_SINGLE(AVS2),
487 
488 	/* IPSR0 */
489 	PINMUX_IPSR_GPSR(IP0_0, DU0_DR0_DATA0),
490 	PINMUX_IPSR_GPSR(IP0_1, DU0_DR1_DATA1),
491 	PINMUX_IPSR_GPSR(IP0_2, DU0_DR2_Y4_DATA2),
492 	PINMUX_IPSR_GPSR(IP0_3, DU0_DR3_Y5_DATA3),
493 	PINMUX_IPSR_GPSR(IP0_4, DU0_DR4_Y6_DATA4),
494 	PINMUX_IPSR_GPSR(IP0_5, DU0_DR5_Y7_DATA5),
495 	PINMUX_IPSR_GPSR(IP0_6, DU0_DR6_Y8_DATA6),
496 	PINMUX_IPSR_GPSR(IP0_7, DU0_DR7_Y9_DATA7),
497 	PINMUX_IPSR_GPSR(IP0_8, DU0_DG0_DATA8),
498 	PINMUX_IPSR_GPSR(IP0_9, DU0_DG1_DATA9),
499 	PINMUX_IPSR_GPSR(IP0_10, DU0_DG2_C6_DATA10),
500 	PINMUX_IPSR_GPSR(IP0_11, DU0_DG3_C7_DATA11),
501 	PINMUX_IPSR_GPSR(IP0_12, DU0_DG4_Y0_DATA12),
502 	PINMUX_IPSR_GPSR(IP0_13, DU0_DG5_Y1_DATA13),
503 	PINMUX_IPSR_GPSR(IP0_14, DU0_DG6_Y2_DATA14),
504 	PINMUX_IPSR_GPSR(IP0_15, DU0_DG7_Y3_DATA15),
505 	PINMUX_IPSR_GPSR(IP0_16, DU0_DB0),
506 	PINMUX_IPSR_GPSR(IP0_17, DU0_DB1),
507 	PINMUX_IPSR_GPSR(IP0_18, DU0_DB2_C0),
508 	PINMUX_IPSR_GPSR(IP0_19, DU0_DB3_C1),
509 	PINMUX_IPSR_GPSR(IP0_20, DU0_DB4_C2),
510 	PINMUX_IPSR_GPSR(IP0_21, DU0_DB5_C3),
511 	PINMUX_IPSR_GPSR(IP0_22, DU0_DB6_C4),
512 	PINMUX_IPSR_GPSR(IP0_23, DU0_DB7_C5),
513 
514 	/* IPSR1 */
515 	PINMUX_IPSR_GPSR(IP1_0, DU0_EXHSYNC_DU0_HSYNC),
516 	PINMUX_IPSR_GPSR(IP1_1, DU0_EXVSYNC_DU0_VSYNC),
517 	PINMUX_IPSR_GPSR(IP1_2, DU0_EXODDF_DU0_ODDF_DISP_CDE),
518 	PINMUX_IPSR_GPSR(IP1_3, DU0_DISP),
519 	PINMUX_IPSR_GPSR(IP1_4, DU0_CDE),
520 	PINMUX_IPSR_GPSR(IP1_5, DU1_DR2_Y4_DATA0),
521 	PINMUX_IPSR_GPSR(IP1_6, DU1_DR3_Y5_DATA1),
522 	PINMUX_IPSR_GPSR(IP1_7, DU1_DR4_Y6_DATA2),
523 	PINMUX_IPSR_GPSR(IP1_8, DU1_DR5_Y7_DATA3),
524 	PINMUX_IPSR_GPSR(IP1_9, DU1_DR6_DATA4),
525 	PINMUX_IPSR_GPSR(IP1_10, DU1_DR7_DATA5),
526 	PINMUX_IPSR_GPSR(IP1_11, DU1_DG2_C6_DATA6),
527 	PINMUX_IPSR_GPSR(IP1_12, DU1_DG3_C7_DATA7),
528 	PINMUX_IPSR_GPSR(IP1_13, DU1_DG4_Y0_DATA8),
529 	PINMUX_IPSR_GPSR(IP1_14, DU1_DG5_Y1_DATA9),
530 	PINMUX_IPSR_GPSR(IP1_15, DU1_DG6_Y2_DATA10),
531 	PINMUX_IPSR_GPSR(IP1_16, DU1_DG7_Y3_DATA11),
532 	PINMUX_IPSR_GPSR(IP1_17, A20),
533 	PINMUX_IPSR_GPSR(IP1_17, MOSI_IO0),
534 	PINMUX_IPSR_GPSR(IP1_18, A21),
535 	PINMUX_IPSR_GPSR(IP1_18, MISO_IO1),
536 	PINMUX_IPSR_GPSR(IP1_19, A22),
537 	PINMUX_IPSR_GPSR(IP1_19, IO2),
538 	PINMUX_IPSR_GPSR(IP1_20, A23),
539 	PINMUX_IPSR_GPSR(IP1_20, IO3),
540 	PINMUX_IPSR_GPSR(IP1_21, A24),
541 	PINMUX_IPSR_GPSR(IP1_21, SPCLK),
542 	PINMUX_IPSR_GPSR(IP1_22, A25),
543 	PINMUX_IPSR_GPSR(IP1_22, SSL),
544 
545 	/* IPSR2 */
546 	PINMUX_IPSR_GPSR(IP2_0, VI2_CLK),
547 	PINMUX_IPSR_GPSR(IP2_0, AVB_RX_CLK),
548 	PINMUX_IPSR_GPSR(IP2_1, VI2_CLKENB),
549 	PINMUX_IPSR_GPSR(IP2_1, AVB_RX_DV),
550 	PINMUX_IPSR_GPSR(IP2_2, VI2_HSYNC_N),
551 	PINMUX_IPSR_GPSR(IP2_2, AVB_RXD0),
552 	PINMUX_IPSR_GPSR(IP2_3, VI2_VSYNC_N),
553 	PINMUX_IPSR_GPSR(IP2_3, AVB_RXD1),
554 	PINMUX_IPSR_GPSR(IP2_4, VI2_D0_C0),
555 	PINMUX_IPSR_GPSR(IP2_4, AVB_RXD2),
556 	PINMUX_IPSR_GPSR(IP2_5, VI2_D1_C1),
557 	PINMUX_IPSR_GPSR(IP2_5, AVB_RXD3),
558 	PINMUX_IPSR_GPSR(IP2_6, VI2_D2_C2),
559 	PINMUX_IPSR_GPSR(IP2_6, AVB_RXD4),
560 	PINMUX_IPSR_GPSR(IP2_7, VI2_D3_C3),
561 	PINMUX_IPSR_GPSR(IP2_7, AVB_RXD5),
562 	PINMUX_IPSR_GPSR(IP2_8, VI2_D4_C4),
563 	PINMUX_IPSR_GPSR(IP2_8, AVB_RXD6),
564 	PINMUX_IPSR_GPSR(IP2_9, VI2_D5_C5),
565 	PINMUX_IPSR_GPSR(IP2_9, AVB_RXD7),
566 	PINMUX_IPSR_GPSR(IP2_10, VI2_D6_C6),
567 	PINMUX_IPSR_GPSR(IP2_10, AVB_RX_ER),
568 	PINMUX_IPSR_GPSR(IP2_11, VI2_D7_C7),
569 	PINMUX_IPSR_GPSR(IP2_11, AVB_COL),
570 	PINMUX_IPSR_GPSR(IP2_12, VI2_D8_Y0),
571 	PINMUX_IPSR_GPSR(IP2_12, AVB_TXD3),
572 	PINMUX_IPSR_GPSR(IP2_13, VI2_D9_Y1),
573 	PINMUX_IPSR_GPSR(IP2_13, AVB_TX_EN),
574 	PINMUX_IPSR_GPSR(IP2_14, VI2_D10_Y2),
575 	PINMUX_IPSR_GPSR(IP2_14, AVB_TXD0),
576 	PINMUX_IPSR_GPSR(IP2_15, VI2_D11_Y3),
577 	PINMUX_IPSR_GPSR(IP2_15, AVB_TXD1),
578 	PINMUX_IPSR_GPSR(IP2_16, VI2_FIELD),
579 	PINMUX_IPSR_GPSR(IP2_16, AVB_TXD2),
580 
581 	/* IPSR3 */
582 	PINMUX_IPSR_GPSR(IP3_0, VI3_CLK),
583 	PINMUX_IPSR_GPSR(IP3_0, AVB_TX_CLK),
584 	PINMUX_IPSR_GPSR(IP3_1, VI3_CLKENB),
585 	PINMUX_IPSR_GPSR(IP3_1, AVB_TXD4),
586 	PINMUX_IPSR_GPSR(IP3_2, VI3_HSYNC_N),
587 	PINMUX_IPSR_GPSR(IP3_2, AVB_TXD5),
588 	PINMUX_IPSR_GPSR(IP3_3, VI3_VSYNC_N),
589 	PINMUX_IPSR_GPSR(IP3_3, AVB_TXD6),
590 	PINMUX_IPSR_GPSR(IP3_4, VI3_D0_C0),
591 	PINMUX_IPSR_GPSR(IP3_4, AVB_TXD7),
592 	PINMUX_IPSR_GPSR(IP3_5, VI3_D1_C1),
593 	PINMUX_IPSR_GPSR(IP3_5, AVB_TX_ER),
594 	PINMUX_IPSR_GPSR(IP3_6, VI3_D2_C2),
595 	PINMUX_IPSR_GPSR(IP3_6, AVB_GTX_CLK),
596 	PINMUX_IPSR_GPSR(IP3_7, VI3_D3_C3),
597 	PINMUX_IPSR_GPSR(IP3_7, AVB_MDC),
598 	PINMUX_IPSR_GPSR(IP3_8, VI3_D4_C4),
599 	PINMUX_IPSR_GPSR(IP3_8, AVB_MDIO),
600 	PINMUX_IPSR_GPSR(IP3_9, VI3_D5_C5),
601 	PINMUX_IPSR_GPSR(IP3_9, AVB_LINK),
602 	PINMUX_IPSR_GPSR(IP3_10, VI3_D6_C6),
603 	PINMUX_IPSR_GPSR(IP3_10, AVB_MAGIC),
604 	PINMUX_IPSR_GPSR(IP3_11, VI3_D7_C7),
605 	PINMUX_IPSR_GPSR(IP3_11, AVB_PHY_INT),
606 	PINMUX_IPSR_GPSR(IP3_12, VI3_D8_Y0),
607 	PINMUX_IPSR_GPSR(IP3_12, AVB_CRS),
608 	PINMUX_IPSR_GPSR(IP3_13, VI3_D9_Y1),
609 	PINMUX_IPSR_GPSR(IP3_13, AVB_GTXREFCLK),
610 	PINMUX_IPSR_GPSR(IP3_14, VI3_D11_Y3),
611 	PINMUX_IPSR_GPSR(IP3_14, AVB_AVTP_MATCH),
612 
613 	/* IPSR4 */
614 	PINMUX_IPSR_GPSR(IP4_0, VI4_CLKENB),
615 	PINMUX_IPSR_GPSR(IP4_0, VI0_D12_G4_Y4),
616 	PINMUX_IPSR_GPSR(IP4_1, VI4_HSYNC_N),
617 	PINMUX_IPSR_GPSR(IP4_1, VI0_D13_G5_Y5),
618 	PINMUX_IPSR_GPSR(IP4_3_2, VI4_VSYNC_N),
619 	PINMUX_IPSR_GPSR(IP4_3_2, VI0_D14_G6_Y6),
620 	PINMUX_IPSR_GPSR(IP4_4, VI4_D0_C0),
621 	PINMUX_IPSR_GPSR(IP4_4, VI0_D15_G7_Y7),
622 	PINMUX_IPSR_GPSR(IP4_6_5, VI4_D1_C1),
623 	PINMUX_IPSR_GPSR(IP4_6_5, VI0_D16_R0),
624 	PINMUX_IPSR_MSEL(IP4_6_5, VI1_D12_G4_Y4, SEL_VI1_0),
625 	PINMUX_IPSR_GPSR(IP4_8_7, VI4_D2_C2),
626 	PINMUX_IPSR_GPSR(IP4_8_7, VI0_D17_R1),
627 	PINMUX_IPSR_MSEL(IP4_8_7, VI1_D13_G5_Y5, SEL_VI1_0),
628 	PINMUX_IPSR_GPSR(IP4_10_9, VI4_D3_C3),
629 	PINMUX_IPSR_GPSR(IP4_10_9, VI0_D18_R2),
630 	PINMUX_IPSR_MSEL(IP4_10_9, VI1_D14_G6_Y6, SEL_VI1_0),
631 	PINMUX_IPSR_GPSR(IP4_12_11, VI4_D4_C4),
632 	PINMUX_IPSR_GPSR(IP4_12_11, VI0_D19_R3),
633 	PINMUX_IPSR_MSEL(IP4_12_11, VI1_D15_G7_Y7, SEL_VI1_0),
634 	PINMUX_IPSR_GPSR(IP4_14_13, VI4_D5_C5),
635 	PINMUX_IPSR_GPSR(IP4_14_13, VI0_D20_R4),
636 	PINMUX_IPSR_GPSR(IP4_14_13, VI2_D12_Y4),
637 	PINMUX_IPSR_GPSR(IP4_16_15, VI4_D6_C6),
638 	PINMUX_IPSR_GPSR(IP4_16_15, VI0_D21_R5),
639 	PINMUX_IPSR_GPSR(IP4_16_15, VI2_D13_Y5),
640 	PINMUX_IPSR_GPSR(IP4_18_17, VI4_D7_C7),
641 	PINMUX_IPSR_GPSR(IP4_18_17, VI0_D22_R6),
642 	PINMUX_IPSR_GPSR(IP4_18_17, VI2_D14_Y6),
643 	PINMUX_IPSR_GPSR(IP4_20_19, VI4_D8_Y0),
644 	PINMUX_IPSR_GPSR(IP4_20_19, VI0_D23_R7),
645 	PINMUX_IPSR_GPSR(IP4_20_19, VI2_D15_Y7),
646 	PINMUX_IPSR_GPSR(IP4_21, VI4_D9_Y1),
647 	PINMUX_IPSR_GPSR(IP4_21, VI3_D12_Y4),
648 	PINMUX_IPSR_GPSR(IP4_22, VI4_D10_Y2),
649 	PINMUX_IPSR_GPSR(IP4_22, VI3_D13_Y5),
650 	PINMUX_IPSR_GPSR(IP4_23, VI4_D11_Y3),
651 	PINMUX_IPSR_GPSR(IP4_23, VI3_D14_Y6),
652 	PINMUX_IPSR_GPSR(IP4_24, VI4_FIELD),
653 	PINMUX_IPSR_GPSR(IP4_24, VI3_D15_Y7),
654 
655 	/* IPSR5 */
656 	PINMUX_IPSR_GPSR(IP5_0, VI5_CLKENB),
657 	PINMUX_IPSR_MSEL(IP5_0, VI1_D12_G4_Y4_B, SEL_VI1_1),
658 	PINMUX_IPSR_GPSR(IP5_1, VI5_HSYNC_N),
659 	PINMUX_IPSR_MSEL(IP5_1, VI1_D13_G5_Y5_B, SEL_VI1_1),
660 	PINMUX_IPSR_GPSR(IP5_2, VI5_VSYNC_N),
661 	PINMUX_IPSR_MSEL(IP5_2, VI1_D14_G6_Y6_B, SEL_VI1_1),
662 	PINMUX_IPSR_GPSR(IP5_3, VI5_D0_C0),
663 	PINMUX_IPSR_MSEL(IP5_3, VI1_D15_G7_Y7_B, SEL_VI1_1),
664 	PINMUX_IPSR_GPSR(IP5_4, VI5_D1_C1),
665 	PINMUX_IPSR_GPSR(IP5_4, VI1_D16_R0),
666 	PINMUX_IPSR_GPSR(IP5_5, VI5_D2_C2),
667 	PINMUX_IPSR_GPSR(IP5_5, VI1_D17_R1),
668 	PINMUX_IPSR_GPSR(IP5_6, VI5_D3_C3),
669 	PINMUX_IPSR_GPSR(IP5_6, VI1_D18_R2),
670 	PINMUX_IPSR_GPSR(IP5_7, VI5_D4_C4),
671 	PINMUX_IPSR_GPSR(IP5_7, VI1_D19_R3),
672 	PINMUX_IPSR_GPSR(IP5_8, VI5_D5_C5),
673 	PINMUX_IPSR_GPSR(IP5_8, VI1_D20_R4),
674 	PINMUX_IPSR_GPSR(IP5_9, VI5_D6_C6),
675 	PINMUX_IPSR_GPSR(IP5_9, VI1_D21_R5),
676 	PINMUX_IPSR_GPSR(IP5_10, VI5_D7_C7),
677 	PINMUX_IPSR_GPSR(IP5_10, VI1_D22_R6),
678 	PINMUX_IPSR_GPSR(IP5_11, VI5_D8_Y0),
679 	PINMUX_IPSR_GPSR(IP5_11, VI1_D23_R7),
680 
681 	/* IPSR6 */
682 	PINMUX_IPSR_GPSR(IP6_0, MSIOF0_SCK),
683 	PINMUX_IPSR_GPSR(IP6_0, HSCK0),
684 	PINMUX_IPSR_GPSR(IP6_1, MSIOF0_SYNC),
685 	PINMUX_IPSR_GPSR(IP6_1, HCTS0_N),
686 	PINMUX_IPSR_GPSR(IP6_2, MSIOF0_TXD),
687 	PINMUX_IPSR_GPSR(IP6_2, HTX0),
688 	PINMUX_IPSR_GPSR(IP6_3, MSIOF0_RXD),
689 	PINMUX_IPSR_GPSR(IP6_3, HRX0),
690 	PINMUX_IPSR_GPSR(IP6_4, MSIOF1_SCK),
691 	PINMUX_IPSR_GPSR(IP6_4, HSCK1),
692 	PINMUX_IPSR_GPSR(IP6_5, MSIOF1_SYNC),
693 	PINMUX_IPSR_GPSR(IP6_5, HRTS1_N),
694 	PINMUX_IPSR_GPSR(IP6_6, MSIOF1_TXD),
695 	PINMUX_IPSR_GPSR(IP6_6, HTX1),
696 	PINMUX_IPSR_GPSR(IP6_7, MSIOF1_RXD),
697 	PINMUX_IPSR_GPSR(IP6_7, HRX1),
698 	PINMUX_IPSR_GPSR(IP6_9_8, DRACK0),
699 	PINMUX_IPSR_GPSR(IP6_9_8, SCK2),
700 	PINMUX_IPSR_GPSR(IP6_11_10, DACK0),
701 	PINMUX_IPSR_GPSR(IP6_11_10, TX2),
702 	PINMUX_IPSR_GPSR(IP6_13_12, DREQ0_N),
703 	PINMUX_IPSR_GPSR(IP6_13_12, RX2),
704 	PINMUX_IPSR_GPSR(IP6_15_14, DACK1),
705 	PINMUX_IPSR_GPSR(IP6_15_14, SCK3),
706 	PINMUX_IPSR_GPSR(IP6_16, TX3),
707 	PINMUX_IPSR_GPSR(IP6_18_17, DREQ1_N),
708 	PINMUX_IPSR_GPSR(IP6_18_17, RX3),
709 
710 	/* IPSR7 */
711 	PINMUX_IPSR_GPSR(IP7_1_0, PWM0),
712 	PINMUX_IPSR_GPSR(IP7_1_0, TCLK1),
713 	PINMUX_IPSR_GPSR(IP7_1_0, FSO_CFE_0),
714 	PINMUX_IPSR_GPSR(IP7_3_2, PWM1),
715 	PINMUX_IPSR_GPSR(IP7_3_2, TCLK2),
716 	PINMUX_IPSR_GPSR(IP7_3_2, FSO_CFE_1),
717 	PINMUX_IPSR_GPSR(IP7_5_4, PWM2),
718 	PINMUX_IPSR_GPSR(IP7_5_4, TCLK3),
719 	PINMUX_IPSR_GPSR(IP7_5_4, FSO_TOE),
720 	PINMUX_IPSR_GPSR(IP7_6, PWM3),
721 	PINMUX_IPSR_GPSR(IP7_7, PWM4),
722 	PINMUX_IPSR_GPSR(IP7_9_8, SSI_SCK34),
723 	PINMUX_IPSR_GPSR(IP7_9_8, TPU0TO0),
724 	PINMUX_IPSR_GPSR(IP7_11_10, SSI_WS34),
725 	PINMUX_IPSR_GPSR(IP7_11_10, TPU0TO1),
726 	PINMUX_IPSR_GPSR(IP7_13_12, SSI_SDATA3),
727 	PINMUX_IPSR_GPSR(IP7_13_12, TPU0TO2),
728 	PINMUX_IPSR_GPSR(IP7_15_14, SSI_SCK4),
729 	PINMUX_IPSR_GPSR(IP7_15_14, TPU0TO3),
730 	PINMUX_IPSR_GPSR(IP7_16, SSI_WS4),
731 	PINMUX_IPSR_GPSR(IP7_17, SSI_SDATA4),
732 	PINMUX_IPSR_GPSR(IP7_18, AUDIO_CLKOUT),
733 	PINMUX_IPSR_GPSR(IP7_19, AUDIO_CLKA),
734 	PINMUX_IPSR_GPSR(IP7_20, AUDIO_CLKB),
735 };
736 
737 /*
738  * Pins not associated with a GPIO port.
739  */
740 enum {
741 	GP_ASSIGN_LAST(),
742 	NOGP_ALL(),
743 };
744 
745 static const struct sh_pfc_pin pinmux_pins[] = {
746 	PINMUX_GPIO_GP_ALL(),
747 	PINMUX_NOGP_ALL(),
748 };
749 
750 /* - AVB -------------------------------------------------------------------- */
751 static const unsigned int avb_link_pins[] = {
752 	RCAR_GP_PIN(7, 9),
753 };
754 static const unsigned int avb_link_mux[] = {
755 	AVB_LINK_MARK,
756 };
757 static const unsigned int avb_magic_pins[] = {
758 	RCAR_GP_PIN(7, 10),
759 };
760 static const unsigned int avb_magic_mux[] = {
761 	AVB_MAGIC_MARK,
762 };
763 static const unsigned int avb_phy_int_pins[] = {
764 	RCAR_GP_PIN(7, 11),
765 };
766 static const unsigned int avb_phy_int_mux[] = {
767 	AVB_PHY_INT_MARK,
768 };
769 static const unsigned int avb_mdio_pins[] = {
770 	RCAR_GP_PIN(7, 7), RCAR_GP_PIN(7, 8),
771 };
772 static const unsigned int avb_mdio_mux[] = {
773 	AVB_MDC_MARK, AVB_MDIO_MARK,
774 };
775 static const unsigned int avb_mii_pins[] = {
776 	RCAR_GP_PIN(6, 14), RCAR_GP_PIN(6, 15), RCAR_GP_PIN(6, 16),
777 	RCAR_GP_PIN(6, 12),
778 
779 	RCAR_GP_PIN(6, 2),  RCAR_GP_PIN(6, 3),  RCAR_GP_PIN(6, 4),
780 	RCAR_GP_PIN(6, 5),
781 
782 	RCAR_GP_PIN(6, 10), RCAR_GP_PIN(6, 0),  RCAR_GP_PIN(6, 1),
783 	RCAR_GP_PIN(7, 12), RCAR_GP_PIN(6, 13), RCAR_GP_PIN(7, 5),
784 	RCAR_GP_PIN(7, 0),  RCAR_GP_PIN(6, 11),
785 };
786 static const unsigned int avb_mii_mux[] = {
787 	AVB_TXD0_MARK, AVB_TXD1_MARK, AVB_TXD2_MARK,
788 	AVB_TXD3_MARK,
789 
790 	AVB_RXD0_MARK, AVB_RXD1_MARK, AVB_RXD2_MARK,
791 	AVB_RXD3_MARK,
792 
793 	AVB_RX_ER_MARK, AVB_RX_CLK_MARK, AVB_RX_DV_MARK,
794 	AVB_CRS_MARK, AVB_TX_EN_MARK, AVB_TX_ER_MARK,
795 	AVB_TX_CLK_MARK, AVB_COL_MARK,
796 };
797 static const unsigned int avb_gmii_pins[] = {
798 	RCAR_GP_PIN(6, 14), RCAR_GP_PIN(6, 15), RCAR_GP_PIN(6, 16),
799 	RCAR_GP_PIN(6, 12), RCAR_GP_PIN(7, 1),  RCAR_GP_PIN(7, 2),
800 	RCAR_GP_PIN(7, 3),  RCAR_GP_PIN(7, 4),
801 
802 	RCAR_GP_PIN(6, 2),  RCAR_GP_PIN(6, 3), RCAR_GP_PIN(6, 4),
803 	RCAR_GP_PIN(6, 5),  RCAR_GP_PIN(6, 6), RCAR_GP_PIN(6, 7),
804 	RCAR_GP_PIN(6, 8),  RCAR_GP_PIN(6, 9),
805 
806 	RCAR_GP_PIN(6, 10), RCAR_GP_PIN(6, 0), RCAR_GP_PIN(6, 1),
807 	RCAR_GP_PIN(7, 12), RCAR_GP_PIN(7, 6), RCAR_GP_PIN(7, 13),
808 	RCAR_GP_PIN(6, 13), RCAR_GP_PIN(7, 5), RCAR_GP_PIN(7, 0),
809 	RCAR_GP_PIN(6, 11),
810 };
811 static const unsigned int avb_gmii_mux[] = {
812 	AVB_TXD0_MARK, AVB_TXD1_MARK, AVB_TXD2_MARK,
813 	AVB_TXD3_MARK, AVB_TXD4_MARK, AVB_TXD5_MARK,
814 	AVB_TXD6_MARK, AVB_TXD7_MARK,
815 
816 	AVB_RXD0_MARK, AVB_RXD1_MARK, AVB_RXD2_MARK,
817 	AVB_RXD3_MARK, AVB_RXD4_MARK, AVB_RXD5_MARK,
818 	AVB_RXD6_MARK, AVB_RXD7_MARK,
819 
820 	AVB_RX_ER_MARK, AVB_RX_CLK_MARK, AVB_RX_DV_MARK,
821 	AVB_CRS_MARK, AVB_GTX_CLK_MARK, AVB_GTXREFCLK_MARK,
822 	AVB_TX_EN_MARK, AVB_TX_ER_MARK, AVB_TX_CLK_MARK,
823 	AVB_COL_MARK,
824 };
825 static const unsigned int avb_avtp_match_pins[] = {
826 	RCAR_GP_PIN(7, 15),
827 };
828 static const unsigned int avb_avtp_match_mux[] = {
829 	AVB_AVTP_MATCH_MARK,
830 };
831 /* - CAN -------------------------------------------------------------------- */
832 static const unsigned int can0_data_pins[] = {
833 	/* TX, RX */
834 	RCAR_GP_PIN(10, 27), RCAR_GP_PIN(10, 28),
835 };
836 static const unsigned int can0_data_mux[] = {
837 	CAN0_TX_MARK, CAN0_RX_MARK,
838 };
839 static const unsigned int can1_data_pins[] = {
840 	/* TX, RX */
841 	RCAR_GP_PIN(10, 30), RCAR_GP_PIN(10, 31),
842 };
843 static const unsigned int can1_data_mux[] = {
844 	CAN1_TX_MARK, CAN1_RX_MARK,
845 };
846 static const unsigned int can_clk_pins[] = {
847 	/* CAN_CLK */
848 	RCAR_GP_PIN(10, 29),
849 };
850 static const unsigned int can_clk_mux[] = {
851 	CAN_CLK_MARK,
852 };
853 /* - DU --------------------------------------------------------------------- */
854 static const unsigned int du0_rgb666_pins[] = {
855 	/* R[7:2], G[7:2], B[7:2] */
856 	RCAR_GP_PIN(0, 7), RCAR_GP_PIN(0, 6), RCAR_GP_PIN(0, 5),
857 	RCAR_GP_PIN(0, 4), RCAR_GP_PIN(0, 3), RCAR_GP_PIN(0, 2),
858 	RCAR_GP_PIN(0, 15), RCAR_GP_PIN(0, 14), RCAR_GP_PIN(0, 13),
859 	RCAR_GP_PIN(0, 12), RCAR_GP_PIN(0, 11), RCAR_GP_PIN(0, 10),
860 	RCAR_GP_PIN(0, 23), RCAR_GP_PIN(0, 22), RCAR_GP_PIN(0, 21),
861 	RCAR_GP_PIN(0, 20), RCAR_GP_PIN(0, 19), RCAR_GP_PIN(0, 18),
862 };
863 static const unsigned int du0_rgb666_mux[] = {
864 	DU0_DR7_Y9_DATA7_MARK, DU0_DR6_Y8_DATA6_MARK, DU0_DR5_Y7_DATA5_MARK,
865 	DU0_DR4_Y6_DATA4_MARK, DU0_DR3_Y5_DATA3_MARK, DU0_DR2_Y4_DATA2_MARK,
866 	DU0_DG7_Y3_DATA15_MARK, DU0_DG6_Y2_DATA14_MARK, DU0_DG5_Y1_DATA13_MARK,
867 	DU0_DG4_Y0_DATA12_MARK, DU0_DG3_C7_DATA11_MARK, DU0_DG2_C6_DATA10_MARK,
868 	DU0_DB7_C5_MARK, DU0_DB6_C4_MARK, DU0_DB5_C3_MARK,
869 	DU0_DB4_C2_MARK, DU0_DB3_C1_MARK, DU0_DB2_C0_MARK,
870 };
871 static const unsigned int du0_rgb888_pins[] = {
872 	/* R[7:0], G[7:0], B[7:0] */
873 	RCAR_GP_PIN(0, 7), RCAR_GP_PIN(0, 6), RCAR_GP_PIN(0, 5),
874 	RCAR_GP_PIN(0, 4), RCAR_GP_PIN(0, 3), RCAR_GP_PIN(0, 2),
875 	RCAR_GP_PIN(0, 1), RCAR_GP_PIN(0, 0),
876 	RCAR_GP_PIN(0, 15), RCAR_GP_PIN(0, 14), RCAR_GP_PIN(0, 13),
877 	RCAR_GP_PIN(0, 12), RCAR_GP_PIN(0, 11), RCAR_GP_PIN(0, 10),
878 	RCAR_GP_PIN(0, 9), RCAR_GP_PIN(0, 8),
879 	RCAR_GP_PIN(0, 23), RCAR_GP_PIN(0, 22), RCAR_GP_PIN(0, 21),
880 	RCAR_GP_PIN(0, 20), RCAR_GP_PIN(0, 19), RCAR_GP_PIN(0, 18),
881 	RCAR_GP_PIN(0, 17), RCAR_GP_PIN(0, 16),
882 };
883 static const unsigned int du0_rgb888_mux[] = {
884 	DU0_DR7_Y9_DATA7_MARK, DU0_DR6_Y8_DATA6_MARK, DU0_DR5_Y7_DATA5_MARK,
885 	DU0_DR4_Y6_DATA4_MARK, DU0_DR3_Y5_DATA3_MARK, DU0_DR2_Y4_DATA2_MARK,
886 	DU0_DR1_DATA1_MARK, DU0_DR0_DATA0_MARK,
887 	DU0_DG7_Y3_DATA15_MARK, DU0_DG6_Y2_DATA14_MARK, DU0_DG5_Y1_DATA13_MARK,
888 	DU0_DG4_Y0_DATA12_MARK, DU0_DG3_C7_DATA11_MARK, DU0_DG2_C6_DATA10_MARK,
889 	DU0_DG1_DATA9_MARK, DU0_DG0_DATA8_MARK,
890 	DU0_DB7_C5_MARK, DU0_DB6_C4_MARK, DU0_DB5_C3_MARK,
891 	DU0_DB4_C2_MARK, DU0_DB3_C1_MARK, DU0_DB2_C0_MARK,
892 	DU0_DB1_MARK, DU0_DB0_MARK,
893 };
894 static const unsigned int du0_sync_pins[] = {
895 	/* EXVSYNC/VSYNC, EXHSYNC/HSYNC */
896 	RCAR_GP_PIN(0, 25), RCAR_GP_PIN(0, 24),
897 };
898 static const unsigned int du0_sync_mux[] = {
899 	DU0_EXVSYNC_DU0_VSYNC_MARK, DU0_EXHSYNC_DU0_HSYNC_MARK,
900 };
901 static const unsigned int du0_oddf_pins[] = {
902 	/* EXODDF/ODDF/DISP/CDE */
903 	RCAR_GP_PIN(0, 26),
904 };
905 static const unsigned int du0_oddf_mux[] = {
906 	DU0_EXODDF_DU0_ODDF_DISP_CDE_MARK
907 };
908 static const unsigned int du0_disp_pins[] = {
909 	/* DISP */
910 	RCAR_GP_PIN(0, 27),
911 };
912 static const unsigned int du0_disp_mux[] = {
913 	DU0_DISP_MARK,
914 };
915 static const unsigned int du0_cde_pins[] = {
916 	/* CDE */
917 	RCAR_GP_PIN(0, 28),
918 };
919 static const unsigned int du0_cde_mux[] = {
920 	DU0_CDE_MARK,
921 };
922 static const unsigned int du1_rgb666_pins[] = {
923 	/* R[7:2], G[7:2], B[7:2] */
924 	RCAR_GP_PIN(1, 5), RCAR_GP_PIN(1, 4), RCAR_GP_PIN(1, 3),
925 	RCAR_GP_PIN(1, 2), RCAR_GP_PIN(1, 1), RCAR_GP_PIN(1, 0),
926 	RCAR_GP_PIN(1, 11), RCAR_GP_PIN(1, 10), RCAR_GP_PIN(1, 9),
927 	RCAR_GP_PIN(1, 8), RCAR_GP_PIN(1, 7), RCAR_GP_PIN(1, 6),
928 	RCAR_GP_PIN(1, 17), RCAR_GP_PIN(1, 16), RCAR_GP_PIN(1, 15),
929 	RCAR_GP_PIN(1, 14), RCAR_GP_PIN(1, 13), RCAR_GP_PIN(1, 12),
930 };
931 static const unsigned int du1_rgb666_mux[] = {
932 	DU1_DR7_DATA5_MARK, DU1_DR6_DATA4_MARK, DU1_DR5_Y7_DATA3_MARK,
933 	DU1_DR4_Y6_DATA2_MARK, DU1_DR3_Y5_DATA1_MARK, DU1_DR2_Y4_DATA0_MARK,
934 	DU1_DG7_Y3_DATA11_MARK, DU1_DG6_Y2_DATA10_MARK, DU1_DG5_Y1_DATA9_MARK,
935 	DU1_DG4_Y0_DATA8_MARK, DU1_DG3_C7_DATA7_MARK, DU1_DG2_C6_DATA6_MARK,
936 	DU1_DB7_C5_MARK, DU1_DB6_C4_MARK, DU1_DB5_C3_DATA15_MARK,
937 	DU1_DB4_C2_DATA14_MARK, DU1_DB3_C1_DATA13_MARK, DU1_DB2_C0_DATA12_MARK,
938 };
939 static const unsigned int du1_sync_pins[] = {
940 	/* EXVSYNC/VSYNC, EXHSYNC/HSYNC */
941 	RCAR_GP_PIN(1, 19), RCAR_GP_PIN(1, 18),
942 };
943 static const unsigned int du1_sync_mux[] = {
944 	DU1_EXVSYNC_DU1_VSYNC_MARK, DU1_EXHSYNC_DU1_HSYNC_MARK,
945 };
946 static const unsigned int du1_oddf_pins[] = {
947 	/* EXODDF/ODDF/DISP/CDE */
948 	RCAR_GP_PIN(1, 20),
949 };
950 static const unsigned int du1_oddf_mux[] = {
951 	DU1_EXODDF_DU1_ODDF_DISP_CDE_MARK
952 };
953 static const unsigned int du1_disp_pins[] = {
954 	/* DISP */
955 	RCAR_GP_PIN(1, 21),
956 };
957 static const unsigned int du1_disp_mux[] = {
958 	DU1_DISP_MARK,
959 };
960 static const unsigned int du1_cde_pins[] = {
961 	/* CDE */
962 	RCAR_GP_PIN(1, 22),
963 };
964 static const unsigned int du1_cde_mux[] = {
965 	DU1_CDE_MARK,
966 };
967 /* - INTC ------------------------------------------------------------------- */
968 static const unsigned int intc_irq0_pins[] = {
969 	/* IRQ0 */
970 	RCAR_GP_PIN(3, 19),
971 };
972 static const unsigned int intc_irq0_mux[] = {
973 	IRQ0_MARK,
974 };
975 static const unsigned int intc_irq1_pins[] = {
976 	/* IRQ1 */
977 	RCAR_GP_PIN(3, 20),
978 };
979 static const unsigned int intc_irq1_mux[] = {
980 	IRQ1_MARK,
981 };
982 static const unsigned int intc_irq2_pins[] = {
983 	/* IRQ2 */
984 	RCAR_GP_PIN(3, 21),
985 };
986 static const unsigned int intc_irq2_mux[] = {
987 	IRQ2_MARK,
988 };
989 static const unsigned int intc_irq3_pins[] = {
990 	/* IRQ3 */
991 	RCAR_GP_PIN(3, 22),
992 };
993 static const unsigned int intc_irq3_mux[] = {
994 	IRQ3_MARK,
995 };
996 /* - LBSC ------------------------------------------------------------------- */
997 static const unsigned int lbsc_cs0_pins[] = {
998 	/* CS0# */
999 	RCAR_GP_PIN(3, 27),
1000 };
1001 static const unsigned int lbsc_cs0_mux[] = {
1002 	CS0_N_MARK,
1003 };
1004 static const unsigned int lbsc_cs1_pins[] = {
1005 	/* CS1#_A26 */
1006 	RCAR_GP_PIN(3, 6),
1007 };
1008 static const unsigned int lbsc_cs1_mux[] = {
1009 	CS1_N_A26_MARK,
1010 };
1011 static const unsigned int lbsc_ex_cs0_pins[] = {
1012 	/* EX_CS0# */
1013 	RCAR_GP_PIN(3, 7),
1014 };
1015 static const unsigned int lbsc_ex_cs0_mux[] = {
1016 	EX_CS0_N_MARK,
1017 };
1018 static const unsigned int lbsc_ex_cs1_pins[] = {
1019 	/* EX_CS1# */
1020 	RCAR_GP_PIN(3, 8),
1021 };
1022 static const unsigned int lbsc_ex_cs1_mux[] = {
1023 	EX_CS1_N_MARK,
1024 };
1025 static const unsigned int lbsc_ex_cs2_pins[] = {
1026 	/* EX_CS2# */
1027 	RCAR_GP_PIN(3, 9),
1028 };
1029 static const unsigned int lbsc_ex_cs2_mux[] = {
1030 	EX_CS2_N_MARK,
1031 };
1032 static const unsigned int lbsc_ex_cs3_pins[] = {
1033 	/* EX_CS3# */
1034 	RCAR_GP_PIN(3, 10),
1035 };
1036 static const unsigned int lbsc_ex_cs3_mux[] = {
1037 	EX_CS3_N_MARK,
1038 };
1039 static const unsigned int lbsc_ex_cs4_pins[] = {
1040 	/* EX_CS4# */
1041 	RCAR_GP_PIN(3, 11),
1042 };
1043 static const unsigned int lbsc_ex_cs4_mux[] = {
1044 	EX_CS4_N_MARK,
1045 };
1046 static const unsigned int lbsc_ex_cs5_pins[] = {
1047 	/* EX_CS5# */
1048 	RCAR_GP_PIN(3, 12),
1049 };
1050 static const unsigned int lbsc_ex_cs5_mux[] = {
1051 	EX_CS5_N_MARK,
1052 };
1053 /* - MSIOF0 ----------------------------------------------------------------- */
1054 static const unsigned int msiof0_clk_pins[] = {
1055 	/* SCK */
1056 	RCAR_GP_PIN(10, 0),
1057 };
1058 static const unsigned int msiof0_clk_mux[] = {
1059 	MSIOF0_SCK_MARK,
1060 };
1061 static const unsigned int msiof0_sync_pins[] = {
1062 	/* SYNC */
1063 	RCAR_GP_PIN(10, 1),
1064 };
1065 static const unsigned int msiof0_sync_mux[] = {
1066 	MSIOF0_SYNC_MARK,
1067 };
1068 static const unsigned int msiof0_rx_pins[] = {
1069 	/* RXD */
1070 	RCAR_GP_PIN(10, 4),
1071 };
1072 static const unsigned int msiof0_rx_mux[] = {
1073 	MSIOF0_RXD_MARK,
1074 };
1075 static const unsigned int msiof0_tx_pins[] = {
1076 	/* TXD */
1077 	RCAR_GP_PIN(10, 3),
1078 };
1079 static const unsigned int msiof0_tx_mux[] = {
1080 	MSIOF0_TXD_MARK,
1081 };
1082 /* - MSIOF1 ----------------------------------------------------------------- */
1083 static const unsigned int msiof1_clk_pins[] = {
1084 	/* SCK */
1085 	RCAR_GP_PIN(10, 5),
1086 };
1087 static const unsigned int msiof1_clk_mux[] = {
1088 	MSIOF1_SCK_MARK,
1089 };
1090 static const unsigned int msiof1_sync_pins[] = {
1091 	/* SYNC */
1092 	RCAR_GP_PIN(10, 6),
1093 };
1094 static const unsigned int msiof1_sync_mux[] = {
1095 	MSIOF1_SYNC_MARK,
1096 };
1097 static const unsigned int msiof1_rx_pins[] = {
1098 	/* RXD */
1099 	RCAR_GP_PIN(10, 9),
1100 };
1101 static const unsigned int msiof1_rx_mux[] = {
1102 	MSIOF1_RXD_MARK,
1103 };
1104 static const unsigned int msiof1_tx_pins[] = {
1105 	/* TXD */
1106 	RCAR_GP_PIN(10, 8),
1107 };
1108 static const unsigned int msiof1_tx_mux[] = {
1109 	MSIOF1_TXD_MARK,
1110 };
1111 /* - QSPI ------------------------------------------------------------------- */
1112 static const unsigned int qspi_ctrl_pins[] = {
1113 	/* SPCLK, SSL */
1114 	RCAR_GP_PIN(3, 25), RCAR_GP_PIN(3, 26),
1115 };
1116 static const unsigned int qspi_ctrl_mux[] = {
1117 	SPCLK_MARK, SSL_MARK,
1118 };
1119 static const unsigned int qspi_data2_pins[] = {
1120 	/* MOSI_IO0, MISO_IO1 */
1121 	RCAR_GP_PIN(3, 4), RCAR_GP_PIN(3, 5),
1122 };
1123 static const unsigned int qspi_data2_mux[] = {
1124 	MOSI_IO0_MARK, MISO_IO1_MARK,
1125 };
1126 static const unsigned int qspi_data4_pins[] = {
1127 	/* MOSI_IO0, MISO_IO1, IO2, IO3 */
1128 	RCAR_GP_PIN(3, 4), RCAR_GP_PIN(3, 5), RCAR_GP_PIN(3, 23),
1129 	RCAR_GP_PIN(3, 24),
1130 };
1131 static const unsigned int qspi_data4_mux[] = {
1132 	MOSI_IO0_MARK, MISO_IO1_MARK, IO2_MARK,	IO3_MARK,
1133 };
1134 /* - SCIF0 ------------------------------------------------------------------ */
1135 static const unsigned int scif0_data_pins[] = {
1136 	/* RX, TX */
1137 	RCAR_GP_PIN(10, 14), RCAR_GP_PIN(10, 13),
1138 };
1139 static const unsigned int scif0_data_mux[] = {
1140 	RX0_MARK, TX0_MARK,
1141 };
1142 static const unsigned int scif0_clk_pins[] = {
1143 	/* SCK */
1144 	RCAR_GP_PIN(10, 10),
1145 };
1146 static const unsigned int scif0_clk_mux[] = {
1147 	SCK0_MARK,
1148 };
1149 static const unsigned int scif0_ctrl_pins[] = {
1150 	/* RTS, CTS */
1151 	RCAR_GP_PIN(10, 12), RCAR_GP_PIN(10, 11),
1152 };
1153 static const unsigned int scif0_ctrl_mux[] = {
1154 	RTS0_N_MARK, CTS0_N_MARK,
1155 };
1156 /* - SCIF1 ------------------------------------------------------------------ */
1157 static const unsigned int scif1_data_pins[] = {
1158 	/* RX, TX */
1159 	RCAR_GP_PIN(10, 19), RCAR_GP_PIN(10, 18),
1160 };
1161 static const unsigned int scif1_data_mux[] = {
1162 	RX1_MARK, TX1_MARK,
1163 };
1164 static const unsigned int scif1_clk_pins[] = {
1165 	/* SCK */
1166 	RCAR_GP_PIN(10, 15),
1167 };
1168 static const unsigned int scif1_clk_mux[] = {
1169 	SCK1_MARK,
1170 };
1171 static const unsigned int scif1_ctrl_pins[] = {
1172 	/* RTS, CTS */
1173 	RCAR_GP_PIN(10, 17), RCAR_GP_PIN(10, 16),
1174 };
1175 static const unsigned int scif1_ctrl_mux[] = {
1176 	RTS1_N_MARK, CTS1_N_MARK,
1177 };
1178 /* - SCIF2 ------------------------------------------------------------------ */
1179 static const unsigned int scif2_data_pins[] = {
1180 	/* RX, TX */
1181 	RCAR_GP_PIN(10, 22), RCAR_GP_PIN(10, 21),
1182 };
1183 static const unsigned int scif2_data_mux[] = {
1184 	RX2_MARK, TX2_MARK,
1185 };
1186 static const unsigned int scif2_clk_pins[] = {
1187 	/* SCK */
1188 	RCAR_GP_PIN(10, 20),
1189 };
1190 static const unsigned int scif2_clk_mux[] = {
1191 	SCK2_MARK,
1192 };
1193 /* - SCIF3 ------------------------------------------------------------------ */
1194 static const unsigned int scif3_data_pins[] = {
1195 	/* RX, TX */
1196 	RCAR_GP_PIN(10, 25), RCAR_GP_PIN(10, 24),
1197 };
1198 static const unsigned int scif3_data_mux[] = {
1199 	RX3_MARK, TX3_MARK,
1200 };
1201 static const unsigned int scif3_clk_pins[] = {
1202 	/* SCK */
1203 	RCAR_GP_PIN(10, 23),
1204 };
1205 static const unsigned int scif3_clk_mux[] = {
1206 	SCK3_MARK,
1207 };
1208 /* - SDHI0 ------------------------------------------------------------------ */
1209 static const unsigned int sdhi0_data1_pins[] = {
1210 	/* DAT0 */
1211 	RCAR_GP_PIN(11, 7),
1212 };
1213 static const unsigned int sdhi0_data1_mux[] = {
1214 	SD0_DAT0_MARK,
1215 };
1216 static const unsigned int sdhi0_data4_pins[] = {
1217 	/* DAT[0-3] */
1218 	RCAR_GP_PIN(11, 7), RCAR_GP_PIN(11, 8),
1219 	RCAR_GP_PIN(11, 9), RCAR_GP_PIN(11, 10),
1220 };
1221 static const unsigned int sdhi0_data4_mux[] = {
1222 	SD0_DAT0_MARK, SD0_DAT1_MARK, SD0_DAT2_MARK, SD0_DAT3_MARK,
1223 };
1224 static const unsigned int sdhi0_ctrl_pins[] = {
1225 	/* CLK, CMD */
1226 	RCAR_GP_PIN(11, 5), RCAR_GP_PIN(11, 6),
1227 };
1228 static const unsigned int sdhi0_ctrl_mux[] = {
1229 	SD0_CLK_MARK, SD0_CMD_MARK,
1230 };
1231 static const unsigned int sdhi0_cd_pins[] = {
1232 	/* CD */
1233 	RCAR_GP_PIN(11, 11),
1234 };
1235 static const unsigned int sdhi0_cd_mux[] = {
1236 	SD0_CD_MARK,
1237 };
1238 static const unsigned int sdhi0_wp_pins[] = {
1239 	/* WP */
1240 	RCAR_GP_PIN(11, 12),
1241 };
1242 static const unsigned int sdhi0_wp_mux[] = {
1243 	SD0_WP_MARK,
1244 };
1245 /* - VIN0 ------------------------------------------------------------------- */
1246 static const union vin_data vin0_data_pins = {
1247 	.data24 = {
1248 		/* B */
1249 		RCAR_GP_PIN(4, 4), RCAR_GP_PIN(4, 5),
1250 		RCAR_GP_PIN(4, 6), RCAR_GP_PIN(4, 7),
1251 		RCAR_GP_PIN(4, 8), RCAR_GP_PIN(4, 9),
1252 		RCAR_GP_PIN(4, 10), RCAR_GP_PIN(4, 11),
1253 		/* G */
1254 		RCAR_GP_PIN(4, 12), RCAR_GP_PIN(4, 13),
1255 		RCAR_GP_PIN(4, 14), RCAR_GP_PIN(4, 15),
1256 		RCAR_GP_PIN(8, 1), RCAR_GP_PIN(8, 2),
1257 		RCAR_GP_PIN(8, 3), RCAR_GP_PIN(8, 4),
1258 		/* R */
1259 		RCAR_GP_PIN(8, 5), RCAR_GP_PIN(8, 6),
1260 		RCAR_GP_PIN(8, 7), RCAR_GP_PIN(8, 8),
1261 		RCAR_GP_PIN(8, 9), RCAR_GP_PIN(8, 10),
1262 		RCAR_GP_PIN(8, 11), RCAR_GP_PIN(8, 12),
1263 	},
1264 };
1265 static const union vin_data vin0_data_mux = {
1266 	.data24 = {
1267 		/* B */
1268 		VI0_D0_B0_C0_MARK, VI0_D1_B1_C1_MARK,
1269 		VI0_D2_B2_C2_MARK, VI0_D3_B3_C3_MARK,
1270 		VI0_D4_B4_C4_MARK, VI0_D5_B5_C5_MARK,
1271 		VI0_D6_B6_C6_MARK, VI0_D7_B7_C7_MARK,
1272 		/* G */
1273 		VI0_D8_G0_Y0_MARK, VI0_D9_G1_Y1_MARK,
1274 		VI0_D10_G2_Y2_MARK, VI0_D11_G3_Y3_MARK,
1275 		VI0_D12_G4_Y4_MARK, VI0_D13_G5_Y5_MARK,
1276 		VI0_D14_G6_Y6_MARK, VI0_D15_G7_Y7_MARK,
1277 		/* R */
1278 		VI0_D16_R0_MARK, VI0_D17_R1_MARK,
1279 		VI0_D18_R2_MARK, VI0_D19_R3_MARK,
1280 		VI0_D20_R4_MARK, VI0_D21_R5_MARK,
1281 		VI0_D22_R6_MARK, VI0_D23_R7_MARK,
1282 	},
1283 };
1284 static const unsigned int vin0_data18_pins[] = {
1285 	/* B */
1286 	RCAR_GP_PIN(4, 6), RCAR_GP_PIN(4, 7),
1287 	RCAR_GP_PIN(4, 8), RCAR_GP_PIN(4, 9),
1288 	RCAR_GP_PIN(4, 10), RCAR_GP_PIN(4, 11),
1289 	/* G */
1290 	RCAR_GP_PIN(4, 14), RCAR_GP_PIN(4, 15),
1291 	RCAR_GP_PIN(8, 1), RCAR_GP_PIN(8, 2),
1292 	RCAR_GP_PIN(8, 3), RCAR_GP_PIN(8, 4),
1293 	/* R */
1294 	RCAR_GP_PIN(8, 7), RCAR_GP_PIN(8, 8),
1295 	RCAR_GP_PIN(8, 9), RCAR_GP_PIN(8, 10),
1296 	RCAR_GP_PIN(8, 11), RCAR_GP_PIN(8, 12),
1297 };
1298 static const unsigned int vin0_data18_mux[] = {
1299 	/* B */
1300 	VI0_D2_B2_C2_MARK, VI0_D3_B3_C3_MARK,
1301 	VI0_D4_B4_C4_MARK, VI0_D5_B5_C5_MARK,
1302 	VI0_D6_B6_C6_MARK, VI0_D7_B7_C7_MARK,
1303 	/* G */
1304 	VI0_D10_G2_Y2_MARK, VI0_D11_G3_Y3_MARK,
1305 	VI0_D12_G4_Y4_MARK, VI0_D13_G5_Y5_MARK,
1306 	VI0_D14_G6_Y6_MARK, VI0_D15_G7_Y7_MARK,
1307 	/* R */
1308 	VI0_D18_R2_MARK, VI0_D19_R3_MARK,
1309 	VI0_D20_R4_MARK, VI0_D21_R5_MARK,
1310 	VI0_D22_R6_MARK, VI0_D23_R7_MARK,
1311 };
1312 static const unsigned int vin0_sync_pins[] = {
1313 	/* HSYNC#, VSYNC# */
1314 	RCAR_GP_PIN(4, 2), RCAR_GP_PIN(4, 3),
1315 };
1316 static const unsigned int vin0_sync_mux[] = {
1317 	VI0_HSYNC_N_MARK, VI0_VSYNC_N_MARK,
1318 };
1319 static const unsigned int vin0_field_pins[] = {
1320 	RCAR_GP_PIN(4, 16),
1321 };
1322 static const unsigned int vin0_field_mux[] = {
1323 	VI0_FIELD_MARK,
1324 };
1325 static const unsigned int vin0_clkenb_pins[] = {
1326 	RCAR_GP_PIN(4, 1),
1327 };
1328 static const unsigned int vin0_clkenb_mux[] = {
1329 	VI0_CLKENB_MARK,
1330 };
1331 static const unsigned int vin0_clk_pins[] = {
1332 	RCAR_GP_PIN(4, 0),
1333 };
1334 static const unsigned int vin0_clk_mux[] = {
1335 	VI0_CLK_MARK,
1336 };
1337 /* - VIN1 ------------------------------------------------------------------- */
1338 static const union vin_data vin1_data_pins = {
1339 	.data24 = {
1340 		/* B */
1341 		RCAR_GP_PIN(5, 4), RCAR_GP_PIN(5, 5),
1342 		RCAR_GP_PIN(5, 6), RCAR_GP_PIN(5, 7),
1343 		RCAR_GP_PIN(5, 8), RCAR_GP_PIN(5, 9),
1344 		RCAR_GP_PIN(5, 10), RCAR_GP_PIN(5, 11),
1345 		/* G */
1346 		RCAR_GP_PIN(5, 12), RCAR_GP_PIN(5, 13),
1347 		RCAR_GP_PIN(5, 14), RCAR_GP_PIN(5, 15),
1348 		RCAR_GP_PIN(8, 5), RCAR_GP_PIN(8, 6),
1349 		RCAR_GP_PIN(8, 7), RCAR_GP_PIN(8, 8),
1350 		/* R */
1351 		RCAR_GP_PIN(9, 5), RCAR_GP_PIN(9, 6),
1352 		RCAR_GP_PIN(9, 7), RCAR_GP_PIN(9, 8),
1353 		RCAR_GP_PIN(9, 9), RCAR_GP_PIN(9, 10),
1354 		RCAR_GP_PIN(9, 11), RCAR_GP_PIN(9, 12),
1355 	},
1356 };
1357 static const union vin_data vin1_data_mux = {
1358 	.data24 = {
1359 		/* B */
1360 		VI1_D0_B0_C0_MARK, VI1_D1_B1_C1_MARK,
1361 		VI1_D2_B2_C2_MARK, VI1_D3_B3_C3_MARK,
1362 		VI1_D4_B4_C4_MARK, VI1_D5_B5_C5_MARK,
1363 		VI1_D6_B6_C6_MARK, VI1_D7_B7_C7_MARK,
1364 		/* G */
1365 		VI1_D8_G0_Y0_MARK, VI1_D9_G1_Y1_MARK,
1366 		VI1_D10_G2_Y2_MARK, VI1_D11_G3_Y3_MARK,
1367 		VI1_D12_G4_Y4_MARK, VI1_D13_G5_Y5_MARK,
1368 		VI1_D14_G6_Y6_MARK, VI1_D15_G7_Y7_MARK,
1369 		/* R */
1370 		VI1_D16_R0_MARK, VI1_D17_R1_MARK,
1371 		VI1_D18_R2_MARK, VI1_D19_R3_MARK,
1372 		VI1_D20_R4_MARK, VI1_D21_R5_MARK,
1373 		VI1_D22_R6_MARK, VI1_D23_R7_MARK,
1374 	},
1375 };
1376 static const unsigned int vin1_data18_pins[] = {
1377 	/* B */
1378 	RCAR_GP_PIN(5, 6), RCAR_GP_PIN(5, 7),
1379 	RCAR_GP_PIN(5, 8), RCAR_GP_PIN(5, 9),
1380 	RCAR_GP_PIN(5, 10), RCAR_GP_PIN(5, 11),
1381 	/* G */
1382 	RCAR_GP_PIN(5, 14), RCAR_GP_PIN(5, 15),
1383 	RCAR_GP_PIN(8, 5), RCAR_GP_PIN(8, 6),
1384 	RCAR_GP_PIN(8, 7), RCAR_GP_PIN(8, 8),
1385 	/* R */
1386 	RCAR_GP_PIN(9, 7), RCAR_GP_PIN(9, 8),
1387 	RCAR_GP_PIN(9, 9), RCAR_GP_PIN(9, 10),
1388 	RCAR_GP_PIN(9, 11), RCAR_GP_PIN(9, 12),
1389 };
1390 static const unsigned int vin1_data18_mux[] = {
1391 	/* B */
1392 	VI1_D2_B2_C2_MARK, VI1_D3_B3_C3_MARK,
1393 	VI1_D4_B4_C4_MARK, VI1_D5_B5_C5_MARK,
1394 	VI1_D6_B6_C6_MARK, VI1_D7_B7_C7_MARK,
1395 	/* G */
1396 	VI1_D10_G2_Y2_MARK, VI1_D11_G3_Y3_MARK,
1397 	VI1_D12_G4_Y4_MARK, VI1_D13_G5_Y5_MARK,
1398 	VI1_D14_G6_Y6_MARK, VI1_D15_G7_Y7_MARK,
1399 	/* R */
1400 	VI1_D18_R2_MARK, VI1_D19_R3_MARK,
1401 	VI1_D20_R4_MARK, VI1_D21_R5_MARK,
1402 	VI1_D22_R6_MARK, VI1_D23_R7_MARK,
1403 };
1404 static const union vin_data vin1_data_b_pins = {
1405 	.data24 = {
1406 		/* B */
1407 		RCAR_GP_PIN(5, 4), RCAR_GP_PIN(5, 5),
1408 		RCAR_GP_PIN(5, 6), RCAR_GP_PIN(5, 7),
1409 		RCAR_GP_PIN(5, 8), RCAR_GP_PIN(5, 9),
1410 		RCAR_GP_PIN(5, 10), RCAR_GP_PIN(5, 11),
1411 		/* G */
1412 		RCAR_GP_PIN(5, 12), RCAR_GP_PIN(5, 13),
1413 		RCAR_GP_PIN(5, 14), RCAR_GP_PIN(5, 15),
1414 		RCAR_GP_PIN(9, 1), RCAR_GP_PIN(9, 2),
1415 		RCAR_GP_PIN(9, 3), RCAR_GP_PIN(9, 4),
1416 		/* R */
1417 		RCAR_GP_PIN(9, 5), RCAR_GP_PIN(9, 6),
1418 		RCAR_GP_PIN(9, 7), RCAR_GP_PIN(9, 8),
1419 		RCAR_GP_PIN(9, 9), RCAR_GP_PIN(9, 10),
1420 		RCAR_GP_PIN(9, 11), RCAR_GP_PIN(9, 12),
1421 	},
1422 };
1423 static const union vin_data vin1_data_b_mux = {
1424 	.data24 = {
1425 		/* B */
1426 		VI1_D0_B0_C0_MARK, VI1_D1_B1_C1_MARK,
1427 		VI1_D2_B2_C2_MARK, VI1_D3_B3_C3_MARK,
1428 		VI1_D4_B4_C4_MARK, VI1_D5_B5_C5_MARK,
1429 		VI1_D6_B6_C6_MARK, VI1_D7_B7_C7_MARK,
1430 		/* G */
1431 		VI1_D8_G0_Y0_MARK, VI1_D9_G1_Y1_MARK,
1432 		VI1_D10_G2_Y2_MARK, VI1_D11_G3_Y3_MARK,
1433 		VI1_D12_G4_Y4_B_MARK, VI1_D13_G5_Y5_B_MARK,
1434 		VI1_D14_G6_Y6_B_MARK, VI1_D15_G7_Y7_B_MARK,
1435 		/* R */
1436 		VI1_D16_R0_MARK, VI1_D17_R1_MARK,
1437 		VI1_D18_R2_MARK, VI1_D19_R3_MARK,
1438 		VI1_D20_R4_MARK, VI1_D21_R5_MARK,
1439 		VI1_D22_R6_MARK, VI1_D23_R7_MARK,
1440 	},
1441 };
1442 static const unsigned int vin1_data18_b_pins[] = {
1443 	/* B */
1444 	RCAR_GP_PIN(5, 6), RCAR_GP_PIN(5, 7),
1445 	RCAR_GP_PIN(5, 8), RCAR_GP_PIN(5, 9),
1446 	RCAR_GP_PIN(5, 10), RCAR_GP_PIN(5, 11),
1447 	/* G */
1448 	RCAR_GP_PIN(5, 14), RCAR_GP_PIN(5, 15),
1449 	RCAR_GP_PIN(9, 1), RCAR_GP_PIN(9, 2),
1450 	RCAR_GP_PIN(9, 3), RCAR_GP_PIN(9, 4),
1451 	/* R */
1452 	RCAR_GP_PIN(9, 7), RCAR_GP_PIN(9, 8),
1453 	RCAR_GP_PIN(9, 9), RCAR_GP_PIN(9, 10),
1454 	RCAR_GP_PIN(9, 11), RCAR_GP_PIN(9, 12),
1455 };
1456 static const unsigned int vin1_data18_b_mux[] = {
1457 	/* B */
1458 	VI1_D2_B2_C2_MARK, VI1_D3_B3_C3_MARK,
1459 	VI1_D4_B4_C4_MARK, VI1_D5_B5_C5_MARK,
1460 	VI1_D6_B6_C6_MARK, VI1_D7_B7_C7_MARK,
1461 	/* G */
1462 	VI1_D10_G2_Y2_MARK, VI1_D11_G3_Y3_MARK,
1463 	VI1_D12_G4_Y4_B_MARK, VI1_D13_G5_Y5_B_MARK,
1464 	VI1_D14_G6_Y6_B_MARK, VI1_D15_G7_Y7_B_MARK,
1465 	/* R */
1466 	VI1_D18_R2_MARK, VI1_D19_R3_MARK,
1467 	VI1_D20_R4_MARK, VI1_D21_R5_MARK,
1468 	VI1_D22_R6_MARK, VI1_D23_R7_MARK,
1469 };
1470 static const unsigned int vin1_sync_pins[] = {
1471 	/* HSYNC#, VSYNC# */
1472 	RCAR_GP_PIN(5, 2), RCAR_GP_PIN(5, 3),
1473 };
1474 static const unsigned int vin1_sync_mux[] = {
1475 	VI1_HSYNC_N_MARK, VI1_VSYNC_N_MARK,
1476 };
1477 static const unsigned int vin1_field_pins[] = {
1478 	RCAR_GP_PIN(5, 16),
1479 };
1480 static const unsigned int vin1_field_mux[] = {
1481 	VI1_FIELD_MARK,
1482 };
1483 static const unsigned int vin1_clkenb_pins[] = {
1484 	RCAR_GP_PIN(5, 1),
1485 };
1486 static const unsigned int vin1_clkenb_mux[] = {
1487 	VI1_CLKENB_MARK,
1488 };
1489 static const unsigned int vin1_clk_pins[] = {
1490 	RCAR_GP_PIN(5, 0),
1491 };
1492 static const unsigned int vin1_clk_mux[] = {
1493 	VI1_CLK_MARK,
1494 };
1495 /* - VIN2 ------------------------------------------------------------------- */
1496 static const union vin_data16 vin2_data_pins = {
1497 	.data16 = {
1498 		RCAR_GP_PIN(6, 4), RCAR_GP_PIN(6, 5),
1499 		RCAR_GP_PIN(6, 6), RCAR_GP_PIN(6, 7),
1500 		RCAR_GP_PIN(6, 8), RCAR_GP_PIN(6, 9),
1501 		RCAR_GP_PIN(6, 10), RCAR_GP_PIN(6, 11),
1502 		RCAR_GP_PIN(6, 12), RCAR_GP_PIN(6, 13),
1503 		RCAR_GP_PIN(6, 14), RCAR_GP_PIN(6, 15),
1504 		RCAR_GP_PIN(8, 9), RCAR_GP_PIN(8, 10),
1505 		RCAR_GP_PIN(8, 11), RCAR_GP_PIN(8, 12),
1506 	},
1507 };
1508 static const union vin_data16 vin2_data_mux = {
1509 	.data16 = {
1510 		VI2_D0_C0_MARK, VI2_D1_C1_MARK,
1511 		VI2_D2_C2_MARK,	VI2_D3_C3_MARK,
1512 		VI2_D4_C4_MARK, VI2_D5_C5_MARK,
1513 		VI2_D6_C6_MARK, VI2_D7_C7_MARK,
1514 		VI2_D8_Y0_MARK,	VI2_D9_Y1_MARK,
1515 		VI2_D10_Y2_MARK, VI2_D11_Y3_MARK,
1516 		VI2_D12_Y4_MARK, VI2_D13_Y5_MARK,
1517 		VI2_D14_Y6_MARK, VI2_D15_Y7_MARK,
1518 	},
1519 };
1520 static const unsigned int vin2_sync_pins[] = {
1521 	/* HSYNC#, VSYNC# */
1522 	RCAR_GP_PIN(6, 2), RCAR_GP_PIN(6, 3),
1523 };
1524 static const unsigned int vin2_sync_mux[] = {
1525 	VI2_HSYNC_N_MARK, VI2_VSYNC_N_MARK,
1526 };
1527 static const unsigned int vin2_field_pins[] = {
1528 	RCAR_GP_PIN(6, 16),
1529 };
1530 static const unsigned int vin2_field_mux[] = {
1531 	VI2_FIELD_MARK,
1532 };
1533 static const unsigned int vin2_clkenb_pins[] = {
1534 	RCAR_GP_PIN(6, 1),
1535 };
1536 static const unsigned int vin2_clkenb_mux[] = {
1537 	VI2_CLKENB_MARK,
1538 };
1539 static const unsigned int vin2_clk_pins[] = {
1540 	RCAR_GP_PIN(6, 0),
1541 };
1542 static const unsigned int vin2_clk_mux[] = {
1543 	VI2_CLK_MARK,
1544 };
1545 /* - VIN3 ------------------------------------------------------------------- */
1546 static const union vin_data16 vin3_data_pins = {
1547 	.data16 = {
1548 		RCAR_GP_PIN(7, 4), RCAR_GP_PIN(7, 5),
1549 		RCAR_GP_PIN(7, 6), RCAR_GP_PIN(7, 7),
1550 		RCAR_GP_PIN(7, 8), RCAR_GP_PIN(7, 9),
1551 		RCAR_GP_PIN(7, 10), RCAR_GP_PIN(7, 11),
1552 		RCAR_GP_PIN(7, 12), RCAR_GP_PIN(7, 13),
1553 		RCAR_GP_PIN(7, 14), RCAR_GP_PIN(7, 15),
1554 		RCAR_GP_PIN(8, 13), RCAR_GP_PIN(8, 14),
1555 		RCAR_GP_PIN(8, 15), RCAR_GP_PIN(8, 16),
1556 	},
1557 };
1558 static const union vin_data16 vin3_data_mux = {
1559 	.data16 = {
1560 		VI3_D0_C0_MARK, VI3_D1_C1_MARK,
1561 		VI3_D2_C2_MARK,	VI3_D3_C3_MARK,
1562 		VI3_D4_C4_MARK, VI3_D5_C5_MARK,
1563 		VI3_D6_C6_MARK, VI3_D7_C7_MARK,
1564 		VI3_D8_Y0_MARK, VI3_D9_Y1_MARK,
1565 		VI3_D10_Y2_MARK, VI3_D11_Y3_MARK,
1566 		VI3_D12_Y4_MARK, VI3_D13_Y5_MARK,
1567 		VI3_D14_Y6_MARK, VI3_D15_Y7_MARK,
1568 	},
1569 };
1570 static const unsigned int vin3_sync_pins[] = {
1571 	/* HSYNC#, VSYNC# */
1572 	RCAR_GP_PIN(7, 2), RCAR_GP_PIN(7, 3),
1573 };
1574 static const unsigned int vin3_sync_mux[] = {
1575 	VI3_HSYNC_N_MARK, VI3_VSYNC_N_MARK,
1576 };
1577 static const unsigned int vin3_field_pins[] = {
1578 	RCAR_GP_PIN(7, 16),
1579 };
1580 static const unsigned int vin3_field_mux[] = {
1581 	VI3_FIELD_MARK,
1582 };
1583 static const unsigned int vin3_clkenb_pins[] = {
1584 	RCAR_GP_PIN(7, 1),
1585 };
1586 static const unsigned int vin3_clkenb_mux[] = {
1587 	VI3_CLKENB_MARK,
1588 };
1589 static const unsigned int vin3_clk_pins[] = {
1590 	RCAR_GP_PIN(7, 0),
1591 };
1592 static const unsigned int vin3_clk_mux[] = {
1593 	VI3_CLK_MARK,
1594 };
1595 /* - VIN4 ------------------------------------------------------------------- */
1596 static const union vin_data12 vin4_data_pins = {
1597 	.data12 = {
1598 		RCAR_GP_PIN(8, 4), RCAR_GP_PIN(8, 5),
1599 		RCAR_GP_PIN(8, 6), RCAR_GP_PIN(8, 7),
1600 		RCAR_GP_PIN(8, 8), RCAR_GP_PIN(8, 9),
1601 		RCAR_GP_PIN(8, 10), RCAR_GP_PIN(8, 11),
1602 		RCAR_GP_PIN(8, 12), RCAR_GP_PIN(8, 13),
1603 		RCAR_GP_PIN(8, 14), RCAR_GP_PIN(8, 15),
1604 	},
1605 };
1606 static const union vin_data12 vin4_data_mux = {
1607 	.data12 = {
1608 		VI4_D0_C0_MARK, VI4_D1_C1_MARK,
1609 		VI4_D2_C2_MARK, VI4_D3_C3_MARK,
1610 		VI4_D4_C4_MARK, VI4_D5_C5_MARK,
1611 		VI4_D6_C6_MARK, VI4_D7_C7_MARK,
1612 		VI4_D8_Y0_MARK,	VI4_D9_Y1_MARK,
1613 		VI4_D10_Y2_MARK, VI4_D11_Y3_MARK,
1614 	},
1615 };
1616 static const unsigned int vin4_sync_pins[] = {
1617 	 /* HSYNC#, VSYNC# */
1618 	RCAR_GP_PIN(8, 2), RCAR_GP_PIN(8, 3),
1619 };
1620 static const unsigned int vin4_sync_mux[] = {
1621 	VI4_HSYNC_N_MARK, VI4_VSYNC_N_MARK,
1622 };
1623 static const unsigned int vin4_field_pins[] = {
1624 	RCAR_GP_PIN(8, 16),
1625 };
1626 static const unsigned int vin4_field_mux[] = {
1627 	VI4_FIELD_MARK,
1628 };
1629 static const unsigned int vin4_clkenb_pins[] = {
1630 	RCAR_GP_PIN(8, 1),
1631 };
1632 static const unsigned int vin4_clkenb_mux[] = {
1633 	VI4_CLKENB_MARK,
1634 };
1635 static const unsigned int vin4_clk_pins[] = {
1636 	RCAR_GP_PIN(8, 0),
1637 };
1638 static const unsigned int vin4_clk_mux[] = {
1639 	VI4_CLK_MARK,
1640 };
1641 /* - VIN5 ------------------------------------------------------------------- */
1642 static const union vin_data12 vin5_data_pins = {
1643 	.data12 = {
1644 		RCAR_GP_PIN(9, 4), RCAR_GP_PIN(9, 5),
1645 		RCAR_GP_PIN(9, 6), RCAR_GP_PIN(9, 7),
1646 		RCAR_GP_PIN(9, 8), RCAR_GP_PIN(9, 9),
1647 		RCAR_GP_PIN(9, 10), RCAR_GP_PIN(9, 11),
1648 		RCAR_GP_PIN(9, 12), RCAR_GP_PIN(9, 13),
1649 		RCAR_GP_PIN(9, 14), RCAR_GP_PIN(9, 15),
1650 	},
1651 };
1652 static const union vin_data12 vin5_data_mux = {
1653 	.data12 = {
1654 		VI5_D0_C0_MARK, VI5_D1_C1_MARK,
1655 		VI5_D2_C2_MARK, VI5_D3_C3_MARK,
1656 		VI5_D4_C4_MARK, VI5_D5_C5_MARK,
1657 		VI5_D6_C6_MARK, VI5_D7_C7_MARK,
1658 		VI5_D8_Y0_MARK, VI5_D9_Y1_MARK,
1659 		VI5_D10_Y2_MARK, VI5_D11_Y3_MARK,
1660 	},
1661 };
1662 static const unsigned int vin5_sync_pins[] = {
1663 	/* HSYNC#, VSYNC# */
1664 	RCAR_GP_PIN(9, 2), RCAR_GP_PIN(9, 3),
1665 };
1666 static const unsigned int vin5_sync_mux[] = {
1667 	VI5_HSYNC_N_MARK, VI5_VSYNC_N_MARK,
1668 };
1669 static const unsigned int vin5_field_pins[] = {
1670 	RCAR_GP_PIN(9, 16),
1671 };
1672 static const unsigned int vin5_field_mux[] = {
1673 	VI5_FIELD_MARK,
1674 };
1675 static const unsigned int vin5_clkenb_pins[] = {
1676 	RCAR_GP_PIN(9, 1),
1677 };
1678 static const unsigned int vin5_clkenb_mux[] = {
1679 	VI5_CLKENB_MARK,
1680 };
1681 static const unsigned int vin5_clk_pins[] = {
1682 	RCAR_GP_PIN(9, 0),
1683 };
1684 static const unsigned int vin5_clk_mux[] = {
1685 	VI5_CLK_MARK,
1686 };
1687 
1688 static const struct sh_pfc_pin_group pinmux_groups[] = {
1689 	SH_PFC_PIN_GROUP(avb_link),
1690 	SH_PFC_PIN_GROUP(avb_magic),
1691 	SH_PFC_PIN_GROUP(avb_phy_int),
1692 	SH_PFC_PIN_GROUP(avb_mdio),
1693 	SH_PFC_PIN_GROUP(avb_mii),
1694 	SH_PFC_PIN_GROUP(avb_gmii),
1695 	SH_PFC_PIN_GROUP(avb_avtp_match),
1696 	SH_PFC_PIN_GROUP(can0_data),
1697 	SH_PFC_PIN_GROUP(can1_data),
1698 	SH_PFC_PIN_GROUP(can_clk),
1699 	SH_PFC_PIN_GROUP(du0_rgb666),
1700 	SH_PFC_PIN_GROUP(du0_rgb888),
1701 	SH_PFC_PIN_GROUP(du0_sync),
1702 	SH_PFC_PIN_GROUP(du0_oddf),
1703 	SH_PFC_PIN_GROUP(du0_disp),
1704 	SH_PFC_PIN_GROUP(du0_cde),
1705 	SH_PFC_PIN_GROUP(du1_rgb666),
1706 	SH_PFC_PIN_GROUP(du1_sync),
1707 	SH_PFC_PIN_GROUP(du1_oddf),
1708 	SH_PFC_PIN_GROUP(du1_disp),
1709 	SH_PFC_PIN_GROUP(du1_cde),
1710 	SH_PFC_PIN_GROUP(intc_irq0),
1711 	SH_PFC_PIN_GROUP(intc_irq1),
1712 	SH_PFC_PIN_GROUP(intc_irq2),
1713 	SH_PFC_PIN_GROUP(intc_irq3),
1714 	SH_PFC_PIN_GROUP(lbsc_cs0),
1715 	SH_PFC_PIN_GROUP(lbsc_cs1),
1716 	SH_PFC_PIN_GROUP(lbsc_ex_cs0),
1717 	SH_PFC_PIN_GROUP(lbsc_ex_cs1),
1718 	SH_PFC_PIN_GROUP(lbsc_ex_cs2),
1719 	SH_PFC_PIN_GROUP(lbsc_ex_cs3),
1720 	SH_PFC_PIN_GROUP(lbsc_ex_cs4),
1721 	SH_PFC_PIN_GROUP(lbsc_ex_cs5),
1722 	SH_PFC_PIN_GROUP(msiof0_clk),
1723 	SH_PFC_PIN_GROUP(msiof0_sync),
1724 	SH_PFC_PIN_GROUP(msiof0_rx),
1725 	SH_PFC_PIN_GROUP(msiof0_tx),
1726 	SH_PFC_PIN_GROUP(msiof1_clk),
1727 	SH_PFC_PIN_GROUP(msiof1_sync),
1728 	SH_PFC_PIN_GROUP(msiof1_rx),
1729 	SH_PFC_PIN_GROUP(msiof1_tx),
1730 	SH_PFC_PIN_GROUP(qspi_ctrl),
1731 	SH_PFC_PIN_GROUP(qspi_data2),
1732 	SH_PFC_PIN_GROUP(qspi_data4),
1733 	SH_PFC_PIN_GROUP(scif0_data),
1734 	SH_PFC_PIN_GROUP(scif0_clk),
1735 	SH_PFC_PIN_GROUP(scif0_ctrl),
1736 	SH_PFC_PIN_GROUP(scif1_data),
1737 	SH_PFC_PIN_GROUP(scif1_clk),
1738 	SH_PFC_PIN_GROUP(scif1_ctrl),
1739 	SH_PFC_PIN_GROUP(scif2_data),
1740 	SH_PFC_PIN_GROUP(scif2_clk),
1741 	SH_PFC_PIN_GROUP(scif3_data),
1742 	SH_PFC_PIN_GROUP(scif3_clk),
1743 	SH_PFC_PIN_GROUP(sdhi0_data1),
1744 	SH_PFC_PIN_GROUP(sdhi0_data4),
1745 	SH_PFC_PIN_GROUP(sdhi0_ctrl),
1746 	SH_PFC_PIN_GROUP(sdhi0_cd),
1747 	SH_PFC_PIN_GROUP(sdhi0_wp),
1748 	VIN_DATA_PIN_GROUP(vin0_data, 24),
1749 	VIN_DATA_PIN_GROUP(vin0_data, 20),
1750 	SH_PFC_PIN_GROUP(vin0_data18),
1751 	VIN_DATA_PIN_GROUP(vin0_data, 16),
1752 	VIN_DATA_PIN_GROUP(vin0_data, 12),
1753 	VIN_DATA_PIN_GROUP(vin0_data, 10),
1754 	VIN_DATA_PIN_GROUP(vin0_data, 8),
1755 	SH_PFC_PIN_GROUP(vin0_sync),
1756 	SH_PFC_PIN_GROUP(vin0_field),
1757 	SH_PFC_PIN_GROUP(vin0_clkenb),
1758 	SH_PFC_PIN_GROUP(vin0_clk),
1759 	VIN_DATA_PIN_GROUP(vin1_data, 24),
1760 	VIN_DATA_PIN_GROUP(vin1_data, 20),
1761 	SH_PFC_PIN_GROUP(vin1_data18),
1762 	VIN_DATA_PIN_GROUP(vin1_data, 16),
1763 	VIN_DATA_PIN_GROUP(vin1_data, 12),
1764 	VIN_DATA_PIN_GROUP(vin1_data, 10),
1765 	VIN_DATA_PIN_GROUP(vin1_data, 8),
1766 	VIN_DATA_PIN_GROUP(vin1_data, 24, _b),
1767 	VIN_DATA_PIN_GROUP(vin1_data, 20, _b),
1768 	SH_PFC_PIN_GROUP(vin1_data18_b),
1769 	VIN_DATA_PIN_GROUP(vin1_data, 16, _b),
1770 	SH_PFC_PIN_GROUP(vin1_sync),
1771 	SH_PFC_PIN_GROUP(vin1_field),
1772 	SH_PFC_PIN_GROUP(vin1_clkenb),
1773 	SH_PFC_PIN_GROUP(vin1_clk),
1774 	VIN_DATA_PIN_GROUP(vin2_data, 16),
1775 	VIN_DATA_PIN_GROUP(vin2_data, 12),
1776 	VIN_DATA_PIN_GROUP(vin2_data, 10),
1777 	VIN_DATA_PIN_GROUP(vin2_data, 8),
1778 	SH_PFC_PIN_GROUP(vin2_sync),
1779 	SH_PFC_PIN_GROUP(vin2_field),
1780 	SH_PFC_PIN_GROUP(vin2_clkenb),
1781 	SH_PFC_PIN_GROUP(vin2_clk),
1782 	VIN_DATA_PIN_GROUP(vin3_data, 16),
1783 	VIN_DATA_PIN_GROUP(vin3_data, 12),
1784 	VIN_DATA_PIN_GROUP(vin3_data, 10),
1785 	VIN_DATA_PIN_GROUP(vin3_data, 8),
1786 	SH_PFC_PIN_GROUP(vin3_sync),
1787 	SH_PFC_PIN_GROUP(vin3_field),
1788 	SH_PFC_PIN_GROUP(vin3_clkenb),
1789 	SH_PFC_PIN_GROUP(vin3_clk),
1790 	VIN_DATA_PIN_GROUP(vin4_data, 12),
1791 	VIN_DATA_PIN_GROUP(vin4_data, 10),
1792 	VIN_DATA_PIN_GROUP(vin4_data, 8),
1793 	SH_PFC_PIN_GROUP(vin4_sync),
1794 	SH_PFC_PIN_GROUP(vin4_field),
1795 	SH_PFC_PIN_GROUP(vin4_clkenb),
1796 	SH_PFC_PIN_GROUP(vin4_clk),
1797 	VIN_DATA_PIN_GROUP(vin5_data, 12),
1798 	VIN_DATA_PIN_GROUP(vin5_data, 10),
1799 	VIN_DATA_PIN_GROUP(vin5_data, 8),
1800 	SH_PFC_PIN_GROUP(vin5_sync),
1801 	SH_PFC_PIN_GROUP(vin5_field),
1802 	SH_PFC_PIN_GROUP(vin5_clkenb),
1803 	SH_PFC_PIN_GROUP(vin5_clk),
1804 };
1805 
1806 static const char * const avb_groups[] = {
1807 	"avb_link",
1808 	"avb_magic",
1809 	"avb_phy_int",
1810 	"avb_mdio",
1811 	"avb_mii",
1812 	"avb_gmii",
1813 	"avb_avtp_match",
1814 };
1815 
1816 static const char * const can0_groups[] = {
1817 	"can0_data",
1818 	"can_clk",
1819 };
1820 
1821 static const char * const can1_groups[] = {
1822 	"can1_data",
1823 	"can_clk",
1824 };
1825 
1826 static const char * const du0_groups[] = {
1827 	"du0_rgb666",
1828 	"du0_rgb888",
1829 	"du0_sync",
1830 	"du0_oddf",
1831 	"du0_disp",
1832 	"du0_cde",
1833 };
1834 
1835 static const char * const du1_groups[] = {
1836 	"du1_rgb666",
1837 	"du1_sync",
1838 	"du1_oddf",
1839 	"du1_disp",
1840 	"du1_cde",
1841 };
1842 
1843 static const char * const intc_groups[] = {
1844 	"intc_irq0",
1845 	"intc_irq1",
1846 	"intc_irq2",
1847 	"intc_irq3",
1848 };
1849 
1850 static const char * const lbsc_groups[] = {
1851 	"lbsc_cs0",
1852 	"lbsc_cs1",
1853 	"lbsc_ex_cs0",
1854 	"lbsc_ex_cs1",
1855 	"lbsc_ex_cs2",
1856 	"lbsc_ex_cs3",
1857 	"lbsc_ex_cs4",
1858 	"lbsc_ex_cs5",
1859 };
1860 
1861 static const char * const msiof0_groups[] = {
1862 	"msiof0_clk",
1863 	"msiof0_sync",
1864 	"msiof0_rx",
1865 	"msiof0_tx",
1866 };
1867 
1868 static const char * const msiof1_groups[] = {
1869 	"msiof1_clk",
1870 	"msiof1_sync",
1871 	"msiof1_rx",
1872 	"msiof1_tx",
1873 };
1874 
1875 static const char * const qspi_groups[] = {
1876 	"qspi_ctrl",
1877 	"qspi_data2",
1878 	"qspi_data4",
1879 };
1880 
1881 static const char * const scif0_groups[] = {
1882 	"scif0_data",
1883 	"scif0_clk",
1884 	"scif0_ctrl",
1885 };
1886 
1887 static const char * const scif1_groups[] = {
1888 	"scif1_data",
1889 	"scif1_clk",
1890 	"scif1_ctrl",
1891 };
1892 
1893 static const char * const scif2_groups[] = {
1894 	"scif2_data",
1895 	"scif2_clk",
1896 };
1897 
1898 static const char * const scif3_groups[] = {
1899 	"scif3_data",
1900 	"scif3_clk",
1901 };
1902 
1903 static const char * const sdhi0_groups[] = {
1904 	"sdhi0_data1",
1905 	"sdhi0_data4",
1906 	"sdhi0_ctrl",
1907 	"sdhi0_cd",
1908 	"sdhi0_wp",
1909 };
1910 
1911 static const char * const vin0_groups[] = {
1912 	"vin0_data24",
1913 	"vin0_data20",
1914 	"vin0_data18",
1915 	"vin0_data16",
1916 	"vin0_data12",
1917 	"vin0_data10",
1918 	"vin0_data8",
1919 	"vin0_sync",
1920 	"vin0_field",
1921 	"vin0_clkenb",
1922 	"vin0_clk",
1923 };
1924 
1925 static const char * const vin1_groups[] = {
1926 	"vin1_data24",
1927 	"vin1_data20",
1928 	"vin1_data18",
1929 	"vin1_data16",
1930 	"vin1_data12",
1931 	"vin1_data10",
1932 	"vin1_data8",
1933 	"vin1_data24_b",
1934 	"vin1_data20_b",
1935 	"vin1_data18_b",
1936 	"vin1_data16_b",
1937 	"vin1_sync",
1938 	"vin1_field",
1939 	"vin1_clkenb",
1940 	"vin1_clk",
1941 };
1942 
1943 static const char * const vin2_groups[] = {
1944 	"vin2_data16",
1945 	"vin2_data12",
1946 	"vin2_data10",
1947 	"vin2_data8",
1948 	"vin2_sync",
1949 	"vin2_field",
1950 	"vin2_clkenb",
1951 	"vin2_clk",
1952 };
1953 
1954 static const char * const vin3_groups[] = {
1955 	"vin3_data16",
1956 	"vin3_data12",
1957 	"vin3_data10",
1958 	"vin3_data8",
1959 	"vin3_sync",
1960 	"vin3_field",
1961 	"vin3_clkenb",
1962 	"vin3_clk",
1963 };
1964 
1965 static const char * const vin4_groups[] = {
1966 	"vin4_data12",
1967 	"vin4_data10",
1968 	"vin4_data8",
1969 	"vin4_sync",
1970 	"vin4_field",
1971 	"vin4_clkenb",
1972 	"vin4_clk",
1973 };
1974 
1975 static const char * const vin5_groups[] = {
1976 	"vin5_data12",
1977 	"vin5_data10",
1978 	"vin5_data8",
1979 	"vin5_sync",
1980 	"vin5_field",
1981 	"vin5_clkenb",
1982 	"vin5_clk",
1983 };
1984 
1985 static const struct sh_pfc_function pinmux_functions[] = {
1986 	SH_PFC_FUNCTION(avb),
1987 	SH_PFC_FUNCTION(can0),
1988 	SH_PFC_FUNCTION(can1),
1989 	SH_PFC_FUNCTION(du0),
1990 	SH_PFC_FUNCTION(du1),
1991 	SH_PFC_FUNCTION(intc),
1992 	SH_PFC_FUNCTION(lbsc),
1993 	SH_PFC_FUNCTION(msiof0),
1994 	SH_PFC_FUNCTION(msiof1),
1995 	SH_PFC_FUNCTION(qspi),
1996 	SH_PFC_FUNCTION(scif0),
1997 	SH_PFC_FUNCTION(scif1),
1998 	SH_PFC_FUNCTION(scif2),
1999 	SH_PFC_FUNCTION(scif3),
2000 	SH_PFC_FUNCTION(sdhi0),
2001 	SH_PFC_FUNCTION(vin0),
2002 	SH_PFC_FUNCTION(vin1),
2003 	SH_PFC_FUNCTION(vin2),
2004 	SH_PFC_FUNCTION(vin3),
2005 	SH_PFC_FUNCTION(vin4),
2006 	SH_PFC_FUNCTION(vin5),
2007 };
2008 
2009 static const struct pinmux_cfg_reg pinmux_config_regs[] = {
2010 	{ PINMUX_CFG_REG("GPSR0", 0xE6060004, 32, 1, GROUP(
2011 		0, 0,
2012 		0, 0,
2013 		0, 0,
2014 		GP_0_28_FN, FN_IP1_4,
2015 		GP_0_27_FN, FN_IP1_3,
2016 		GP_0_26_FN, FN_IP1_2,
2017 		GP_0_25_FN, FN_IP1_1,
2018 		GP_0_24_FN, FN_IP1_0,
2019 		GP_0_23_FN, FN_IP0_23,
2020 		GP_0_22_FN, FN_IP0_22,
2021 		GP_0_21_FN, FN_IP0_21,
2022 		GP_0_20_FN, FN_IP0_20,
2023 		GP_0_19_FN, FN_IP0_19,
2024 		GP_0_18_FN, FN_IP0_18,
2025 		GP_0_17_FN, FN_IP0_17,
2026 		GP_0_16_FN, FN_IP0_16,
2027 		GP_0_15_FN, FN_IP0_15,
2028 		GP_0_14_FN, FN_IP0_14,
2029 		GP_0_13_FN, FN_IP0_13,
2030 		GP_0_12_FN, FN_IP0_12,
2031 		GP_0_11_FN, FN_IP0_11,
2032 		GP_0_10_FN, FN_IP0_10,
2033 		GP_0_9_FN, FN_IP0_9,
2034 		GP_0_8_FN, FN_IP0_8,
2035 		GP_0_7_FN, FN_IP0_7,
2036 		GP_0_6_FN, FN_IP0_6,
2037 		GP_0_5_FN, FN_IP0_5,
2038 		GP_0_4_FN, FN_IP0_4,
2039 		GP_0_3_FN, FN_IP0_3,
2040 		GP_0_2_FN, FN_IP0_2,
2041 		GP_0_1_FN, FN_IP0_1,
2042 		GP_0_0_FN, FN_IP0_0 ))
2043 	},
2044 	{ PINMUX_CFG_REG("GPSR1", 0xE6060008, 32, 1, GROUP(
2045 		0, 0,
2046 		0, 0,
2047 		0, 0,
2048 		0, 0,
2049 		0, 0,
2050 		0, 0,
2051 		0, 0,
2052 		0, 0,
2053 		0, 0,
2054 		GP_1_22_FN, FN_DU1_CDE,
2055 		GP_1_21_FN, FN_DU1_DISP,
2056 		GP_1_20_FN, FN_DU1_EXODDF_DU1_ODDF_DISP_CDE,
2057 		GP_1_19_FN, FN_DU1_EXVSYNC_DU1_VSYNC,
2058 		GP_1_18_FN, FN_DU1_EXHSYNC_DU1_HSYNC,
2059 		GP_1_17_FN, FN_DU1_DB7_C5,
2060 		GP_1_16_FN, FN_DU1_DB6_C4,
2061 		GP_1_15_FN, FN_DU1_DB5_C3_DATA15,
2062 		GP_1_14_FN, FN_DU1_DB4_C2_DATA14,
2063 		GP_1_13_FN, FN_DU1_DB3_C1_DATA13,
2064 		GP_1_12_FN, FN_DU1_DB2_C0_DATA12,
2065 		GP_1_11_FN, FN_IP1_16,
2066 		GP_1_10_FN, FN_IP1_15,
2067 		GP_1_9_FN, FN_IP1_14,
2068 		GP_1_8_FN, FN_IP1_13,
2069 		GP_1_7_FN, FN_IP1_12,
2070 		GP_1_6_FN, FN_IP1_11,
2071 		GP_1_5_FN, FN_IP1_10,
2072 		GP_1_4_FN, FN_IP1_9,
2073 		GP_1_3_FN, FN_IP1_8,
2074 		GP_1_2_FN, FN_IP1_7,
2075 		GP_1_1_FN, FN_IP1_6,
2076 		GP_1_0_FN, FN_IP1_5, ))
2077 	},
2078 	{ PINMUX_CFG_REG("GPSR2", 0xE606000C, 32, 1, GROUP(
2079 		GP_2_31_FN, FN_A15,
2080 		GP_2_30_FN, FN_A14,
2081 		GP_2_29_FN, FN_A13,
2082 		GP_2_28_FN, FN_A12,
2083 		GP_2_27_FN, FN_A11,
2084 		GP_2_26_FN, FN_A10,
2085 		GP_2_25_FN, FN_A9,
2086 		GP_2_24_FN, FN_A8,
2087 		GP_2_23_FN, FN_A7,
2088 		GP_2_22_FN, FN_A6,
2089 		GP_2_21_FN, FN_A5,
2090 		GP_2_20_FN, FN_A4,
2091 		GP_2_19_FN, FN_A3,
2092 		GP_2_18_FN, FN_A2,
2093 		GP_2_17_FN, FN_A1,
2094 		GP_2_16_FN, FN_A0,
2095 		GP_2_15_FN, FN_D15,
2096 		GP_2_14_FN, FN_D14,
2097 		GP_2_13_FN, FN_D13,
2098 		GP_2_12_FN, FN_D12,
2099 		GP_2_11_FN, FN_D11,
2100 		GP_2_10_FN, FN_D10,
2101 		GP_2_9_FN, FN_D9,
2102 		GP_2_8_FN, FN_D8,
2103 		GP_2_7_FN, FN_D7,
2104 		GP_2_6_FN, FN_D6,
2105 		GP_2_5_FN, FN_D5,
2106 		GP_2_4_FN, FN_D4,
2107 		GP_2_3_FN, FN_D3,
2108 		GP_2_2_FN, FN_D2,
2109 		GP_2_1_FN, FN_D1,
2110 		GP_2_0_FN, FN_D0 ))
2111 	},
2112 	{ PINMUX_CFG_REG("GPSR3", 0xE6060010, 32, 1, GROUP(
2113 		0, 0,
2114 		0, 0,
2115 		0, 0,
2116 		0, 0,
2117 		GP_3_27_FN, FN_CS0_N,
2118 		GP_3_26_FN, FN_IP1_22,
2119 		GP_3_25_FN, FN_IP1_21,
2120 		GP_3_24_FN, FN_IP1_20,
2121 		GP_3_23_FN, FN_IP1_19,
2122 		GP_3_22_FN, FN_IRQ3,
2123 		GP_3_21_FN, FN_IRQ2,
2124 		GP_3_20_FN, FN_IRQ1,
2125 		GP_3_19_FN, FN_IRQ0,
2126 		GP_3_18_FN, FN_EX_WAIT0,
2127 		GP_3_17_FN, FN_WE1_N,
2128 		GP_3_16_FN, FN_WE0_N,
2129 		GP_3_15_FN, FN_RD_WR_N,
2130 		GP_3_14_FN, FN_RD_N,
2131 		GP_3_13_FN, FN_BS_N,
2132 		GP_3_12_FN, FN_EX_CS5_N,
2133 		GP_3_11_FN, FN_EX_CS4_N,
2134 		GP_3_10_FN, FN_EX_CS3_N,
2135 		GP_3_9_FN, FN_EX_CS2_N,
2136 		GP_3_8_FN, FN_EX_CS1_N,
2137 		GP_3_7_FN, FN_EX_CS0_N,
2138 		GP_3_6_FN, FN_CS1_N_A26,
2139 		GP_3_5_FN, FN_IP1_18,
2140 		GP_3_4_FN, FN_IP1_17,
2141 		GP_3_3_FN, FN_A19,
2142 		GP_3_2_FN, FN_A18,
2143 		GP_3_1_FN, FN_A17,
2144 		GP_3_0_FN, FN_A16 ))
2145 	},
2146 	{ PINMUX_CFG_REG("GPSR4", 0xE6060014, 32, 1, GROUP(
2147 		0, 0,
2148 		0, 0,
2149 		0, 0,
2150 		0, 0,
2151 		0, 0,
2152 		0, 0,
2153 		0, 0,
2154 		0, 0,
2155 		0, 0,
2156 		0, 0,
2157 		0, 0,
2158 		0, 0,
2159 		0, 0,
2160 		0, 0,
2161 		0, 0,
2162 		GP_4_16_FN, FN_VI0_FIELD,
2163 		GP_4_15_FN, FN_VI0_D11_G3_Y3,
2164 		GP_4_14_FN, FN_VI0_D10_G2_Y2,
2165 		GP_4_13_FN, FN_VI0_D9_G1_Y1,
2166 		GP_4_12_FN, FN_VI0_D8_G0_Y0,
2167 		GP_4_11_FN, FN_VI0_D7_B7_C7,
2168 		GP_4_10_FN, FN_VI0_D6_B6_C6,
2169 		GP_4_9_FN, FN_VI0_D5_B5_C5,
2170 		GP_4_8_FN, FN_VI0_D4_B4_C4,
2171 		GP_4_7_FN, FN_VI0_D3_B3_C3,
2172 		GP_4_6_FN, FN_VI0_D2_B2_C2,
2173 		GP_4_5_FN, FN_VI0_D1_B1_C1,
2174 		GP_4_4_FN, FN_VI0_D0_B0_C0,
2175 		GP_4_3_FN, FN_VI0_VSYNC_N,
2176 		GP_4_2_FN, FN_VI0_HSYNC_N,
2177 		GP_4_1_FN, FN_VI0_CLKENB,
2178 		GP_4_0_FN, FN_VI0_CLK ))
2179 	},
2180 	{ PINMUX_CFG_REG("GPSR5", 0xE6060018, 32, 1, GROUP(
2181 		0, 0,
2182 		0, 0,
2183 		0, 0,
2184 		0, 0,
2185 		0, 0,
2186 		0, 0,
2187 		0, 0,
2188 		0, 0,
2189 		0, 0,
2190 		0, 0,
2191 		0, 0,
2192 		0, 0,
2193 		0, 0,
2194 		0, 0,
2195 		0, 0,
2196 		GP_5_16_FN, FN_VI1_FIELD,
2197 		GP_5_15_FN, FN_VI1_D11_G3_Y3,
2198 		GP_5_14_FN, FN_VI1_D10_G2_Y2,
2199 		GP_5_13_FN, FN_VI1_D9_G1_Y1,
2200 		GP_5_12_FN, FN_VI1_D8_G0_Y0,
2201 		GP_5_11_FN, FN_VI1_D7_B7_C7,
2202 		GP_5_10_FN, FN_VI1_D6_B6_C6,
2203 		GP_5_9_FN, FN_VI1_D5_B5_C5,
2204 		GP_5_8_FN, FN_VI1_D4_B4_C4,
2205 		GP_5_7_FN, FN_VI1_D3_B3_C3,
2206 		GP_5_6_FN, FN_VI1_D2_B2_C2,
2207 		GP_5_5_FN, FN_VI1_D1_B1_C1,
2208 		GP_5_4_FN, FN_VI1_D0_B0_C0,
2209 		GP_5_3_FN, FN_VI1_VSYNC_N,
2210 		GP_5_2_FN, FN_VI1_HSYNC_N,
2211 		GP_5_1_FN, FN_VI1_CLKENB,
2212 		GP_5_0_FN, FN_VI1_CLK ))
2213 	},
2214 	{ PINMUX_CFG_REG("GPSR6", 0xE606001C, 32, 1, GROUP(
2215 		0, 0,
2216 		0, 0,
2217 		0, 0,
2218 		0, 0,
2219 		0, 0,
2220 		0, 0,
2221 		0, 0,
2222 		0, 0,
2223 		0, 0,
2224 		0, 0,
2225 		0, 0,
2226 		0, 0,
2227 		0, 0,
2228 		0, 0,
2229 		0, 0,
2230 		GP_6_16_FN, FN_IP2_16,
2231 		GP_6_15_FN, FN_IP2_15,
2232 		GP_6_14_FN, FN_IP2_14,
2233 		GP_6_13_FN, FN_IP2_13,
2234 		GP_6_12_FN, FN_IP2_12,
2235 		GP_6_11_FN, FN_IP2_11,
2236 		GP_6_10_FN, FN_IP2_10,
2237 		GP_6_9_FN, FN_IP2_9,
2238 		GP_6_8_FN, FN_IP2_8,
2239 		GP_6_7_FN, FN_IP2_7,
2240 		GP_6_6_FN, FN_IP2_6,
2241 		GP_6_5_FN, FN_IP2_5,
2242 		GP_6_4_FN, FN_IP2_4,
2243 		GP_6_3_FN, FN_IP2_3,
2244 		GP_6_2_FN, FN_IP2_2,
2245 		GP_6_1_FN, FN_IP2_1,
2246 		GP_6_0_FN, FN_IP2_0 ))
2247 	},
2248 	{ PINMUX_CFG_REG("GPSR7", 0xE6060020, 32, 1, GROUP(
2249 		0, 0,
2250 		0, 0,
2251 		0, 0,
2252 		0, 0,
2253 		0, 0,
2254 		0, 0,
2255 		0, 0,
2256 		0, 0,
2257 		0, 0,
2258 		0, 0,
2259 		0, 0,
2260 		0, 0,
2261 		0, 0,
2262 		0, 0,
2263 		0, 0,
2264 		GP_7_16_FN, FN_VI3_FIELD,
2265 		GP_7_15_FN, FN_IP3_14,
2266 		GP_7_14_FN, FN_VI3_D10_Y2,
2267 		GP_7_13_FN, FN_IP3_13,
2268 		GP_7_12_FN, FN_IP3_12,
2269 		GP_7_11_FN, FN_IP3_11,
2270 		GP_7_10_FN, FN_IP3_10,
2271 		GP_7_9_FN, FN_IP3_9,
2272 		GP_7_8_FN, FN_IP3_8,
2273 		GP_7_7_FN, FN_IP3_7,
2274 		GP_7_6_FN, FN_IP3_6,
2275 		GP_7_5_FN, FN_IP3_5,
2276 		GP_7_4_FN, FN_IP3_4,
2277 		GP_7_3_FN, FN_IP3_3,
2278 		GP_7_2_FN, FN_IP3_2,
2279 		GP_7_1_FN, FN_IP3_1,
2280 		GP_7_0_FN, FN_IP3_0 ))
2281 	},
2282 	{ PINMUX_CFG_REG("GPSR8", 0xE6060024, 32, 1, GROUP(
2283 		0, 0,
2284 		0, 0,
2285 		0, 0,
2286 		0, 0,
2287 		0, 0,
2288 		0, 0,
2289 		0, 0,
2290 		0, 0,
2291 		0, 0,
2292 		0, 0,
2293 		0, 0,
2294 		0, 0,
2295 		0, 0,
2296 		0, 0,
2297 		0, 0,
2298 		GP_8_16_FN, FN_IP4_24,
2299 		GP_8_15_FN, FN_IP4_23,
2300 		GP_8_14_FN, FN_IP4_22,
2301 		GP_8_13_FN, FN_IP4_21,
2302 		GP_8_12_FN, FN_IP4_20_19,
2303 		GP_8_11_FN, FN_IP4_18_17,
2304 		GP_8_10_FN, FN_IP4_16_15,
2305 		GP_8_9_FN, FN_IP4_14_13,
2306 		GP_8_8_FN, FN_IP4_12_11,
2307 		GP_8_7_FN, FN_IP4_10_9,
2308 		GP_8_6_FN, FN_IP4_8_7,
2309 		GP_8_5_FN, FN_IP4_6_5,
2310 		GP_8_4_FN, FN_IP4_4,
2311 		GP_8_3_FN, FN_IP4_3_2,
2312 		GP_8_2_FN, FN_IP4_1,
2313 		GP_8_1_FN, FN_IP4_0,
2314 		GP_8_0_FN, FN_VI4_CLK ))
2315 	},
2316 	{ PINMUX_CFG_REG("GPSR9", 0xE6060028, 32, 1, GROUP(
2317 		0, 0,
2318 		0, 0,
2319 		0, 0,
2320 		0, 0,
2321 		0, 0,
2322 		0, 0,
2323 		0, 0,
2324 		0, 0,
2325 		0, 0,
2326 		0, 0,
2327 		0, 0,
2328 		0, 0,
2329 		0, 0,
2330 		0, 0,
2331 		0, 0,
2332 		GP_9_16_FN, FN_VI5_FIELD,
2333 		GP_9_15_FN, FN_VI5_D11_Y3,
2334 		GP_9_14_FN, FN_VI5_D10_Y2,
2335 		GP_9_13_FN, FN_VI5_D9_Y1,
2336 		GP_9_12_FN, FN_IP5_11,
2337 		GP_9_11_FN, FN_IP5_10,
2338 		GP_9_10_FN, FN_IP5_9,
2339 		GP_9_9_FN, FN_IP5_8,
2340 		GP_9_8_FN, FN_IP5_7,
2341 		GP_9_7_FN, FN_IP5_6,
2342 		GP_9_6_FN, FN_IP5_5,
2343 		GP_9_5_FN, FN_IP5_4,
2344 		GP_9_4_FN, FN_IP5_3,
2345 		GP_9_3_FN, FN_IP5_2,
2346 		GP_9_2_FN, FN_IP5_1,
2347 		GP_9_1_FN, FN_IP5_0,
2348 		GP_9_0_FN, FN_VI5_CLK ))
2349 	},
2350 	{ PINMUX_CFG_REG("GPSR10", 0xE606002C, 32, 1, GROUP(
2351 		GP_10_31_FN, FN_CAN1_RX,
2352 		GP_10_30_FN, FN_CAN1_TX,
2353 		GP_10_29_FN, FN_CAN_CLK,
2354 		GP_10_28_FN, FN_CAN0_RX,
2355 		GP_10_27_FN, FN_CAN0_TX,
2356 		GP_10_26_FN, FN_SCIF_CLK,
2357 		GP_10_25_FN, FN_IP6_18_17,
2358 		GP_10_24_FN, FN_IP6_16,
2359 		GP_10_23_FN, FN_IP6_15_14,
2360 		GP_10_22_FN, FN_IP6_13_12,
2361 		GP_10_21_FN, FN_IP6_11_10,
2362 		GP_10_20_FN, FN_IP6_9_8,
2363 		GP_10_19_FN, FN_RX1,
2364 		GP_10_18_FN, FN_TX1,
2365 		GP_10_17_FN, FN_RTS1_N,
2366 		GP_10_16_FN, FN_CTS1_N,
2367 		GP_10_15_FN, FN_SCK1,
2368 		GP_10_14_FN, FN_RX0,
2369 		GP_10_13_FN, FN_TX0,
2370 		GP_10_12_FN, FN_RTS0_N,
2371 		GP_10_11_FN, FN_CTS0_N,
2372 		GP_10_10_FN, FN_SCK0,
2373 		GP_10_9_FN, FN_IP6_7,
2374 		GP_10_8_FN, FN_IP6_6,
2375 		GP_10_7_FN, FN_HCTS1_N,
2376 		GP_10_6_FN, FN_IP6_5,
2377 		GP_10_5_FN, FN_IP6_4,
2378 		GP_10_4_FN, FN_IP6_3,
2379 		GP_10_3_FN, FN_IP6_2,
2380 		GP_10_2_FN, FN_HRTS0_N,
2381 		GP_10_1_FN, FN_IP6_1,
2382 		GP_10_0_FN, FN_IP6_0 ))
2383 	},
2384 	{ PINMUX_CFG_REG("GPSR11", 0xE6060030, 32, 1, GROUP(
2385 		0, 0,
2386 		0, 0,
2387 		GP_11_29_FN, FN_AVS2,
2388 		GP_11_28_FN, FN_AVS1,
2389 		GP_11_27_FN, FN_ADICHS2,
2390 		GP_11_26_FN, FN_ADICHS1,
2391 		GP_11_25_FN, FN_ADICHS0,
2392 		GP_11_24_FN, FN_ADIDATA,
2393 		GP_11_23_FN, FN_ADICS_SAMP,
2394 		GP_11_22_FN, FN_ADICLK,
2395 		GP_11_21_FN, FN_IP7_20,
2396 		GP_11_20_FN, FN_IP7_19,
2397 		GP_11_19_FN, FN_IP7_18,
2398 		GP_11_18_FN, FN_IP7_17,
2399 		GP_11_17_FN, FN_IP7_16,
2400 		GP_11_16_FN, FN_IP7_15_14,
2401 		GP_11_15_FN, FN_IP7_13_12,
2402 		GP_11_14_FN, FN_IP7_11_10,
2403 		GP_11_13_FN, FN_IP7_9_8,
2404 		GP_11_12_FN, FN_SD0_WP,
2405 		GP_11_11_FN, FN_SD0_CD,
2406 		GP_11_10_FN, FN_SD0_DAT3,
2407 		GP_11_9_FN, FN_SD0_DAT2,
2408 		GP_11_8_FN, FN_SD0_DAT1,
2409 		GP_11_7_FN, FN_SD0_DAT0,
2410 		GP_11_6_FN, FN_SD0_CMD,
2411 		GP_11_5_FN, FN_SD0_CLK,
2412 		GP_11_4_FN, FN_IP7_7,
2413 		GP_11_3_FN, FN_IP7_6,
2414 		GP_11_2_FN, FN_IP7_5_4,
2415 		GP_11_1_FN, FN_IP7_3_2,
2416 		GP_11_0_FN, FN_IP7_1_0 ))
2417 	},
2418 	{ PINMUX_CFG_REG_VAR("IPSR0", 0xE6060040, 32,
2419 			     GROUP(4, 4,
2420 				   1, 1, 1, 1, 1, 1, 1, 1,
2421 				   1, 1, 1, 1, 1, 1, 1, 1,
2422 				   1, 1, 1, 1, 1, 1, 1, 1),
2423 			     GROUP(
2424 		/* IP0_31_28 [4] */
2425 		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2426 		/* IP0_27_24 [4] */
2427 		0, 0, 0, 0, 0, 0, 0, 0,	0, 0, 0, 0, 0, 0, 0, 0,
2428 		/* IP0_23 [1] */
2429 		FN_DU0_DB7_C5, 0,
2430 		/* IP0_22 [1] */
2431 		FN_DU0_DB6_C4, 0,
2432 		/* IP0_21 [1] */
2433 		FN_DU0_DB5_C3, 0,
2434 		/* IP0_20 [1] */
2435 		FN_DU0_DB4_C2, 0,
2436 		/* IP0_19 [1] */
2437 		FN_DU0_DB3_C1, 0,
2438 		/* IP0_18 [1] */
2439 		FN_DU0_DB2_C0, 0,
2440 		/* IP0_17 [1] */
2441 		FN_DU0_DB1, 0,
2442 		/* IP0_16 [1] */
2443 		FN_DU0_DB0, 0,
2444 		/* IP0_15 [1] */
2445 		FN_DU0_DG7_Y3_DATA15, 0,
2446 		/* IP0_14 [1] */
2447 		FN_DU0_DG6_Y2_DATA14, 0,
2448 		/* IP0_13 [1] */
2449 		FN_DU0_DG5_Y1_DATA13, 0,
2450 		/* IP0_12 [1] */
2451 		FN_DU0_DG4_Y0_DATA12, 0,
2452 		/* IP0_11 [1] */
2453 		FN_DU0_DG3_C7_DATA11, 0,
2454 		/* IP0_10 [1] */
2455 		FN_DU0_DG2_C6_DATA10, 0,
2456 		/* IP0_9 [1] */
2457 		FN_DU0_DG1_DATA9, 0,
2458 		/* IP0_8 [1] */
2459 		FN_DU0_DG0_DATA8, 0,
2460 		/* IP0_7 [1] */
2461 		FN_DU0_DR7_Y9_DATA7, 0,
2462 		/* IP0_6 [1] */
2463 		FN_DU0_DR6_Y8_DATA6, 0,
2464 		/* IP0_5 [1] */
2465 		FN_DU0_DR5_Y7_DATA5, 0,
2466 		/* IP0_4 [1] */
2467 		FN_DU0_DR4_Y6_DATA4, 0,
2468 		/* IP0_3 [1] */
2469 		FN_DU0_DR3_Y5_DATA3, 0,
2470 		/* IP0_2 [1] */
2471 		FN_DU0_DR2_Y4_DATA2, 0,
2472 		/* IP0_1 [1] */
2473 		FN_DU0_DR1_DATA1, 0,
2474 		/* IP0_0 [1] */
2475 		FN_DU0_DR0_DATA0, 0 ))
2476 	},
2477 	{ PINMUX_CFG_REG_VAR("IPSR1", 0xE6060044, 32,
2478 			     GROUP(4, 4,
2479 				   1, 1, 1, 1, 1, 1, 1, 1,
2480 				   1, 1, 1, 1, 1, 1, 1, 1,
2481 				   1, 1, 1, 1, 1, 1, 1, 1),
2482 			     GROUP(
2483 		/* IP1_31_28 [4] */
2484 		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2485 		/* IP1_27_24 [4] */
2486 		0, 0, 0, 0, 0, 0, 0, 0,	0, 0, 0, 0, 0, 0, 0, 0,
2487 		/* IP1_23 [1] */
2488 		0, 0,
2489 		/* IP1_22 [1] */
2490 		FN_A25, FN_SSL,
2491 		/* IP1_21 [1] */
2492 		FN_A24, FN_SPCLK,
2493 		/* IP1_20 [1] */
2494 		FN_A23, FN_IO3,
2495 		/* IP1_19 [1] */
2496 		FN_A22, FN_IO2,
2497 		/* IP1_18 [1] */
2498 		FN_A21, FN_MISO_IO1,
2499 		/* IP1_17 [1] */
2500 		FN_A20, FN_MOSI_IO0,
2501 		/* IP1_16 [1] */
2502 		FN_DU1_DG7_Y3_DATA11, 0,
2503 		/* IP1_15 [1] */
2504 		FN_DU1_DG6_Y2_DATA10, 0,
2505 		/* IP1_14 [1] */
2506 		FN_DU1_DG5_Y1_DATA9, 0,
2507 		/* IP1_13 [1] */
2508 		FN_DU1_DG4_Y0_DATA8, 0,
2509 		/* IP1_12 [1] */
2510 		FN_DU1_DG3_C7_DATA7, 0,
2511 		/* IP1_11 [1] */
2512 		FN_DU1_DG2_C6_DATA6, 0,
2513 		/* IP1_10 [1] */
2514 		FN_DU1_DR7_DATA5, 0,
2515 		/* IP1_9 [1] */
2516 		FN_DU1_DR6_DATA4, 0,
2517 		/* IP1_8 [1] */
2518 		FN_DU1_DR5_Y7_DATA3, 0,
2519 		/* IP1_7 [1] */
2520 		FN_DU1_DR4_Y6_DATA2, 0,
2521 		/* IP1_6 [1] */
2522 		FN_DU1_DR3_Y5_DATA1, 0,
2523 		/* IP1_5 [1] */
2524 		FN_DU1_DR2_Y4_DATA0, 0,
2525 		/* IP1_4 [1] */
2526 		FN_DU0_CDE, 0,
2527 		/* IP1_3 [1] */
2528 		FN_DU0_DISP, 0,
2529 		/* IP1_2 [1] */
2530 		FN_DU0_EXODDF_DU0_ODDF_DISP_CDE, 0,
2531 		/* IP1_1 [1] */
2532 		FN_DU0_EXVSYNC_DU0_VSYNC, 0,
2533 		/* IP1_0 [1] */
2534 		FN_DU0_EXHSYNC_DU0_HSYNC, 0 ))
2535 	},
2536 	{ PINMUX_CFG_REG_VAR("IPSR2", 0xE6060048, 32,
2537 			     GROUP(4, 4,
2538 				   4, 3, 1,
2539 				   1, 1, 1, 1, 1, 1, 1, 1,
2540 				   1, 1, 1, 1, 1, 1, 1, 1),
2541 			     GROUP(
2542 		/* IP2_31_28 [4] */
2543 		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2544 		/* IP2_27_24 [4] */
2545 		0, 0, 0, 0, 0, 0, 0, 0,	0, 0, 0, 0, 0, 0, 0, 0,
2546 		/* IP2_23_20 [4] */
2547 		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2548 		/* IP2_19_17 [3] */
2549 		0, 0, 0, 0, 0, 0, 0, 0,
2550 		/* IP2_16 [1] */
2551 		FN_VI2_FIELD, FN_AVB_TXD2,
2552 		/* IP2_15 [1] */
2553 		FN_VI2_D11_Y3, FN_AVB_TXD1,
2554 		/* IP2_14 [1] */
2555 		FN_VI2_D10_Y2, FN_AVB_TXD0,
2556 		/* IP2_13 [1] */
2557 		FN_VI2_D9_Y1, FN_AVB_TX_EN,
2558 		/* IP2_12 [1] */
2559 		FN_VI2_D8_Y0, FN_AVB_TXD3,
2560 		/* IP2_11 [1] */
2561 		FN_VI2_D7_C7, FN_AVB_COL,
2562 		/* IP2_10 [1] */
2563 		FN_VI2_D6_C6, FN_AVB_RX_ER,
2564 		/* IP2_9 [1] */
2565 		FN_VI2_D5_C5, FN_AVB_RXD7,
2566 		/* IP2_8 [1] */
2567 		FN_VI2_D4_C4, FN_AVB_RXD6,
2568 		/* IP2_7 [1] */
2569 		FN_VI2_D3_C3, FN_AVB_RXD5,
2570 		/* IP2_6 [1] */
2571 		FN_VI2_D2_C2, FN_AVB_RXD4,
2572 		/* IP2_5 [1] */
2573 		FN_VI2_D1_C1, FN_AVB_RXD3,
2574 		/* IP2_4 [1] */
2575 		FN_VI2_D0_C0, FN_AVB_RXD2,
2576 		/* IP2_3 [1] */
2577 		FN_VI2_VSYNC_N, FN_AVB_RXD1,
2578 		/* IP2_2 [1] */
2579 		FN_VI2_HSYNC_N, FN_AVB_RXD0,
2580 		/* IP2_1 [1] */
2581 		FN_VI2_CLKENB, FN_AVB_RX_DV,
2582 		/* IP2_0 [1] */
2583 		FN_VI2_CLK, FN_AVB_RX_CLK ))
2584 	},
2585 	{ PINMUX_CFG_REG_VAR("IPSR3", 0xE606004C, 32,
2586 			     GROUP(4, 4,
2587 				   4, 4,
2588 				   1, 1, 1, 1, 1, 1, 1, 1,
2589 				   1, 1, 1, 1, 1, 1, 1, 1),
2590 			     GROUP(
2591 		/* IP3_31_28 [4] */
2592 		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2593 		/* IP3_27_24 [4] */
2594 		0, 0, 0, 0, 0, 0, 0, 0,	0, 0, 0, 0, 0, 0, 0, 0,
2595 		/* IP3_23_20 [4] */
2596 		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2597 		/* IP3_19_16 [4] */
2598 		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2599 		/* IP3_15 [1] */
2600 		0, 0,
2601 		/* IP3_14 [1] */
2602 		FN_VI3_D11_Y3, FN_AVB_AVTP_MATCH,
2603 		/* IP3_13 [1] */
2604 		FN_VI3_D9_Y1, FN_AVB_GTXREFCLK,
2605 		/* IP3_12 [1] */
2606 		FN_VI3_D8_Y0, FN_AVB_CRS,
2607 		/* IP3_11 [1] */
2608 		FN_VI3_D7_C7, FN_AVB_PHY_INT,
2609 		/* IP3_10 [1] */
2610 		FN_VI3_D6_C6, FN_AVB_MAGIC,
2611 		/* IP3_9 [1] */
2612 		FN_VI3_D5_C5, FN_AVB_LINK,
2613 		/* IP3_8 [1] */
2614 		FN_VI3_D4_C4, FN_AVB_MDIO,
2615 		/* IP3_7 [1] */
2616 		FN_VI3_D3_C3, FN_AVB_MDC,
2617 		/* IP3_6 [1] */
2618 		FN_VI3_D2_C2, FN_AVB_GTX_CLK,
2619 		/* IP3_5 [1] */
2620 		FN_VI3_D1_C1, FN_AVB_TX_ER,
2621 		/* IP3_4 [1] */
2622 		FN_VI3_D0_C0, FN_AVB_TXD7,
2623 		/* IP3_3 [1] */
2624 		FN_VI3_VSYNC_N, FN_AVB_TXD6,
2625 		/* IP3_2 [1] */
2626 		FN_VI3_HSYNC_N, FN_AVB_TXD5,
2627 		/* IP3_1 [1] */
2628 		FN_VI3_CLKENB, FN_AVB_TXD4,
2629 		/* IP3_0 [1] */
2630 		FN_VI3_CLK, FN_AVB_TX_CLK ))
2631 	},
2632 	{ PINMUX_CFG_REG_VAR("IPSR4", 0xE6060050, 32,
2633 			     GROUP(4, 3, 1,
2634 				   1, 1, 1, 2, 2, 2,
2635 				   2, 2, 2, 2, 2, 1, 2, 1, 1),
2636 			     GROUP(
2637 		/* IP4_31_28 [4] */
2638 		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2639 		/* IP4_27_25 [3] */
2640 		0, 0, 0, 0, 0, 0, 0, 0,
2641 		/* IP4_24 [1] */
2642 		FN_VI4_FIELD, FN_VI3_D15_Y7,
2643 		/* IP4_23 [1] */
2644 		FN_VI4_D11_Y3, FN_VI3_D14_Y6,
2645 		/* IP4_22 [1] */
2646 		FN_VI4_D10_Y2, FN_VI3_D13_Y5,
2647 		/* IP4_21 [1] */
2648 		FN_VI4_D9_Y1, FN_VI3_D12_Y4,
2649 		/* IP4_20_19 [2] */
2650 		FN_VI4_D8_Y0, FN_VI0_D23_R7, FN_VI2_D15_Y7, 0,
2651 		/* IP4_18_17 [2] */
2652 		FN_VI4_D7_C7, FN_VI0_D22_R6, FN_VI2_D14_Y6, 0,
2653 		/* IP4_16_15 [2] */
2654 		FN_VI4_D6_C6, FN_VI0_D21_R5, FN_VI2_D13_Y5, 0,
2655 		/* IP4_14_13 [2] */
2656 		FN_VI4_D5_C5, FN_VI0_D20_R4, FN_VI2_D12_Y4, 0,
2657 		/* IP4_12_11 [2] */
2658 		FN_VI4_D4_C4, FN_VI0_D19_R3, FN_VI1_D15_G7_Y7, 0,
2659 		/* IP4_10_9 [2] */
2660 		FN_VI4_D3_C3, FN_VI0_D18_R2, FN_VI1_D14_G6_Y6, 0,
2661 		/* IP4_8_7 [2] */
2662 		FN_VI4_D2_C2, 0, FN_VI0_D17_R1, FN_VI1_D13_G5_Y5,
2663 		/* IP4_6_5 [2] */
2664 		FN_VI4_D1_C1, FN_VI0_D16_R0, FN_VI1_D12_G4_Y4, 0,
2665 		/* IP4_4 [1] */
2666 		FN_VI4_D0_C0, FN_VI0_D15_G7_Y7,
2667 		/* IP4_3_2 [2] */
2668 		FN_VI4_VSYNC_N, FN_VI0_D14_G6_Y6, 0, 0,
2669 		/* IP4_1 [1] */
2670 		FN_VI4_HSYNC_N, FN_VI0_D13_G5_Y5,
2671 		/* IP4_0 [1] */
2672 		FN_VI4_CLKENB, FN_VI0_D12_G4_Y4 ))
2673 	},
2674 	{ PINMUX_CFG_REG_VAR("IPSR5", 0xE6060054, 32,
2675 			     GROUP(4, 4,
2676 				   4, 4,
2677 				   4, 1, 1, 1, 1,
2678 				   1, 1, 1, 1, 1, 1, 1, 1),
2679 			     GROUP(
2680 		/* IP5_31_28 [4] */
2681 		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2682 		/* IP5_27_24 [4] */
2683 		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2684 		/* IP5_23_20 [4] */
2685 		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2686 		/* IP5_19_16 [4] */
2687 		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2688 		/* IP5_15_12 [4] */
2689 		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2690 		/* IP5_11 [1] */
2691 		FN_VI5_D8_Y0, FN_VI1_D23_R7,
2692 		/* IP5_10 [1] */
2693 		FN_VI5_D7_C7, FN_VI1_D22_R6,
2694 		/* IP5_9 [1] */
2695 		FN_VI5_D6_C6, FN_VI1_D21_R5,
2696 		/* IP5_8 [1] */
2697 		FN_VI5_D5_C5, FN_VI1_D20_R4,
2698 		/* IP5_7 [1] */
2699 		FN_VI5_D4_C4, FN_VI1_D19_R3,
2700 		/* IP5_6 [1] */
2701 		FN_VI5_D3_C3, FN_VI1_D18_R2,
2702 		/* IP5_5 [1] */
2703 		FN_VI5_D2_C2, FN_VI1_D17_R1,
2704 		/* IP5_4 [1] */
2705 		FN_VI5_D1_C1, FN_VI1_D16_R0,
2706 		/* IP5_3 [1] */
2707 		FN_VI5_D0_C0, FN_VI1_D15_G7_Y7_B,
2708 		/* IP5_2 [1] */
2709 		FN_VI5_VSYNC_N, FN_VI1_D14_G6_Y6_B,
2710 		/* IP5_1 [1] */
2711 		FN_VI5_HSYNC_N, FN_VI1_D13_G5_Y5_B,
2712 		/* IP5_0 [1] */
2713 		FN_VI5_CLKENB, FN_VI1_D12_G4_Y4_B ))
2714 	},
2715 	{ PINMUX_CFG_REG_VAR("IPSR6", 0xE6060058, 32,
2716 			     GROUP(4, 4,
2717 				   4, 1, 2, 1,
2718 				   2, 2, 2, 2,
2719 				   1, 1, 1, 1, 1, 1, 1, 1),
2720 			     GROUP(
2721 		/* IP6_31_28 [4] */
2722 		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2723 		/* IP6_27_24 [4] */
2724 		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2725 		/* IP6_23_20 [4] */
2726 		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2727 		/* IP6_19 [1] */
2728 		0, 0,
2729 		/* IP6_18_17 [2] */
2730 		FN_DREQ1_N, FN_RX3, 0, 0,
2731 		/* IP6_16 [1] */
2732 		FN_TX3, 0,
2733 		/* IP6_15_14 [2] */
2734 		FN_DACK1, FN_SCK3, 0, 0,
2735 		/* IP6_13_12 [2] */
2736 		FN_DREQ0_N, FN_RX2, 0, 0,
2737 		/* IP6_11_10 [2] */
2738 		FN_DACK0, FN_TX2, 0, 0,
2739 		/* IP6_9_8 [2] */
2740 		FN_DRACK0, FN_SCK2, 0, 0,
2741 		/* IP6_7 [1] */
2742 		FN_MSIOF1_RXD, FN_HRX1,
2743 		/* IP6_6 [1] */
2744 		FN_MSIOF1_TXD, FN_HTX1,
2745 		/* IP6_5 [1] */
2746 		FN_MSIOF1_SYNC, FN_HRTS1_N,
2747 		/* IP6_4 [1] */
2748 		FN_MSIOF1_SCK, FN_HSCK1,
2749 		/* IP6_3 [1] */
2750 		FN_MSIOF0_RXD, FN_HRX0,
2751 		/* IP6_2 [1] */
2752 		FN_MSIOF0_TXD, FN_HTX0,
2753 		/* IP6_1 [1] */
2754 		FN_MSIOF0_SYNC, FN_HCTS0_N,
2755 		/* IP6_0 [1] */
2756 		FN_MSIOF0_SCK, FN_HSCK0 ))
2757 	},
2758 	{ PINMUX_CFG_REG_VAR("IPSR7", 0xE606005C, 32,
2759 			     GROUP(4, 4,
2760 				   3, 1, 1, 1, 1, 1,
2761 				   2, 2, 2, 2,
2762 				   1, 1, 2, 2, 2),
2763 			     GROUP(
2764 		/* IP7_31_28 [4] */
2765 		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2766 		/* IP7_27_24 [4] */
2767 		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2768 		/* IP7_23_21 [3] */
2769 		0, 0, 0, 0, 0, 0, 0, 0,
2770 		/* IP7_20 [1] */
2771 		FN_AUDIO_CLKB, 0,
2772 		/* IP7_19 [1] */
2773 		FN_AUDIO_CLKA, 0,
2774 		/* IP7_18 [1] */
2775 		FN_AUDIO_CLKOUT, 0,
2776 		/* IP7_17 [1] */
2777 		FN_SSI_SDATA4, 0,
2778 		/* IP7_16 [1] */
2779 		FN_SSI_WS4, 0,
2780 		/* IP7_15_14 [2] */
2781 		FN_SSI_SCK4, FN_TPU0TO3, 0, 0,
2782 		/* IP7_13_12 [2] */
2783 		FN_SSI_SDATA3, FN_TPU0TO2, 0, 0,
2784 		/* IP7_11_10 [2] */
2785 		FN_SSI_WS34, FN_TPU0TO1, 0, 0,
2786 		/* IP7_9_8 [2] */
2787 		FN_SSI_SCK34, FN_TPU0TO0, 0, 0,
2788 		/* IP7_7 [1] */
2789 		FN_PWM4, 0,
2790 		/* IP7_6 [1] */
2791 		FN_PWM3, 0,
2792 		/* IP7_5_4 [2] */
2793 		FN_PWM2, FN_TCLK3, FN_FSO_TOE, 0,
2794 		/* IP7_3_2 [2] */
2795 		FN_PWM1, FN_TCLK2, FN_FSO_CFE_1, 0,
2796 		/* IP7_1_0 [2] */
2797 		FN_PWM0, FN_TCLK1, FN_FSO_CFE_0, 0 ))
2798 	},
2799 	{ },
2800 };
2801 
2802 static const struct pinmux_bias_reg pinmux_bias_regs[] = {
2803 	{ PINMUX_BIAS_REG("PUPR0", 0xe6060100, "N/A", 0) {
2804 		[ 0] = RCAR_GP_PIN(0, 0),	/* DU0_DR0_DATA0 */
2805 		[ 1] = RCAR_GP_PIN(0, 1),	/* DU0_DR1_DATA1 */
2806 		[ 2] = RCAR_GP_PIN(0, 2),	/* DU0_DR2_Y4_DATA2 */
2807 		[ 3] = RCAR_GP_PIN(0, 3),	/* DU0_DR3_Y5_DATA3 */
2808 		[ 4] = RCAR_GP_PIN(0, 4),	/* DU0_DR4_Y6_DATA4 */
2809 		[ 5] = RCAR_GP_PIN(0, 5),	/* DU0_DR5_Y7_DATA5 */
2810 		[ 6] = RCAR_GP_PIN(0, 6),	/* DU0_DR6_Y8_DATA6 */
2811 		[ 7] = RCAR_GP_PIN(0, 7),	/* DU0_DR7_Y9_DATA7 */
2812 		[ 8] = RCAR_GP_PIN(0, 8),	/* DU0_DG0_DATA8 */
2813 		[ 9] = RCAR_GP_PIN(0, 9),	/* DU0_DG1_DATA9 */
2814 		[10] = RCAR_GP_PIN(0, 10),	/* DU0_DG2_C6_DATA10 */
2815 		[11] = RCAR_GP_PIN(0, 11),	/* DU0_DG3_C7_DATA11 */
2816 		[12] = RCAR_GP_PIN(0, 12),	/* DU0_DG4_Y0_DATA12 */
2817 		[13] = RCAR_GP_PIN(0, 13),	/* DU0_DG5_Y1_DATA13 */
2818 		[14] = RCAR_GP_PIN(0, 14),	/* DU0_DG6_Y2_DATA14 */
2819 		[15] = RCAR_GP_PIN(0, 15),	/* DU0_DG7_Y3_DATA15 */
2820 		[16] = RCAR_GP_PIN(0, 16),	/* DU0_DB0 */
2821 		[17] = RCAR_GP_PIN(0, 17),	/* DU0_DB1 */
2822 		[18] = RCAR_GP_PIN(0, 18),	/* DU0_DB2_C0 */
2823 		[19] = RCAR_GP_PIN(0, 19),	/* DU0_DB3_C1 */
2824 		[20] = RCAR_GP_PIN(0, 20),	/* DU0_DB4_C2 */
2825 		[21] = RCAR_GP_PIN(0, 21),	/* DU0_DB5_C3 */
2826 		[22] = RCAR_GP_PIN(0, 22),	/* DU0_DB6_C4 */
2827 		[23] = RCAR_GP_PIN(0, 23),	/* DU0_DB7_C5 */
2828 		[24] = RCAR_GP_PIN(0, 24),	/* DU0_EXHSYNC/DU0_HSYNC */
2829 		[25] = RCAR_GP_PIN(0, 25),	/* DU0_EXVSYNC/DU0_VSYNC */
2830 		[26] = RCAR_GP_PIN(0, 26),	/* DU0_EXODDF/DU0_ODDF_DISP_CDE */
2831 		[27] = RCAR_GP_PIN(0, 27),	/* DU0_DISP */
2832 		[28] = RCAR_GP_PIN(0, 28),	/* DU0_CDE */
2833 		[29] = SH_PFC_PIN_NONE,
2834 		[30] = SH_PFC_PIN_NONE,
2835 		[31] = SH_PFC_PIN_NONE,
2836 	} },
2837 	{ PINMUX_BIAS_REG("PUPR1", 0xe6060104, "N/A", 0) {
2838 		[ 0] = RCAR_GP_PIN(1, 0),	/* DU1_DR2_Y4_DATA0 */
2839 		[ 1] = RCAR_GP_PIN(1, 1),	/* DU1_DR3_Y5_DATA1 */
2840 		[ 2] = RCAR_GP_PIN(1, 2),	/* DU1_DR4_Y6_DATA2 */
2841 		[ 3] = RCAR_GP_PIN(1, 3),	/* DU1_DR5_Y7_DATA3 */
2842 		[ 4] = RCAR_GP_PIN(1, 4),	/* DU1_DR6_DATA4 */
2843 		[ 5] = RCAR_GP_PIN(1, 5),	/* DU1_DR7_DATA5 */
2844 		[ 6] = RCAR_GP_PIN(1, 6),	/* DU1_DG2_C6_DATA6 */
2845 		[ 7] = RCAR_GP_PIN(1, 7),	/* DU1_DG3_C7_DATA7 */
2846 		[ 8] = RCAR_GP_PIN(1, 8),	/* DU1_DG4_Y0_DATA8 */
2847 		[ 9] = RCAR_GP_PIN(1, 9),	/* DU1_DG5_Y1_DATA9 */
2848 		[10] = RCAR_GP_PIN(1, 10),	/* DU1_DG6_Y2_DATA10 */
2849 		[11] = RCAR_GP_PIN(1, 11),	/* DU1_DG7_Y3_DATA11 */
2850 		[12] = RCAR_GP_PIN(1, 12),	/* DU1_DB2_C0_DATA12 */
2851 		[13] = RCAR_GP_PIN(1, 13),	/* DU1_DB3_C1_DATA13 */
2852 		[14] = RCAR_GP_PIN(1, 14),	/* DU1_DB4_C2_DATA14 */
2853 		[15] = RCAR_GP_PIN(1, 15),	/* DU1_DB5_C3_DATA15 */
2854 		[16] = RCAR_GP_PIN(1, 16),	/* DU1_DB6_C4 */
2855 		[17] = RCAR_GP_PIN(1, 17),	/* DU1_DB7_C5 */
2856 		[18] = RCAR_GP_PIN(1, 18),	/* DU1_EXHSYNC/DU1_HSYNC */
2857 		[19] = RCAR_GP_PIN(1, 19),	/* DU1_EXVSYNC/DU1_VSYNC */
2858 		[20] = RCAR_GP_PIN(1, 20),	/* DU1_EXODDF/DU1_ODDF_DISP_CDE */
2859 		[21] = RCAR_GP_PIN(1, 21),	/* DU1_DISP */
2860 		[22] = RCAR_GP_PIN(1, 22),	/* DU1_CDE */
2861 		[23] = SH_PFC_PIN_NONE,
2862 		[24] = SH_PFC_PIN_NONE,
2863 		[25] = SH_PFC_PIN_NONE,
2864 		[26] = SH_PFC_PIN_NONE,
2865 		[27] = SH_PFC_PIN_NONE,
2866 		[28] = SH_PFC_PIN_NONE,
2867 		[29] = SH_PFC_PIN_NONE,
2868 		[30] = SH_PFC_PIN_NONE,
2869 		[31] = SH_PFC_PIN_NONE,
2870 	} },
2871 	{ PINMUX_BIAS_REG("PUPR2", 0xe6060108, "N/A", 0) {
2872 		[ 0] = RCAR_GP_PIN(2, 0),	/* D0 */
2873 		[ 1] = RCAR_GP_PIN(2, 1),	/* D1 */
2874 		[ 2] = RCAR_GP_PIN(2, 2),	/* D2 */
2875 		[ 3] = RCAR_GP_PIN(2, 3),	/* D3 */
2876 		[ 4] = RCAR_GP_PIN(2, 4),	/* D4 */
2877 		[ 5] = RCAR_GP_PIN(2, 5),	/* D5 */
2878 		[ 6] = RCAR_GP_PIN(2, 6),	/* D6 */
2879 		[ 7] = RCAR_GP_PIN(2, 7),	/* D7 */
2880 		[ 8] = RCAR_GP_PIN(2, 8),	/* D8 */
2881 		[ 9] = RCAR_GP_PIN(2, 9),	/* D9 */
2882 		[10] = RCAR_GP_PIN(2, 10),	/* D10 */
2883 		[11] = RCAR_GP_PIN(2, 11),	/* D11 */
2884 		[12] = RCAR_GP_PIN(2, 12),	/* D12 */
2885 		[13] = RCAR_GP_PIN(2, 13),	/* D13 */
2886 		[14] = RCAR_GP_PIN(2, 14),	/* D14 */
2887 		[15] = RCAR_GP_PIN(2, 15),	/* D15 */
2888 		[16] = RCAR_GP_PIN(2, 16),	/* A0 */
2889 		[17] = RCAR_GP_PIN(2, 17),	/* A1 */
2890 		[18] = RCAR_GP_PIN(2, 18),	/* A2 */
2891 		[19] = RCAR_GP_PIN(2, 19),	/* A3 */
2892 		[20] = RCAR_GP_PIN(2, 20),	/* A4 */
2893 		[21] = RCAR_GP_PIN(2, 21),	/* A5 */
2894 		[22] = RCAR_GP_PIN(2, 22),	/* A6 */
2895 		[23] = RCAR_GP_PIN(2, 23),	/* A7 */
2896 		[24] = RCAR_GP_PIN(2, 24),	/* A8 */
2897 		[25] = RCAR_GP_PIN(2, 25),	/* A9 */
2898 		[26] = RCAR_GP_PIN(2, 26),	/* A10 */
2899 		[27] = RCAR_GP_PIN(2, 27),	/* A11 */
2900 		[28] = RCAR_GP_PIN(2, 28),	/* A12 */
2901 		[29] = RCAR_GP_PIN(2, 29),	/* A13 */
2902 		[30] = RCAR_GP_PIN(2, 30),	/* A14 */
2903 		[31] = RCAR_GP_PIN(2, 31),	/* A15 */
2904 	} },
2905 	{ PINMUX_BIAS_REG("PUPR3", 0xe606010c, "N/A", 0) {
2906 		[ 0] = RCAR_GP_PIN(3, 0),	/* A16 */
2907 		[ 1] = RCAR_GP_PIN(3, 1),	/* A17 */
2908 		[ 2] = RCAR_GP_PIN(3, 2),	/* A18 */
2909 		[ 3] = RCAR_GP_PIN(3, 3),	/* A19 */
2910 		[ 4] = RCAR_GP_PIN(3, 4),	/* A20 */
2911 		[ 5] = RCAR_GP_PIN(3, 5),	/* A21 */
2912 		[ 6] = RCAR_GP_PIN(3, 6),	/* CS1#/A26 */
2913 		[ 7] = RCAR_GP_PIN(3, 7),	/* EX_CS0# */
2914 		[ 8] = RCAR_GP_PIN(3, 8),	/* EX_CS1# */
2915 		[ 9] = RCAR_GP_PIN(3, 9),	/* EX_CS2# */
2916 		[10] = RCAR_GP_PIN(3, 10),	/* EX_CS3# */
2917 		[11] = RCAR_GP_PIN(3, 11),	/* EX_CS4# */
2918 		[12] = RCAR_GP_PIN(3, 12),	/* EX_CS5# */
2919 		[13] = RCAR_GP_PIN(3, 13),	/* BS# */
2920 		[14] = RCAR_GP_PIN(3, 14),	/* RD# */
2921 		[15] = RCAR_GP_PIN(3, 15),	/* RD/WR# */
2922 		[16] = RCAR_GP_PIN(3, 16),	/* WE0# */
2923 		[17] = RCAR_GP_PIN(3, 17),	/* WE1# */
2924 		[18] = RCAR_GP_PIN(3, 18),	/* EX_WAIT0 */
2925 		[19] = RCAR_GP_PIN(3, 19),	/* IRQ0 */
2926 		[20] = RCAR_GP_PIN(3, 20),	/* IRQ1 */
2927 		[21] = RCAR_GP_PIN(3, 21),	/* IRQ2 */
2928 		[22] = RCAR_GP_PIN(3, 22),	/* IRQ3 */
2929 		[23] = RCAR_GP_PIN(3, 23),	/* A22 */
2930 		[24] = RCAR_GP_PIN(3, 24),	/* A23 */
2931 		[25] = RCAR_GP_PIN(3, 25),	/* A24 */
2932 		[26] = RCAR_GP_PIN(3, 26),	/* A25 */
2933 		[27] = RCAR_GP_PIN(3, 27),	/* CS0# */
2934 		[28] = SH_PFC_PIN_NONE,
2935 		[29] = SH_PFC_PIN_NONE,
2936 		[30] = SH_PFC_PIN_NONE,
2937 		[31] = SH_PFC_PIN_NONE,
2938 	} },
2939 	{ PINMUX_BIAS_REG("PUPR4", 0xe6060110, "N/A", 0) {
2940 		[ 0] = RCAR_GP_PIN(4, 0),	/* VI0_CLK */
2941 		[ 1] = RCAR_GP_PIN(4, 1),	/* VI0_CLKENB */
2942 		[ 2] = RCAR_GP_PIN(4, 2),	/* VI0_HSYNC# */
2943 		[ 3] = RCAR_GP_PIN(4, 3),	/* VI0_VSYNC# */
2944 		[ 4] = RCAR_GP_PIN(4, 4),	/* VI0_D0_B0_C0 */
2945 		[ 5] = RCAR_GP_PIN(4, 5),	/* VI0_D1_B1_C1 */
2946 		[ 6] = RCAR_GP_PIN(4, 6),	/* VI0_D2_B2_C2 */
2947 		[ 7] = RCAR_GP_PIN(4, 7),	/* VI0_D3_B3_C3 */
2948 		[ 8] = RCAR_GP_PIN(4, 8),	/* VI0_D4_B4_C4 */
2949 		[ 9] = RCAR_GP_PIN(4, 9),	/* VI0_D5_B5_C5 */
2950 		[10] = RCAR_GP_PIN(4, 10),	/* VI0_D6_B6_C6 */
2951 		[11] = RCAR_GP_PIN(4, 11),	/* VI0_D7_B7_C7 */
2952 		[12] = RCAR_GP_PIN(4, 12),	/* VI0_D8_G0_Y0 */
2953 		[13] = RCAR_GP_PIN(4, 13),	/* VI0_D9_G1_Y1 */
2954 		[14] = RCAR_GP_PIN(4, 14),	/* VI0_D10_G2_Y2 */
2955 		[15] = RCAR_GP_PIN(4, 15),	/* VI0_D11_G3_Y3 */
2956 		[16] = RCAR_GP_PIN(4, 16),	/* VI0_FIELD */
2957 		[17] = SH_PFC_PIN_NONE,
2958 		[18] = SH_PFC_PIN_NONE,
2959 		[19] = SH_PFC_PIN_NONE,
2960 		[20] = SH_PFC_PIN_NONE,
2961 		[21] = SH_PFC_PIN_NONE,
2962 		[22] = SH_PFC_PIN_NONE,
2963 		[23] = SH_PFC_PIN_NONE,
2964 		[24] = SH_PFC_PIN_NONE,
2965 		[25] = SH_PFC_PIN_NONE,
2966 		[26] = SH_PFC_PIN_NONE,
2967 		[27] = SH_PFC_PIN_NONE,
2968 		[28] = SH_PFC_PIN_NONE,
2969 		[29] = SH_PFC_PIN_NONE,
2970 		[30] = SH_PFC_PIN_NONE,
2971 		[31] = SH_PFC_PIN_NONE,
2972 	} },
2973 	{ PINMUX_BIAS_REG("PUPR5", 0xe6060114, "N/A", 0) {
2974 		[ 0] = RCAR_GP_PIN(5, 0),	/* VI1_CLK */
2975 		[ 1] = RCAR_GP_PIN(5, 1),	/* VI1_CLKENB */
2976 		[ 2] = RCAR_GP_PIN(5, 2),	/* VI1_HSYNC# */
2977 		[ 3] = RCAR_GP_PIN(5, 3),	/* VI1_VSYNC# */
2978 		[ 4] = RCAR_GP_PIN(5, 4),	/* VI1_D0_B0_C0 */
2979 		[ 5] = RCAR_GP_PIN(5, 5),	/* VI1_D1_B1_C1 */
2980 		[ 6] = RCAR_GP_PIN(5, 6),	/* VI1_D2_B2_C2 */
2981 		[ 7] = RCAR_GP_PIN(5, 7),	/* VI1_D3_B3_C3 */
2982 		[ 8] = RCAR_GP_PIN(5, 8),	/* VI1_D4_B4_C4 */
2983 		[ 9] = RCAR_GP_PIN(5, 9),	/* VI1_D5_B5_C5 */
2984 		[10] = RCAR_GP_PIN(5, 10),	/* VI1_D6_B6_C6 */
2985 		[11] = RCAR_GP_PIN(5, 11),	/* VI1_D7_B7_C7 */
2986 		[12] = RCAR_GP_PIN(5, 12),	/* VI1_D8_G0_Y0 */
2987 		[13] = RCAR_GP_PIN(5, 13),	/* VI1_D9_G1_Y1 */
2988 		[14] = RCAR_GP_PIN(5, 14),	/* VI1_D10_G2_Y2 */
2989 		[15] = RCAR_GP_PIN(5, 15),	/* VI1_D11_G3_Y3 */
2990 		[16] = RCAR_GP_PIN(5, 16),	/* VI1_FIELD */
2991 		[17] = SH_PFC_PIN_NONE,
2992 		[18] = SH_PFC_PIN_NONE,
2993 		[19] = SH_PFC_PIN_NONE,
2994 		[20] = SH_PFC_PIN_NONE,
2995 		[21] = SH_PFC_PIN_NONE,
2996 		[22] = SH_PFC_PIN_NONE,
2997 		[23] = SH_PFC_PIN_NONE,
2998 		[24] = SH_PFC_PIN_NONE,
2999 		[25] = SH_PFC_PIN_NONE,
3000 		[26] = SH_PFC_PIN_NONE,
3001 		[27] = SH_PFC_PIN_NONE,
3002 		[28] = SH_PFC_PIN_NONE,
3003 		[29] = SH_PFC_PIN_NONE,
3004 		[30] = SH_PFC_PIN_NONE,
3005 		[31] = SH_PFC_PIN_NONE,
3006 	} },
3007 	{ PINMUX_BIAS_REG("PUPR6", 0xe6060118, "N/A", 0) {
3008 		[ 0] = RCAR_GP_PIN(6, 0),	/* VI2_CLK */
3009 		[ 1] = RCAR_GP_PIN(6, 1),	/* VI2_CLKENB */
3010 		[ 2] = RCAR_GP_PIN(6, 2),	/* VI2_HSYNC# */
3011 		[ 3] = RCAR_GP_PIN(6, 3),	/* VI2_VSYNC# */
3012 		[ 4] = RCAR_GP_PIN(6, 4),	/* VI2_D0_C0 */
3013 		[ 5] = RCAR_GP_PIN(6, 5),	/* VI2_D1_C1 */
3014 		[ 6] = RCAR_GP_PIN(6, 6),	/* VI2_D2_C2 */
3015 		[ 7] = RCAR_GP_PIN(6, 7),	/* VI2_D3_C3 */
3016 		[ 8] = RCAR_GP_PIN(6, 8),	/* VI2_D4_C4 */
3017 		[ 9] = RCAR_GP_PIN(6, 9),	/* VI2_D5_C5 */
3018 		[10] = RCAR_GP_PIN(6, 10),	/* VI2_D6_C6 */
3019 		[11] = RCAR_GP_PIN(6, 11),	/* VI2_D7_C7 */
3020 		[12] = RCAR_GP_PIN(6, 12),	/* VI2_D8_Y0 */
3021 		[13] = RCAR_GP_PIN(6, 13),	/* VI2_D9_Y1 */
3022 		[14] = RCAR_GP_PIN(6, 14),	/* VI2_D10_Y2 */
3023 		[15] = RCAR_GP_PIN(6, 15),	/* VI2_D11_Y3 */
3024 		[16] = RCAR_GP_PIN(6, 16),	/* VI2_FIELD */
3025 		[17] = SH_PFC_PIN_NONE,
3026 		[18] = SH_PFC_PIN_NONE,
3027 		[19] = SH_PFC_PIN_NONE,
3028 		[20] = SH_PFC_PIN_NONE,
3029 		[21] = SH_PFC_PIN_NONE,
3030 		[22] = SH_PFC_PIN_NONE,
3031 		[23] = SH_PFC_PIN_NONE,
3032 		[24] = SH_PFC_PIN_NONE,
3033 		[25] = SH_PFC_PIN_NONE,
3034 		[26] = SH_PFC_PIN_NONE,
3035 		[27] = SH_PFC_PIN_NONE,
3036 		[28] = SH_PFC_PIN_NONE,
3037 		[29] = SH_PFC_PIN_NONE,
3038 		[30] = SH_PFC_PIN_NONE,
3039 		[31] = SH_PFC_PIN_NONE,
3040 	} },
3041 	{ PINMUX_BIAS_REG("PUPR7", 0xe606011c, "N/A", 0) {
3042 		[ 0] = RCAR_GP_PIN(7, 0),	/* VI3_CLK */
3043 		[ 1] = RCAR_GP_PIN(7, 1),	/* VI3_CLKENB */
3044 		[ 2] = RCAR_GP_PIN(7, 2),	/* VI3_HSYNC# */
3045 		[ 3] = RCAR_GP_PIN(7, 3),	/* VI3_VSYNC# */
3046 		[ 4] = RCAR_GP_PIN(7, 4),	/* VI3_D0_C0 */
3047 		[ 5] = RCAR_GP_PIN(7, 5),	/* VI3_D1_C1 */
3048 		[ 6] = RCAR_GP_PIN(7, 6),	/* VI3_D2_C2 */
3049 		[ 7] = RCAR_GP_PIN(7, 7),	/* VI3_D3_C3 */
3050 		[ 8] = RCAR_GP_PIN(7, 8),	/* VI3_D4_C4 */
3051 		[ 9] = RCAR_GP_PIN(7, 9),	/* VI3_D5_C5 */
3052 		[10] = RCAR_GP_PIN(7, 10),	/* VI3_D6_C6 */
3053 		[11] = RCAR_GP_PIN(7, 11),	/* VI3_D7_C7 */
3054 		[12] = RCAR_GP_PIN(7, 12),	/* VI3_D8_Y0 */
3055 		[13] = RCAR_GP_PIN(7, 13),	/* VI3_D9_Y1 */
3056 		[14] = RCAR_GP_PIN(7, 14),	/* VI3_D10_Y2 */
3057 		[15] = RCAR_GP_PIN(7, 15),	/* VI3_D11_Y3 */
3058 		[16] = RCAR_GP_PIN(7, 16),	/* VI3_FIELD */
3059 		[17] = SH_PFC_PIN_NONE,
3060 		[18] = SH_PFC_PIN_NONE,
3061 		[19] = SH_PFC_PIN_NONE,
3062 		[20] = SH_PFC_PIN_NONE,
3063 		[21] = SH_PFC_PIN_NONE,
3064 		[22] = SH_PFC_PIN_NONE,
3065 		[23] = SH_PFC_PIN_NONE,
3066 		[24] = SH_PFC_PIN_NONE,
3067 		[25] = SH_PFC_PIN_NONE,
3068 		[26] = SH_PFC_PIN_NONE,
3069 		[27] = SH_PFC_PIN_NONE,
3070 		[28] = SH_PFC_PIN_NONE,
3071 		[29] = SH_PFC_PIN_NONE,
3072 		[30] = SH_PFC_PIN_NONE,
3073 		[31] = SH_PFC_PIN_NONE,
3074 	} },
3075 	{ PINMUX_BIAS_REG("PUPR8", 0xe6060120, "N/A", 0) {
3076 		[ 0] = RCAR_GP_PIN(8, 0),	/* VI4_CLK */
3077 		[ 1] = RCAR_GP_PIN(8, 1),	/* VI4_CLKENB */
3078 		[ 2] = RCAR_GP_PIN(8, 2),	/* VI4_HSYNC# */
3079 		[ 3] = RCAR_GP_PIN(8, 3),	/* VI4_VSYNC# */
3080 		[ 4] = RCAR_GP_PIN(8, 4),	/* VI4_D0_C0 */
3081 		[ 5] = RCAR_GP_PIN(8, 5),	/* VI4_D1_C1 */
3082 		[ 6] = RCAR_GP_PIN(8, 6),	/* VI4_D2_C2 */
3083 		[ 7] = RCAR_GP_PIN(8, 7),	/* VI4_D3_C3 */
3084 		[ 8] = RCAR_GP_PIN(8, 8),	/* VI4_D4_C4 */
3085 		[ 9] = RCAR_GP_PIN(8, 9),	/* VI4_D5_C5 */
3086 		[10] = RCAR_GP_PIN(8, 10),	/* VI4_D6_C6 */
3087 		[11] = RCAR_GP_PIN(8, 11),	/* VI4_D7_C7 */
3088 		[12] = RCAR_GP_PIN(8, 12),	/* VI4_D8_Y0 */
3089 		[13] = RCAR_GP_PIN(8, 13),	/* VI4_D9_Y1 */
3090 		[14] = RCAR_GP_PIN(8, 14),	/* VI4_D10_Y2 */
3091 		[15] = RCAR_GP_PIN(8, 15),	/* VI4_D11_Y3 */
3092 		[16] = RCAR_GP_PIN(8, 16),	/* VI4_FIELD */
3093 		[17] = SH_PFC_PIN_NONE,
3094 		[18] = SH_PFC_PIN_NONE,
3095 		[19] = SH_PFC_PIN_NONE,
3096 		[20] = SH_PFC_PIN_NONE,
3097 		[21] = SH_PFC_PIN_NONE,
3098 		[22] = SH_PFC_PIN_NONE,
3099 		[23] = SH_PFC_PIN_NONE,
3100 		[24] = SH_PFC_PIN_NONE,
3101 		[25] = SH_PFC_PIN_NONE,
3102 		[26] = SH_PFC_PIN_NONE,
3103 		[27] = SH_PFC_PIN_NONE,
3104 		[28] = SH_PFC_PIN_NONE,
3105 		[29] = SH_PFC_PIN_NONE,
3106 		[30] = SH_PFC_PIN_NONE,
3107 		[31] = SH_PFC_PIN_NONE,
3108 	} },
3109 	{ PINMUX_BIAS_REG("PUPR9", 0xe6060124, "N/A", 0) {
3110 		[ 0] = RCAR_GP_PIN(9, 0),	/* VI5_CLK */
3111 		[ 1] = RCAR_GP_PIN(9, 1),	/* VI5_CLKENB */
3112 		[ 2] = RCAR_GP_PIN(9, 2),	/* VI5_HSYNC# */
3113 		[ 3] = RCAR_GP_PIN(9, 3),	/* VI5_VSYNC# */
3114 		[ 4] = RCAR_GP_PIN(9, 4),	/* VI5_D0_C0 */
3115 		[ 5] = RCAR_GP_PIN(9, 5),	/* VI5_D1_C1 */
3116 		[ 6] = RCAR_GP_PIN(9, 6),	/* VI5_D2_C2 */
3117 		[ 7] = RCAR_GP_PIN(9, 7),	/* VI5_D3_C3 */
3118 		[ 8] = RCAR_GP_PIN(9, 8),	/* VI5_D4_C4 */
3119 		[ 9] = RCAR_GP_PIN(9, 9),	/* VI5_D5_C5 */
3120 		[10] = RCAR_GP_PIN(9, 10),	/* VI5_D6_C6 */
3121 		[11] = RCAR_GP_PIN(9, 11),	/* VI5_D7_C7 */
3122 		[12] = RCAR_GP_PIN(9, 12),	/* VI5_D8_Y0 */
3123 		[13] = RCAR_GP_PIN(9, 13),	/* VI5_D9_Y1 */
3124 		[14] = RCAR_GP_PIN(9, 14),	/* VI5_D10_Y2 */
3125 		[15] = RCAR_GP_PIN(9, 15),	/* VI5_D11_Y3 */
3126 		[16] = RCAR_GP_PIN(9, 16),	/* VI5_FIELD */
3127 		[17] = SH_PFC_PIN_NONE,
3128 		[18] = SH_PFC_PIN_NONE,
3129 		[19] = SH_PFC_PIN_NONE,
3130 		[20] = SH_PFC_PIN_NONE,
3131 		[21] = SH_PFC_PIN_NONE,
3132 		[22] = SH_PFC_PIN_NONE,
3133 		[23] = SH_PFC_PIN_NONE,
3134 		[24] = SH_PFC_PIN_NONE,
3135 		[25] = SH_PFC_PIN_NONE,
3136 		[26] = SH_PFC_PIN_NONE,
3137 		[27] = SH_PFC_PIN_NONE,
3138 		[28] = SH_PFC_PIN_NONE,
3139 		[29] = SH_PFC_PIN_NONE,
3140 		[30] = SH_PFC_PIN_NONE,
3141 		[31] = SH_PFC_PIN_NONE,
3142 	} },
3143 	{ PINMUX_BIAS_REG("PUPR10", 0xe6060128, "N/A", 0) {
3144 		[ 0] = RCAR_GP_PIN(10, 0),	/* HSCK0 */
3145 		[ 1] = RCAR_GP_PIN(10, 1),	/* HCTS0# */
3146 		[ 2] = RCAR_GP_PIN(10, 2),	/* HRTS0# */
3147 		[ 3] = RCAR_GP_PIN(10, 3),	/* HTX0 */
3148 		[ 4] = RCAR_GP_PIN(10, 4),	/* HRX0 */
3149 		[ 5] = RCAR_GP_PIN(10, 5),	/* HSCK1 */
3150 		[ 6] = RCAR_GP_PIN(10, 6),	/* HRTS1# */
3151 		[ 7] = RCAR_GP_PIN(10, 7),	/* HCTS1# */
3152 		[ 8] = RCAR_GP_PIN(10, 8),	/* HTX1 */
3153 		[ 9] = RCAR_GP_PIN(10, 9),	/* HRX1 */
3154 		[10] = RCAR_GP_PIN(10, 10),	/* SCK0 */
3155 		[11] = RCAR_GP_PIN(10, 11),	/* CTS0# */
3156 		[12] = RCAR_GP_PIN(10, 12),	/* RTS0# */
3157 		[13] = RCAR_GP_PIN(10, 13),	/* TX0 */
3158 		[14] = RCAR_GP_PIN(10, 14),	/* RX0 */
3159 		[15] = RCAR_GP_PIN(10, 15),	/* SCK1 */
3160 		[16] = RCAR_GP_PIN(10, 16),	/* CTS1# */
3161 		[17] = RCAR_GP_PIN(10, 17),	/* RTS1# */
3162 		[18] = RCAR_GP_PIN(10, 18),	/* TX1 */
3163 		[19] = RCAR_GP_PIN(10, 19),	/* RX1 */
3164 		[20] = RCAR_GP_PIN(10, 20),	/* SCK2 */
3165 		[21] = RCAR_GP_PIN(10, 21),	/* TX2 */
3166 		[22] = RCAR_GP_PIN(10, 22),	/* RX2 */
3167 		[23] = RCAR_GP_PIN(10, 23),	/* SCK3 */
3168 		[24] = RCAR_GP_PIN(10, 24),	/* TX3 */
3169 		[25] = RCAR_GP_PIN(10, 25),	/* RX3 */
3170 		[26] = RCAR_GP_PIN(10, 26),	/* SCIF_CLK */
3171 		[27] = RCAR_GP_PIN(10, 27),	/* CAN0_TX */
3172 		[28] = RCAR_GP_PIN(10, 28),	/* CAN0_RX */
3173 		[29] = RCAR_GP_PIN(10, 29),	/* CAN_CLK */
3174 		[30] = RCAR_GP_PIN(10, 30),	/* CAN1_TX */
3175 		[31] = RCAR_GP_PIN(10, 31),	/* CAN1_RX */
3176 	} },
3177 	{ PINMUX_BIAS_REG("PUPR11", 0xe606012c, "N/A", 0) {
3178 		[ 0] = RCAR_GP_PIN(11, 0),	/* PWM0 */
3179 		[ 1] = RCAR_GP_PIN(11, 1),	/* PWM1 */
3180 		[ 2] = RCAR_GP_PIN(11, 2),	/* PWM2 */
3181 		[ 3] = RCAR_GP_PIN(11, 3),	/* PWM3 */
3182 		[ 4] = RCAR_GP_PIN(11, 4),	/* PWM4 */
3183 		[ 5] = RCAR_GP_PIN(11, 5),	/* SD0_CLK */
3184 		[ 6] = RCAR_GP_PIN(11, 6),	/* SD0_CMD */
3185 		[ 7] = RCAR_GP_PIN(11, 7),	/* SD0_DAT0 */
3186 		[ 8] = RCAR_GP_PIN(11, 8),	/* SD0_DAT1 */
3187 		[ 9] = RCAR_GP_PIN(11, 9),	/* SD0_DAT2 */
3188 		[10] = RCAR_GP_PIN(11, 10),	/* SD0_DAT3 */
3189 		[11] = RCAR_GP_PIN(11, 11),	/* SD0_CD */
3190 		[12] = RCAR_GP_PIN(11, 12),	/* SD0_WP */
3191 		[13] = RCAR_GP_PIN(11, 13),	/* SSI_SCK3 */
3192 		[14] = RCAR_GP_PIN(11, 14),	/* SSI_WS3 */
3193 		[15] = RCAR_GP_PIN(11, 15),	/* SSI_SDATA3 */
3194 		[16] = RCAR_GP_PIN(11, 16),	/* SSI_SCK4 */
3195 		[17] = RCAR_GP_PIN(11, 17),	/* SSI_WS4 */
3196 		[18] = RCAR_GP_PIN(11, 18),	/* SSI_SDATA4 */
3197 		[19] = RCAR_GP_PIN(11, 19),	/* AUDIO_CLKOUT */
3198 		[20] = RCAR_GP_PIN(11, 20),	/* AUDIO_CLKA */
3199 		[21] = RCAR_GP_PIN(11, 21),	/* AUDIO_CLKB */
3200 		[22] = RCAR_GP_PIN(11, 22),	/* ADICLK */
3201 		[23] = RCAR_GP_PIN(11, 23),	/* ADICS_SAMP */
3202 		[24] = RCAR_GP_PIN(11, 24),	/* ADIDATA */
3203 		[25] = RCAR_GP_PIN(11, 25),	/* ADICHS0 */
3204 		[26] = RCAR_GP_PIN(11, 26),	/* ADICHS1 */
3205 		[27] = RCAR_GP_PIN(11, 27),	/* ADICHS2 */
3206 		[28] = RCAR_GP_PIN(11, 28),	/* AVS1 */
3207 		[29] = RCAR_GP_PIN(11, 29),	/* AVS2 */
3208 		[30] = SH_PFC_PIN_NONE,
3209 		[31] = SH_PFC_PIN_NONE,
3210 	} },
3211 	{ PINMUX_BIAS_REG("PUPR12", 0xe6060130, "N/A", 0) {
3212 		/* PUPR12 pull-up pins */
3213 		[ 0] = PIN_DU0_DOTCLKIN,	/* DU0_DOTCLKIN */
3214 		[ 1] = PIN_DU0_DOTCLKOUT,	/* DU0_DOTCLKOUT */
3215 		[ 2] = PIN_DU1_DOTCLKIN,	/* DU1_DOTCLKIN */
3216 		[ 3] = PIN_DU1_DOTCLKOUT,	/* DU1_DOTCLKOUT */
3217 		[ 4] = PIN_TRST_N,		/* TRST# */
3218 		[ 5] = PIN_TCK,			/* TCK */
3219 		[ 6] = PIN_TMS,			/* TMS */
3220 		[ 7] = PIN_TDI,			/* TDI */
3221 		[ 8] = SH_PFC_PIN_NONE,
3222 		[ 9] = SH_PFC_PIN_NONE,
3223 		[10] = SH_PFC_PIN_NONE,
3224 		[11] = SH_PFC_PIN_NONE,
3225 		[12] = SH_PFC_PIN_NONE,
3226 		[13] = SH_PFC_PIN_NONE,
3227 		[14] = SH_PFC_PIN_NONE,
3228 		[15] = SH_PFC_PIN_NONE,
3229 		[16] = SH_PFC_PIN_NONE,
3230 		[17] = SH_PFC_PIN_NONE,
3231 		[18] = SH_PFC_PIN_NONE,
3232 		[19] = SH_PFC_PIN_NONE,
3233 		[20] = SH_PFC_PIN_NONE,
3234 		[21] = SH_PFC_PIN_NONE,
3235 		[22] = SH_PFC_PIN_NONE,
3236 		[23] = SH_PFC_PIN_NONE,
3237 		[24] = SH_PFC_PIN_NONE,
3238 		[25] = SH_PFC_PIN_NONE,
3239 		[26] = SH_PFC_PIN_NONE,
3240 		[27] = SH_PFC_PIN_NONE,
3241 		[28] = SH_PFC_PIN_NONE,
3242 		[29] = SH_PFC_PIN_NONE,
3243 		[30] = SH_PFC_PIN_NONE,
3244 		[31] = SH_PFC_PIN_NONE,
3245 	} },
3246 	{ PINMUX_BIAS_REG("N/A", 0, "PUPR12", 0xe6060130) {
3247 		/* PUPR12 pull-down pins */
3248 		[ 0] = SH_PFC_PIN_NONE,
3249 		[ 1] = SH_PFC_PIN_NONE,
3250 		[ 2] = SH_PFC_PIN_NONE,
3251 		[ 3] = SH_PFC_PIN_NONE,
3252 		[ 4] = SH_PFC_PIN_NONE,
3253 		[ 5] = SH_PFC_PIN_NONE,
3254 		[ 6] = SH_PFC_PIN_NONE,
3255 		[ 7] = SH_PFC_PIN_NONE,
3256 		[ 8] = PIN_EDBGREQ,		/* EDBGREQ */
3257 		[ 9] = SH_PFC_PIN_NONE,
3258 		[10] = SH_PFC_PIN_NONE,
3259 		[11] = SH_PFC_PIN_NONE,
3260 		[12] = SH_PFC_PIN_NONE,
3261 		[13] = SH_PFC_PIN_NONE,
3262 		[14] = SH_PFC_PIN_NONE,
3263 		[15] = SH_PFC_PIN_NONE,
3264 		[16] = SH_PFC_PIN_NONE,
3265 		[17] = SH_PFC_PIN_NONE,
3266 		[18] = SH_PFC_PIN_NONE,
3267 		[19] = SH_PFC_PIN_NONE,
3268 		[20] = SH_PFC_PIN_NONE,
3269 		[21] = SH_PFC_PIN_NONE,
3270 		[22] = SH_PFC_PIN_NONE,
3271 		[23] = SH_PFC_PIN_NONE,
3272 		[24] = SH_PFC_PIN_NONE,
3273 		[25] = SH_PFC_PIN_NONE,
3274 		[26] = SH_PFC_PIN_NONE,
3275 		[27] = SH_PFC_PIN_NONE,
3276 		[28] = SH_PFC_PIN_NONE,
3277 		[29] = SH_PFC_PIN_NONE,
3278 		[30] = SH_PFC_PIN_NONE,
3279 		[31] = SH_PFC_PIN_NONE,
3280 	} },
3281 	{ /* sentinel */ }
3282 };
3283 
3284 static const struct sh_pfc_soc_operations r8a7792_pinmux_ops = {
3285 	.get_bias = rcar_pinmux_get_bias,
3286 	.set_bias = rcar_pinmux_set_bias,
3287 };
3288 
3289 const struct sh_pfc_soc_info r8a7792_pinmux_info = {
3290 	.name = "r8a77920_pfc",
3291 	.ops = &r8a7792_pinmux_ops,
3292 	.unlock_reg = 0xe6060000, /* PMMR */
3293 
3294 	.function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END },
3295 
3296 	.pins = pinmux_pins,
3297 	.nr_pins = ARRAY_SIZE(pinmux_pins),
3298 	.groups = pinmux_groups,
3299 	.nr_groups = ARRAY_SIZE(pinmux_groups),
3300 	.functions = pinmux_functions,
3301 	.nr_functions = ARRAY_SIZE(pinmux_functions),
3302 
3303 	.cfg_regs = pinmux_config_regs,
3304 	.bias_regs = pinmux_bias_regs,
3305 
3306 	.pinmux_data = pinmux_data,
3307 	.pinmux_data_size = ARRAY_SIZE(pinmux_data),
3308 };
3309