Linux Audio

Check our new training course

Loading...
Note: File does not exist in v3.1.
  1// SPDX-License-Identifier: GPL-2.0
  2/*
  3 * SH7786 Pinmux
  4 *
  5 * Copyright (C) 2008, 2009  Renesas Solutions Corp.
  6 * Kuninori Morimoto <morimoto.kuninori@renesas.com>
  7 *
  8 *  Based on SH7785 pinmux
  9 *
 10 *  Copyright (C) 2008  Magnus Damm
 11 */
 12
 13#include <linux/init.h>
 14#include <linux/kernel.h>
 15#include <cpu/sh7786.h>
 16
 17#include "sh_pfc.h"
 18
 19enum {
 20	PINMUX_RESERVED = 0,
 21
 22	PINMUX_DATA_BEGIN,
 23	PA7_DATA, PA6_DATA, PA5_DATA, PA4_DATA,
 24	PA3_DATA, PA2_DATA, PA1_DATA, PA0_DATA,
 25	PB7_DATA, PB6_DATA, PB5_DATA, PB4_DATA,
 26	PB3_DATA, PB2_DATA, PB1_DATA, PB0_DATA,
 27	PC7_DATA, PC6_DATA, PC5_DATA, PC4_DATA,
 28	PC3_DATA, PC2_DATA, PC1_DATA, PC0_DATA,
 29	PD7_DATA, PD6_DATA, PD5_DATA, PD4_DATA,
 30	PD3_DATA, PD2_DATA, PD1_DATA, PD0_DATA,
 31	PE7_DATA, PE6_DATA,
 32	PF7_DATA, PF6_DATA, PF5_DATA, PF4_DATA,
 33	PF3_DATA, PF2_DATA, PF1_DATA, PF0_DATA,
 34	PG7_DATA, PG6_DATA, PG5_DATA,
 35	PH7_DATA, PH6_DATA, PH5_DATA, PH4_DATA,
 36	PH3_DATA, PH2_DATA, PH1_DATA, PH0_DATA,
 37	PJ7_DATA, PJ6_DATA, PJ5_DATA, PJ4_DATA,
 38	PJ3_DATA, PJ2_DATA, PJ1_DATA,
 39	PINMUX_DATA_END,
 40
 41	PINMUX_INPUT_BEGIN,
 42	PA7_IN, PA6_IN, PA5_IN, PA4_IN,
 43	PA3_IN, PA2_IN, PA1_IN, PA0_IN,
 44	PB7_IN, PB6_IN, PB5_IN, PB4_IN,
 45	PB3_IN, PB2_IN, PB1_IN, PB0_IN,
 46	PC7_IN, PC6_IN, PC5_IN, PC4_IN,
 47	PC3_IN, PC2_IN, PC1_IN, PC0_IN,
 48	PD7_IN, PD6_IN, PD5_IN, PD4_IN,
 49	PD3_IN, PD2_IN, PD1_IN, PD0_IN,
 50	PE7_IN, PE6_IN,
 51	PF7_IN, PF6_IN, PF5_IN, PF4_IN,
 52	PF3_IN, PF2_IN, PF1_IN, PF0_IN,
 53	PG7_IN, PG6_IN, PG5_IN,
 54	PH7_IN, PH6_IN, PH5_IN, PH4_IN,
 55	PH3_IN, PH2_IN, PH1_IN, PH0_IN,
 56	PJ7_IN, PJ6_IN, PJ5_IN, PJ4_IN,
 57	PJ3_IN, PJ2_IN, PJ1_IN,
 58	PINMUX_INPUT_END,
 59
 60	PINMUX_OUTPUT_BEGIN,
 61	PA7_OUT, PA6_OUT, PA5_OUT, PA4_OUT,
 62	PA3_OUT, PA2_OUT, PA1_OUT, PA0_OUT,
 63	PB7_OUT, PB6_OUT, PB5_OUT, PB4_OUT,
 64	PB3_OUT, PB2_OUT, PB1_OUT, PB0_OUT,
 65	PC7_OUT, PC6_OUT, PC5_OUT, PC4_OUT,
 66	PC3_OUT, PC2_OUT, PC1_OUT, PC0_OUT,
 67	PD7_OUT, PD6_OUT, PD5_OUT, PD4_OUT,
 68	PD3_OUT, PD2_OUT, PD1_OUT, PD0_OUT,
 69	PE7_OUT, PE6_OUT,
 70	PF7_OUT, PF6_OUT, PF5_OUT, PF4_OUT,
 71	PF3_OUT, PF2_OUT, PF1_OUT, PF0_OUT,
 72	PG7_OUT, PG6_OUT, PG5_OUT,
 73	PH7_OUT, PH6_OUT, PH5_OUT, PH4_OUT,
 74	PH3_OUT, PH2_OUT, PH1_OUT, PH0_OUT,
 75	PJ7_OUT, PJ6_OUT, PJ5_OUT, PJ4_OUT,
 76	PJ3_OUT, PJ2_OUT, PJ1_OUT,
 77	PINMUX_OUTPUT_END,
 78
 79	PINMUX_FUNCTION_BEGIN,
 80	PA7_FN, PA6_FN, PA5_FN, PA4_FN,
 81	PA3_FN, PA2_FN, PA1_FN, PA0_FN,
 82	PB7_FN, PB6_FN, PB5_FN, PB4_FN,
 83	PB3_FN, PB2_FN, PB1_FN, PB0_FN,
 84	PC7_FN, PC6_FN, PC5_FN, PC4_FN,
 85	PC3_FN, PC2_FN, PC1_FN, PC0_FN,
 86	PD7_FN, PD6_FN, PD5_FN, PD4_FN,
 87	PD3_FN, PD2_FN, PD1_FN, PD0_FN,
 88	PE7_FN, PE6_FN,
 89	PF7_FN, PF6_FN, PF5_FN, PF4_FN,
 90	PF3_FN, PF2_FN, PF1_FN, PF0_FN,
 91	PG7_FN, PG6_FN, PG5_FN,
 92	PH7_FN, PH6_FN, PH5_FN, PH4_FN,
 93	PH3_FN, PH2_FN, PH1_FN, PH0_FN,
 94	PJ7_FN, PJ6_FN, PJ5_FN, PJ4_FN,
 95	PJ3_FN, PJ2_FN, PJ1_FN,
 96	P1MSEL14_0, P1MSEL14_1,
 97	P1MSEL13_0, P1MSEL13_1,
 98	P1MSEL12_0, P1MSEL12_1,
 99	P1MSEL11_0, P1MSEL11_1,
100	P1MSEL10_0, P1MSEL10_1,
101	P1MSEL9_0, P1MSEL9_1,
102	P1MSEL8_0, P1MSEL8_1,
103	P1MSEL7_0, P1MSEL7_1,
104	P1MSEL6_0, P1MSEL6_1,
105	P1MSEL5_0, P1MSEL5_1,
106	P1MSEL4_0, P1MSEL4_1,
107	P1MSEL3_0, P1MSEL3_1,
108	P1MSEL2_0, P1MSEL2_1,
109	P1MSEL1_0, P1MSEL1_1,
110	P1MSEL0_0, P1MSEL0_1,
111
112	P2MSEL15_0, P2MSEL15_1,
113	P2MSEL14_0, P2MSEL14_1,
114	P2MSEL13_0, P2MSEL13_1,
115	P2MSEL12_0, P2MSEL12_1,
116	P2MSEL11_0, P2MSEL11_1,
117	P2MSEL10_0, P2MSEL10_1,
118	P2MSEL9_0, P2MSEL9_1,
119	P2MSEL8_0, P2MSEL8_1,
120	P2MSEL7_0, P2MSEL7_1,
121	P2MSEL6_0, P2MSEL6_1,
122	P2MSEL5_0, P2MSEL5_1,
123	P2MSEL4_0, P2MSEL4_1,
124	P2MSEL3_0, P2MSEL3_1,
125	P2MSEL2_0, P2MSEL2_1,
126	P2MSEL1_0, P2MSEL1_1,
127	P2MSEL0_0, P2MSEL0_1,
128	PINMUX_FUNCTION_END,
129
130	PINMUX_MARK_BEGIN,
131	DCLKIN_MARK, DCLKOUT_MARK, ODDF_MARK,
132	VSYNC_MARK, HSYNC_MARK, CDE_MARK, DISP_MARK,
133	DR0_MARK, DR1_MARK, DR2_MARK, DR3_MARK, DR4_MARK, DR5_MARK,
134	DG0_MARK, DG1_MARK, DG2_MARK, DG3_MARK, DG4_MARK, DG5_MARK,
135	DB0_MARK, DB1_MARK, DB2_MARK, DB3_MARK, DB4_MARK, DB5_MARK,
136	ETH_MAGIC_MARK, ETH_LINK_MARK, ETH_TX_ER_MARK, ETH_TX_EN_MARK,
137	ETH_MDIO_MARK, ETH_RX_CLK_MARK, ETH_MDC_MARK, ETH_COL_MARK,
138	ETH_TX_CLK_MARK, ETH_CRS_MARK, ETH_RX_DV_MARK, ETH_RX_ER_MARK,
139	ETH_TXD3_MARK, ETH_TXD2_MARK, ETH_TXD1_MARK, ETH_TXD0_MARK,
140	ETH_RXD3_MARK, ETH_RXD2_MARK, ETH_RXD1_MARK, ETH_RXD0_MARK,
141	HSPI_CLK_MARK, HSPI_CS_MARK, HSPI_RX_MARK, HSPI_TX_MARK,
142	SCIF0_CTS_MARK, SCIF0_RTS_MARK,
143	SCIF0_SCK_MARK, SCIF0_RXD_MARK, SCIF0_TXD_MARK,
144	SCIF1_SCK_MARK, SCIF1_RXD_MARK, SCIF1_TXD_MARK,
145	SCIF3_SCK_MARK, SCIF3_RXD_MARK, SCIF3_TXD_MARK,
146	SCIF4_SCK_MARK, SCIF4_RXD_MARK, SCIF4_TXD_MARK,
147	SCIF5_SCK_MARK, SCIF5_RXD_MARK, SCIF5_TXD_MARK,
148	BREQ_MARK, IOIS16_MARK, CE2B_MARK, CE2A_MARK, BACK_MARK,
149	FALE_MARK, FRB_MARK, FSTATUS_MARK,
150	FSE_MARK, FCLE_MARK,
151	DACK0_MARK, DACK1_MARK, DACK2_MARK, DACK3_MARK,
152	DREQ0_MARK, DREQ1_MARK, DREQ2_MARK, DREQ3_MARK,
153	DRAK0_MARK, DRAK1_MARK, DRAK2_MARK, DRAK3_MARK,
154	USB_OVC1_MARK, USB_OVC0_MARK,
155	USB_PENC1_MARK, USB_PENC0_MARK,
156	HAC_RES_MARK,
157	HAC1_SDOUT_MARK, HAC1_SDIN_MARK, HAC1_SYNC_MARK, HAC1_BITCLK_MARK,
158	HAC0_SDOUT_MARK, HAC0_SDIN_MARK, HAC0_SYNC_MARK, HAC0_BITCLK_MARK,
159	SSI0_SDATA_MARK, SSI0_SCK_MARK, SSI0_WS_MARK, SSI0_CLK_MARK,
160	SSI1_SDATA_MARK, SSI1_SCK_MARK, SSI1_WS_MARK, SSI1_CLK_MARK,
161	SSI2_SDATA_MARK, SSI2_SCK_MARK, SSI2_WS_MARK,
162	SSI3_SDATA_MARK, SSI3_SCK_MARK, SSI3_WS_MARK,
163	SDIF1CMD_MARK, SDIF1CD_MARK, SDIF1WP_MARK, SDIF1CLK_MARK,
164	SDIF1D3_MARK, SDIF1D2_MARK, SDIF1D1_MARK, SDIF1D0_MARK,
165	SDIF0CMD_MARK, SDIF0CD_MARK, SDIF0WP_MARK, SDIF0CLK_MARK,
166	SDIF0D3_MARK, SDIF0D2_MARK, SDIF0D1_MARK, SDIF0D0_MARK,
167	TCLK_MARK,
168	IRL7_MARK, IRL6_MARK, IRL5_MARK, IRL4_MARK,
169	PINMUX_MARK_END,
170};
171
172static const u16 pinmux_data[] = {
173	/* PA GPIO */
174	PINMUX_DATA(PA7_DATA, PA7_IN, PA7_OUT),
175	PINMUX_DATA(PA6_DATA, PA6_IN, PA6_OUT),
176	PINMUX_DATA(PA5_DATA, PA5_IN, PA5_OUT),
177	PINMUX_DATA(PA4_DATA, PA4_IN, PA4_OUT),
178	PINMUX_DATA(PA3_DATA, PA3_IN, PA3_OUT),
179	PINMUX_DATA(PA2_DATA, PA2_IN, PA2_OUT),
180	PINMUX_DATA(PA1_DATA, PA1_IN, PA1_OUT),
181	PINMUX_DATA(PA0_DATA, PA0_IN, PA0_OUT),
182
183	/* PB GPIO */
184	PINMUX_DATA(PB7_DATA, PB7_IN, PB7_OUT),
185	PINMUX_DATA(PB6_DATA, PB6_IN, PB6_OUT),
186	PINMUX_DATA(PB5_DATA, PB5_IN, PB5_OUT),
187	PINMUX_DATA(PB4_DATA, PB4_IN, PB4_OUT),
188	PINMUX_DATA(PB3_DATA, PB3_IN, PB3_OUT),
189	PINMUX_DATA(PB2_DATA, PB2_IN, PB2_OUT),
190	PINMUX_DATA(PB1_DATA, PB1_IN, PB1_OUT),
191	PINMUX_DATA(PB0_DATA, PB0_IN, PB0_OUT),
192
193	/* PC GPIO */
194	PINMUX_DATA(PC7_DATA, PC7_IN, PC7_OUT),
195	PINMUX_DATA(PC6_DATA, PC6_IN, PC6_OUT),
196	PINMUX_DATA(PC5_DATA, PC5_IN, PC5_OUT),
197	PINMUX_DATA(PC4_DATA, PC4_IN, PC4_OUT),
198	PINMUX_DATA(PC3_DATA, PC3_IN, PC3_OUT),
199	PINMUX_DATA(PC2_DATA, PC2_IN, PC2_OUT),
200	PINMUX_DATA(PC1_DATA, PC1_IN, PC1_OUT),
201	PINMUX_DATA(PC0_DATA, PC0_IN, PC0_OUT),
202
203	/* PD GPIO */
204	PINMUX_DATA(PD7_DATA, PD7_IN, PD7_OUT),
205	PINMUX_DATA(PD6_DATA, PD6_IN, PD6_OUT),
206	PINMUX_DATA(PD5_DATA, PD5_IN, PD5_OUT),
207	PINMUX_DATA(PD4_DATA, PD4_IN, PD4_OUT),
208	PINMUX_DATA(PD3_DATA, PD3_IN, PD3_OUT),
209	PINMUX_DATA(PD2_DATA, PD2_IN, PD2_OUT),
210	PINMUX_DATA(PD1_DATA, PD1_IN, PD1_OUT),
211	PINMUX_DATA(PD0_DATA, PD0_IN, PD0_OUT),
212
213	/* PE GPIO */
214	PINMUX_DATA(PE7_DATA, PE7_IN, PE7_OUT),
215	PINMUX_DATA(PE6_DATA, PE6_IN, PE6_OUT),
216
217	/* PF GPIO */
218	PINMUX_DATA(PF7_DATA, PF7_IN, PF7_OUT),
219	PINMUX_DATA(PF6_DATA, PF6_IN, PF6_OUT),
220	PINMUX_DATA(PF5_DATA, PF5_IN, PF5_OUT),
221	PINMUX_DATA(PF4_DATA, PF4_IN, PF4_OUT),
222	PINMUX_DATA(PF3_DATA, PF3_IN, PF3_OUT),
223	PINMUX_DATA(PF2_DATA, PF2_IN, PF2_OUT),
224	PINMUX_DATA(PF1_DATA, PF1_IN, PF1_OUT),
225	PINMUX_DATA(PF0_DATA, PF0_IN, PF0_OUT),
226
227	/* PG GPIO */
228	PINMUX_DATA(PG7_DATA, PG7_IN, PG7_OUT),
229	PINMUX_DATA(PG6_DATA, PG6_IN, PG6_OUT),
230	PINMUX_DATA(PG5_DATA, PG5_IN, PG5_OUT),
231
232	/* PH GPIO */
233	PINMUX_DATA(PH7_DATA, PH7_IN, PH7_OUT),
234	PINMUX_DATA(PH6_DATA, PH6_IN, PH6_OUT),
235	PINMUX_DATA(PH5_DATA, PH5_IN, PH5_OUT),
236	PINMUX_DATA(PH4_DATA, PH4_IN, PH4_OUT),
237	PINMUX_DATA(PH3_DATA, PH3_IN, PH3_OUT),
238	PINMUX_DATA(PH2_DATA, PH2_IN, PH2_OUT),
239	PINMUX_DATA(PH1_DATA, PH1_IN, PH1_OUT),
240	PINMUX_DATA(PH0_DATA, PH0_IN, PH0_OUT),
241
242	/* PJ GPIO */
243	PINMUX_DATA(PJ7_DATA, PJ7_IN, PJ7_OUT),
244	PINMUX_DATA(PJ6_DATA, PJ6_IN, PJ6_OUT),
245	PINMUX_DATA(PJ5_DATA, PJ5_IN, PJ5_OUT),
246	PINMUX_DATA(PJ4_DATA, PJ4_IN, PJ4_OUT),
247	PINMUX_DATA(PJ3_DATA, PJ3_IN, PJ3_OUT),
248	PINMUX_DATA(PJ2_DATA, PJ2_IN, PJ2_OUT),
249	PINMUX_DATA(PJ1_DATA, PJ1_IN, PJ1_OUT),
250
251	/* PA FN */
252	PINMUX_DATA(CDE_MARK,		P1MSEL2_0, PA7_FN),
253	PINMUX_DATA(DISP_MARK,		P1MSEL2_0, PA6_FN),
254	PINMUX_DATA(DR5_MARK,		P1MSEL2_0, PA5_FN),
255	PINMUX_DATA(DR4_MARK,		P1MSEL2_0, PA4_FN),
256	PINMUX_DATA(DR3_MARK,		P1MSEL2_0, PA3_FN),
257	PINMUX_DATA(DR2_MARK,		P1MSEL2_0, PA2_FN),
258	PINMUX_DATA(DR1_MARK,		P1MSEL2_0, PA1_FN),
259	PINMUX_DATA(DR0_MARK,		P1MSEL2_0, PA0_FN),
260	PINMUX_DATA(ETH_MAGIC_MARK,	P1MSEL2_1, PA7_FN),
261	PINMUX_DATA(ETH_LINK_MARK,	P1MSEL2_1, PA6_FN),
262	PINMUX_DATA(ETH_TX_ER_MARK,	P1MSEL2_1, PA5_FN),
263	PINMUX_DATA(ETH_TX_EN_MARK,	P1MSEL2_1, PA4_FN),
264	PINMUX_DATA(ETH_TXD3_MARK,	P1MSEL2_1, PA3_FN),
265	PINMUX_DATA(ETH_TXD2_MARK,	P1MSEL2_1, PA2_FN),
266	PINMUX_DATA(ETH_TXD1_MARK,	P1MSEL2_1, PA1_FN),
267	PINMUX_DATA(ETH_TXD0_MARK,	P1MSEL2_1, PA0_FN),
268
269	/* PB FN */
270	PINMUX_DATA(VSYNC_MARK,		P1MSEL3_0, PB7_FN),
271	PINMUX_DATA(ODDF_MARK,		P1MSEL3_0, PB6_FN),
272	PINMUX_DATA(DG5_MARK,		P1MSEL2_0, PB5_FN),
273	PINMUX_DATA(DG4_MARK,		P1MSEL2_0, PB4_FN),
274	PINMUX_DATA(DG3_MARK,		P1MSEL2_0, PB3_FN),
275	PINMUX_DATA(DG2_MARK,		P1MSEL2_0, PB2_FN),
276	PINMUX_DATA(DG1_MARK,		P1MSEL2_0, PB1_FN),
277	PINMUX_DATA(DG0_MARK,		P1MSEL2_0, PB0_FN),
278	PINMUX_DATA(HSPI_CLK_MARK,	P1MSEL3_1, PB7_FN),
279	PINMUX_DATA(HSPI_CS_MARK,	P1MSEL3_1, PB6_FN),
280	PINMUX_DATA(ETH_MDIO_MARK,	P1MSEL2_1, PB5_FN),
281	PINMUX_DATA(ETH_RX_CLK_MARK,	P1MSEL2_1, PB4_FN),
282	PINMUX_DATA(ETH_MDC_MARK,	P1MSEL2_1, PB3_FN),
283	PINMUX_DATA(ETH_COL_MARK,	P1MSEL2_1, PB2_FN),
284	PINMUX_DATA(ETH_TX_CLK_MARK,	P1MSEL2_1, PB1_FN),
285	PINMUX_DATA(ETH_CRS_MARK,	P1MSEL2_1, PB0_FN),
286
287	/* PC FN */
288	PINMUX_DATA(DCLKIN_MARK,	P1MSEL3_0, PC7_FN),
289	PINMUX_DATA(HSYNC_MARK,		P1MSEL3_0, PC6_FN),
290	PINMUX_DATA(DB5_MARK,		P1MSEL2_0, PC5_FN),
291	PINMUX_DATA(DB4_MARK,		P1MSEL2_0, PC4_FN),
292	PINMUX_DATA(DB3_MARK,		P1MSEL2_0, PC3_FN),
293	PINMUX_DATA(DB2_MARK,		P1MSEL2_0, PC2_FN),
294	PINMUX_DATA(DB1_MARK,		P1MSEL2_0, PC1_FN),
295	PINMUX_DATA(DB0_MARK,		P1MSEL2_0, PC0_FN),
296
297	PINMUX_DATA(HSPI_RX_MARK,	P1MSEL3_1, PC7_FN),
298	PINMUX_DATA(HSPI_TX_MARK,	P1MSEL3_1, PC6_FN),
299	PINMUX_DATA(ETH_RXD3_MARK,	P1MSEL2_1, PC5_FN),
300	PINMUX_DATA(ETH_RXD2_MARK,	P1MSEL2_1, PC4_FN),
301	PINMUX_DATA(ETH_RXD1_MARK,	P1MSEL2_1, PC3_FN),
302	PINMUX_DATA(ETH_RXD0_MARK,	P1MSEL2_1, PC2_FN),
303	PINMUX_DATA(ETH_RX_DV_MARK,	P1MSEL2_1, PC1_FN),
304	PINMUX_DATA(ETH_RX_ER_MARK,	P1MSEL2_1, PC0_FN),
305
306	/* PD FN */
307	PINMUX_DATA(DCLKOUT_MARK,	PD7_FN),
308	PINMUX_DATA(SCIF1_SCK_MARK,	PD6_FN),
309	PINMUX_DATA(SCIF1_RXD_MARK,	PD5_FN),
310	PINMUX_DATA(SCIF1_TXD_MARK,	PD4_FN),
311	PINMUX_DATA(DACK1_MARK,		P1MSEL13_1, P1MSEL12_0, PD3_FN),
312	PINMUX_DATA(BACK_MARK,		P1MSEL13_0, P1MSEL12_1, PD3_FN),
313	PINMUX_DATA(FALE_MARK,		P1MSEL13_0, P1MSEL12_0, PD3_FN),
314	PINMUX_DATA(DACK0_MARK,		P1MSEL14_1, PD2_FN),
315	PINMUX_DATA(FCLE_MARK,		P1MSEL14_0, PD2_FN),
316	PINMUX_DATA(DREQ1_MARK,		P1MSEL10_0, P1MSEL9_1, PD1_FN),
317	PINMUX_DATA(BREQ_MARK,		P1MSEL10_1, P1MSEL9_0, PD1_FN),
318	PINMUX_DATA(USB_OVC1_MARK,	P1MSEL10_0, P1MSEL9_0, PD1_FN),
319	PINMUX_DATA(DREQ0_MARK,		P1MSEL11_1, PD0_FN),
320	PINMUX_DATA(USB_OVC0_MARK,	P1MSEL11_0, PD0_FN),
321
322	/* PE FN */
323	PINMUX_DATA(USB_PENC1_MARK,	PE7_FN),
324	PINMUX_DATA(USB_PENC0_MARK,	PE6_FN),
325
326	/* PF FN */
327	PINMUX_DATA(HAC1_SDOUT_MARK,	P2MSEL15_0, P2MSEL14_0, PF7_FN),
328	PINMUX_DATA(HAC1_SDIN_MARK,	P2MSEL15_0, P2MSEL14_0, PF6_FN),
329	PINMUX_DATA(HAC1_SYNC_MARK,	P2MSEL15_0, P2MSEL14_0, PF5_FN),
330	PINMUX_DATA(HAC1_BITCLK_MARK,	P2MSEL15_0, P2MSEL14_0, PF4_FN),
331	PINMUX_DATA(HAC0_SDOUT_MARK,	P2MSEL13_0, P2MSEL12_0, PF3_FN),
332	PINMUX_DATA(HAC0_SDIN_MARK,	P2MSEL13_0, P2MSEL12_0, PF2_FN),
333	PINMUX_DATA(HAC0_SYNC_MARK,	P2MSEL13_0, P2MSEL12_0, PF1_FN),
334	PINMUX_DATA(HAC0_BITCLK_MARK,	P2MSEL13_0, P2MSEL12_0, PF0_FN),
335	PINMUX_DATA(SSI1_SDATA_MARK,	P2MSEL15_0, P2MSEL14_1, PF7_FN),
336	PINMUX_DATA(SSI1_SCK_MARK,	P2MSEL15_0, P2MSEL14_1, PF6_FN),
337	PINMUX_DATA(SSI1_WS_MARK,	P2MSEL15_0, P2MSEL14_1, PF5_FN),
338	PINMUX_DATA(SSI1_CLK_MARK,	P2MSEL15_0, P2MSEL14_1, PF4_FN),
339	PINMUX_DATA(SSI0_SDATA_MARK,	P2MSEL13_0, P2MSEL12_1, PF3_FN),
340	PINMUX_DATA(SSI0_SCK_MARK,	P2MSEL13_0, P2MSEL12_1, PF2_FN),
341	PINMUX_DATA(SSI0_WS_MARK,	P2MSEL13_0, P2MSEL12_1, PF1_FN),
342	PINMUX_DATA(SSI0_CLK_MARK,	P2MSEL13_0, P2MSEL12_1, PF0_FN),
343	PINMUX_DATA(SDIF1CMD_MARK,	P2MSEL15_1, P2MSEL14_0, PF7_FN),
344	PINMUX_DATA(SDIF1CD_MARK,	P2MSEL15_1, P2MSEL14_0, PF6_FN),
345	PINMUX_DATA(SDIF1WP_MARK,	P2MSEL15_1, P2MSEL14_0, PF5_FN),
346	PINMUX_DATA(SDIF1CLK_MARK,	P2MSEL15_1, P2MSEL14_0, PF4_FN),
347	PINMUX_DATA(SDIF1D3_MARK,	P2MSEL13_1, P2MSEL12_0, PF3_FN),
348	PINMUX_DATA(SDIF1D2_MARK,	P2MSEL13_1, P2MSEL12_0, PF2_FN),
349	PINMUX_DATA(SDIF1D1_MARK,	P2MSEL13_1, P2MSEL12_0, PF1_FN),
350	PINMUX_DATA(SDIF1D0_MARK,	P2MSEL13_1, P2MSEL12_0, PF0_FN),
351
352	/* PG FN */
353	PINMUX_DATA(SCIF3_SCK_MARK,	P1MSEL8_0, PG7_FN),
354	PINMUX_DATA(SSI2_SDATA_MARK,	P1MSEL8_1, PG7_FN),
355	PINMUX_DATA(SCIF3_RXD_MARK,	P1MSEL7_0, P1MSEL6_0, PG6_FN),
356	PINMUX_DATA(SSI2_SCK_MARK,	P1MSEL7_1, P1MSEL6_0, PG6_FN),
357	PINMUX_DATA(TCLK_MARK,		P1MSEL7_0, P1MSEL6_1, PG6_FN),
358	PINMUX_DATA(SCIF3_TXD_MARK,	P1MSEL5_0, P1MSEL4_0, PG5_FN),
359	PINMUX_DATA(SSI2_WS_MARK,	P1MSEL5_1, P1MSEL4_0, PG5_FN),
360	PINMUX_DATA(HAC_RES_MARK,	P1MSEL5_0, P1MSEL4_1, PG5_FN),
361
362	/* PH FN */
363	PINMUX_DATA(DACK3_MARK,		P2MSEL4_0, PH7_FN),
364	PINMUX_DATA(SDIF0CMD_MARK,	P2MSEL4_1, PH7_FN),
365	PINMUX_DATA(DACK2_MARK,		P2MSEL4_0, PH6_FN),
366	PINMUX_DATA(SDIF0CD_MARK,	P2MSEL4_1, PH6_FN),
367	PINMUX_DATA(DREQ3_MARK,		P2MSEL4_0, PH5_FN),
368	PINMUX_DATA(SDIF0WP_MARK,	P2MSEL4_1, PH5_FN),
369	PINMUX_DATA(DREQ2_MARK,		P2MSEL3_0, P2MSEL2_1, PH4_FN),
370	PINMUX_DATA(SDIF0CLK_MARK,	P2MSEL3_1, P2MSEL2_0, PH4_FN),
371	PINMUX_DATA(SCIF0_CTS_MARK,	P2MSEL3_0, P2MSEL2_0, PH4_FN),
372	PINMUX_DATA(SDIF0D3_MARK,	P2MSEL1_1, P2MSEL0_0, PH3_FN),
373	PINMUX_DATA(SCIF0_RTS_MARK,	P2MSEL1_0, P2MSEL0_0, PH3_FN),
374	PINMUX_DATA(IRL7_MARK,		P2MSEL1_0, P2MSEL0_1, PH3_FN),
375	PINMUX_DATA(SDIF0D2_MARK,	P2MSEL1_1, P2MSEL0_0, PH2_FN),
376	PINMUX_DATA(SCIF0_SCK_MARK,	P2MSEL1_0, P2MSEL0_0, PH2_FN),
377	PINMUX_DATA(IRL6_MARK,		P2MSEL1_0, P2MSEL0_1, PH2_FN),
378	PINMUX_DATA(SDIF0D1_MARK,	P2MSEL1_1, P2MSEL0_0, PH1_FN),
379	PINMUX_DATA(SCIF0_RXD_MARK,	P2MSEL1_0, P2MSEL0_0, PH1_FN),
380	PINMUX_DATA(IRL5_MARK,		P2MSEL1_0, P2MSEL0_1, PH1_FN),
381	PINMUX_DATA(SDIF0D0_MARK,	P2MSEL1_1, P2MSEL0_0, PH0_FN),
382	PINMUX_DATA(SCIF0_TXD_MARK,	P2MSEL1_0, P2MSEL0_0, PH0_FN),
383	PINMUX_DATA(IRL4_MARK,		P2MSEL1_0, P2MSEL0_1, PH0_FN),
384
385	/* PJ FN */
386	PINMUX_DATA(SCIF5_SCK_MARK,	P2MSEL11_1, PJ7_FN),
387	PINMUX_DATA(FRB_MARK,		P2MSEL11_0, PJ7_FN),
388	PINMUX_DATA(SCIF5_RXD_MARK,	P2MSEL10_0, PJ6_FN),
389	PINMUX_DATA(IOIS16_MARK,	P2MSEL10_1, PJ6_FN),
390	PINMUX_DATA(SCIF5_TXD_MARK,	P2MSEL10_0, PJ5_FN),
391	PINMUX_DATA(CE2B_MARK,		P2MSEL10_1, PJ5_FN),
392	PINMUX_DATA(DRAK3_MARK,		P2MSEL7_0, PJ4_FN),
393	PINMUX_DATA(CE2A_MARK,		P2MSEL7_1, PJ4_FN),
394	PINMUX_DATA(SCIF4_SCK_MARK,	P2MSEL9_0, P2MSEL8_0, PJ3_FN),
395	PINMUX_DATA(DRAK2_MARK,		P2MSEL9_0, P2MSEL8_1, PJ3_FN),
396	PINMUX_DATA(SSI3_WS_MARK,	P2MSEL9_1, P2MSEL8_0, PJ3_FN),
397	PINMUX_DATA(SCIF4_RXD_MARK,	P2MSEL6_1, P2MSEL5_0, PJ2_FN),
398	PINMUX_DATA(DRAK1_MARK,		P2MSEL6_0, P2MSEL5_1, PJ2_FN),
399	PINMUX_DATA(FSTATUS_MARK,	P2MSEL6_0, P2MSEL5_0, PJ2_FN),
400	PINMUX_DATA(SSI3_SDATA_MARK,	P2MSEL6_1, P2MSEL5_1, PJ2_FN),
401	PINMUX_DATA(SCIF4_TXD_MARK,	P2MSEL6_1, P2MSEL5_0, PJ1_FN),
402	PINMUX_DATA(DRAK0_MARK,		P2MSEL6_0, P2MSEL5_1, PJ1_FN),
403	PINMUX_DATA(FSE_MARK,		P2MSEL6_0, P2MSEL5_0, PJ1_FN),
404	PINMUX_DATA(SSI3_SCK_MARK,	P2MSEL6_1, P2MSEL5_1, PJ1_FN),
405};
406
407static const struct sh_pfc_pin pinmux_pins[] = {
408	/* PA */
409	PINMUX_GPIO(PA7),
410	PINMUX_GPIO(PA6),
411	PINMUX_GPIO(PA5),
412	PINMUX_GPIO(PA4),
413	PINMUX_GPIO(PA3),
414	PINMUX_GPIO(PA2),
415	PINMUX_GPIO(PA1),
416	PINMUX_GPIO(PA0),
417
418	/* PB */
419	PINMUX_GPIO(PB7),
420	PINMUX_GPIO(PB6),
421	PINMUX_GPIO(PB5),
422	PINMUX_GPIO(PB4),
423	PINMUX_GPIO(PB3),
424	PINMUX_GPIO(PB2),
425	PINMUX_GPIO(PB1),
426	PINMUX_GPIO(PB0),
427
428	/* PC */
429	PINMUX_GPIO(PC7),
430	PINMUX_GPIO(PC6),
431	PINMUX_GPIO(PC5),
432	PINMUX_GPIO(PC4),
433	PINMUX_GPIO(PC3),
434	PINMUX_GPIO(PC2),
435	PINMUX_GPIO(PC1),
436	PINMUX_GPIO(PC0),
437
438	/* PD */
439	PINMUX_GPIO(PD7),
440	PINMUX_GPIO(PD6),
441	PINMUX_GPIO(PD5),
442	PINMUX_GPIO(PD4),
443	PINMUX_GPIO(PD3),
444	PINMUX_GPIO(PD2),
445	PINMUX_GPIO(PD1),
446	PINMUX_GPIO(PD0),
447
448	/* PE */
449	PINMUX_GPIO(PE7),
450	PINMUX_GPIO(PE6),
451
452	/* PF */
453	PINMUX_GPIO(PF7),
454	PINMUX_GPIO(PF6),
455	PINMUX_GPIO(PF5),
456	PINMUX_GPIO(PF4),
457	PINMUX_GPIO(PF3),
458	PINMUX_GPIO(PF2),
459	PINMUX_GPIO(PF1),
460	PINMUX_GPIO(PF0),
461
462	/* PG */
463	PINMUX_GPIO(PG7),
464	PINMUX_GPIO(PG6),
465	PINMUX_GPIO(PG5),
466
467	/* PH */
468	PINMUX_GPIO(PH7),
469	PINMUX_GPIO(PH6),
470	PINMUX_GPIO(PH5),
471	PINMUX_GPIO(PH4),
472	PINMUX_GPIO(PH3),
473	PINMUX_GPIO(PH2),
474	PINMUX_GPIO(PH1),
475	PINMUX_GPIO(PH0),
476
477	/* PJ */
478	PINMUX_GPIO(PJ7),
479	PINMUX_GPIO(PJ6),
480	PINMUX_GPIO(PJ5),
481	PINMUX_GPIO(PJ4),
482	PINMUX_GPIO(PJ3),
483	PINMUX_GPIO(PJ2),
484	PINMUX_GPIO(PJ1),
485};
486
487#define PINMUX_FN_BASE	ARRAY_SIZE(pinmux_pins)
488
489static const struct pinmux_func pinmux_func_gpios[] = {
490	/* FN */
491	GPIO_FN(CDE),
492	GPIO_FN(ETH_MAGIC),
493	GPIO_FN(DISP),
494	GPIO_FN(ETH_LINK),
495	GPIO_FN(DR5),
496	GPIO_FN(ETH_TX_ER),
497	GPIO_FN(DR4),
498	GPIO_FN(ETH_TX_EN),
499	GPIO_FN(DR3),
500	GPIO_FN(ETH_TXD3),
501	GPIO_FN(DR2),
502	GPIO_FN(ETH_TXD2),
503	GPIO_FN(DR1),
504	GPIO_FN(ETH_TXD1),
505	GPIO_FN(DR0),
506	GPIO_FN(ETH_TXD0),
507	GPIO_FN(VSYNC),
508	GPIO_FN(HSPI_CLK),
509	GPIO_FN(ODDF),
510	GPIO_FN(HSPI_CS),
511	GPIO_FN(DG5),
512	GPIO_FN(ETH_MDIO),
513	GPIO_FN(DG4),
514	GPIO_FN(ETH_RX_CLK),
515	GPIO_FN(DG3),
516	GPIO_FN(ETH_MDC),
517	GPIO_FN(DG2),
518	GPIO_FN(ETH_COL),
519	GPIO_FN(DG1),
520	GPIO_FN(ETH_TX_CLK),
521	GPIO_FN(DG0),
522	GPIO_FN(ETH_CRS),
523	GPIO_FN(DCLKIN),
524	GPIO_FN(HSPI_RX),
525	GPIO_FN(HSYNC),
526	GPIO_FN(HSPI_TX),
527	GPIO_FN(DB5),
528	GPIO_FN(ETH_RXD3),
529	GPIO_FN(DB4),
530	GPIO_FN(ETH_RXD2),
531	GPIO_FN(DB3),
532	GPIO_FN(ETH_RXD1),
533	GPIO_FN(DB2),
534	GPIO_FN(ETH_RXD0),
535	GPIO_FN(DB1),
536	GPIO_FN(ETH_RX_DV),
537	GPIO_FN(DB0),
538	GPIO_FN(ETH_RX_ER),
539	GPIO_FN(DCLKOUT),
540	GPIO_FN(SCIF1_SCK),
541	GPIO_FN(SCIF1_RXD),
542	GPIO_FN(SCIF1_TXD),
543	GPIO_FN(DACK1),
544	GPIO_FN(BACK),
545	GPIO_FN(FALE),
546	GPIO_FN(DACK0),
547	GPIO_FN(FCLE),
548	GPIO_FN(DREQ1),
549	GPIO_FN(BREQ),
550	GPIO_FN(USB_OVC1),
551	GPIO_FN(DREQ0),
552	GPIO_FN(USB_OVC0),
553	GPIO_FN(USB_PENC1),
554	GPIO_FN(USB_PENC0),
555	GPIO_FN(HAC1_SDOUT),
556	GPIO_FN(SSI1_SDATA),
557	GPIO_FN(SDIF1CMD),
558	GPIO_FN(HAC1_SDIN),
559	GPIO_FN(SSI1_SCK),
560	GPIO_FN(SDIF1CD),
561	GPIO_FN(HAC1_SYNC),
562	GPIO_FN(SSI1_WS),
563	GPIO_FN(SDIF1WP),
564	GPIO_FN(HAC1_BITCLK),
565	GPIO_FN(SSI1_CLK),
566	GPIO_FN(SDIF1CLK),
567	GPIO_FN(HAC0_SDOUT),
568	GPIO_FN(SSI0_SDATA),
569	GPIO_FN(SDIF1D3),
570	GPIO_FN(HAC0_SDIN),
571	GPIO_FN(SSI0_SCK),
572	GPIO_FN(SDIF1D2),
573	GPIO_FN(HAC0_SYNC),
574	GPIO_FN(SSI0_WS),
575	GPIO_FN(SDIF1D1),
576	GPIO_FN(HAC0_BITCLK),
577	GPIO_FN(SSI0_CLK),
578	GPIO_FN(SDIF1D0),
579	GPIO_FN(SCIF3_SCK),
580	GPIO_FN(SSI2_SDATA),
581	GPIO_FN(SCIF3_RXD),
582	GPIO_FN(TCLK),
583	GPIO_FN(SSI2_SCK),
584	GPIO_FN(SCIF3_TXD),
585	GPIO_FN(HAC_RES),
586	GPIO_FN(SSI2_WS),
587	GPIO_FN(DACK3),
588	GPIO_FN(SDIF0CMD),
589	GPIO_FN(DACK2),
590	GPIO_FN(SDIF0CD),
591	GPIO_FN(DREQ3),
592	GPIO_FN(SDIF0WP),
593	GPIO_FN(SCIF0_CTS),
594	GPIO_FN(DREQ2),
595	GPIO_FN(SDIF0CLK),
596	GPIO_FN(SCIF0_RTS),
597	GPIO_FN(IRL7),
598	GPIO_FN(SDIF0D3),
599	GPIO_FN(SCIF0_SCK),
600	GPIO_FN(IRL6),
601	GPIO_FN(SDIF0D2),
602	GPIO_FN(SCIF0_RXD),
603	GPIO_FN(IRL5),
604	GPIO_FN(SDIF0D1),
605	GPIO_FN(SCIF0_TXD),
606	GPIO_FN(IRL4),
607	GPIO_FN(SDIF0D0),
608	GPIO_FN(SCIF5_SCK),
609	GPIO_FN(FRB),
610	GPIO_FN(SCIF5_RXD),
611	GPIO_FN(IOIS16),
612	GPIO_FN(SCIF5_TXD),
613	GPIO_FN(CE2B),
614	GPIO_FN(DRAK3),
615	GPIO_FN(CE2A),
616	GPIO_FN(SCIF4_SCK),
617	GPIO_FN(DRAK2),
618	GPIO_FN(SSI3_WS),
619	GPIO_FN(SCIF4_RXD),
620	GPIO_FN(DRAK1),
621	GPIO_FN(SSI3_SDATA),
622	GPIO_FN(FSTATUS),
623	GPIO_FN(SCIF4_TXD),
624	GPIO_FN(DRAK0),
625	GPIO_FN(SSI3_SCK),
626	GPIO_FN(FSE),
627};
628
629static const struct pinmux_cfg_reg pinmux_config_regs[] = {
630	{ PINMUX_CFG_REG("PACR", 0xffcc0000, 16, 2, GROUP(
631		PA7_FN, PA7_OUT, PA7_IN, 0,
632		PA6_FN, PA6_OUT, PA6_IN, 0,
633		PA5_FN, PA5_OUT, PA5_IN, 0,
634		PA4_FN, PA4_OUT, PA4_IN, 0,
635		PA3_FN, PA3_OUT, PA3_IN, 0,
636		PA2_FN, PA2_OUT, PA2_IN, 0,
637		PA1_FN, PA1_OUT, PA1_IN, 0,
638		PA0_FN, PA0_OUT, PA0_IN, 0 ))
639	},
640	{ PINMUX_CFG_REG("PBCR", 0xffcc0002, 16, 2, GROUP(
641		PB7_FN, PB7_OUT, PB7_IN, 0,
642		PB6_FN, PB6_OUT, PB6_IN, 0,
643		PB5_FN, PB5_OUT, PB5_IN, 0,
644		PB4_FN, PB4_OUT, PB4_IN, 0,
645		PB3_FN, PB3_OUT, PB3_IN, 0,
646		PB2_FN, PB2_OUT, PB2_IN, 0,
647		PB1_FN, PB1_OUT, PB1_IN, 0,
648		PB0_FN, PB0_OUT, PB0_IN, 0 ))
649	},
650	{ PINMUX_CFG_REG("PCCR", 0xffcc0004, 16, 2, GROUP(
651		PC7_FN, PC7_OUT, PC7_IN, 0,
652		PC6_FN, PC6_OUT, PC6_IN, 0,
653		PC5_FN, PC5_OUT, PC5_IN, 0,
654		PC4_FN, PC4_OUT, PC4_IN, 0,
655		PC3_FN, PC3_OUT, PC3_IN, 0,
656		PC2_FN, PC2_OUT, PC2_IN, 0,
657		PC1_FN, PC1_OUT, PC1_IN, 0,
658		PC0_FN, PC0_OUT, PC0_IN, 0 ))
659	},
660	{ PINMUX_CFG_REG("PDCR", 0xffcc0006, 16, 2, GROUP(
661		PD7_FN, PD7_OUT, PD7_IN, 0,
662		PD6_FN, PD6_OUT, PD6_IN, 0,
663		PD5_FN, PD5_OUT, PD5_IN, 0,
664		PD4_FN, PD4_OUT, PD4_IN, 0,
665		PD3_FN, PD3_OUT, PD3_IN, 0,
666		PD2_FN, PD2_OUT, PD2_IN, 0,
667		PD1_FN, PD1_OUT, PD1_IN, 0,
668		PD0_FN, PD0_OUT, PD0_IN, 0 ))
669	},
670	{ PINMUX_CFG_REG("PECR", 0xffcc0008, 16, 2, GROUP(
671		PE7_FN, PE7_OUT, PE7_IN, 0,
672		PE6_FN, PE6_OUT, PE6_IN, 0,
673		0, 0, 0, 0,
674		0, 0, 0, 0,
675		0, 0, 0, 0,
676		0, 0, 0, 0,
677		0, 0, 0, 0,
678		0, 0, 0, 0, ))
679	},
680	{ PINMUX_CFG_REG("PFCR", 0xffcc000a, 16, 2, GROUP(
681		PF7_FN, PF7_OUT, PF7_IN, 0,
682		PF6_FN, PF6_OUT, PF6_IN, 0,
683		PF5_FN, PF5_OUT, PF5_IN, 0,
684		PF4_FN, PF4_OUT, PF4_IN, 0,
685		PF3_FN, PF3_OUT, PF3_IN, 0,
686		PF2_FN, PF2_OUT, PF2_IN, 0,
687		PF1_FN, PF1_OUT, PF1_IN, 0,
688		PF0_FN, PF0_OUT, PF0_IN, 0 ))
689	},
690	{ PINMUX_CFG_REG("PGCR", 0xffcc000c, 16, 2, GROUP(
691		PG7_FN, PG7_OUT, PG7_IN, 0,
692		PG6_FN, PG6_OUT, PG6_IN, 0,
693		PG5_FN, PG5_OUT, PG5_IN, 0,
694		0, 0, 0, 0,
695		0, 0, 0, 0,
696		0, 0, 0, 0,
697		0, 0, 0, 0,
698		0, 0, 0, 0, ))
699	},
700	{ PINMUX_CFG_REG("PHCR", 0xffcc000e, 16, 2, GROUP(
701		PH7_FN, PH7_OUT, PH7_IN, 0,
702		PH6_FN, PH6_OUT, PH6_IN, 0,
703		PH5_FN, PH5_OUT, PH5_IN, 0,
704		PH4_FN, PH4_OUT, PH4_IN, 0,
705		PH3_FN, PH3_OUT, PH3_IN, 0,
706		PH2_FN, PH2_OUT, PH2_IN, 0,
707		PH1_FN, PH1_OUT, PH1_IN, 0,
708		PH0_FN, PH0_OUT, PH0_IN, 0 ))
709	},
710	{ PINMUX_CFG_REG("PJCR", 0xffcc0010, 16, 2, GROUP(
711		PJ7_FN, PJ7_OUT, PJ7_IN, 0,
712		PJ6_FN, PJ6_OUT, PJ6_IN, 0,
713		PJ5_FN, PJ5_OUT, PJ5_IN, 0,
714		PJ4_FN, PJ4_OUT, PJ4_IN, 0,
715		PJ3_FN, PJ3_OUT, PJ3_IN, 0,
716		PJ2_FN, PJ2_OUT, PJ2_IN, 0,
717		PJ1_FN, PJ1_OUT, PJ1_IN, 0,
718		0, 0, 0, 0, ))
719	},
720	{ PINMUX_CFG_REG("P1MSELR", 0xffcc0080, 16, 1, GROUP(
721		0, 0,
722		P1MSEL14_0, P1MSEL14_1,
723		P1MSEL13_0, P1MSEL13_1,
724		P1MSEL12_0, P1MSEL12_1,
725		P1MSEL11_0, P1MSEL11_1,
726		P1MSEL10_0, P1MSEL10_1,
727		P1MSEL9_0,  P1MSEL9_1,
728		P1MSEL8_0,  P1MSEL8_1,
729		P1MSEL7_0,  P1MSEL7_1,
730		P1MSEL6_0,  P1MSEL6_1,
731		P1MSEL5_0,  P1MSEL5_1,
732		P1MSEL4_0,  P1MSEL4_1,
733		P1MSEL3_0,  P1MSEL3_1,
734		P1MSEL2_0,  P1MSEL2_1,
735		P1MSEL1_0,  P1MSEL1_1,
736		P1MSEL0_0,  P1MSEL0_1 ))
737	},
738	{ PINMUX_CFG_REG("P2MSELR", 0xffcc0082, 16, 1, GROUP(
739		P2MSEL15_0, P2MSEL15_1,
740		P2MSEL14_0, P2MSEL14_1,
741		P2MSEL13_0, P2MSEL13_1,
742		P2MSEL12_0, P2MSEL12_1,
743		P2MSEL11_0, P2MSEL11_1,
744		P2MSEL10_0, P2MSEL10_1,
745		P2MSEL9_0,  P2MSEL9_1,
746		P2MSEL8_0,  P2MSEL8_1,
747		P2MSEL7_0,  P2MSEL7_1,
748		P2MSEL6_0,  P2MSEL6_1,
749		P2MSEL5_0,  P2MSEL5_1,
750		P2MSEL4_0,  P2MSEL4_1,
751		P2MSEL3_0,  P2MSEL3_1,
752		P2MSEL2_0,  P2MSEL2_1,
753		P2MSEL1_0,  P2MSEL1_1,
754		P2MSEL0_0,  P2MSEL0_1 ))
755	},
756	{}
757};
758
759static const struct pinmux_data_reg pinmux_data_regs[] = {
760	{ PINMUX_DATA_REG("PADR", 0xffcc0020, 8, GROUP(
761		PA7_DATA, PA6_DATA, PA5_DATA, PA4_DATA,
762		PA3_DATA, PA2_DATA, PA1_DATA, PA0_DATA ))
763	},
764	{ PINMUX_DATA_REG("PBDR", 0xffcc0022, 8, GROUP(
765		PB7_DATA, PB6_DATA, PB5_DATA, PB4_DATA,
766		PB3_DATA, PB2_DATA, PB1_DATA, PB0_DATA ))
767	},
768	{ PINMUX_DATA_REG("PCDR", 0xffcc0024, 8, GROUP(
769		PC7_DATA, PC6_DATA, PC5_DATA, PC4_DATA,
770		PC3_DATA, PC2_DATA, PC1_DATA, PC0_DATA ))
771	},
772	{ PINMUX_DATA_REG("PDDR", 0xffcc0026, 8, GROUP(
773		PD7_DATA, PD6_DATA, PD5_DATA, PD4_DATA,
774		PD3_DATA, PD2_DATA, PD1_DATA, PD0_DATA ))
775	},
776	{ PINMUX_DATA_REG("PEDR", 0xffcc0028, 8, GROUP(
777		PE7_DATA, PE6_DATA,
778		0, 0, 0, 0, 0, 0 ))
779	},
780	{ PINMUX_DATA_REG("PFDR", 0xffcc002a, 8, GROUP(
781		PF7_DATA, PF6_DATA, PF5_DATA, PF4_DATA,
782		PF3_DATA, PF2_DATA, PF1_DATA, PF0_DATA ))
783	},
784	{ PINMUX_DATA_REG("PGDR", 0xffcc002c, 8, GROUP(
785		PG7_DATA, PG6_DATA, PG5_DATA, 0,
786		0, 0, 0, 0 ))
787	},
788	{ PINMUX_DATA_REG("PHDR", 0xffcc002e, 8, GROUP(
789		PH7_DATA, PH6_DATA, PH5_DATA, PH4_DATA,
790		PH3_DATA, PH2_DATA, PH1_DATA, PH0_DATA ))
791	},
792	{ PINMUX_DATA_REG("PJDR", 0xffcc0030, 8, GROUP(
793		PJ7_DATA, PJ6_DATA, PJ5_DATA, PJ4_DATA,
794		PJ3_DATA, PJ2_DATA, PJ1_DATA, 0 ))
795	},
796	{ },
797};
798
799const struct sh_pfc_soc_info sh7786_pinmux_info = {
800	.name = "sh7786_pfc",
801	.input = { PINMUX_INPUT_BEGIN, PINMUX_INPUT_END },
802	.output = { PINMUX_OUTPUT_BEGIN, PINMUX_OUTPUT_END },
803	.function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END },
804
805	.pins = pinmux_pins,
806	.nr_pins = ARRAY_SIZE(pinmux_pins),
807	.func_gpios = pinmux_func_gpios,
808	.nr_func_gpios = ARRAY_SIZE(pinmux_func_gpios),
809
810	.cfg_regs = pinmux_config_regs,
811	.data_regs = pinmux_data_regs,
812
813	.pinmux_data = pinmux_data,
814	.pinmux_data_size = ARRAY_SIZE(pinmux_data),
815};