upgrade to 2.6.37
[openwrt/openwrt.git] / target / linux / pxa / patches / 003-gumstix_h_verdex_pro_support.patch
1 From adb6abbe4e3bc17c20cdc70e4a4357f1633d4970 Mon Sep 17 00:00:00 2001
2 From: Joseph Kortje <jpktech@rogers.com>
3 Date: Wed, 28 Oct 2009 21:49:11 -0400
4 Subject: [PATCH] [ARM] gumstix.h: Verdex Pro support
5
6 Added a bunch of ifdefs to support both original gumstix boards
7 as well as the Verdex Pro in gumstix.h
8
9 Signed-off-by: Bobby Powers <bobbypowers@gmail.com>
10 ---
11 arch/arm/mach-pxa/include/mach/gumstix.h | 160 ++++++++++++++++++++++++------
12 1 files changed, 130 insertions(+), 30 deletions(-)
13
14 --- a/arch/arm/mach-pxa/include/mach/gumstix.h
15 +++ b/arch/arm/mach-pxa/include/mach/gumstix.h
16 @@ -6,6 +6,9 @@
17 * published by the Free Software Foundation.
18 */
19
20 +#if !defined(__ASM_ARCH_MFP_PXA27X_H) && !defined(__ASM_ARCH_MFP_PXA25X_H)
21 + #error You need to include either mfp-pxa27x.h or mfp-pxa25x.h
22 +#endif
23
24 /* BTRESET - Reset line to Bluetooth module, active low signal. */
25 #define GPIO_GUMSTIX_BTRESET 7
26 @@ -20,9 +23,18 @@ this moves to GPIO17 and GPIO37. */
27 /* GPIOx - Connects to USB D+ and used as a pull-up after GPIOn
28 has detected a cable insertion; driven low otherwise. */
29
30 +#ifndef CONFIG_MACH_GUMSTIX_VERDEX
31 +
32 #define GPIO_GUMSTIX_USB_GPIOn 35
33 #define GPIO_GUMSTIX_USB_GPIOx 41
34
35 +#else
36 +
37 +#define GPIO_GUMSTIX_USB_GPIOn 100
38 +#define GPIO_GUMSTIX_USB_GPIOx 27
39 +
40 +#endif
41 +
42 /* usb state change */
43 #define GUMSTIX_USB_INTR_IRQ IRQ_GPIO(GPIO_GUMSTIX_USB_GPIOn)
44
45 @@ -42,48 +54,136 @@ has detected a cable insertion; driven l
46 * ETH_RST provides a hardware reset line to the ethernet chip
47 * ETH is the IRQ line in from the ethernet chip to the PXA
48 */
49 +#ifndef CONFIG_MACH_GUMSTIX_VERDEX
50 #define GPIO_GUMSTIX_ETH0_RST 80
51 -#define GPIO_GUMSTIX_ETH0_RST_MD (GPIO_GUMSTIX_ETH0_RST | GPIO_OUT)
52 +#define GPIO_GUMSTIX_ETH0 36
53 +#else
54 +#define GPIO_GUMSTIX_ETH0_RST 107
55 +#define GPIO_GUMSTIX_ETH0 99
56 +#endif
57 #define GPIO_GUMSTIX_ETH1_RST 52
58 -#define GPIO_GUMSTIX_ETH1_RST_MD (GPIO_GUMSTIX_ETH1_RST | GPIO_OUT)
59 +#define GPIO_GUMSTIX_ETH1 27
60
61 -#define GPIO_GUMSTIX_ETH0 36
62 +#define GPIO_GUMSTIX_ETH0_RST_MD (GPIO_GUMSTIX_ETH0_RST | GPIO_OUT)
63 +#define GPIO_GUMSTIX_ETH1_RST_MD (GPIO_GUMSTIX_ETH1_RST | GPIO_OUT)
64 #define GPIO_GUMSTIX_ETH0_MD (GPIO_GUMSTIX_ETH0 | GPIO_IN)
65 -#define GUMSTIX_ETH0_IRQ IRQ_GPIO(GPIO_GUMSTIX_ETH0)
66 -#define GPIO_GUMSTIX_ETH1 27
67 #define GPIO_GUMSTIX_ETH1_MD (GPIO_GUMSTIX_ETH1 | GPIO_IN)
68 -#define GUMSTIX_ETH1_IRQ IRQ_GPIO(GPIO_GUMSTIX_ETH1)
69
70 +#define GUMSTIX_ETH0_IRQ IRQ_GPIO(GPIO_GUMSTIX_ETH0)
71 +#define GUMSTIX_ETH1_IRQ IRQ_GPIO(GPIO_GUMSTIX_ETH1)
72
73 /* CF reset line */
74 -#define GPIO8_RESET 8
75 +#define GPIO8_CF_RESET 8
76 +#define GPIO97_CF_RESET 97
77 +#define GPIO110_CF_RESET 110
78 +
79 +#ifndef CONFIG_MACH_GUMSTIX_VERDEX
80 +#define GPIO_GUMSTIX_CF_RESET GPIO8_CF_RESET
81 +#else
82 +#define GPIO_GUMSTIX_CF_RESET GPIO97_CF_RESET
83 +#endif
84 +
85 +#define GPIO_GUMSTIX_CF_OLD_RESET GPIO110_CF_RESET
86 +
87 +/* CF signals shared by both sockets */
88 +#define GPIO_GUMSTIX_nPOE 48
89 +#define GPIO_GUMSTIX_nPWE 49
90 +#define GPIO_GUMSTIX_nPIOR 50
91 +#define GPIO_GUMSTIX_nPIOW 51
92 +
93 +#ifndef CONFIG_MACH_GUMSTIX_VERDEX
94 +#define GPIO_GUMSTIX_nPCE_1 52
95 +#define GPIO_GUMSTIX_nPCE_2 53
96 +#define GPIO_GUMSTIX_pSKTSEL 54
97 +#else
98 +#define GPIO_GUMSTIX_nPCE_1 102
99 +#define GPIO_GUMSTIX_nPCE_2 105
100 +#define GPIO_GUMSTIX_pSKTSEL 79
101 +#endif
102 +
103 +#define GPIO_GUMSTIX_nPREG 55
104 +#define GPIO_GUMSTIX_nPWAIT 56
105 +#define GPIO_GUMSTIX_nIOIS16 57
106 +
107 +/* Pin mode definitions correspond to mfp-pxa2[57]x.h */
108 +#define GPIO_GUMSTIX_nPOE_MD GPIO48_nPOE
109 +#define GPIO_GUMSTIX_nPWE_MD GPIO49_nPWE
110 +#define GPIO_GUMSTIX_nPIOR_MD GPIO50_nPIOR
111 +#define GPIO_GUMSTIX_nPIOW_MD GPIO51_nPIOW
112 +
113 +#ifndef CONFIG_MACH_GUMSTIX_VERDEX
114 +#define GPIO_GUMSTIX_nPCE_1_MD GPIO52_nPCE_1
115 +#define GPIO_GUMSTIX_nPCE_2_MD GPIO53_nPCE_2
116 +#define GPIO_GUMSTIX_pSKTSEL_MD GPIO54_pSKTSEL
117 +#else
118 +#define GPIO_GUMSTIX_nPCE_1_MD GPIO102_nPCE_1
119 +#define GPIO_GUMSTIX_nPCE_2_MD GPIO105_nPCE_2
120 +#define GPIO_GUMSTIX_pSKTSEL_MD GPIO79_pSKTSEL
121 +#endif
122 +
123 +#define GPIO_GUMSTIX_nPREG_MD GPIO55_nPREG
124 +#define GPIO_GUMSTIX_nPWAIT_MD GPIO56_nPWAIT
125 +#define GPIO_GUMSTIX_nIOIS16_MD GPIO57_nIOIS16
126
127 /* CF slot 0 */
128 -#define GPIO4_nBVD1 4
129 -#define GPIO4_nSTSCHG GPIO4_nBVD1
130 -#define GPIO11_nCD 11
131 -#define GPIO26_PRDY_nBSY 26
132 -#define GUMSTIX_S0_nSTSCHG_IRQ IRQ_GPIO(GPIO4_nSTSCHG)
133 -#define GUMSTIX_S0_nCD_IRQ IRQ_GPIO(GPIO11_nCD)
134 -#define GUMSTIX_S0_PRDY_nBSY_IRQ IRQ_GPIO(GPIO26_PRDY_nBSY)
135 +#define GPIO4_nBVD1_0 4
136 +#define GPIO4_nSTSCHG_0 GPIO4_nBVD1_0
137 +#define GPIO11_nCD_0 11
138 +#define GPIO26_PRDY_nBSY_0 26
139 +
140 +#define GPIO111_nBVD1_0 111
141 +#define GPIO111_nSTSCHG_0 GPIO111_nBVD1_0
142 +#define GPIO104_nCD_0 104
143 +#define GPIO96_PRDY_nBSY_0 96
144 +#define GPIO109_PRDY_nBSY_0 109
145 +
146 +#ifndef CONFIG_MACH_GUMSTIX_VERDEX
147 +#define GPIO_GUMSTIX_nBVD1_0 GPIO4_nBVD1_0
148 +#define GPIO_GUMSTIX_nSTSCHG_0 GPIO4_nSTSCHG_0
149 +#define GPIO_GUMSTIX_nCD_0 GPIO11_nCD_0
150 +#define GPIO_GUMSTIX_PRDY_nBSY_0 GPIO26_PRDY_nBSY_0
151 +#else
152 +#define GPIO_GUMSTIX_nBVD1_0 GPIO111_nBVD1_0
153 +#define GPIO_GUMSTIX_nSTSCHG_0 GPIO111_nSTSCHG_0
154 +#define GPIO_GUMSTIX_nCD_0 GPIO104_nCD_0
155 +#define GPIO_GUMSTIX_PRDY_nBSY_0 GPIO96_PRDY_nBSY_0
156 +#endif
157 +
158 +#define GPIO_GUMSTIX_PRDY_nBSY_0_OLD GPIO109_PRDY_nBSY_0
159 +
160 +#define GUMSTIX_S0_nSTSCHG_IRQ IRQ_GPIO(GPIO_GUMSTIX_nSTSCHG_0)
161 +#define GUMSTIX_S0_nCD_IRQ IRQ_GPIO(GPIO_GUMSTIX_nCD_0)
162 +#define GUMSTIX_S0_PRDY_nBSY_IRQ IRQ_GPIO(GPIO_GUMSTIX_PRDY_nBSY_0)
163 +#define GUMSTIX_S0_PRDY_nBSY_OLD_IRQ IRQ_GPIO(GPIO_GUMSTIX_PRDY_nBSY_0_OLD)
164
165 /* CF slot 1 */
166 -#define GPIO18_nBVD1 18
167 -#define GPIO18_nSTSCHG GPIO18_nBVD1
168 -#define GPIO36_nCD 36
169 -#define GPIO27_PRDY_nBSY 27
170 -#define GUMSTIX_S1_nSTSCHG_IRQ IRQ_GPIO(GPIO18_nSTSCHG)
171 -#define GUMSTIX_S1_nCD_IRQ IRQ_GPIO(GPIO36_nCD)
172 -#define GUMSTIX_S1_PRDY_nBSY_IRQ IRQ_GPIO(GPIO27_PRDY_nBSY)
173 -
174 -/* CF GPIO line modes */
175 -#define GPIO4_nSTSCHG_MD (GPIO4_nSTSCHG | GPIO_IN)
176 -#define GPIO8_RESET_MD (GPIO8_RESET | GPIO_OUT)
177 -#define GPIO11_nCD_MD (GPIO11_nCD | GPIO_IN)
178 -#define GPIO18_nSTSCHG_MD (GPIO18_nSTSCHG | GPIO_IN)
179 -#define GPIO26_PRDY_nBSY_MD (GPIO26_PRDY_nBSY | GPIO_IN)
180 -#define GPIO27_PRDY_nBSY_MD (GPIO27_PRDY_nBSY | GPIO_IN)
181 -#define GPIO36_nCD_MD (GPIO36_nCD | GPIO_IN)
182 +#define GPIO18_nBVD1_1 18
183 +#define GPIO18_nSTSCHG_1 GPIO18_nBVD1_1
184 +#define GPIO36_nCD_1 36
185 +#define GPIO27_PRDY_nBSY_1 27
186 +
187 +#define GPIO_GUMSTIX_nBVD1_1 GPIO18_nBVD1_1
188 +#define GPIO_GUMSTIX_nSTSCHG_1 GPIO18_nSTSCHG_1
189 +#define GPIO_GUMSTIX_nCD_1 GPIO36_nCD_1
190 +#define GPIO_GUMSTIX_PRDY_nBSY_1 GPIO27_PRDY_nBSY_1
191 +
192 +#define GUMSTIX_S1_nSTSCHG_IRQ IRQ_GPIO(GPIO_GUMSTIX_nSTSCHG_1)
193 +#define GUMSTIX_S1_nCD_IRQ IRQ_GPIO(GPIO_GUMSTIX_nCD_1)
194 +#define GUMSTIX_S1_PRDY_nBSY_IRQ IRQ_GPIO(GPIO_GUMSTIX_PRDY_nBSY_1)
195 +
196 +/* CF GPIO line modes - correspond to mfp-pxa2[57]x.h */
197 +#define GPIO_GUMSTIX_CF_RESET_MD ( GPIO_GUMSTIX_CF_RESET | GPIO_OUT )
198 +#define GPIO_GUMSTIX_CF_OLD_RESET_MD ( GPIO_GUMSTIX_CF_OLD_RESET | GPIO_OUT )
199 +
200 +#define GPIO_GUMSTIX_nSTSCHG_0_MD GPIO111_GPIO
201 +#define GPIO_GUMSTIX_nCD_0_MD GPIO104_GPIO
202 +
203 +#define GPIO_GUMSTIX_PRDY_nBSY_0_MD GPIO96_GPIO
204 +#define GPIO_GUMSTIX_PRDY_nBSY_0_OLD_MD GPIO109_GPIO
205 +
206 +#define GPIO_GUMSTIX_nSTSCHG_1_MD GPIO18_GPIO
207 +#define GPIO_GUMSTIX_nCD_1_MD GPIO36_GPIO
208 +#define GPIO_GUMSTIX_PRDY_nBSY_1_MD GPIO27_GPIO
209
210 /* for expansion boards that can't be programatically detected */
211 extern int am200_init(void);