diff options
author | Igor Grinberg <grinberg@compulab.co.il> | 2009-10-14 03:20:22 -0400 |
---|---|---|
committer | Eric Miao <eric.y.miao@gmail.com> | 2009-11-30 20:03:09 -0500 |
commit | def8252ddb9bc52434b2ac1d560a609c61849638 (patch) | |
tree | 30e2e2ec55610980e11855c1dbc1aad732885b20 /arch/arm/mach-pxa/cm-x300.c | |
parent | b3d01da66d45504f8bdc6fbc9c0c1f1705ebc251 (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/mach-pxa/cm-x300.c')
-rw-r--r-- | arch/arm/mach-pxa/cm-x300.c | 42 |
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 9a21bc567ca2..d9006c271e8b 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 | ||
62 | static mfp_cfg_t cm_x300_mfp_cfg[] __initdata = { | 62 | static 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 | ||
161 | static mfp_cfg_t cm_x300_rev_lt130_mfp_cfg[] __initdata = { | 161 | static 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 | ||
168 | static mfp_cfg_t cm_x300_rev_ge130_mfp_cfg[] __initdata = { | 168 | static 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 | ||
175 | static 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) |
176 | static struct resource dm9000_resources[] = { | 203 | static struct resource dm9000_resources[] = { |
177 | [0] = { | 204 | [0] = { |
@@ -553,12 +580,15 @@ static void __init cm_x300_init_wi2wi(void) | |||
553 | static void __init cm_x300_init_mfp(void) | 580 | static 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 | ||
564 | static void __init cm_x300_init(void) | 594 | static void __init cm_x300_init(void) |