aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm
diff options
context:
space:
mode:
authorIgor Grinberg <grinberg@compulab.co.il>2009-10-14 03:20:22 -0400
committerEric Miao <eric.y.miao@gmail.com>2009-11-30 20:03:09 -0500
commitdef8252ddb9bc52434b2ac1d560a609c61849638 (patch)
tree30e2e2ec55610980e11855c1dbc1aad732885b20 /arch/arm
parentb3d01da66d45504f8bdc6fbc9c0c1f1705ebc251 (diff)
[ARM] pxa/cm-x300: add support for PXA310 cpu
CM-X300 can be assembled with PXA300 and PXA310 CPU. Provide support for both CPU variants. Signed-off-by: Igor Grinberg <grinberg@compulab.co.il> Signed-off-by: Mike Rapoport <mike@compulab.co.il> Signed-off-by: Eric Miao <eric.y.miao@gmail.com>
Diffstat (limited to 'arch/arm')
-rw-r--r--arch/arm/mach-pxa/cm-x300.c42
1 files changed, 36 insertions, 6 deletions
diff --git a/arch/arm/mach-pxa/cm-x300.c b/arch/arm/mach-pxa/cm-x300.c
index 9a21bc567ca..d9006c271e8 100644
--- a/arch/arm/mach-pxa/cm-x300.c
+++ b/arch/arm/mach-pxa/cm-x300.c
@@ -59,7 +59,7 @@
59#define GPIO97_RTC_RD (97) 59#define GPIO97_RTC_RD (97)
60#define GPIO98_RTC_IO (98) 60#define GPIO98_RTC_IO (98)
61 61
62static mfp_cfg_t cm_x300_mfp_cfg[] __initdata = { 62static mfp_cfg_t cm_x3xx_mfp_cfg[] __initdata = {
63 /* LCD */ 63 /* LCD */
64 GPIO54_LCD_LDD_0, 64 GPIO54_LCD_LDD_0,
65 GPIO55_LCD_LDD_1, 65 GPIO55_LCD_LDD_1,
@@ -158,20 +158,47 @@ static mfp_cfg_t cm_x300_mfp_cfg[] __initdata = {
158 GPIO22_I2C_SDA, 158 GPIO22_I2C_SDA,
159}; 159};
160 160
161static mfp_cfg_t cm_x300_rev_lt130_mfp_cfg[] __initdata = { 161static mfp_cfg_t cm_x3xx_rev_lt130_mfp_cfg[] __initdata = {
162 /* GPIOs */ 162 /* GPIOs */
163 GPIO79_GPIO, /* LED */ 163 GPIO79_GPIO, /* LED */
164 GPIO77_GPIO, /* WiFi reset */ 164 GPIO77_GPIO, /* WiFi reset */
165 GPIO78_GPIO, /* BT reset */ 165 GPIO78_GPIO, /* BT reset */
166}; 166};
167 167
168static mfp_cfg_t cm_x300_rev_ge130_mfp_cfg[] __initdata = { 168static mfp_cfg_t cm_x3xx_rev_ge130_mfp_cfg[] __initdata = {
169 /* GPIOs */ 169 /* GPIOs */
170 GPIO76_GPIO, /* LED */ 170 GPIO76_GPIO, /* LED */
171 GPIO71_GPIO, /* WiFi reset */ 171 GPIO71_GPIO, /* WiFi reset */
172 GPIO70_GPIO, /* BT reset */ 172 GPIO70_GPIO, /* BT reset */
173}; 173};
174 174
175static mfp_cfg_t cm_x310_mfp_cfg[] __initdata = {
176 /* USB PORT 2 */
177 ULPI_STP,
178 ULPI_NXT,
179 ULPI_DIR,
180 GPIO30_ULPI_DATA_OUT_0,
181 GPIO31_ULPI_DATA_OUT_1,
182 GPIO32_ULPI_DATA_OUT_2,
183 GPIO33_ULPI_DATA_OUT_3,
184 GPIO34_ULPI_DATA_OUT_4,
185 GPIO35_ULPI_DATA_OUT_5,
186 GPIO36_ULPI_DATA_OUT_6,
187 GPIO37_ULPI_DATA_OUT_7,
188 GPIO38_ULPI_CLK,
189 /* external PHY reset pin */
190 GPIO127_GPIO,
191
192 /* USB PORT 3 */
193 GPIO77_USB_P3_1,
194 GPIO78_USB_P3_2,
195 GPIO79_USB_P3_3,
196 GPIO80_USB_P3_4,
197 GPIO81_USB_P3_5,
198 GPIO82_USB_P3_6,
199 GPIO0_2_USBH_PEN,
200};
201
175#if defined(CONFIG_DM9000) || defined(CONFIG_DM9000_MODULE) 202#if defined(CONFIG_DM9000) || defined(CONFIG_DM9000_MODULE)
176static struct resource dm9000_resources[] = { 203static struct resource dm9000_resources[] = {
177 [0] = { 204 [0] = {
@@ -553,12 +580,15 @@ static void __init cm_x300_init_wi2wi(void)
553static void __init cm_x300_init_mfp(void) 580static void __init cm_x300_init_mfp(void)
554{ 581{
555 /* board-processor specific GPIO initialization */ 582 /* board-processor specific GPIO initialization */
556 pxa3xx_mfp_config(ARRAY_AND_SIZE(cm_x300_mfp_cfg)); 583 pxa3xx_mfp_config(ARRAY_AND_SIZE(cm_x3xx_mfp_cfg));
557 584
558 if (system_rev < 130) 585 if (system_rev < 130)
559 pxa3xx_mfp_config(ARRAY_AND_SIZE(cm_x300_rev_lt130_mfp_cfg)); 586 pxa3xx_mfp_config(ARRAY_AND_SIZE(cm_x3xx_rev_lt130_mfp_cfg));
560 else 587 else
561 pxa3xx_mfp_config(ARRAY_AND_SIZE(cm_x300_rev_ge130_mfp_cfg)); 588 pxa3xx_mfp_config(ARRAY_AND_SIZE(cm_x3xx_rev_ge130_mfp_cfg));
589
590 if (cpu_is_pxa310())
591 pxa3xx_mfp_config(ARRAY_AND_SIZE(cm_x310_mfp_cfg));
562} 592}
563 593
564static void __init cm_x300_init(void) 594static void __init cm_x300_init(void)