]> git.sur5r.net Git - u-boot/blob - arch/arm/mach-rmobile/pfc-r8a7791.c
SPDX: Convert all of our single license tags to Linux Kernel style
[u-boot] / arch / arm / mach-rmobile / pfc-r8a7791.c
1 // SPDX-License-Identifier: GPL-2.0
2 /*
3  * arch/arm/cpu/armv7/rmobile/pfc-r8a7791.c
4  *
5  * Copyright (C) 2013 Renesas Electronics Corporation
6  */
7
8 #include <common.h>
9 #include <sh_pfc.h>
10 #include <asm/gpio.h>
11 #include "pfc-r8a7790.h"
12
13 enum {
14         PINMUX_RESERVED = 0,
15
16         PINMUX_DATA_BEGIN,
17         GP_ALL(DATA),
18         PINMUX_DATA_END,
19
20         PINMUX_INPUT_BEGIN,
21         GP_ALL(IN),
22         PINMUX_INPUT_END,
23
24         PINMUX_OUTPUT_BEGIN,
25         GP_ALL(OUT),
26         PINMUX_OUTPUT_END,
27
28         PINMUX_FUNCTION_BEGIN,
29         GP_ALL(FN),
30
31         /* GPSR0 */
32         FN_IP0_0, FN_IP0_1, FN_IP0_2, FN_IP0_3, FN_IP0_4, FN_IP0_5,
33         FN_IP0_6, FN_IP0_7, FN_IP0_8, FN_IP0_9, FN_IP0_10, FN_IP0_11,
34         FN_IP0_12, FN_IP0_13, FN_IP0_14, FN_IP0_15, FN_IP0_18_16, FN_IP0_20_19,
35         FN_IP0_22_21, FN_IP0_24_23, FN_IP0_26_25, FN_IP0_28_27, FN_IP0_30_29,
36         FN_IP1_1_0, FN_IP1_3_2, FN_IP1_5_4, FN_IP1_7_6, FN_IP1_10_8,
37         FN_IP1_13_11, FN_IP1_16_14, FN_IP1_19_17, FN_IP1_22_20,
38
39         /* GPSR1 */
40         FN_IP1_25_23, FN_IP1_28_26, FN_IP1_31_29, FN_IP2_2_0, FN_IP2_4_3,
41         FN_IP2_6_5, FN_IP2_9_7, FN_IP2_12_10, FN_IP2_15_13, FN_IP2_18_16,
42         FN_IP2_20_19, FN_IP2_22_21, FN_EX_CS0_N, FN_IP2_24_23, FN_IP2_26_25,
43         FN_IP2_29_27, FN_IP3_2_0, FN_IP3_5_3, FN_IP3_8_6, FN_RD_N,
44         FN_IP3_11_9, FN_IP3_13_12, FN_IP3_15_14 , FN_IP3_17_16 , FN_IP3_19_18,
45         FN_IP3_21_20,
46
47         /* GPSR2 */
48         FN_IP3_27_25, FN_IP3_30_28, FN_IP4_1_0, FN_IP4_4_2, FN_IP4_7_5,
49         FN_IP4_9_8, FN_IP4_12_10, FN_IP4_15_13, FN_IP4_18_16, FN_IP4_19,
50         FN_IP4_20, FN_IP4_21, FN_IP4_23_22, FN_IP4_25_24, FN_IP4_27_26,
51         FN_IP4_30_28, FN_IP5_2_0, FN_IP5_5_3, FN_IP5_8_6, FN_IP5_11_9,
52         FN_IP5_14_12, FN_IP5_16_15, FN_IP5_19_17, FN_IP5_21_20, FN_IP5_23_22,
53         FN_IP5_25_24, FN_IP5_28_26, FN_IP5_31_29, FN_AUDIO_CLKA, FN_IP6_2_0,
54         FN_IP6_5_3, FN_IP6_7_6,
55
56         /* GPSR3 */
57         FN_IP7_5_3, FN_IP7_8_6, FN_IP7_10_9, FN_IP7_12_11, FN_IP7_14_13,
58         FN_IP7_16_15, FN_IP7_18_17, FN_IP7_20_19, FN_IP7_23_21, FN_IP7_26_24,
59         FN_IP7_29_27, FN_IP8_2_0, FN_IP8_5_3, FN_IP8_8_6, FN_IP8_11_9,
60         FN_IP8_14_12, FN_IP8_17_15, FN_IP8_20_18, FN_IP8_23_21, FN_IP8_25_24,
61         FN_IP8_27_26, FN_IP8_30_28, FN_IP9_2_0, FN_IP9_5_3, FN_IP9_6, FN_IP9_7,
62         FN_IP9_10_8, FN_IP9_11, FN_IP9_12, FN_IP9_15_13, FN_IP9_16,
63         FN_IP9_18_17,
64
65         /* GPSR4 */
66         FN_VI0_CLK, FN_IP9_20_19, FN_IP9_22_21, FN_IP9_24_23, FN_IP9_26_25,
67         FN_VI0_DATA0_VI0_B0, FN_VI0_DATA0_VI0_B1, FN_VI0_DATA0_VI0_B2,
68         FN_IP9_28_27, FN_VI0_DATA0_VI0_B4, FN_VI0_DATA0_VI0_B5,
69         FN_VI0_DATA0_VI0_B6, FN_VI0_DATA0_VI0_B7, FN_IP9_31_29, FN_IP10_2_0,
70         FN_IP10_5_3, FN_IP10_8_6, FN_IP10_11_9, FN_IP10_14_12, FN_IP10_16_15,
71         FN_IP10_18_17, FN_IP10_21_19, FN_IP10_24_22, FN_IP10_26_25,
72         FN_IP10_28_27, FN_IP10_31_29, FN_IP11_2_0, FN_IP11_5_3, FN_IP11_8_6,
73         FN_IP15_1_0, FN_IP15_3_2, FN_IP15_5_4,
74
75         /* GPSR5 */
76         FN_IP11_11_9, FN_IP11_14_12, FN_IP11_16_15, FN_IP11_18_17, FN_IP11_19,
77         FN_IP11_20, FN_IP11_21, FN_IP11_22, FN_IP11_23, FN_IP11_24,
78         FN_IP11_25, FN_IP11_26, FN_IP11_27, FN_IP11_29_28, FN_IP11_31_30,
79         FN_IP12_1_0, FN_IP12_3_2, FN_IP12_6_4, FN_IP12_9_7, FN_IP12_12_10,
80         FN_IP12_15_13, FN_IP12_17_16, FN_IP12_19_18, FN_IP12_21_20,
81         FN_IP12_23_22, FN_IP12_26_24, FN_IP12_29_27, FN_IP13_2_0, FN_IP13_4_3,
82         FN_IP13_6_5, FN_IP13_9_7, FN_IP3_24_22,
83
84         /* GPSR6 */
85         FN_IP13_10, FN_IP13_11, FN_IP13_12, FN_IP13_13, FN_IP13_14,
86         FN_IP13_15, FN_IP13_18_16, FN_IP13_21_19, FN_IP13_22, FN_IP13_24_23,
87         FN_IP13_25, FN_IP13_26, FN_IP13_27, FN_IP13_30_28, FN_IP14_1_0,
88         FN_IP14_2, FN_IP14_3, FN_IP14_4, FN_IP14_5, FN_IP14_6, FN_IP14_7,
89         FN_IP14_10_8, FN_IP14_13_11, FN_IP14_16_14, FN_IP14_19_17,
90         FN_IP14_22_20, FN_IP14_25_23, FN_IP14_28_26, FN_IP14_31_29,
91
92         /* GPSR7 */
93         FN_IP15_17_15, FN_IP15_20_18, FN_IP15_23_21, FN_IP15_26_24,
94         FN_IP15_29_27, FN_IP16_2_0, FN_IP16_5_3, FN_IP16_7_6, FN_IP16_9_8,
95         FN_IP16_11_10, FN_IP6_9_8, FN_IP6_11_10, FN_IP6_13_12, FN_IP6_15_14,
96         FN_IP6_18_16, FN_IP6_20_19, FN_IP6_23_21, FN_IP6_26_24, FN_IP6_29_27,
97         FN_IP7_2_0, FN_IP15_8_6, FN_IP15_11_9, FN_IP15_14_12,
98         FN_USB0_PWEN, FN_USB0_OVC, FN_USB1_PWEN,
99
100         /* IPSR0 -  IPSR10 */
101
102         /* IPSR11 */
103         FN_VI0_R5, FN_VI2_DATA6, FN_GLO_SDATA_B, FN_RX0_C, FN_SDA1_D,
104         FN_VI0_R6, FN_VI2_DATA7, FN_GLO_SS_B, FN_TX1_C, FN_SCL4_B,
105         FN_VI0_R7, FN_GLO_RFON_B, FN_RX1_C, FN_CAN0_RX_E,
106         FN_SDA4_B, FN_HRX1_D, FN_SCIFB0_RXD_D,
107         FN_VI1_HSYNC_N, FN_AVB_RXD0, FN_TS_SDATA0_B, FN_TX4_B, FN_SCIFA4_TXD_B,
108         FN_VI1_VSYNC_N, FN_AVB_RXD1, FN_TS_SCK0_B, FN_RX4_B, FN_SCIFA4_RXD_B,
109         FN_VI1_CLKENB, FN_AVB_RXD2, FN_TS_SDEN0_B,
110         FN_VI1_FIELD, FN_AVB_RXD3, FN_TS_SPSYNC0_B,
111         FN_VI1_CLK, FN_AVB_RXD4, FN_VI1_DATA0, FN_AVB_RXD5,
112         FN_VI1_DATA1, FN_AVB_RXD6, FN_VI1_DATA2, FN_AVB_RXD7,
113         FN_VI1_DATA3, FN_AVB_RX_ER, FN_VI1_DATA4, FN_AVB_MDIO,
114         FN_VI1_DATA5, FN_AVB_RX_DV, FN_VI1_DATA6, FN_AVB_MAGIC,
115         FN_VI1_DATA7, FN_AVB_MDC,
116         FN_ETH_MDIO, FN_AVB_RX_CLK, FN_SCL2_C,
117         FN_ETH_CRS_DV, FN_AVB_LINK, FN_SDA2_C,
118
119         /* IPSR12 */
120         FN_ETH_RX_ER, FN_AVB_CRS, FN_SCL3, FN_SCL7,
121         FN_ETH_RXD0, FN_AVB_PHY_INT, FN_SDA3, FN_SDA7,
122         FN_ETH_RXD1, FN_AVB_GTXREFCLK, FN_CAN0_TX_C,
123         FN_SCL2_D, FN_MSIOF1_RXD_E,
124         FN_ETH_LINK, FN_AVB_TXD0, FN_CAN0_RX_C, FN_SDA2_D, FN_MSIOF1_SCK_E,
125         FN_ETH_REFCLK, FN_AVB_TXD1, FN_SCIFA3_RXD_B,
126         FN_CAN1_RX_C, FN_MSIOF1_SYNC_E,
127         FN_ETH_TXD1, FN_AVB_TXD2, FN_SCIFA3_TXD_B,
128         FN_CAN1_TX_C, FN_MSIOF1_TXD_E,
129         FN_ETH_TX_EN, FN_AVB_TXD3, FN_TCLK1_B, FN_CAN_CLK_B,
130         FN_ETH_MAGIC, FN_AVB_TXD4, FN_IETX_C,
131         FN_ETH_TXD0, FN_AVB_TXD5, FN_IECLK_C,
132         FN_ETH_MDC, FN_AVB_TXD6, FN_IERX_C,
133         FN_STP_IVCXO27_0, FN_AVB_TXD7, FN_SCIFB2_TXD_D,
134         FN_ADIDATA_B, FN_MSIOF0_SYNC_C,
135         FN_STP_ISCLK_0, FN_AVB_TX_EN, FN_SCIFB2_RXD_D,
136         FN_ADICS_SAMP_B, FN_MSIOF0_SCK_C,
137
138         /* IPSR13 */
139         /* MOD_SEL */
140         FN_SEL_SCIF1_0, FN_SEL_SCIF1_1, FN_SEL_SCIF1_2, FN_SEL_SCIF1_3,
141         FN_SEL_SCIFB_0, FN_SEL_SCIFB_1, FN_SEL_SCIFB_2, FN_SEL_SCIFB_3,
142         FN_SEL_SCIFB2_0, FN_SEL_SCIFB2_1, FN_SEL_SCIFB2_2, FN_SEL_SCIFB2_3,
143         FN_SEL_SCIFB1_0, FN_SEL_SCIFB1_1, FN_SEL_SCIFB1_2, FN_SEL_SCIFB1_3,
144         FN_SEL_SCIFA1_0, FN_SEL_SCIFA1_1, FN_SEL_SCIFA1_2,
145         FN_SEL_SSI9_0, FN_SEL_SSI9_1,
146         FN_SEL_SCFA_0, FN_SEL_SCFA_1,
147         FN_SEL_QSP_0, FN_SEL_QSP_1,
148         FN_SEL_SSI7_0, FN_SEL_SSI7_1,
149         FN_SEL_HSCIF1_0, FN_SEL_HSCIF1_1, FN_SEL_HSCIF1_2, FN_SEL_HSCIF1_3,
150         FN_SEL_HSCIF1_4,
151         FN_SEL_VI1_0, FN_SEL_VI1_1, FN_SEL_VI1_2,
152         FN_SEL_TMU1_0, FN_SEL_TMU1_1,
153         FN_SEL_LBS_0, FN_SEL_LBS_1, FN_SEL_LBS_2, FN_SEL_LBS_3,
154         FN_SEL_TSIF0_0, FN_SEL_TSIF0_1, FN_SEL_TSIF0_2, FN_SEL_TSIF0_3,
155         FN_SEL_SOF0_0, FN_SEL_SOF0_1, FN_SEL_SOF0_2,
156
157         /* MOD_SEL2 */
158         FN_SEL_SCIF0_0, FN_SEL_SCIF0_1, FN_SEL_SCIF0_2, FN_SEL_SCIF0_3,
159         FN_SEL_SCIF0_4,
160         FN_SEL_SCIF_0, FN_SEL_SCIF_1,
161         FN_SEL_CAN0_0, FN_SEL_CAN0_1, FN_SEL_CAN0_2, FN_SEL_CAN0_3,
162         FN_SEL_CAN0_4, FN_SEL_CAN0_5,
163         FN_SEL_CAN1_0, FN_SEL_CAN1_1, FN_SEL_CAN1_2, FN_SEL_CAN1_3,
164         FN_SEL_SCIFA2_0, FN_SEL_SCIFA2_1,
165         FN_SEL_SCIF4_0, FN_SEL_SCIF4_1, FN_SEL_SCIF4_2,
166         FN_SEL_ADG_0, FN_SEL_ADG_1,
167         FN_SEL_FM_0, FN_SEL_FM_1, FN_SEL_FM_2, FN_SEL_FM_3, FN_SEL_FM_4,
168         FN_SEL_SCIFA5_0, FN_SEL_SCIFA5_1, FN_SEL_SCIFA5_2,
169         FN_SEL_GPS_0, FN_SEL_GPS_1, FN_SEL_GPS_2, FN_SEL_GPS_3,
170         FN_SEL_SCIFA4_0, FN_SEL_SCIFA4_1, FN_SEL_SCIFA4_2,
171         FN_SEL_SCIFA3_0, FN_SEL_SCIFA3_1, FN_SEL_SCIFA3_2,
172         FN_SEL_SIM_0, FN_SEL_SIM_1,
173         FN_SEL_SSI8_0, FN_SEL_SSI8_1,
174
175         /* MOD_SEL3 */
176         FN_SEL_HSCIF2_0, FN_SEL_HSCIF2_1, FN_SEL_HSCIF2_2, FN_SEL_HSCIF2_3,
177         FN_SEL_CANCLK_0, FN_SEL_CANCLK_1, FN_SEL_CANCLK_2, FN_SEL_CANCLK_3,
178         FN_SEL_IIC8_0, FN_SEL_IIC8_1, FN_SEL_IIC8_2,
179         FN_SEL_IIC7_0, FN_SEL_IIC7_1, FN_SEL_IIC7_2,
180         FN_SEL_IIC4_0, FN_SEL_IIC4_1, FN_SEL_IIC4_2,
181         FN_SEL_IIC3_0, FN_SEL_IIC3_1, FN_SEL_IIC3_2, FN_SEL_IIC3_3,
182         FN_SEL_SCIF3_0, FN_SEL_SCIF3_1, FN_SEL_SCIF3_2, FN_SEL_SCIF3_3,
183         FN_SEL_IEB_0, FN_SEL_IEB_1, FN_SEL_IEB_2,
184         FN_SEL_MMC_0, FN_SEL_MMC_1,
185         FN_SEL_SCIF5_0, FN_SEL_SCIF5_1,
186         FN_SEL_IIC2_0, FN_SEL_IIC2_1, FN_SEL_IIC2_2, FN_SEL_IIC2_3,
187         FN_SEL_IIC1_0, FN_SEL_IIC1_1, FN_SEL_IIC1_2, FN_SEL_IIC1_3,
188         FN_SEL_IIC1_4,
189         FN_SEL_IIC0_0, FN_SEL_IIC0_1, FN_SEL_IIC0_2,
190
191         /* MOD_SEL4 */
192         FN_SEL_SOF1_0, FN_SEL_SOF1_1, FN_SEL_SOF1_2, FN_SEL_SOF1_3,
193         FN_SEL_SOF1_4,
194         FN_SEL_HSCIF0_0, FN_SEL_HSCIF0_1, FN_SEL_HSCIF0_2,
195         FN_SEL_DIS_0, FN_SEL_DIS_1, FN_SEL_DIS_2,
196         FN_SEL_RAD_0, FN_SEL_RAD_1,
197         FN_SEL_RCN_0, FN_SEL_RCN_1,
198         FN_SEL_RSP_0, FN_SEL_RSP_1,
199         FN_SEL_SCIF2_0, FN_SEL_SCIF2_1, FN_SEL_SCIF2_2, FN_SEL_SCIF2_3,
200         FN_SEL_SCIF2_4,
201         FN_SEL_SOF2_0, FN_SEL_SOF2_1, FN_SEL_SOF2_2, FN_SEL_SOF2_3,
202         FN_SEL_SOF2_4,
203         FN_SEL_SSI1_0, FN_SEL_SSI1_1,
204         FN_SEL_SSI0_0, FN_SEL_SSI0_1,
205         FN_SEL_SSP_0, FN_SEL_SSP_1, FN_SEL_SSP_2,
206         PINMUX_FUNCTION_END,
207
208         PINMUX_MARK_BEGIN,
209
210         EX_CS0_N_MARK, RD_N_MARK,
211
212         AUDIO_CLKA_MARK,
213
214         VI0_CLK_MARK, VI0_DATA0_VI0_B0_MARK, VI0_DATA0_VI0_B1_MARK,
215         VI0_DATA0_VI0_B2_MARK, VI0_DATA0_VI0_B4_MARK, VI0_DATA0_VI0_B5_MARK,
216         VI0_DATA0_VI0_B6_MARK, VI0_DATA0_VI0_B7_MARK,
217
218         USB0_PWEN_MARK, USB0_OVC_MARK, USB1_PWEN_MARK,
219
220         /* IPSR0  IPSR10 */
221         /* IPSR11 */
222         VI0_R5_MARK, VI2_DATA6_MARK, GLO_SDATA_B_MARK, RX0_C_MARK, SDA1_D_MARK,
223         VI0_R6_MARK, VI2_DATA7_MARK, GLO_SS_B_MARK, TX1_C_MARK, SCL4_B_MARK,
224         VI0_R7_MARK, GLO_RFON_B_MARK, RX1_C_MARK, CAN0_RX_E_MARK,
225         SDA4_B_MARK, _MARK, HRX1_D_MARK, SCIFB0_RXD_D_MARK,
226         VI1_HSYNC_N_MARK, AVB_RXD0_MARK, TS_SDATA0_B_MARK,
227         TX4_B_MARK, SCIFA4_TXD_B_MARK,
228         VI1_VSYNC_N_MARK, AVB_RXD1_MARK, TS_SCK0_B_MARK,
229         RX4_B_MARK, SCIFA4_RXD_B_MARK,
230         VI1_CLKENB_MARK, AVB_RXD2_MARK, TS_SDEN0_B_MARK,
231         VI1_FIELD_MARK, AVB_RXD3_MARK, TS_SPSYNC0_B_MARK,
232         VI1_CLK_MARK, AVB_RXD4_MARK, VI1_DATA0_MARK, AVB_RXD5_MARK,
233         VI1_DATA1_MARK, AVB_RXD6_MARK, VI1_DATA2_MARK, AVB_RXD7_MARK,
234         VI1_DATA3_MARK, AVB_RX_ER_MARK, VI1_DATA4_MARK, AVB_MDIO_MARK,
235         VI1_DATA5_MARK, AVB_RX_DV_MARK, VI1_DATA6_MARK, AVB_MAGIC_MARK,
236         VI1_DATA7_MARK, AVB_MDC_MARK,
237         ETH_MDIO_MARK, AVB_RX_CLK_MARK, SCL2_C_MARK,
238         ETH_CRS_DV_MARK, AVB_LINK_MARK, SDA2_C_MARK,
239
240         /* IPSR12 */
241         ETH_RX_ER_MARK, AVB_CRS_MARK, SCL3_MARK, SCL7_MARK,
242         ETH_RXD0_MARK, AVB_PHY_INT_MARK, SDA3_MARK, SDA7_MARK,
243         ETH_RXD1_MARK, AVB_GTXREFCLK_MARK, CAN0_TX_C_MARK,
244         SCL2_D_MARK, MSIOF1_RXD_E_MARK,
245         ETH_LINK_MARK, AVB_TXD0_MARK, CAN0_RX_C_MARK,
246         SDA2_D_MARK, MSIOF1_SCK_E_MARK,
247         ETH_REFCLK_MARK, AVB_TXD1_MARK, SCIFA3_RXD_B_MARK,
248         CAN1_RX_C_MARK, MSIOF1_SYNC_E_MARK,
249         ETH_TXD1_MARK, AVB_TXD2_MARK, SCIFA3_TXD_B_MARK,
250         CAN1_TX_C_MARK, MSIOF1_TXD_E_MARK,
251         ETH_TX_EN_MARK, AVB_TXD3_MARK, TCLK1_B_MARK, CAN_CLK_B_MARK,
252         ETH_MAGIC_MARK, AVB_TXD4_MARK, IETX_C_MARK,
253         ETH_TXD0_MARK, AVB_TXD5_MARK, IECLK_C_MARK,
254         ETH_MDC_MARK, AVB_TXD6_MARK, IERX_C_MARK,
255         STP_IVCXO27_0_MARK, AVB_TXD7_MARK, SCIFB2_TXD_D_MARK,
256         ADIDATA_B_MARK, MSIOF0_SYNC_C_MARK,
257         STP_ISCLK_0_MARK, AVB_TX_EN_MARK, SCIFB2_RXD_D_MARK,
258         ADICS_SAMP_B_MARK, MSIOF0_SCK_C_MARK,
259
260         /* IPSR13 */
261         PINMUX_MARK_END,
262 };
263
264 static pinmux_enum_t pinmux_data[] = {
265         PINMUX_DATA_GP_ALL(), /* PINMUX_DATA(GP_M_N_DATA, GP_M_N_FN...), */
266
267         /* OTHER IPSR0  - IPSR10 */
268         /* IPSR11 */
269         PINMUX_IPSR_DATA(IP11_2_0, VI0_R5),
270         PINMUX_IPSR_DATA(IP11_2_0, VI2_DATA6),
271         PINMUX_IPSR_MODSEL_DATA(IP11_2_0, GLO_SDATA_B, SEL_GPS_1),
272         PINMUX_IPSR_MODSEL_DATA(IP11_2_0, RX0_C, SEL_SCIF0_2),
273         PINMUX_IPSR_MODSEL_DATA(IP11_2_0, SDA1_D, SEL_IIC1_3),
274         PINMUX_IPSR_DATA(IP11_5_3, VI0_R6),
275         PINMUX_IPSR_DATA(IP11_5_3, VI2_DATA7),
276         PINMUX_IPSR_MODSEL_DATA(IP11_5_3, GLO_SS_B, SEL_GPS_1),
277         PINMUX_IPSR_MODSEL_DATA(IP11_5_3, TX1_C, SEL_SCIF1_2),
278         PINMUX_IPSR_MODSEL_DATA(IP11_5_3, SCL4_B, SEL_IIC4_1),
279         PINMUX_IPSR_DATA(IP11_8_6, VI0_R7),
280         PINMUX_IPSR_MODSEL_DATA(IP11_8_6, GLO_RFON_B, SEL_GPS_1),
281         PINMUX_IPSR_MODSEL_DATA(IP11_8_6, RX1_C, SEL_SCIF1_2),
282         PINMUX_IPSR_MODSEL_DATA(IP11_8_6, CAN0_RX_E, SEL_CAN0_4),
283         PINMUX_IPSR_MODSEL_DATA(IP11_8_6, SDA4_B, SEL_IIC4_1),
284         PINMUX_IPSR_MODSEL_DATA(IP11_8_6, HRX1_D, SEL_HSCIF1_3),
285         PINMUX_IPSR_MODSEL_DATA(IP11_8_6, SCIFB0_RXD_D, SEL_SCIFB_3),
286         PINMUX_IPSR_MODSEL_DATA(IP11_11_9, VI1_HSYNC_N, SEL_VI1_0),
287         PINMUX_IPSR_DATA(IP11_11_9, AVB_RXD0),
288         PINMUX_IPSR_MODSEL_DATA(IP11_11_9, TS_SDATA0_B, SEL_TSIF0_1),
289         PINMUX_IPSR_MODSEL_DATA(IP11_11_9, TX4_B, SEL_SCIF4_1),
290         PINMUX_IPSR_MODSEL_DATA(IP11_11_9, SCIFA4_TXD_B, SEL_SCIFA4_1),
291         PINMUX_IPSR_MODSEL_DATA(IP11_14_12, VI1_VSYNC_N, SEL_VI1_0),
292         PINMUX_IPSR_DATA(IP11_14_12, AVB_RXD1),
293         PINMUX_IPSR_MODSEL_DATA(IP11_14_12, TS_SCK0_B, SEL_TSIF0_1),
294         PINMUX_IPSR_MODSEL_DATA(IP11_14_12, RX4_B, SEL_SCIF4_1),
295         PINMUX_IPSR_MODSEL_DATA(IP11_14_12, SCIFA4_RXD_B, SEL_SCIFA4_1),
296         PINMUX_IPSR_MODSEL_DATA(IP11_16_15, VI1_CLKENB, SEL_VI1_0),
297         PINMUX_IPSR_DATA(IP11_16_15, AVB_RXD2),
298         PINMUX_IPSR_MODSEL_DATA(IP11_16_15, TS_SDEN0_B, SEL_TSIF0_1),
299         PINMUX_IPSR_MODSEL_DATA(IP11_18_17, VI1_FIELD, SEL_VI1_0),
300         PINMUX_IPSR_DATA(IP11_18_17, AVB_RXD3),
301         PINMUX_IPSR_MODSEL_DATA(IP11_18_17, TS_SPSYNC0_B, SEL_TSIF0_1),
302         PINMUX_IPSR_MODSEL_DATA(IP11_19, VI1_CLK, SEL_VI1_0),
303         PINMUX_IPSR_DATA(IP11_19, AVB_RXD4),
304         PINMUX_IPSR_MODSEL_DATA(IP11_20, VI1_DATA0, SEL_VI1_0),
305         PINMUX_IPSR_DATA(IP11_20, AVB_RXD5),
306         PINMUX_IPSR_MODSEL_DATA(IP11_21, VI1_DATA1, SEL_VI1_0),
307         PINMUX_IPSR_DATA(IP11_21, AVB_RXD6),
308         PINMUX_IPSR_MODSEL_DATA(IP11_22, VI1_DATA2, SEL_VI1_0),
309         PINMUX_IPSR_DATA(IP11_22, AVB_RXD7),
310         PINMUX_IPSR_MODSEL_DATA(IP11_23, VI1_DATA3, SEL_VI1_0),
311         PINMUX_IPSR_DATA(IP11_23, AVB_RX_ER),
312         PINMUX_IPSR_MODSEL_DATA(IP11_24, VI1_DATA4, SEL_VI1_0),
313         PINMUX_IPSR_DATA(IP11_24, AVB_MDIO),
314         PINMUX_IPSR_MODSEL_DATA(IP11_25, VI1_DATA5, SEL_VI1_0),
315         PINMUX_IPSR_DATA(IP11_25, AVB_RX_DV),
316         PINMUX_IPSR_MODSEL_DATA(IP11_26, VI1_DATA6, SEL_VI1_0),
317         PINMUX_IPSR_DATA(IP11_26, AVB_MAGIC),
318         PINMUX_IPSR_MODSEL_DATA(IP11_27, VI1_DATA7, SEL_VI1_0),
319         PINMUX_IPSR_DATA(IP11_27, AVB_MDC),
320         PINMUX_IPSR_DATA(IP11_29_28, ETH_MDIO),
321         PINMUX_IPSR_DATA(IP11_29_28, AVB_RX_CLK),
322         PINMUX_IPSR_MODSEL_DATA(IP11_29_28, SCL2_C, SEL_IIC2_2),
323         PINMUX_IPSR_DATA(IP11_31_30, ETH_CRS_DV),
324         PINMUX_IPSR_DATA(IP11_31_30, AVB_LINK),
325         PINMUX_IPSR_MODSEL_DATA(IP11_31_30, SDA2_C, SEL_IIC2_2),
326
327         /* IPSR12 */
328         PINMUX_IPSR_DATA(IP12_1_0, ETH_RX_ER),
329         PINMUX_IPSR_DATA(IP12_1_0, AVB_CRS),
330         PINMUX_IPSR_MODSEL_DATA(IP12_1_0, SCL3, SEL_IIC3_0),
331         PINMUX_IPSR_MODSEL_DATA(IP12_1_0, SCL7, SEL_IIC7_0),
332         PINMUX_IPSR_DATA(IP12_3_2, ETH_RXD0),
333         PINMUX_IPSR_DATA(IP12_3_2, AVB_PHY_INT),
334         PINMUX_IPSR_MODSEL_DATA(IP12_3_2, SDA3, SEL_IIC3_0),
335         PINMUX_IPSR_MODSEL_DATA(IP12_3_2, SDA7, SEL_IIC7_0),
336         PINMUX_IPSR_DATA(IP12_6_4, ETH_RXD1),
337         PINMUX_IPSR_DATA(IP12_6_4, AVB_GTXREFCLK),
338         PINMUX_IPSR_MODSEL_DATA(IP12_6_4, CAN0_TX_C, SEL_CAN0_2),
339         PINMUX_IPSR_MODSEL_DATA(IP12_6_4, SCL2_D, SEL_IIC2_3),
340         PINMUX_IPSR_MODSEL_DATA(IP12_6_4, MSIOF1_RXD_E, SEL_SOF1_4),
341         PINMUX_IPSR_DATA(IP12_9_7, ETH_LINK),
342         PINMUX_IPSR_DATA(IP12_9_7, AVB_TXD0),
343         PINMUX_IPSR_MODSEL_DATA(IP12_9_7, CAN0_RX_C, SEL_CAN0_2),
344         PINMUX_IPSR_MODSEL_DATA(IP12_9_7, SDA2_D, SEL_IIC2_3),
345         PINMUX_IPSR_MODSEL_DATA(IP12_9_7, MSIOF1_SCK_E, SEL_SOF1_4),
346         PINMUX_IPSR_DATA(IP12_12_10, ETH_REFCLK),
347         PINMUX_IPSR_DATA(IP12_12_10, AVB_TXD1),
348         PINMUX_IPSR_MODSEL_DATA(IP12_12_10, SCIFA3_RXD_B, SEL_SCIFA3_1),
349         PINMUX_IPSR_MODSEL_DATA(IP12_12_10, CAN1_RX_C, SEL_CAN1_2),
350         PINMUX_IPSR_MODSEL_DATA(IP12_12_10, MSIOF1_SYNC_E, SEL_SOF1_4),
351         PINMUX_IPSR_DATA(IP12_15_13, ETH_TXD1),
352         PINMUX_IPSR_DATA(IP12_15_13, AVB_TXD2),
353         PINMUX_IPSR_MODSEL_DATA(IP12_15_13, SCIFA3_TXD_B, SEL_SCIFA3_1),
354         PINMUX_IPSR_MODSEL_DATA(IP12_15_13, CAN1_TX_C, SEL_CAN1_2),
355         PINMUX_IPSR_MODSEL_DATA(IP12_15_13, MSIOF1_TXD_E, SEL_SOF1_4),
356         PINMUX_IPSR_DATA(IP12_17_16, ETH_TX_EN),
357         PINMUX_IPSR_DATA(IP12_17_16, AVB_TXD3),
358         PINMUX_IPSR_MODSEL_DATA(IP12_17_16, TCLK1_B, SEL_TMU1_0),
359         PINMUX_IPSR_MODSEL_DATA(IP12_17_16, CAN_CLK_B, SEL_CANCLK_1),
360         PINMUX_IPSR_DATA(IP12_19_18, ETH_MAGIC),
361         PINMUX_IPSR_DATA(IP12_19_18, AVB_TXD4),
362         PINMUX_IPSR_MODSEL_DATA(IP12_19_18, IETX_C, SEL_IEB_2),
363         PINMUX_IPSR_DATA(IP12_21_20, ETH_TXD0),
364         PINMUX_IPSR_DATA(IP12_21_20, AVB_TXD5),
365         PINMUX_IPSR_MODSEL_DATA(IP12_21_20, IECLK_C, SEL_IEB_2),
366         PINMUX_IPSR_DATA(IP12_23_22, ETH_MDC),
367         PINMUX_IPSR_DATA(IP12_23_22, AVB_TXD6),
368         PINMUX_IPSR_MODSEL_DATA(IP12_23_22, IERX_C, SEL_IEB_2),
369         PINMUX_IPSR_MODSEL_DATA(IP12_26_24, STP_IVCXO27_0, SEL_SSP_0),
370         PINMUX_IPSR_DATA(IP12_26_24, AVB_TXD7),
371         PINMUX_IPSR_MODSEL_DATA(IP12_26_24, SCIFB2_TXD_D, SEL_SCIFB2_3),
372         PINMUX_IPSR_MODSEL_DATA(IP12_26_24, ADIDATA_B, SEL_RAD_1),
373         PINMUX_IPSR_MODSEL_DATA(IP12_26_24, MSIOF0_SYNC_C, SEL_SOF0_2),
374         PINMUX_IPSR_MODSEL_DATA(IP12_29_27, STP_ISCLK_0, SEL_SSP_0),
375         PINMUX_IPSR_DATA(IP12_29_27, AVB_TX_EN),
376         PINMUX_IPSR_MODSEL_DATA(IP12_29_27, SCIFB2_RXD_D, SEL_SCIFB2_3),
377         PINMUX_IPSR_MODSEL_DATA(IP12_29_27, ADICS_SAMP_B, SEL_RAD_1),
378         PINMUX_IPSR_MODSEL_DATA(IP12_29_27, MSIOF0_SCK_C, SEL_SOF0_2),
379
380         /* IPSR13 - IPSR16 */
381 };
382
383 static struct pinmux_gpio pinmux_gpios[] = {
384         PINMUX_GPIO_GP_ALL(),
385
386         /* OTHER, IPSR0 - IPSR10 */
387         /* IPSR11 */
388         GPIO_FN(VI0_R5), GPIO_FN(VI2_DATA6), GPIO_FN(GLO_SDATA_B),
389         GPIO_FN(RX0_C), GPIO_FN(SDA1_D),
390         GPIO_FN(VI0_R6), GPIO_FN(VI2_DATA7),
391         GPIO_FN(GLO_SS_B), GPIO_FN(TX1_C), GPIO_FN(SCL4_B),
392         GPIO_FN(VI0_R7), GPIO_FN(GLO_RFON_B),
393         GPIO_FN(RX1_C), GPIO_FN(CAN0_RX_E),
394         GPIO_FN(SDA4_B), GPIO_FN(HRX1_D), GPIO_FN(SCIFB0_RXD_D),
395         GPIO_FN(VI1_HSYNC_N), GPIO_FN(AVB_RXD0), GPIO_FN(TS_SDATA0_B),
396         GPIO_FN(TX4_B), GPIO_FN(SCIFA4_TXD_B),
397         GPIO_FN(VI1_VSYNC_N), GPIO_FN(AVB_RXD1), GPIO_FN(TS_SCK0_B),
398         GPIO_FN(RX4_B), GPIO_FN(SCIFA4_RXD_B),
399         GPIO_FN(VI1_CLKENB), GPIO_FN(AVB_RXD2), GPIO_FN(TS_SDEN0_B),
400         GPIO_FN(VI1_FIELD), GPIO_FN(AVB_RXD3), GPIO_FN(TS_SPSYNC0_B),
401         GPIO_FN(VI1_CLK), GPIO_FN(AVB_RXD4),
402         GPIO_FN(VI1_DATA0), GPIO_FN(AVB_RXD5),
403         GPIO_FN(VI1_DATA1), GPIO_FN(AVB_RXD6),
404         GPIO_FN(VI1_DATA2), GPIO_FN(AVB_RXD7),
405         GPIO_FN(VI1_DATA3), GPIO_FN(AVB_RX_ER),
406         GPIO_FN(VI1_DATA4), GPIO_FN(AVB_MDIO),
407         GPIO_FN(VI1_DATA5), GPIO_FN(AVB_RX_DV),
408         GPIO_FN(VI1_DATA6), GPIO_FN(AVB_MAGIC),
409         GPIO_FN(VI1_DATA7), GPIO_FN(AVB_MDC),
410         GPIO_FN(ETH_MDIO), GPIO_FN(AVB_RX_CLK), GPIO_FN(SCL2_C),
411         GPIO_FN(ETH_CRS_DV), GPIO_FN(AVB_LINK), GPIO_FN(SDA2_C),
412
413         /* IPSR12 */
414         GPIO_FN(ETH_RX_ER), GPIO_FN(AVB_CRS), GPIO_FN(SCL3), GPIO_FN(SCL7),
415         GPIO_FN(ETH_RXD0), GPIO_FN(AVB_PHY_INT), GPIO_FN(SDA3), GPIO_FN(SDA7),
416         GPIO_FN(ETH_RXD1), GPIO_FN(AVB_GTXREFCLK), GPIO_FN(CAN0_TX_C),
417         GPIO_FN(SCL2_D), GPIO_FN(MSIOF1_RXD_E),
418         GPIO_FN(ETH_LINK), GPIO_FN(AVB_TXD0), GPIO_FN(CAN0_RX_C),
419         GPIO_FN(SDA2_D), GPIO_FN(MSIOF1_SCK_E),
420         GPIO_FN(ETH_REFCLK), GPIO_FN(AVB_TXD1), GPIO_FN(SCIFA3_RXD_B),
421         GPIO_FN(CAN1_RX_C), GPIO_FN(MSIOF1_SYNC_E),
422         GPIO_FN(ETH_TXD1), GPIO_FN(AVB_TXD2), GPIO_FN(SCIFA3_TXD_B),
423         GPIO_FN(CAN1_TX_C), GPIO_FN(MSIOF1_TXD_E),
424         GPIO_FN(ETH_TX_EN), GPIO_FN(AVB_TXD3),
425         GPIO_FN(TCLK1_B), GPIO_FN(CAN_CLK_B),
426         GPIO_FN(ETH_MAGIC), GPIO_FN(AVB_TXD4), GPIO_FN(IETX_C),
427         GPIO_FN(ETH_TXD0), GPIO_FN(AVB_TXD5), GPIO_FN(IECLK_C),
428         GPIO_FN(ETH_MDC), GPIO_FN(AVB_TXD6), GPIO_FN(IERX_C),
429         GPIO_FN(STP_IVCXO27_0), GPIO_FN(AVB_TXD7), GPIO_FN(SCIFB2_TXD_D),
430         GPIO_FN(ADIDATA_B), GPIO_FN(MSIOF0_SYNC_C),
431         GPIO_FN(STP_ISCLK_0), GPIO_FN(AVB_TX_EN), GPIO_FN(SCIFB2_RXD_D),
432         GPIO_FN(ADICS_SAMP_B), GPIO_FN(MSIOF0_SCK_C),
433
434         /* IPSR13 - IPSR16 */
435 };
436
437 static struct pinmux_cfg_reg pinmux_config_regs[] = {
438         { PINMUX_CFG_REG("GPSR0", 0xE6060004, 32, 1) {
439                 GP_0_31_FN, FN_IP1_22_20,
440                 GP_0_30_FN, FN_IP1_19_17,
441                 GP_0_29_FN, FN_IP1_16_14,
442                 GP_0_28_FN, FN_IP1_13_11,
443                 GP_0_27_FN, FN_IP1_10_8,
444                 GP_0_26_FN, FN_IP1_7_6,
445                 GP_0_25_FN, FN_IP1_5_4,
446                 GP_0_24_FN, FN_IP1_3_2,
447                 GP_0_23_FN, FN_IP1_1_0,
448                 GP_0_22_FN, FN_IP0_30_29,
449                 GP_0_21_FN, FN_IP0_28_27,
450                 GP_0_20_FN, FN_IP0_26_25,
451                 GP_0_19_FN, FN_IP0_24_23,
452                 GP_0_18_FN, FN_IP0_22_21,
453                 GP_0_17_FN, FN_IP0_20_19,
454                 GP_0_16_FN, FN_IP0_18_16,
455                 GP_0_15_FN, FN_IP0_15,
456                 GP_0_14_FN, FN_IP0_14,
457                 GP_0_13_FN, FN_IP0_13,
458                 GP_0_12_FN, FN_IP0_12,
459                 GP_0_11_FN, FN_IP0_11,
460                 GP_0_10_FN, FN_IP0_10,
461                 GP_0_9_FN, FN_IP0_9,
462                 GP_0_8_FN, FN_IP0_8,
463                 GP_0_7_FN, FN_IP0_7,
464                 GP_0_6_FN, FN_IP0_6,
465                 GP_0_5_FN, FN_IP0_5,
466                 GP_0_4_FN, FN_IP0_4,
467                 GP_0_3_FN, FN_IP0_3,
468                 GP_0_2_FN, FN_IP0_2,
469                 GP_0_1_FN, FN_IP0_1,
470                 GP_0_0_FN, FN_IP0_0, }
471         },
472         { PINMUX_CFG_REG("GPSR1", 0xE6060008, 32, 1) {
473                 0, 0,
474                 0, 0,
475                 0, 0,
476                 0, 0,
477                 0, 0,
478                 0, 0,
479                 GP_1_25_FN, FN_IP3_21_20,
480                 GP_1_24_FN, FN_IP3_19_18,
481                 GP_1_23_FN, FN_IP3_17_16,
482                 GP_1_22_FN, FN_IP3_15_14,
483                 GP_1_21_FN, FN_IP3_13_12,
484                 GP_1_20_FN, FN_IP3_11_9,
485                 GP_1_19_FN, FN_RD_N,
486                 GP_1_18_FN, FN_IP3_8_6,
487                 GP_1_17_FN, FN_IP3_5_3,
488                 GP_1_16_FN, FN_IP3_2_0,
489                 GP_1_15_FN, FN_IP2_29_27,
490                 GP_1_14_FN, FN_IP2_26_25,
491                 GP_1_13_FN, FN_IP2_24_23,
492                 GP_1_12_FN, FN_EX_CS0_N,
493                 GP_1_11_FN, FN_IP2_22_21,
494                 GP_1_10_FN, FN_IP2_20_19,
495                 GP_1_9_FN, FN_IP2_18_16,
496                 GP_1_8_FN, FN_IP2_15_13,
497                 GP_1_7_FN, FN_IP2_12_10,
498                 GP_1_6_FN, FN_IP2_9_7,
499                 GP_1_5_FN, FN_IP2_6_5,
500                 GP_1_4_FN, FN_IP2_4_3,
501                 GP_1_3_FN, FN_IP2_2_0,
502                 GP_1_2_FN, FN_IP1_31_29,
503                 GP_1_1_FN, FN_IP1_28_26,
504                 GP_1_0_FN, FN_IP1_25_23, }
505         },
506         { PINMUX_CFG_REG("GPSR2", 0xE606000C, 32, 1) {
507                 GP_2_31_FN, FN_IP6_7_6,
508                 GP_2_30_FN, FN_IP6_5_3,
509                 GP_2_29_FN, FN_IP6_2_0,
510                 GP_2_28_FN, FN_AUDIO_CLKA,
511                 GP_2_27_FN, FN_IP5_31_29,
512                 GP_2_26_FN, FN_IP5_28_26,
513                 GP_2_25_FN, FN_IP5_25_24,
514                 GP_2_24_FN, FN_IP5_23_22,
515                 GP_2_23_FN, FN_IP5_21_20,
516                 GP_2_22_FN, FN_IP5_19_17,
517                 GP_2_21_FN, FN_IP5_16_15,
518                 GP_2_20_FN, FN_IP5_14_12,
519                 GP_2_19_FN, FN_IP5_11_9,
520                 GP_2_18_FN, FN_IP5_8_6,
521                 GP_2_17_FN, FN_IP5_5_3,
522                 GP_2_16_FN, FN_IP5_2_0,
523                 GP_2_15_FN, FN_IP4_30_28,
524                 GP_2_14_FN, FN_IP4_27_26,
525                 GP_2_13_FN, FN_IP4_25_24,
526                 GP_2_12_FN, FN_IP4_23_22,
527                 GP_2_11_FN, FN_IP4_21,
528                 GP_2_10_FN, FN_IP4_20,
529                 GP_2_9_FN, FN_IP4_19,
530                 GP_2_8_FN, FN_IP4_18_16,
531                 GP_2_7_FN, FN_IP4_15_13,
532                 GP_2_6_FN, FN_IP4_12_10,
533                 GP_2_5_FN, FN_IP4_9_8,
534                 GP_2_4_FN, FN_IP4_7_5,
535                 GP_2_3_FN, FN_IP4_4_2,
536                 GP_2_2_FN, FN_IP4_1_0,
537                 GP_2_1_FN, FN_IP3_30_28,
538                 GP_2_0_FN, FN_IP3_27_25 }
539         },
540         { PINMUX_CFG_REG("GPSR3", 0xE6060010, 32, 1) {
541                 GP_3_31_FN, FN_IP9_18_17,
542                 GP_3_30_FN, FN_IP9_16,
543                 GP_3_29_FN, FN_IP9_15_13,
544                 GP_3_28_FN, FN_IP9_12,
545                 GP_3_27_FN, FN_IP9_11,
546                 GP_3_26_FN, FN_IP9_10_8,
547                 GP_3_25_FN, FN_IP9_7,
548                 GP_3_24_FN, FN_IP9_6,
549                 GP_3_23_FN, FN_IP9_5_3,
550                 GP_3_22_FN, FN_IP9_2_0,
551                 GP_3_21_FN, FN_IP8_30_28,
552                 GP_3_20_FN, FN_IP8_27_26,
553                 GP_3_19_FN, FN_IP8_25_24,
554                 GP_3_18_FN, FN_IP8_23_21,
555                 GP_3_17_FN, FN_IP8_20_18,
556                 GP_3_16_FN, FN_IP8_17_15,
557                 GP_3_15_FN, FN_IP8_14_12,
558                 GP_3_14_FN, FN_IP8_11_9,
559                 GP_3_13_FN, FN_IP8_8_6,
560                 GP_3_12_FN, FN_IP8_5_3,
561                 GP_3_11_FN, FN_IP8_2_0,
562                 GP_3_10_FN, FN_IP7_29_27,
563                 GP_3_9_FN, FN_IP7_26_24,
564                 GP_3_8_FN, FN_IP7_23_21,
565                 GP_3_7_FN, FN_IP7_20_19,
566                 GP_3_6_FN, FN_IP7_18_17,
567                 GP_3_5_FN, FN_IP7_16_15,
568                 GP_3_4_FN, FN_IP7_14_13,
569                 GP_3_3_FN, FN_IP7_12_11,
570                 GP_3_2_FN, FN_IP7_10_9,
571                 GP_3_1_FN, FN_IP7_8_6,
572                 GP_3_0_FN, FN_IP7_5_3 }
573         },
574         { PINMUX_CFG_REG("GPSR4", 0xE6060014, 32, 1) {
575                 GP_4_31_FN, FN_IP15_5_4,
576                 GP_4_30_FN, FN_IP15_3_2,
577                 GP_4_29_FN, FN_IP15_1_0,
578                 GP_4_28_FN, FN_IP11_8_6,
579                 GP_4_27_FN, FN_IP11_5_3,
580                 GP_4_26_FN, FN_IP11_2_0,
581                 GP_4_25_FN, FN_IP10_31_29,
582                 GP_4_24_FN, FN_IP10_28_27,
583                 GP_4_23_FN, FN_IP10_26_25,
584                 GP_4_22_FN, FN_IP10_24_22,
585                 GP_4_21_FN, FN_IP10_21_19,
586                 GP_4_20_FN, FN_IP10_18_17,
587                 GP_4_19_FN, FN_IP10_16_15,
588                 GP_4_18_FN, FN_IP10_14_12,
589                 GP_4_17_FN, FN_IP10_11_9,
590                 GP_4_16_FN, FN_IP10_8_6,
591                 GP_4_15_FN, FN_IP10_5_3,
592                 GP_4_14_FN, FN_IP10_2_0,
593                 GP_4_13_FN, FN_IP9_31_29,
594                 GP_4_12_FN, FN_VI0_DATA0_VI0_B7,
595                 GP_4_11_FN, FN_VI0_DATA0_VI0_B6,
596                 GP_4_10_FN, FN_VI0_DATA0_VI0_B5,
597                 GP_4_9_FN, FN_VI0_DATA0_VI0_B4,
598                 GP_4_8_FN, FN_IP9_28_27,
599                 GP_4_7_FN, FN_VI0_DATA0_VI0_B2,
600                 GP_4_6_FN, FN_VI0_DATA0_VI0_B1,
601                 GP_4_5_FN, FN_VI0_DATA0_VI0_B0,
602                 GP_4_4_FN, FN_IP9_26_25,
603                 GP_4_3_FN, FN_IP9_24_23,
604                 GP_4_2_FN, FN_IP9_22_21,
605                 GP_4_1_FN, FN_IP9_20_19,
606                 GP_4_0_FN, FN_VI0_CLK }
607         },
608         { PINMUX_CFG_REG("GPSR5", 0xE6060018, 32, 1) {
609                 GP_5_31_FN, FN_IP3_24_22,
610                 GP_5_30_FN, FN_IP13_9_7,
611                 GP_5_29_FN, FN_IP13_6_5,
612                 GP_5_28_FN, FN_IP13_4_3,
613                 GP_5_27_FN, FN_IP13_2_0,
614                 GP_5_26_FN, FN_IP12_29_27,
615                 GP_5_25_FN, FN_IP12_26_24,
616                 GP_5_24_FN, FN_IP12_23_22,
617                 GP_5_23_FN, FN_IP12_21_20,
618                 GP_5_22_FN, FN_IP12_19_18,
619                 GP_5_21_FN, FN_IP12_17_16,
620                 GP_5_20_FN, FN_IP12_15_13,
621                 GP_5_19_FN, FN_IP12_12_10,
622                 GP_5_18_FN, FN_IP12_9_7,
623                 GP_5_17_FN, FN_IP12_6_4,
624                 GP_5_16_FN, FN_IP12_3_2,
625                 GP_5_15_FN, FN_IP12_1_0,
626                 GP_5_14_FN, FN_IP11_31_30,
627                 GP_5_13_FN, FN_IP11_29_28,
628                 GP_5_12_FN, FN_IP11_27,
629                 GP_5_11_FN, FN_IP11_26,
630                 GP_5_10_FN, FN_IP11_25,
631                 GP_5_9_FN, FN_IP11_24,
632                 GP_5_8_FN, FN_IP11_23,
633                 GP_5_7_FN, FN_IP11_22,
634                 GP_5_6_FN, FN_IP11_21,
635                 GP_5_5_FN, FN_IP11_20,
636                 GP_5_4_FN, FN_IP11_19,
637                 GP_5_3_FN, FN_IP11_18_17,
638                 GP_5_2_FN, FN_IP11_16_15,
639                 GP_5_1_FN, FN_IP11_14_12,
640                 GP_5_0_FN, FN_IP11_11_9 }
641         },
642         { PINMUX_CFG_REG("GPSR6", 0xE606001C, 32, 1) {
643                 0, 0,
644                 0, 0,
645                 GP_6_29_FN, FN_IP14_31_29,
646                 GP_6_28_FN, FN_IP14_28_26,
647                 GP_6_27_FN, FN_IP14_25_23,
648                 GP_6_26_FN, FN_IP14_22_20,
649                 GP_6_25_FN, FN_IP14_19_17,
650                 GP_6_24_FN, FN_IP14_16_14,
651                 GP_6_23_FN, FN_IP14_13_11,
652                 GP_6_22_FN, FN_IP14_10_8,
653                 GP_6_21_FN, FN_IP14_7,
654                 GP_6_20_FN, FN_IP14_6,
655                 GP_6_19_FN, FN_IP14_5,
656                 GP_6_18_FN, FN_IP14_4,
657                 GP_6_17_FN, FN_IP14_3,
658                 GP_6_16_FN, FN_IP14_2,
659                 GP_6_15_FN, FN_IP14_1_0,
660                 GP_6_14_FN, FN_IP13_30_28,
661                 GP_6_13_FN, FN_IP13_27,
662                 GP_6_12_FN, FN_IP13_26,
663                 GP_6_11_FN, FN_IP13_25,
664                 GP_6_10_FN, FN_IP13_24_23,
665                 GP_6_9_FN, FN_IP13_22,
666                 0, 0,
667                 GP_6_7_FN, FN_IP13_21_19,
668                 GP_6_6_FN, FN_IP13_18_16,
669                 GP_6_5_FN, FN_IP13_15,
670                 GP_6_4_FN, FN_IP13_14,
671                 GP_6_3_FN, FN_IP13_13,
672                 GP_6_2_FN, FN_IP13_12,
673                 GP_6_1_FN, FN_IP13_11,
674                 GP_6_0_FN, FN_IP13_10 }
675         },
676         { PINMUX_CFG_REG("GPSR7", 0xE6060074, 32, 1) {
677                 0, 0,
678                 0, 0,
679                 0, 0,
680                 0, 0,
681                 0, 0,
682                 0, 0,
683                 GP_7_25_FN, FN_USB1_PWEN,
684                 GP_7_24_FN, FN_USB0_OVC,
685                 GP_7_23_FN, FN_USB0_PWEN,
686                 GP_7_22_FN, FN_IP15_14_12,
687                 GP_7_21_FN, FN_IP15_11_9,
688                 GP_7_20_FN, FN_IP15_8_6,
689                 GP_7_19_FN, FN_IP7_2_0,
690                 GP_7_18_FN, FN_IP6_29_27,
691                 GP_7_17_FN, FN_IP6_26_24,
692                 GP_7_16_FN, FN_IP6_23_21,
693                 GP_7_15_FN, FN_IP6_20_19,
694                 GP_7_14_FN, FN_IP6_18_16,
695                 GP_7_13_FN, FN_IP6_15_14,
696                 GP_7_12_FN, FN_IP6_13_12,
697                 GP_7_11_FN, FN_IP6_11_10,
698                 GP_7_10_FN, FN_IP6_9_8,
699                 GP_7_9_FN, FN_IP16_11_10,
700                 GP_7_8_FN, FN_IP16_9_8,
701                 GP_7_7_FN, FN_IP16_7_6,
702                 GP_7_6_FN, FN_IP16_5_3,
703                 GP_7_5_FN, FN_IP16_2_0,
704                 GP_7_4_FN, FN_IP15_29_27,
705                 GP_7_3_FN, FN_IP15_26_24,
706                 GP_7_2_FN, FN_IP15_23_21,
707                 GP_7_1_FN, FN_IP15_20_18,
708                 GP_7_0_FN, FN_IP15_17_15 }
709         },
710         /* IPSR0 - IPSR10 */
711         { PINMUX_CFG_REG_VAR("IPSR11", 0xE606004C, 32,
712                              2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2,
713                              3, 3, 3, 3, 3) {
714                 /* IP11_31_30 [2] */
715                 FN_ETH_CRS_DV, FN_AVB_LINK, FN_SDA2_C, 0,
716                 /* IP11_29_28 [2] */
717                 FN_ETH_MDIO, FN_AVB_RX_CLK, FN_SCL2_C, 0,
718                 /* IP11_27 [1] */
719                 FN_VI1_DATA7, FN_AVB_MDC,
720                 /* IP11_26 [1] */
721                 FN_VI1_DATA6, FN_AVB_MAGIC,
722                 /* IP11_25 [1] */
723                 FN_VI1_DATA5, FN_AVB_RX_DV,
724                 /* IP11_24 [1] */
725                 FN_VI1_DATA4, FN_AVB_MDIO,
726                 /* IP11_23 [1] */
727                 FN_VI1_DATA3, FN_AVB_RX_ER,
728                 /* IP11_22 [1] */
729                 FN_VI1_DATA2, FN_AVB_RXD7,
730                 /* IP11_21 [1] */
731                 FN_VI1_DATA1, FN_AVB_RXD6,
732                 /* IP11_20 [1] */
733                 FN_VI1_DATA0, FN_AVB_RXD5,
734                 /* IP11_19 [1] */
735                 FN_VI1_CLK, FN_AVB_RXD4,
736                 /* IP11_18_17 [2] */
737                 FN_VI1_FIELD, FN_AVB_RXD3, FN_TS_SPSYNC0_B, 0,
738                 /* IP11_16_15 [2] */
739                 FN_VI1_CLKENB, FN_AVB_RXD2, FN_TS_SDEN0_B, 0,
740                 /* IP11_14_12 [3] */
741                 FN_VI1_VSYNC_N, FN_AVB_RXD1, FN_TS_SCK0_B,
742                 FN_RX4_B, FN_SCIFA4_RXD_B,
743                 0, 0, 0,
744                 /* IP11_11_9 [3] */
745                 FN_VI1_HSYNC_N, FN_AVB_RXD0, FN_TS_SDATA0_B,
746                 FN_TX4_B, FN_SCIFA4_TXD_B,
747                 0, 0, 0,
748                 /* IP11_8_6 [3] */
749                 FN_VI0_R7, FN_GLO_RFON_B, FN_RX1_C, FN_CAN0_RX_E,
750                 FN_SDA4_B, FN_HRX1_D, FN_SCIFB0_RXD_D, 0,
751                 /* IP11_5_3 [3] */
752                 FN_VI0_R6, FN_VI2_DATA7, FN_GLO_SS_B, FN_TX1_C, FN_SCL4_B,
753                 0, 0, 0,
754                 /* IP11_2_0 [3] */
755                 FN_VI0_R5, FN_VI2_DATA6, FN_GLO_SDATA_B, FN_RX0_C, FN_SDA1_D,
756                 0, 0, 0, }
757         },
758         { PINMUX_CFG_REG_VAR("IPSR12", 0xE6060050, 32,
759                              2, 3, 3, 2, 2, 2, 2, 3, 3, 3, 3, 2, 2) {
760                 /* IP12_31_30 [2] */
761                 0, 0, 0, 0,
762                 /* IP12_29_27 [3] */
763                 FN_STP_ISCLK_0, FN_AVB_TX_EN, FN_SCIFB2_RXD_D,
764                 FN_ADICS_SAMP_B, FN_MSIOF0_SCK_C,
765                 0, 0, 0,
766                 /* IP12_26_24 [3] */
767                 FN_STP_IVCXO27_0, FN_AVB_TXD7, FN_SCIFB2_TXD_D,
768                 FN_ADIDATA_B, FN_MSIOF0_SYNC_C,
769                 0, 0, 0,
770                 /* IP12_23_22 [2] */
771                 FN_ETH_MDC, FN_AVB_TXD6, FN_IERX_C, 0,
772                 /* IP12_21_20 [2] */
773                 FN_ETH_TXD0, FN_AVB_TXD5, FN_IECLK_C, 0,
774                 /* IP12_19_18 [2] */
775                 FN_ETH_MAGIC, FN_AVB_TXD4, FN_IETX_C, 0,
776                 /* IP12_17_16 [2] */
777                 FN_ETH_TX_EN, FN_AVB_TXD3, FN_TCLK1_B, FN_CAN_CLK_B,
778                 /* IP12_15_13 [3] */
779                 FN_ETH_TXD1, FN_AVB_TXD2, FN_SCIFA3_TXD_B,
780                 FN_CAN1_TX_C, FN_MSIOF1_TXD_E,
781                 0, 0, 0,
782                 /* IP12_12_10 [3] */
783                 FN_ETH_REFCLK, FN_AVB_TXD1, FN_SCIFA3_RXD_B,
784                 FN_CAN1_RX_C, FN_MSIOF1_SYNC_E,
785                 0, 0, 0,
786                 /* IP12_9_7 [3] */
787                 FN_ETH_LINK, FN_AVB_TXD0, FN_CAN0_RX_C,
788                 FN_SDA2_D, FN_MSIOF1_SCK_E,
789                 0, 0, 0,
790                 /* IP12_6_4 [3] */
791                 FN_ETH_RXD1, FN_AVB_GTXREFCLK, FN_CAN0_TX_C,
792                 FN_SCL2_D, FN_MSIOF1_RXD_E,
793                 0, 0, 0,
794                 /* IP12_3_2 [2] */
795                 FN_ETH_RXD0, FN_AVB_PHY_INT, FN_SDA3, FN_SDA7,
796                 /* IP12_1_0 [2] */
797                 FN_ETH_RX_ER, FN_AVB_CRS, FN_SCL3, FN_SCL7, }
798         },
799
800         /* IPSR13 - IPSR16 */
801
802         { PINMUX_CFG_REG_VAR("MOD_SEL", 0xE6060090, 32,
803                              1, 2, 2, 2, 3, 2, 1, 1, 1, 1,
804                              3, 2, 2, 2, 1, 2, 2, 2) {
805                 /* RESEVED [1] */
806                 0, 0,
807                 /* SEL_SCIF1 [2] */
808                 FN_SEL_SCIF1_0, FN_SEL_SCIF1_1, FN_SEL_SCIF1_2, FN_SEL_SCIF1_3,
809                 /* SEL_SCIFB [2] */
810                 FN_SEL_SCIFB_0, FN_SEL_SCIFB_1, FN_SEL_SCIFB_2, FN_SEL_SCIFB_3,
811                 /* SEL_SCIFB2 [2] */
812                 FN_SEL_SCIFB2_0, FN_SEL_SCIFB2_1,
813                 FN_SEL_SCIFB2_2, FN_SEL_SCIFB2_3,
814                 /* SEL_SCIFB1 [3] */
815                 FN_SEL_SCIFB1_0, FN_SEL_SCIFB1_1,
816                 FN_SEL_SCIFB1_2, FN_SEL_SCIFB1_3,
817                 0, 0, 0, 0,
818                 /* SEL_SCIFA1 [2] */
819                 FN_SEL_SCIFA1_0, FN_SEL_SCIFA1_1, FN_SEL_SCIFA1_2, 0,
820                 /* SEL_SSI9 [1] */
821                 FN_SEL_SSI9_0, FN_SEL_SSI9_1,
822                 /* SEL_SCFA [1] */
823                 FN_SEL_SCFA_0, FN_SEL_SCFA_1,
824                 /* SEL_QSP [1] */
825                 FN_SEL_QSP_0, FN_SEL_QSP_1,
826                 /* SEL_SSI7 [1] */
827                 FN_SEL_SSI7_0, FN_SEL_SSI7_1,
828                 /* SEL_HSCIF1 [3] */
829                 FN_SEL_HSCIF1_0, FN_SEL_HSCIF1_1, FN_SEL_HSCIF1_2,
830                 FN_SEL_HSCIF1_3, FN_SEL_HSCIF1_4,
831                 0, 0, 0,
832                 /* RESEVED [2] */
833                 0, 0, 0, 0,
834                 /* SEL_VI1 [2] */
835                 FN_SEL_VI1_0, FN_SEL_VI1_1, FN_SEL_VI1_2, 0,
836                 /* RESEVED [2] */
837                 0, 0, 0, 0,
838                 /* SEL_TMU [1] */
839                 FN_SEL_TMU1_0, FN_SEL_TMU1_1,
840                 /* SEL_LBS [2] */
841                 FN_SEL_LBS_0, FN_SEL_LBS_1, FN_SEL_LBS_2, FN_SEL_LBS_3,
842                 /* SEL_TSIF0 [2] */
843                 FN_SEL_TSIF0_0, FN_SEL_TSIF0_1, FN_SEL_TSIF0_2, FN_SEL_TSIF0_3,
844                 /* SEL_SOF0 [2] */
845                 FN_SEL_SOF0_0, FN_SEL_SOF0_1, FN_SEL_SOF0_2, 0, }
846         },
847         { PINMUX_CFG_REG_VAR("MOD_SEL2", 0xE6060094, 32,
848                              3, 1, 1, 3, 2, 1, 1, 2, 2,
849                              1, 3, 2, 1, 2, 2, 2, 1, 1, 1) {
850                 /* SEL_SCIF0 [3] */
851                 FN_SEL_SCIF0_0, FN_SEL_SCIF0_1, FN_SEL_SCIF0_2,
852                 FN_SEL_SCIF0_3, FN_SEL_SCIF0_4,
853                 0, 0, 0,
854                 /* RESEVED [1] */
855                 0, 0,
856                 /* SEL_SCIF [1] */
857                 FN_SEL_SCIF_0, FN_SEL_SCIF_1,
858                 /* SEL_CAN0 [3] */
859                 FN_SEL_CAN0_0, FN_SEL_CAN0_1, FN_SEL_CAN0_2, FN_SEL_CAN0_3,
860                 FN_SEL_CAN0_4, FN_SEL_CAN0_5,
861                 0, 0,
862                 /* SEL_CAN1 [2] */
863                 FN_SEL_CAN1_0, FN_SEL_CAN1_1, FN_SEL_CAN1_2, FN_SEL_CAN1_3,
864                 /* RESEVED [1] */
865                 0, 0,
866                 /* SEL_SCIFA2 [1] */
867                 FN_SEL_SCIFA2_0, FN_SEL_SCIFA2_1,
868                 /* SEL_SCIF4 [2] */
869                 FN_SEL_SCIF4_0, FN_SEL_SCIF4_1, FN_SEL_SCIF4_2, 0,
870                 /* RESEVED [2] */
871                 0, 0, 0, 0,
872                 /* SEL_ADG [1] */
873                 FN_SEL_ADG_0, FN_SEL_ADG_1,
874                 /* SEL_FM [3] */
875                 FN_SEL_FM_0, FN_SEL_FM_1, FN_SEL_FM_2,
876                 FN_SEL_FM_3, FN_SEL_FM_4,
877                 0, 0, 0,
878                 /* SEL_SCIFA5 [2] */
879                 FN_SEL_SCIFA5_0, FN_SEL_SCIFA5_1, FN_SEL_SCIFA5_2, 0,
880                 /* RESEVED [1] */
881                 0, 0,
882                 /* SEL_GPS [2] */
883                 FN_SEL_GPS_0, FN_SEL_GPS_1, FN_SEL_GPS_2, FN_SEL_GPS_3,
884                 /* SEL_SCIFA4 [2] */
885                 FN_SEL_SCIFA4_0, FN_SEL_SCIFA4_1, FN_SEL_SCIFA4_2, 0,
886                 /* SEL_SCIFA3 [2] */
887                 FN_SEL_SCIFA3_0, FN_SEL_SCIFA3_1, FN_SEL_SCIFA3_2, 0,
888                 /* SEL_SIM [1] */
889                 FN_SEL_SIM_0, FN_SEL_SIM_1,
890                 /* RESEVED [1] */
891                 0, 0,
892                 /* SEL_SSI8 [1] */
893                 FN_SEL_SSI8_0, FN_SEL_SSI8_1, }
894         },
895         { PINMUX_CFG_REG_VAR("MOD_SEL3", 0xE6060098, 32,
896                              2, 2, 2, 2, 2, 2, 2, 2,
897                              1, 1, 2, 2, 3, 2, 2, 2, 1) {
898                 /* SEL_HSCIF2 [2] */
899                 FN_SEL_HSCIF2_0, FN_SEL_HSCIF2_1,
900                 FN_SEL_HSCIF2_2, FN_SEL_HSCIF2_3,
901                 /* SEL_CANCLK [2] */
902                 FN_SEL_CANCLK_0, FN_SEL_CANCLK_1,
903                 FN_SEL_CANCLK_2, FN_SEL_CANCLK_3,
904                 /* SEL_IIC8 [2] */
905                 FN_SEL_IIC8_0, FN_SEL_IIC8_1, FN_SEL_IIC8_2, 0,
906                 /* SEL_IIC7 [2] */
907                 FN_SEL_IIC7_0, FN_SEL_IIC7_1, FN_SEL_IIC7_2, 0,
908                 /* SEL_IIC4 [2] */
909                 FN_SEL_IIC4_0, FN_SEL_IIC4_1, FN_SEL_IIC4_2, 0,
910                 /* SEL_IIC3 [2] */
911                 FN_SEL_IIC3_0, FN_SEL_IIC3_1, FN_SEL_IIC3_2, FN_SEL_IIC3_3,
912                 /* SEL_SCIF3 [2] */
913                 FN_SEL_SCIF3_0, FN_SEL_SCIF3_1, FN_SEL_SCIF3_2, FN_SEL_SCIF3_3,
914                 /* SEL_IEB [2] */
915                 FN_SEL_IEB_0, FN_SEL_IEB_1, FN_SEL_IEB_2, 0,
916                 /* SEL_MMC [1] */
917                 FN_SEL_MMC_0, FN_SEL_MMC_1,
918                 /* SEL_SCIF5 [1] */
919                 FN_SEL_SCIF5_0, FN_SEL_SCIF5_1,
920                 /* RESEVED [2] */
921                 0, 0, 0, 0,
922                 /* SEL_IIC2 [2] */
923                 FN_SEL_IIC2_0, FN_SEL_IIC2_1, FN_SEL_IIC2_2, FN_SEL_IIC2_3,
924                 /* SEL_IIC1 [3] */
925                 FN_SEL_IIC1_0, FN_SEL_IIC1_1, FN_SEL_IIC1_2, FN_SEL_IIC1_3,
926                 FN_SEL_IIC1_4,
927                 0, 0, 0,
928                 /* SEL_IIC0 [2] */
929                 FN_SEL_IIC0_0, FN_SEL_IIC0_1, FN_SEL_IIC0_2, 0,
930                 /* RESEVED [2] */
931                 0, 0, 0, 0,
932                 /* RESEVED [2] */
933                 0, 0, 0, 0,
934                 /* RESEVED [1] */
935                 0, 0, }
936         },
937         { PINMUX_CFG_REG_VAR("MOD_SEL4", 0xE606009C, 32,
938                              3, 2, 2, 1, 1, 1, 1, 3, 2,
939                              2, 3, 1, 1, 1, 2, 2, 2, 2) {
940                 /* SEL_SOF1 [3] */
941                 FN_SEL_SOF1_0, FN_SEL_SOF1_1, FN_SEL_SOF1_2, FN_SEL_SOF1_3,
942                 FN_SEL_SOF1_4,
943                 0, 0, 0,
944                 /* SEL_HSCIF0 [2] */
945                 FN_SEL_HSCIF0_0, FN_SEL_HSCIF0_1, FN_SEL_HSCIF0_2, 0,
946                 /* SEL_DIS [2] */
947                 FN_SEL_DIS_0, FN_SEL_DIS_1, FN_SEL_DIS_2, 0,
948                 /* RESEVED [1] */
949                 0, 0,
950                 /* SEL_RAD [1] */
951                 FN_SEL_RAD_0, FN_SEL_RAD_1,
952                 /* SEL_RCN [1] */
953                 FN_SEL_RCN_0, FN_SEL_RCN_1,
954                 /* SEL_RSP [1] */
955                 FN_SEL_RSP_0, FN_SEL_RSP_1,
956                 /* SEL_SCIF2 [3] */
957                 FN_SEL_SCIF2_0, FN_SEL_SCIF2_1, FN_SEL_SCIF2_2,
958                 FN_SEL_SCIF2_3, FN_SEL_SCIF2_4,
959                 0, 0, 0,
960                 /* RESEVED [2] */
961                 0, 0, 0, 0,
962                 /* RESEVED [2] */
963                 0, 0, 0, 0,
964                 /* SEL_SOF2 [3] */
965                 FN_SEL_SOF2_0, FN_SEL_SOF2_1, FN_SEL_SOF2_2,
966                 FN_SEL_SOF2_3, FN_SEL_SOF2_4,
967                 0, 0, 0,
968                 /* RESEVED [1] */
969                 0, 0,
970                 /* SEL_SSI1 [1] */
971                 FN_SEL_SSI1_0, FN_SEL_SSI1_1,
972                 /* SEL_SSI0 [1] */
973                 FN_SEL_SSI0_0, FN_SEL_SSI0_1,
974                 /* SEL_SSP [2] */
975                 FN_SEL_SSP_0, FN_SEL_SSP_1, FN_SEL_SSP_2, 0,
976                 /* RESEVED [2] */
977                 0, 0, 0, 0,
978                 /* RESEVED [2] */
979                 0, 0, 0, 0,
980                 /* RESEVED [2] */
981                 0, 0, 0, 0, }
982         },
983         { PINMUX_CFG_REG("INOUTSEL0", 0xE6050004, 32, 1) { GP_INOUTSEL(0) } },
984         { PINMUX_CFG_REG("INOUTSEL1", 0xE6051004, 32, 1) {
985                 0, 0,
986                 0, 0,
987                 0, 0,
988                 0, 0,
989                 0, 0,
990                 0, 0,
991                 GP_1_25_IN, GP_1_25_OUT,
992                 GP_1_24_IN, GP_1_24_OUT,
993                 GP_1_23_IN, GP_1_23_OUT,
994                 GP_1_22_IN, GP_1_22_OUT,
995                 GP_1_21_IN, GP_1_21_OUT,
996                 GP_1_20_IN, GP_1_20_OUT,
997                 GP_1_19_IN, GP_1_19_OUT,
998                 GP_1_18_IN, GP_1_18_OUT,
999                 GP_1_17_IN, GP_1_17_OUT,
1000                 GP_1_16_IN, GP_1_16_OUT,
1001                 GP_1_15_IN, GP_1_15_OUT,
1002                 GP_1_14_IN, GP_1_14_OUT,
1003                 GP_1_13_IN, GP_1_13_OUT,
1004                 GP_1_12_IN, GP_1_12_OUT,
1005                 GP_1_11_IN, GP_1_11_OUT,
1006                 GP_1_10_IN, GP_1_10_OUT,
1007                 GP_1_9_IN, GP_1_9_OUT,
1008                 GP_1_8_IN, GP_1_8_OUT,
1009                 GP_1_7_IN, GP_1_7_OUT,
1010                 GP_1_6_IN, GP_1_6_OUT,
1011                 GP_1_5_IN, GP_1_5_OUT,
1012                 GP_1_4_IN, GP_1_4_OUT,
1013                 GP_1_3_IN, GP_1_3_OUT,
1014                 GP_1_2_IN, GP_1_2_OUT,
1015                 GP_1_1_IN, GP_1_1_OUT,
1016                 GP_1_0_IN, GP_1_0_OUT, }
1017         },
1018         { PINMUX_CFG_REG("INOUTSEL2", 0xE6052004, 32, 1) { GP_INOUTSEL(2) } },
1019         { PINMUX_CFG_REG("INOUTSEL3", 0xE6053004, 32, 1) { GP_INOUTSEL(3) } },
1020         { PINMUX_CFG_REG("INOUTSEL4", 0xE6054004, 32, 1) { GP_INOUTSEL(4) } },
1021         { PINMUX_CFG_REG("INOUTSEL5", 0xE6055004, 32, 1) { GP_INOUTSEL(5) } },
1022         { PINMUX_CFG_REG("INOUTSEL6", 0xE6055404, 32, 1) { GP_INOUTSEL(6) } },
1023         { PINMUX_CFG_REG("INOUTSEL7", 0xE6055804, 32, 1) {
1024                 0, 0,
1025                 0, 0,
1026                 0, 0,
1027                 0, 0,
1028                 0, 0,
1029                 0, 0,
1030                 GP_7_25_IN, GP_7_25_OUT,
1031                 GP_7_24_IN, GP_7_24_OUT,
1032                 GP_7_23_IN, GP_7_23_OUT,
1033                 GP_7_22_IN, GP_7_22_OUT,
1034                 GP_7_21_IN, GP_7_21_OUT,
1035                 GP_7_20_IN, GP_7_20_OUT,
1036                 GP_7_19_IN, GP_7_19_OUT,
1037                 GP_7_18_IN, GP_7_18_OUT,
1038                 GP_7_17_IN, GP_7_17_OUT,
1039                 GP_7_16_IN, GP_7_16_OUT,
1040                 GP_7_15_IN, GP_7_15_OUT,
1041                 GP_7_14_IN, GP_7_14_OUT,
1042                 GP_7_13_IN, GP_7_13_OUT,
1043                 GP_7_12_IN, GP_7_12_OUT,
1044                 GP_7_11_IN, GP_7_11_OUT,
1045                 GP_7_10_IN, GP_7_10_OUT,
1046                 GP_7_9_IN, GP_7_9_OUT,
1047                 GP_7_8_IN, GP_7_8_OUT,
1048                 GP_7_7_IN, GP_7_7_OUT,
1049                 GP_7_6_IN, GP_7_6_OUT,
1050                 GP_7_5_IN, GP_7_5_OUT,
1051                 GP_7_4_IN, GP_7_4_OUT,
1052                 GP_7_3_IN, GP_7_3_OUT,
1053                 GP_7_2_IN, GP_7_2_OUT,
1054                 GP_7_1_IN, GP_7_1_OUT,
1055                 GP_7_0_IN, GP_7_0_OUT, }
1056         },
1057         { },
1058 };
1059
1060 static struct pinmux_data_reg pinmux_data_regs[] = {
1061         { PINMUX_DATA_REG("INDT0", 0xE6050008, 32) { GP_INDT(0) } },
1062         { PINMUX_DATA_REG("INDT1", 0xE6051008, 32) {
1063                 0, 0, 0, 0,
1064                 0, 0, GP_1_25_DATA, GP_1_24_DATA,
1065                 GP_1_23_DATA, GP_1_22_DATA, GP_1_21_DATA, GP_1_20_DATA,
1066                 GP_1_19_DATA, GP_1_18_DATA, GP_1_17_DATA, GP_1_16_DATA,
1067                 GP_1_15_DATA, GP_1_14_DATA, GP_1_13_DATA, GP_1_12_DATA,
1068                 GP_1_11_DATA, GP_1_10_DATA, GP_1_9_DATA, GP_1_8_DATA,
1069                 GP_1_7_DATA, GP_1_6_DATA, GP_1_5_DATA, GP_1_4_DATA,
1070                 GP_1_3_DATA, GP_1_2_DATA, GP_1_1_DATA, GP_1_0_DATA }
1071         },
1072         { PINMUX_DATA_REG("INDT2", 0xE6052008, 32) { GP_INDT(2) } },
1073         { PINMUX_DATA_REG("INDT3", 0xE6053008, 32) { GP_INDT(3) } },
1074         { PINMUX_DATA_REG("INDT4", 0xE6054008, 32) { GP_INDT(4) } },
1075         { PINMUX_DATA_REG("INDT5", 0xE6055008, 32) { GP_INDT(5) } },
1076         { PINMUX_DATA_REG("INDT6", 0xE6055408, 32) { GP_INDT(6) } },
1077         { PINMUX_DATA_REG("INDT7", 0xE6055808, 32) {
1078                 0, 0, 0, 0,
1079                 0, 0, GP_7_25_DATA, GP_7_24_DATA,
1080                 GP_7_23_DATA, GP_7_22_DATA, GP_7_21_DATA, GP_7_20_DATA,
1081                 GP_7_19_DATA, GP_7_18_DATA, GP_7_17_DATA, GP_7_16_DATA,
1082                 GP_7_15_DATA, GP_7_14_DATA, GP_7_13_DATA, GP_7_12_DATA,
1083                 GP_7_11_DATA, GP_7_10_DATA, GP_7_9_DATA, GP_7_8_DATA,
1084                 GP_7_7_DATA, GP_7_6_DATA, GP_7_5_DATA, GP_7_4_DATA,
1085                 GP_7_3_DATA, GP_7_2_DATA, GP_7_1_DATA, GP_7_0_DATA }
1086         },
1087         { },
1088 };
1089
1090 static struct pinmux_info r8a7791_pinmux_info = {
1091         .name = "r8a7791_pfc",
1092
1093         .unlock_reg = 0xe6060000, /* PMMR */
1094
1095         .reserved_id = PINMUX_RESERVED,
1096         .data = { PINMUX_DATA_BEGIN, PINMUX_DATA_END },
1097         .input = { PINMUX_INPUT_BEGIN, PINMUX_INPUT_END },
1098         .output = { PINMUX_OUTPUT_BEGIN, PINMUX_OUTPUT_END },
1099         .mark = { PINMUX_MARK_BEGIN, PINMUX_MARK_END },
1100         .function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END },
1101
1102         .first_gpio = GPIO_GP_0_0,
1103         .last_gpio = GPIO_FN_MSIOF0_SCK_C /* GPIO_FN_CAN1_RX_B */,
1104
1105         .gpios = pinmux_gpios,
1106         .cfg_regs = pinmux_config_regs,
1107         .data_regs = pinmux_data_regs,
1108
1109         .gpio_data = pinmux_data,
1110         .gpio_data_size = ARRAY_SIZE(pinmux_data),
1111 };
1112
1113 void r8a7791_pinmux_init(void)
1114 {
1115         register_pinmux(&r8a7791_pinmux_info);
1116 }