summaryrefslogtreecommitdiffstats
path: root/target/linux/pxa/patches/003-gumstix_h_verdex_pro_support.patch
blob: ff94cb6b48973b9c137406df6939a4e616ed4534 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
From adb6abbe4e3bc17c20cdc70e4a4357f1633d4970 Mon Sep 17 00:00:00 2001
From: Joseph Kortje <jpktech@rogers.com>
Date: Wed, 28 Oct 2009 21:49:11 -0400
Subject: [PATCH] [ARM] gumstix.h: Verdex Pro support

Added a bunch of ifdefs to support both original gumstix boards
as well as the Verdex Pro in gumstix.h

Signed-off-by: Bobby Powers <bobbypowers@gmail.com>
---
 arch/arm/mach-pxa/include/mach/gumstix.h |  160 ++++++++++++++++++++++++------
 1 files changed, 130 insertions(+), 30 deletions(-)

--- a/arch/arm/mach-pxa/include/mach/gumstix.h
+++ b/arch/arm/mach-pxa/include/mach/gumstix.h
@@ -6,6 +6,9 @@
  * published by the Free Software Foundation.
  */
 
+#if !defined(__ASM_ARCH_MFP_PXA27X_H) && !defined(__ASM_ARCH_MFP_PXA25X_H)
+	#error You need to include either mfp-pxa27x.h or mfp-pxa25x.h
+#endif
 
 /* BTRESET - Reset line to Bluetooth module, active low signal. */
 #define GPIO_GUMSTIX_BTRESET          7
@@ -20,9 +23,18 @@ this moves to GPIO17 and GPIO37. */
 /* GPIOx - Connects to USB D+ and used as a pull-up after GPIOn
 has detected a cable insertion; driven low otherwise. */
 
+#ifndef CONFIG_MACH_GUMSTIX_VERDEX
+
 #define GPIO_GUMSTIX_USB_GPIOn		35
 #define GPIO_GUMSTIX_USB_GPIOx		41
 
+#else
+
+#define GPIO_GUMSTIX_USB_GPIOn         100
+#define GPIO_GUMSTIX_USB_GPIOx         27
+
+#endif
+
 /* usb state change */
 #define GUMSTIX_USB_INTR_IRQ		IRQ_GPIO(GPIO_GUMSTIX_USB_GPIOn)
 
@@ -42,48 +54,136 @@ has detected a cable insertion; driven l
  * ETH_RST provides a hardware reset line to the ethernet chip
  * ETH is the IRQ line in from the ethernet chip to the PXA
  */
+#ifndef CONFIG_MACH_GUMSTIX_VERDEX
 #define GPIO_GUMSTIX_ETH0_RST		80
-#define GPIO_GUMSTIX_ETH0_RST_MD	(GPIO_GUMSTIX_ETH0_RST | GPIO_OUT)
+#define GPIO_GUMSTIX_ETH0		36
+#else
+#define GPIO_GUMSTIX_ETH0_RST		107
+#define GPIO_GUMSTIX_ETH0		99
+#endif
 #define GPIO_GUMSTIX_ETH1_RST		52
-#define GPIO_GUMSTIX_ETH1_RST_MD	(GPIO_GUMSTIX_ETH1_RST | GPIO_OUT)
+#define GPIO_GUMSTIX_ETH1		27
 
-#define GPIO_GUMSTIX_ETH0		36
+#define GPIO_GUMSTIX_ETH0_RST_MD	(GPIO_GUMSTIX_ETH0_RST | GPIO_OUT)
+#define GPIO_GUMSTIX_ETH1_RST_MD	(GPIO_GUMSTIX_ETH1_RST | GPIO_OUT)
 #define GPIO_GUMSTIX_ETH0_MD		(GPIO_GUMSTIX_ETH0 | GPIO_IN)
-#define GUMSTIX_ETH0_IRQ		IRQ_GPIO(GPIO_GUMSTIX_ETH0)
-#define GPIO_GUMSTIX_ETH1		27
 #define GPIO_GUMSTIX_ETH1_MD		(GPIO_GUMSTIX_ETH1 | GPIO_IN)
-#define GUMSTIX_ETH1_IRQ		IRQ_GPIO(GPIO_GUMSTIX_ETH1)
 
+#define GUMSTIX_ETH0_IRQ		IRQ_GPIO(GPIO_GUMSTIX_ETH0)
+#define GUMSTIX_ETH1_IRQ		IRQ_GPIO(GPIO_GUMSTIX_ETH1)
 
 /* CF reset line */
-#define GPIO8_RESET			8
+#define GPIO8_CF_RESET			8
+#define GPIO97_CF_RESET			97
+#define GPIO110_CF_RESET		110
+
+#ifndef CONFIG_MACH_GUMSTIX_VERDEX
+#define GPIO_GUMSTIX_CF_RESET		GPIO8_CF_RESET
+#else
+#define GPIO_GUMSTIX_CF_RESET		GPIO97_CF_RESET
+#endif
+
+#define GPIO_GUMSTIX_CF_OLD_RESET	GPIO110_CF_RESET
+
+/* CF signals shared by both sockets */
+#define GPIO_GUMSTIX_nPOE	48
+#define GPIO_GUMSTIX_nPWE	49
+#define GPIO_GUMSTIX_nPIOR	50
+#define GPIO_GUMSTIX_nPIOW	51
+
+#ifndef CONFIG_MACH_GUMSTIX_VERDEX
+#define GPIO_GUMSTIX_nPCE_1	52
+#define GPIO_GUMSTIX_nPCE_2	53
+#define GPIO_GUMSTIX_pSKTSEL	54
+#else
+#define GPIO_GUMSTIX_nPCE_1	102
+#define GPIO_GUMSTIX_nPCE_2	105
+#define GPIO_GUMSTIX_pSKTSEL	79
+#endif
+
+#define GPIO_GUMSTIX_nPREG	55
+#define GPIO_GUMSTIX_nPWAIT	56
+#define GPIO_GUMSTIX_nIOIS16	57
+
+/* Pin mode definitions correspond to mfp-pxa2[57]x.h */
+#define GPIO_GUMSTIX_nPOE_MD	GPIO48_nPOE
+#define GPIO_GUMSTIX_nPWE_MD	GPIO49_nPWE
+#define GPIO_GUMSTIX_nPIOR_MD	GPIO50_nPIOR
+#define GPIO_GUMSTIX_nPIOW_MD	GPIO51_nPIOW
+
+#ifndef CONFIG_MACH_GUMSTIX_VERDEX
+#define GPIO_GUMSTIX_nPCE_1_MD	GPIO52_nPCE_1
+#define GPIO_GUMSTIX_nPCE_2_MD	GPIO53_nPCE_2
+#define GPIO_GUMSTIX_pSKTSEL_MD	GPIO54_pSKTSEL
+#else
+#define GPIO_GUMSTIX_nPCE_1_MD	GPIO102_nPCE_1
+#define GPIO_GUMSTIX_nPCE_2_MD	GPIO105_nPCE_2
+#define GPIO_GUMSTIX_pSKTSEL_MD	GPIO79_pSKTSEL
+#endif
+
+#define GPIO_GUMSTIX_nPREG_MD	GPIO55_nPREG
+#define GPIO_GUMSTIX_nPWAIT_MD	GPIO56_nPWAIT
+#define GPIO_GUMSTIX_nIOIS16_MD	GPIO57_nIOIS16
 
 /* CF slot 0 */
-#define GPIO4_nBVD1			4
-#define GPIO4_nSTSCHG			GPIO4_nBVD1
-#define GPIO11_nCD			11
-#define GPIO26_PRDY_nBSY		26
-#define GUMSTIX_S0_nSTSCHG_IRQ		IRQ_GPIO(GPIO4_nSTSCHG)
-#define GUMSTIX_S0_nCD_IRQ		IRQ_GPIO(GPIO11_nCD)
-#define GUMSTIX_S0_PRDY_nBSY_IRQ	IRQ_GPIO(GPIO26_PRDY_nBSY)
+#define GPIO4_nBVD1_0			4
+#define GPIO4_nSTSCHG_0			GPIO4_nBVD1_0
+#define GPIO11_nCD_0			11
+#define GPIO26_PRDY_nBSY_0		26
+
+#define GPIO111_nBVD1_0			111
+#define GPIO111_nSTSCHG_0		GPIO111_nBVD1_0
+#define GPIO104_nCD_0			104
+#define GPIO96_PRDY_nBSY_0		96
+#define GPIO109_PRDY_nBSY_0		109
+
+#ifndef CONFIG_MACH_GUMSTIX_VERDEX
+#define GPIO_GUMSTIX_nBVD1_0		GPIO4_nBVD1_0
+#define GPIO_GUMSTIX_nSTSCHG_0		GPIO4_nSTSCHG_0
+#define GPIO_GUMSTIX_nCD_0		GPIO11_nCD_0
+#define GPIO_GUMSTIX_PRDY_nBSY_0	GPIO26_PRDY_nBSY_0
+#else
+#define GPIO_GUMSTIX_nBVD1_0		GPIO111_nBVD1_0
+#define GPIO_GUMSTIX_nSTSCHG_0		GPIO111_nSTSCHG_0
+#define GPIO_GUMSTIX_nCD_0		GPIO104_nCD_0
+#define GPIO_GUMSTIX_PRDY_nBSY_0	GPIO96_PRDY_nBSY_0
+#endif
+
+#define GPIO_GUMSTIX_PRDY_nBSY_0_OLD	GPIO109_PRDY_nBSY_0
+
+#define GUMSTIX_S0_nSTSCHG_IRQ		IRQ_GPIO(GPIO_GUMSTIX_nSTSCHG_0)
+#define GUMSTIX_S0_nCD_IRQ		IRQ_GPIO(GPIO_GUMSTIX_nCD_0)
+#define GUMSTIX_S0_PRDY_nBSY_IRQ	IRQ_GPIO(GPIO_GUMSTIX_PRDY_nBSY_0)
+#define GUMSTIX_S0_PRDY_nBSY_OLD_IRQ	IRQ_GPIO(GPIO_GUMSTIX_PRDY_nBSY_0_OLD)
 
 /* CF slot 1 */
-#define GPIO18_nBVD1			18
-#define GPIO18_nSTSCHG			GPIO18_nBVD1
-#define GPIO36_nCD			36
-#define GPIO27_PRDY_nBSY		27
-#define GUMSTIX_S1_nSTSCHG_IRQ		IRQ_GPIO(GPIO18_nSTSCHG)
-#define GUMSTIX_S1_nCD_IRQ		IRQ_GPIO(GPIO36_nCD)
-#define GUMSTIX_S1_PRDY_nBSY_IRQ	IRQ_GPIO(GPIO27_PRDY_nBSY)
-
-/* CF GPIO line modes */
-#define GPIO4_nSTSCHG_MD		(GPIO4_nSTSCHG | GPIO_IN)
-#define GPIO8_RESET_MD			(GPIO8_RESET | GPIO_OUT)
-#define GPIO11_nCD_MD			(GPIO11_nCD | GPIO_IN)
-#define GPIO18_nSTSCHG_MD		(GPIO18_nSTSCHG | GPIO_IN)
-#define GPIO26_PRDY_nBSY_MD		(GPIO26_PRDY_nBSY | GPIO_IN)
-#define GPIO27_PRDY_nBSY_MD		(GPIO27_PRDY_nBSY | GPIO_IN)
-#define GPIO36_nCD_MD			(GPIO36_nCD | GPIO_IN)
+#define GPIO18_nBVD1_1			18
+#define GPIO18_nSTSCHG_1		GPIO18_nBVD1_1
+#define GPIO36_nCD_1			36
+#define GPIO27_PRDY_nBSY_1		27
+
+#define GPIO_GUMSTIX_nBVD1_1		GPIO18_nBVD1_1
+#define GPIO_GUMSTIX_nSTSCHG_1		GPIO18_nSTSCHG_1
+#define GPIO_GUMSTIX_nCD_1		GPIO36_nCD_1
+#define GPIO_GUMSTIX_PRDY_nBSY_1	GPIO27_PRDY_nBSY_1
+
+#define GUMSTIX_S1_nSTSCHG_IRQ		IRQ_GPIO(GPIO_GUMSTIX_nSTSCHG_1)
+#define GUMSTIX_S1_nCD_IRQ		IRQ_GPIO(GPIO_GUMSTIX_nCD_1)
+#define GUMSTIX_S1_PRDY_nBSY_IRQ	IRQ_GPIO(GPIO_GUMSTIX_PRDY_nBSY_1)
+
+/* CF GPIO line modes - correspond to mfp-pxa2[57]x.h */
+#define GPIO_GUMSTIX_CF_RESET_MD	( GPIO_GUMSTIX_CF_RESET | GPIO_OUT )
+#define GPIO_GUMSTIX_CF_OLD_RESET_MD	( GPIO_GUMSTIX_CF_OLD_RESET | GPIO_OUT )
+
+#define GPIO_GUMSTIX_nSTSCHG_0_MD	GPIO111_GPIO
+#define GPIO_GUMSTIX_nCD_0_MD		GPIO104_GPIO
+
+#define GPIO_GUMSTIX_PRDY_nBSY_0_MD	GPIO96_GPIO
+#define GPIO_GUMSTIX_PRDY_nBSY_0_OLD_MD	GPIO109_GPIO
+
+#define GPIO_GUMSTIX_nSTSCHG_1_MD	GPIO18_GPIO
+#define GPIO_GUMSTIX_nCD_1_MD		GPIO36_GPIO
+#define GPIO_GUMSTIX_PRDY_nBSY_1_MD	GPIO27_GPIO
 
 /* for expansion boards that can't be programatically detected */
 extern int am200_init(void);