Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
mux.h
Go to the documentation of this file.
1 /*
2  * Table of the DAVINCI register configurations for the PINMUX combinations
3  *
4  * Author: Vladimir Barinov, MontaVista Software, Inc. <[email protected]>
5  *
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  *
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.
15  *
16  * Copyright (C) 2008 Texas Instruments.
17  */
18 
19 #ifndef __INC_MACH_MUX_H
20 #define __INC_MACH_MUX_H
21 
22 struct 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 
33  /* ATA and HDDIR functions */
37 
38  /* HPI functions */
40 
41  /* AEAW functions */
48 
49  /* Memory Stick */
51 
52  /* I2C */
54 
55  /* ASP function */
57 
58  /* UART1 */
60 
61  /* UART2 */
63 
64  /* PWM0 */
66 
67  /* PWM1 */
69 
70  /* PWM2 */
72 
73  /* VLYNQ function */
77 
78  /* EMAC and MDIO function */
80 
81  /* GPIO3V[0:16] pins */
83 
84  /* GPIO pins */
89 
90  /* VPBE */
92 
93  /* LCD */
96 };
97 
99  /* ATA function */
101 
102  /* AUDIO Clock */
105 
106  /* CRGEN Control */
108 
109  /* VPIF Control */
114 
115  /* TSIF Control */
122 };
123 
125  /* MMC/SD 0 */
127 
128  /* MMC/SD 1 */
135 
136  /* I2C */
139 
140  /* ASP0 function */
147 
148  /* SPI0 */
152 
153  /* IRQ muxing */
157 
158  /* EDMA event muxing */
162 
163  /* Video Out */
169 
170  /* Video In Pin Mux */
178 };
179 
181  /* MMC/SD 0 */
183 
184  /* MMC/SD 1 */
191 
192  /* I2C */
195 
196  /* AEMIF */
205 
206  /* ASP0 function */
213 
214  /* SPI0 */
220 
221  /* UART */
228 
229  /* EMAC */
247 
248  /* Key Scan */
250 
251  /* PWM */
264 
265  /* SPI1 */
271 
272  /* SPI2 */
278 
279  /* SPI3 */
285 
286  /* SPI4 */
292 
293  /* Clock */
297 
298  /* GPIO */
306 
307  /* Video */
318 
319  /* IRQ muxing */
338 
339  /* EDMA event muxing */
345 };
346 
749 };
750 
752  /* UART0 function */
757 
758  /* UART1 function */
763 
764  /* UART2 function */
769 
770  /* I2C1 function */
773 
774  /* I2C0 function */
777 
778  /* EMAC function */
804 
805  /* McASP function */
829 
830  /* LCD function */
851 
852  /* MMC/SD0 function */
859 
860  /* MMC/SD1 function */
867 
868  /* EMIF2.5/EMIFA function */
917 
918  /* GPIO function */
931 
932  /* VPIF Capture */
953 
954  /* VPIF Display */
973 };
974 
1242 };
1243 
1244 #define PINMUX(x) (4 * (x))
1245 
1246 #ifdef CONFIG_DAVINCI_MUX
1247 /* setup pin muxing */
1248 extern int davinci_cfg_reg(unsigned long reg_cfg);
1249 extern int davinci_cfg_reg_list(const short pins[]);
1250 #else
1251 /* boot loader does it all (no warnings from CONFIG_DAVINCI_MUX_WARNINGS) */
1252 static inline int davinci_cfg_reg(unsigned long reg_cfg) { return 0; }
1253 static inline int davinci_cfg_reg_list(const short pins[])
1254 {
1255  return 0;
1256 }
1257 #endif
1258 
1259 #endif /* __INC_MACH_MUX_H */