xref: /openbmc/linux/arch/sh/include/cpu-sh4/cpu/sh7786.h (revision 96de2506)
1 /*
2  * SH7786 Pinmux
3  *
4  * Copyright (C) 2008, 2009  Renesas Solutions Corp.
5  * Kuninori Morimoto <morimoto.kuninori@renesas.com>
6  *
7  *  Based on sh7785.h
8  *
9  * This file is subject to the terms and conditions of the GNU General Public
10  * License.  See the file "COPYING" in the main directory of this archive
11  * for more details.
12  */
13 
14 #ifndef __CPU_SH7786_H__
15 #define __CPU_SH7786_H__
16 
17 #include <linux/io.h>
18 
19 enum {
20 	/* PA */
21 	GPIO_PA7, GPIO_PA6, GPIO_PA5, GPIO_PA4,
22 	GPIO_PA3, GPIO_PA2, GPIO_PA1, GPIO_PA0,
23 
24 	/* PB */
25 	GPIO_PB7, GPIO_PB6, GPIO_PB5, GPIO_PB4,
26 	GPIO_PB3, GPIO_PB2, GPIO_PB1, GPIO_PB0,
27 
28 	/* PC */
29 	GPIO_PC7, GPIO_PC6, GPIO_PC5, GPIO_PC4,
30 	GPIO_PC3, GPIO_PC2, GPIO_PC1, GPIO_PC0,
31 
32 	/* PD */
33 	GPIO_PD7, GPIO_PD6, GPIO_PD5, GPIO_PD4,
34 	GPIO_PD3, GPIO_PD2, GPIO_PD1, GPIO_PD0,
35 
36 	/* PE */
37 	GPIO_PE7, GPIO_PE6,
38 
39 	/* PF */
40 	GPIO_PF7, GPIO_PF6, GPIO_PF5, GPIO_PF4,
41 	GPIO_PF3, GPIO_PF2, GPIO_PF1, GPIO_PF0,
42 
43 	/* PG */
44 	GPIO_PG7, GPIO_PG6, GPIO_PG5,
45 
46 	/* PH */
47 	GPIO_PH7, GPIO_PH6, GPIO_PH5, GPIO_PH4,
48 	GPIO_PH3, GPIO_PH2, GPIO_PH1, GPIO_PH0,
49 
50 	/* PJ */
51 	GPIO_PJ7, GPIO_PJ6, GPIO_PJ5, GPIO_PJ4,
52 	GPIO_PJ3, GPIO_PJ2, GPIO_PJ1,
53 
54 	/* DU */
55 	GPIO_FN_DCLKIN, GPIO_FN_DCLKOUT, GPIO_FN_ODDF,
56 	GPIO_FN_VSYNC, GPIO_FN_HSYNC, GPIO_FN_CDE, GPIO_FN_DISP,
57 	GPIO_FN_DR0, GPIO_FN_DG0, GPIO_FN_DB0,
58 	GPIO_FN_DR1, GPIO_FN_DG1, GPIO_FN_DB1,
59 	GPIO_FN_DR2, GPIO_FN_DG2, GPIO_FN_DB2,
60 	GPIO_FN_DR3, GPIO_FN_DG3, GPIO_FN_DB3,
61 	GPIO_FN_DR4, GPIO_FN_DG4, GPIO_FN_DB4,
62 	GPIO_FN_DR5, GPIO_FN_DG5, GPIO_FN_DB5,
63 
64 	/* Eth */
65 	GPIO_FN_ETH_MAGIC, GPIO_FN_ETH_LINK, GPIO_FN_ETH_TX_ER,
66 	GPIO_FN_ETH_TX_EN, GPIO_FN_ETH_MDIO, GPIO_FN_ETH_RX_CLK,
67 	GPIO_FN_ETH_MDC, GPIO_FN_ETH_COL, GPIO_FN_ETH_TX_CLK,
68 	GPIO_FN_ETH_CRS, GPIO_FN_ETH_RX_DV, GPIO_FN_ETH_RX_ER,
69 	GPIO_FN_ETH_TXD3, GPIO_FN_ETH_TXD2, GPIO_FN_ETH_TXD1, GPIO_FN_ETH_TXD0,
70 	GPIO_FN_ETH_RXD3, GPIO_FN_ETH_RXD2, GPIO_FN_ETH_RXD1, GPIO_FN_ETH_RXD0,
71 
72 	/* HSPI */
73 	GPIO_FN_HSPI_CLK, GPIO_FN_HSPI_CS, GPIO_FN_HSPI_RX, GPIO_FN_HSPI_TX,
74 
75 	/* SCIF0 */
76 	GPIO_FN_SCIF0_CTS, GPIO_FN_SCIF0_RTS, GPIO_FN_SCIF0_SCK,
77 	GPIO_FN_SCIF0_RXD, GPIO_FN_SCIF0_TXD,
78 
79 	/* SCIF1 */
80 	GPIO_FN_SCIF1_SCK, GPIO_FN_SCIF1_RXD, GPIO_FN_SCIF1_TXD,
81 
82 	/* SCIF3 */
83 	GPIO_FN_SCIF3_SCK, GPIO_FN_SCIF3_RXD, GPIO_FN_SCIF3_TXD,
84 
85 	/* SCIF4 */
86 	GPIO_FN_SCIF4_SCK, GPIO_FN_SCIF4_RXD, GPIO_FN_SCIF4_TXD,
87 
88 	/* SCIF5 */
89 	GPIO_FN_SCIF5_SCK, GPIO_FN_SCIF5_RXD, GPIO_FN_SCIF5_TXD,
90 
91 	/* LBSC */
92 	GPIO_FN_BREQ, GPIO_FN_IOIS16, GPIO_FN_CE2B, GPIO_FN_CE2A, GPIO_FN_BACK,
93 
94 	/* FLCTL */
95 	GPIO_FN_FALE, GPIO_FN_FRB, GPIO_FN_FSTATUS,
96 	GPIO_FN_FSE, GPIO_FN_FCLE,
97 
98 	/* DMAC */
99 	GPIO_FN_DACK0, GPIO_FN_DREQ0, GPIO_FN_DRAK0,
100 	GPIO_FN_DACK1, GPIO_FN_DREQ1, GPIO_FN_DRAK1,
101 	GPIO_FN_DACK2, GPIO_FN_DREQ2, GPIO_FN_DRAK2,
102 	GPIO_FN_DACK3, GPIO_FN_DREQ3, GPIO_FN_DRAK3,
103 
104 	/* USB */
105 	GPIO_FN_USB_OVC0, GPIO_FN_USB_PENC0,
106 	GPIO_FN_USB_OVC1, GPIO_FN_USB_PENC1,
107 
108 	/* HAC */
109 	GPIO_FN_HAC_RES,
110 	GPIO_FN_HAC0_SDOUT, GPIO_FN_HAC0_SDIN,
111 	GPIO_FN_HAC0_SYNC, GPIO_FN_HAC0_BITCLK,
112 	GPIO_FN_HAC1_SDOUT, GPIO_FN_HAC1_SDIN,
113 	GPIO_FN_HAC1_SYNC, GPIO_FN_HAC1_BITCLK,
114 
115 	/* SSI */
116 	GPIO_FN_SSI0_SDATA, GPIO_FN_SSI0_SCK, GPIO_FN_SSI0_WS, GPIO_FN_SSI0_CLK,
117 	GPIO_FN_SSI1_SDATA, GPIO_FN_SSI1_SCK, GPIO_FN_SSI1_WS, GPIO_FN_SSI1_CLK,
118 	GPIO_FN_SSI2_SDATA, GPIO_FN_SSI2_SCK, GPIO_FN_SSI2_WS,
119 	GPIO_FN_SSI3_SDATA, GPIO_FN_SSI3_SCK, GPIO_FN_SSI3_WS,
120 
121 	/* SDIF1 */
122 	GPIO_FN_SDIF1CMD, GPIO_FN_SDIF1CD, GPIO_FN_SDIF1WP, GPIO_FN_SDIF1CLK,
123 	GPIO_FN_SDIF1D3, GPIO_FN_SDIF1D2, GPIO_FN_SDIF1D1, GPIO_FN_SDIF1D0,
124 
125 	/* SDIF0 */
126 	GPIO_FN_SDIF0CMD, GPIO_FN_SDIF0CD, GPIO_FN_SDIF0WP, GPIO_FN_SDIF0CLK,
127 	GPIO_FN_SDIF0D3, GPIO_FN_SDIF0D2, GPIO_FN_SDIF0D1, GPIO_FN_SDIF0D0,
128 
129 	/* TMU */
130 	GPIO_FN_TCLK,
131 
132 	/* INTC */
133 	GPIO_FN_IRL7, GPIO_FN_IRL6, GPIO_FN_IRL5, GPIO_FN_IRL4,
134 };
135 
136 static inline u32 sh7786_mm_sel(void)
137 {
138 	return __raw_readl(0xFC400020) & 0x7;
139 }
140 
141 #endif /* __CPU_SH7786_H__ */
142