davinci: Adding DM365 entries to Makefile/Kconfig/defconfig
[linux-2.6-block.git] / arch / arm / mach-davinci / include / mach / mux.h
CommitLineData
83f53220 1/*
5526b3f7 2 * Table of the DAVINCI register configurations for the PINMUX combinations
83f53220
VB
3 *
4 * Author: Vladimir Barinov, MontaVista Software, Inc. <source@mvista.com>
5 *
5526b3f7
KH
6 * Based on linux/include/asm-arm/arch-omap/mux.h:
7 * Copyright (C) 2003 - 2005 Nokia Corporation
8 *
9 * Written by Tony Lindgren
10 *
83f53220
VB
11 * 2007 (c) MontaVista Software, Inc. This file is licensed under
12 * the terms of the GNU General Public License version 2. This program
13 * is licensed "as is" without any warranty of any kind, whether express
14 * or implied.
5526b3f7
KH
15 *
16 * Copyright (C) 2008 Texas Instruments.
83f53220 17 */
5526b3f7
KH
18
19#ifndef __INC_MACH_MUX_H
20#define __INC_MACH_MUX_H
21
5526b3f7
KH
22struct mux_config {
23 const char *name;
24 const char *mux_reg_name;
25 const unsigned char mux_reg;
26 const unsigned char mask_offset;
27 const unsigned char mask;
28 const unsigned char mode;
29 bool debug;
30};
31
32enum davinci_dm644x_index {
33 /* ATA and HDDIR functions */
34 DM644X_HDIREN,
35 DM644X_ATAEN,
36 DM644X_ATAEN_DISABLE,
37
38 /* HPI functions */
39 DM644X_HPIEN_DISABLE,
40
41 /* AEAW functions */
42 DM644X_AEAW,
43
44 /* Memory Stick */
45 DM644X_MSTK,
46
47 /* I2C */
48 DM644X_I2C,
49
50 /* ASP function */
51 DM644X_MCBSP,
52
53 /* UART1 */
54 DM644X_UART1,
55
56 /* UART2 */
57 DM644X_UART2,
58
59 /* PWM0 */
60 DM644X_PWM0,
61
62 /* PWM1 */
63 DM644X_PWM1,
64
65 /* PWM2 */
66 DM644X_PWM2,
67
68 /* VLYNQ function */
69 DM644X_VLYNQEN,
70 DM644X_VLSCREN,
71 DM644X_VLYNQWD,
72
73 /* EMAC and MDIO function */
74 DM644X_EMACEN,
75
76 /* GPIO3V[0:16] pins */
77 DM644X_GPIO3V,
78
79 /* GPIO pins */
80 DM644X_GPIO0,
81 DM644X_GPIO3,
82 DM644X_GPIO43_44,
83 DM644X_GPIO46_47,
84
85 /* VPBE */
86 DM644X_RGB666,
87
88 /* LCD */
89 DM644X_LOEEN,
90 DM644X_LFLDEN,
91};
92
93enum davinci_dm646x_index {
94 /* ATA function */
95 DM646X_ATAEN,
96
97 /* AUDIO Clock */
98 DM646X_AUDCK1,
99 DM646X_AUDCK0,
100
101 /* CRGEN Control */
102 DM646X_CRGMUX,
103
104 /* VPIF Control */
105 DM646X_STSOMUX_DISABLE,
106 DM646X_STSIMUX_DISABLE,
107 DM646X_PTSOMUX_DISABLE,
108 DM646X_PTSIMUX_DISABLE,
109
110 /* TSIF Control */
111 DM646X_STSOMUX,
112 DM646X_STSIMUX,
113 DM646X_PTSOMUX_PARALLEL,
114 DM646X_PTSIMUX_PARALLEL,
115 DM646X_PTSOMUX_SERIAL,
116 DM646X_PTSIMUX_SERIAL,
117};
118
119enum davinci_dm355_index {
120 /* MMC/SD 0 */
121 DM355_MMCSD0,
122
123 /* MMC/SD 1 */
124 DM355_SD1_CLK,
125 DM355_SD1_CMD,
126 DM355_SD1_DATA3,
127 DM355_SD1_DATA2,
128 DM355_SD1_DATA1,
129 DM355_SD1_DATA0,
130
131 /* I2C */
132 DM355_I2C_SDA,
133 DM355_I2C_SCL,
134
135 /* ASP0 function */
136 DM355_MCBSP0_BDX,
137 DM355_MCBSP0_X,
138 DM355_MCBSP0_BFSX,
139 DM355_MCBSP0_BDR,
140 DM355_MCBSP0_R,
141 DM355_MCBSP0_BFSR,
142
143 /* SPI0 */
144 DM355_SPI0_SDI,
145 DM355_SPI0_SDENA0,
146 DM355_SPI0_SDENA1,
147
148 /* IRQ muxing */
149 DM355_INT_EDMA_CC,
150 DM355_INT_EDMA_TC0_ERR,
151 DM355_INT_EDMA_TC1_ERR,
152
153 /* EDMA event muxing */
154 DM355_EVT8_ASP1_TX,
155 DM355_EVT9_ASP1_RX,
156 DM355_EVT26_MMC0_RX,
157};
158
fb8fcb89
SP
159enum davinci_dm365_index {
160 /* MMC/SD 0 */
161 DM365_MMCSD0,
162
163 /* MMC/SD 1 */
164 DM365_SD1_CLK,
165 DM365_SD1_CMD,
166 DM365_SD1_DATA3,
167 DM365_SD1_DATA2,
168 DM365_SD1_DATA1,
169 DM365_SD1_DATA0,
170
171 /* I2C */
172 DM365_I2C_SDA,
173 DM365_I2C_SCL,
174
175 /* AEMIF */
176 DM365_AEMIF_AR,
177 DM365_AEMIF_A3,
178 DM365_AEMIF_A7,
179 DM365_AEMIF_D15_8,
180 DM365_AEMIF_CE0,
181
182 /* ASP0 function */
183 DM365_MCBSP0_BDX,
184 DM365_MCBSP0_X,
185 DM365_MCBSP0_BFSX,
186 DM365_MCBSP0_BDR,
187 DM365_MCBSP0_R,
188 DM365_MCBSP0_BFSR,
189
190 /* SPI0 */
191 DM365_SPI0_SCLK,
192 DM365_SPI0_SDI,
193 DM365_SPI0_SDO,
194 DM365_SPI0_SDENA0,
195 DM365_SPI0_SDENA1,
196
197 /* UART */
198 DM365_UART0_RXD,
199 DM365_UART0_TXD,
200 DM365_UART1_RXD,
201 DM365_UART1_TXD,
202 DM365_UART1_RTS,
203 DM365_UART1_CTS,
204
205 /* EMAC */
206 DM365_EMAC_TX_EN,
207 DM365_EMAC_TX_CLK,
208 DM365_EMAC_COL,
209 DM365_EMAC_TXD3,
210 DM365_EMAC_TXD2,
211 DM365_EMAC_TXD1,
212 DM365_EMAC_TXD0,
213 DM365_EMAC_RXD3,
214 DM365_EMAC_RXD2,
215 DM365_EMAC_RXD1,
216 DM365_EMAC_RXD0,
217 DM365_EMAC_RX_CLK,
218 DM365_EMAC_RX_DV,
219 DM365_EMAC_RX_ER,
220 DM365_EMAC_CRS,
221 DM365_EMAC_MDIO,
222 DM365_EMAC_MDCLK,
223
224 /* IRQ muxing */
225 DM365_INT_EDMA_CC,
226 DM365_INT_EDMA_TC0_ERR,
227 DM365_INT_EDMA_TC1_ERR,
228 DM365_INT_PRTCSS,
229 DM365_INT_EMAC_RXTHRESH,
230 DM365_INT_EMAC_RXPULSE,
231 DM365_INT_EMAC_TXPULSE,
232 DM365_INT_EMAC_MISCPULSE,
233
234 /* EDMA event muxing */
235 DM365_EVT2_ASP_TX,
236 DM365_EVT3_ASP_RX,
237 DM365_EVT26_MMC0_RX,
238};
239
5526b3f7
KH
240#ifdef CONFIG_DAVINCI_MUX
241/* setup pin muxing */
5526b3f7
KH
242extern int davinci_cfg_reg(unsigned long reg_cfg);
243#else
244/* boot loader does it all (no warnings from CONFIG_DAVINCI_MUX_WARNINGS) */
5526b3f7
KH
245static inline int davinci_cfg_reg(unsigned long reg_cfg) { return 0; }
246#endif
247
248#endif /* __INC_MACH_MUX_H */