ARM: pxa: Push Colibri evalboard MFP into module files
authorMarek Vasut <marek.vasut@gmail.com>
Wed, 11 Aug 2010 23:18:38 +0000 (01:18 +0200)
committerEric Miao <eric.y.miao@gmail.com>
Mon, 20 Dec 2010 15:07:40 +0000 (23:07 +0800)
This change -- pushing the MFP configuration back into Module files -- is
necessary because some evalboards can be used with multiple modules, where MFP
differs from module to module. Therefore MFP isn't board-specific, but
module-specific and the module should preconfigure itself for the board.

(And there is also the C preprocesor limitation and conflicting #define-s)

Signed-off-by: Marek Vasut <marek.vasut@gmail.com>
Acked-by: Daniel Mack <daniel@caiaq.de>
Signed-off-by: Eric Miao <eric.y.miao@gmail.com>
arch/arm/mach-pxa/Kconfig
arch/arm/mach-pxa/colibri-pxa270-evalboard.c
arch/arm/mach-pxa/colibri-pxa270-income.c
arch/arm/mach-pxa/colibri-pxa270.c
arch/arm/mach-pxa/colibri-pxa300.c
arch/arm/mach-pxa/colibri-pxa320.c
arch/arm/mach-pxa/colibri-pxa3xx.c
arch/arm/mach-pxa/include/mach/colibri.h

index e912b2c8881e53b677f60824930b320224999784..4c31e3dee70fc92c52fd5bef09bd4698761397db 100644 (file)
@@ -236,10 +236,6 @@ config MACH_COLIBRI
        bool "Toradex Colibri PXA270"
        select PXA27x
 
-config MACH_COLIBRI_PXA270_EVALBOARD
-       bool "Toradex Colibri Evaluation Carrier Board support (PXA270)"
-       depends on MACH_COLIBRI
-
 config MACH_COLIBRI_PXA270_INCOME
        bool "Income s.r.o. PXA270 SBC"
        depends on MACH_COLIBRI
@@ -257,6 +253,10 @@ config MACH_COLIBRI320
        select PXA3xx
        select CPU_PXA320
 
+config MACH_COLIBRI_PXA270_EVALBOARD
+       bool "Toradex Colibri Evaluation Carrier Board support"
+       depends on MACH_COLIBRI || MACH_COLIBRI300 || MACH_COLIBRI320
+
 config MACH_VPAC270
        bool "Voipac PXA270"
        select PXA27x
index 6177ff5ecbcf2c178a346ec090f807dbe2f2d3e1..e1a2b52a9d214960e1ed3f69ed5cfd97e5904c60 100644 (file)
 #include "generic.h"
 #include "devices.h"
 
-/******************************************************************************
- * Pin configuration
- ******************************************************************************/
-static mfp_cfg_t colibri_pxa270_evalboard_pin_config[] __initdata = {
-       /* MMC */
-       GPIO32_MMC_CLK,
-       GPIO92_MMC_DAT_0,
-       GPIO109_MMC_DAT_1,
-       GPIO110_MMC_DAT_2,
-       GPIO111_MMC_DAT_3,
-       GPIO112_MMC_CMD,
-       GPIO0_GPIO,     /* SD detect */
-
-       /* FFUART */
-       GPIO39_FFUART_TXD,
-       GPIO34_FFUART_RXD,
-
-       /* UHC */
-       GPIO88_USBH1_PWR,
-       GPIO89_USBH1_PEN,
-       GPIO119_USBH2_PWR,
-       GPIO120_USBH2_PEN,
-
-       /* PCMCIA */
-       GPIO85_nPCE_1,
-       GPIO54_nPCE_2,
-       GPIO55_nPREG,
-       GPIO50_nPIOR,
-       GPIO51_nPIOW,
-       GPIO49_nPWE,
-       GPIO48_nPOE,
-       GPIO57_nIOIS16,
-       GPIO56_nPWAIT,
-       GPIO104_PSKTSEL,
-       GPIO53_GPIO,    /* RESET */
-       GPIO83_GPIO,    /* BVD1 */
-       GPIO82_GPIO,    /* BVD2 */
-       GPIO1_GPIO,     /* READY */
-       GPIO84_GPIO,    /* DETECT */
-       GPIO107_GPIO,   /* PPEN */
-};
-
 /******************************************************************************
  * SD/MMC card controller
  ******************************************************************************/
@@ -78,13 +36,22 @@ static mfp_cfg_t colibri_pxa270_evalboard_pin_config[] __initdata = {
 static struct pxamci_platform_data colibri_pxa270_mci_platform_data = {
        .ocr_mask               = MMC_VDD_32_33 | MMC_VDD_33_34,
        .gpio_power             = -1,
-       .gpio_card_detect       = GPIO0_COLIBRI_PXA270_SD_DETECT,
        .gpio_card_ro           = -1,
        .detect_delay_ms        = 200,
 };
 
 static void __init colibri_pxa270_mmc_init(void)
 {
+       if (machine_is_colibri())       /* PXA270 Colibri */
+               colibri_pxa270_mci_platform_data.gpio_card_detect =
+                       GPIO0_COLIBRI_PXA270_SD_DETECT;
+       if (machine_is_colibri300())    /* PXA300 Colibri */
+               colibri_pxa270_mci_platform_data.gpio_card_detect =
+                       GPIO39_COLIBRI_PXA300_SD_DETECT;
+       else                            /* PXA320 Colibri */
+               colibri_pxa270_mci_platform_data.gpio_card_detect =
+                       GPIO28_COLIBRI_PXA320_SD_DETECT;
+
        pxa_set_mci_info(&colibri_pxa270_mci_platform_data);
 }
 #else
@@ -103,13 +70,17 @@ static int colibri_pxa270_ohci_init(struct device *dev)
 
 static struct pxaohci_platform_data colibri_pxa270_ohci_info = {
        .port_mode      = PMM_PERPORT_MODE,
-       .flags          = ENABLE_PORT1 | ENABLE_PORT2 |
+       .flags          = ENABLE_PORT1 |
                          POWER_CONTROL_LOW | POWER_SENSE_LOW,
        .init           = colibri_pxa270_ohci_init,
 };
 
 static void __init colibri_pxa270_uhc_init(void)
 {
+       /* Colibri PXA270 has two usb ports, TBA for 320 */
+       if (machine_is_colibri())
+               colibri_pxa270_ohci_info.flags  |= ENABLE_PORT2;
+
        pxa_set_ohci_info(&colibri_pxa270_ohci_info);
 }
 #else
@@ -118,7 +89,6 @@ static inline void colibri_pxa270_uhc_init(void) {}
 
 void __init colibri_pxa270_evalboard_init(void)
 {
-       pxa2xx_mfp_config(ARRAY_AND_SIZE(colibri_pxa270_evalboard_pin_config));
        pxa_set_ffuart_info(NULL);
        pxa_set_btuart_info(NULL);
        pxa_set_stuart_info(NULL);
@@ -126,4 +96,3 @@ void __init colibri_pxa270_evalboard_init(void)
        colibri_pxa270_mmc_init();
        colibri_pxa270_uhc_init();
 }
-
index 37f0f3ed7c612d87b8974609da07bcfb4511c4e6..07b62a096f1757f3f4d8e44220e264074494606c 100644 (file)
 #define GPIO55_INCOME_LED_B     (55)
 #define GPIO113_INCOME_TS_IRQ   (113)
 
-/******************************************************************************
- * Pin configuration
- ******************************************************************************/
-static mfp_cfg_t income_pin_config[] __initdata = {
-       /* MMC */
-       GPIO32_MMC_CLK,
-       GPIO92_MMC_DAT_0,
-       GPIO109_MMC_DAT_1,
-       GPIO110_MMC_DAT_2,
-       GPIO111_MMC_DAT_3,
-       GPIO112_MMC_CMD,
-       GPIO0_GPIO,     /* SD detect */
-       GPIO1_GPIO,     /* SD read-only */
-
-       /* FFUART */
-       GPIO39_FFUART_TXD,
-       GPIO34_FFUART_RXD,
-
-       /* BFUART */
-       GPIO42_BTUART_RXD,
-       GPIO43_BTUART_TXD,
-       GPIO45_BTUART_RTS,
-
-       /* STUART */
-       GPIO46_STUART_RXD,
-       GPIO47_STUART_TXD,
-
-       /* UHC */
-       GPIO88_USBH1_PWR,
-       GPIO89_USBH1_PEN,
-
-       /* LCD */
-       GPIOxx_LCD_TFT_16BPP,
-
-       /* PWM */
-       GPIO16_PWM0_OUT,
-
-       /* I2C */
-       GPIO117_I2C_SCL,
-       GPIO118_I2C_SDA,
-
-       /* LED */
-       GPIO54_GPIO,    /* LED A */
-       GPIO55_GPIO,    /* LED B */
-};
-
 /******************************************************************************
  * SD/MMC card controller
  ******************************************************************************/
@@ -257,7 +211,6 @@ static inline void income_pwm_init(void) {}
 
 void __init colibri_pxa270_income_boardinit(void)
 {
-       pxa2xx_mfp_config(ARRAY_AND_SIZE(income_pin_config));
        pxa_set_ffuart_info(NULL);
        pxa_set_btuart_info(NULL);
        pxa_set_stuart_info(NULL);
index 73205bc4a13cbd02bff83fe4bbacfa9cf3a33fbc..e940004eac16ef70bf732cba5156a55af2fc44ff 100644 (file)
 #include "devices.h"
 #include "generic.h"
 
+/******************************************************************************
+ * Evaluation board MFP
+ ******************************************************************************/
+#ifdef  CONFIG_MACH_COLIBRI_PXA270_EVALBOARD
+static mfp_cfg_t colibri_pxa270_evalboard_pin_config[] __initdata = {
+       /* MMC */
+       GPIO32_MMC_CLK,
+       GPIO92_MMC_DAT_0,
+       GPIO109_MMC_DAT_1,
+       GPIO110_MMC_DAT_2,
+       GPIO111_MMC_DAT_3,
+       GPIO112_MMC_CMD,
+       GPIO0_GPIO,     /* SD detect */
+
+       /* FFUART */
+       GPIO39_FFUART_TXD,
+       GPIO34_FFUART_RXD,
+
+       /* UHC */
+       GPIO88_USBH1_PWR,
+       GPIO89_USBH1_PEN,
+       GPIO119_USBH2_PWR,
+       GPIO120_USBH2_PEN,
+
+       /* PCMCIA */
+       GPIO85_nPCE_1,
+       GPIO54_nPCE_2,
+       GPIO55_nPREG,
+       GPIO50_nPIOR,
+       GPIO51_nPIOW,
+       GPIO49_nPWE,
+       GPIO48_nPOE,
+       GPIO57_nIOIS16,
+       GPIO56_nPWAIT,
+       GPIO104_PSKTSEL,
+       GPIO53_GPIO,    /* RESET */
+       GPIO83_GPIO,    /* BVD1 */
+       GPIO82_GPIO,    /* BVD2 */
+       GPIO1_GPIO,     /* READY */
+       GPIO84_GPIO,    /* DETECT */
+       GPIO107_GPIO,   /* PPEN */
+};
+#else
+static mfp_cfg_t colibri_pxa270_evalboard_pin_config[] __initdata = {};
+#endif
+
+#ifdef CONFIG_MACH_COLIBRI_PXA270_INCOME
+static mfp_cfg_t income_pin_config[] __initdata = {
+       /* MMC */
+       GPIO32_MMC_CLK,
+       GPIO92_MMC_DAT_0,
+       GPIO109_MMC_DAT_1,
+       GPIO110_MMC_DAT_2,
+       GPIO111_MMC_DAT_3,
+       GPIO112_MMC_CMD,
+       GPIO0_GPIO,     /* SD detect */
+       GPIO1_GPIO,     /* SD read-only */
+
+       /* FFUART */
+       GPIO39_FFUART_TXD,
+       GPIO34_FFUART_RXD,
+
+       /* BFUART */
+       GPIO42_BTUART_RXD,
+       GPIO43_BTUART_TXD,
+       GPIO45_BTUART_RTS,
+
+       /* STUART */
+       GPIO46_STUART_RXD,
+       GPIO47_STUART_TXD,
+
+       /* UHC */
+       GPIO88_USBH1_PWR,
+       GPIO89_USBH1_PEN,
+
+       /* LCD */
+       GPIOxx_LCD_TFT_16BPP,
+
+       /* PWM */
+       GPIO16_PWM0_OUT,
+
+       /* I2C */
+       GPIO117_I2C_SCL,
+       GPIO118_I2C_SDA,
+
+       /* LED */
+       GPIO54_GPIO,    /* LED A */
+       GPIO55_GPIO,    /* LED B */
+};
+#else
+static mfp_cfg_t income_pin_config[] __initdata = {};
+#endif
+
 /******************************************************************************
  * Pin configuration
  ******************************************************************************/
@@ -185,9 +278,12 @@ static void __init colibri_pxa270_init(void)
 
        switch (colibri_pxa270_baseboard) {
        case COLIBRI_PXA270_EVALBOARD:
+               pxa2xx_mfp_config(ARRAY_AND_SIZE(
+                       colibri_pxa270_evalboard_pin_config));
                colibri_pxa270_evalboard_init();
                break;
        case COLIBRI_PXA270_INCOME:
+               pxa2xx_mfp_config(ARRAY_AND_SIZE(income_pin_config));
                colibri_pxa270_income_boardinit();
                break;
        default:
index d039bd1e2e40738b307d2d941846a3d136e1b82d..649c83c427c990d9e6e9aea824792f75f4cf2716 100644 (file)
 #include "generic.h"
 #include "devices.h"
 
+
+#ifdef CONFIG_MACH_COLIBRI_PXA270_EVALBOARD
+static mfp_cfg_t colibri_pxa300_evalboard_pin_config[] __initdata = {
+       /* MMC */
+       GPIO7_MMC1_CLK,
+       GPIO14_MMC1_CMD,
+       GPIO3_MMC1_DAT0,
+       GPIO4_MMC1_DAT1,
+       GPIO5_MMC1_DAT2,
+       GPIO6_MMC1_DAT3,
+       GPIO39_GPIO,    /* SD detect */
+
+       /* UHC */
+       GPIO0_2_USBH_PEN,
+       GPIO1_2_USBH_PWR,
+};
+#else
+static mfp_cfg_t colibri_pxa300_evalboard_pin_config[] __initdata = {};
+#endif
+
 #if defined(CONFIG_AX88796)
 #define COLIBRI_ETH_IRQ_GPIO   mfp_to_gpio(GPIO26_GPIO)
-
 /*
  * Asix AX88796 Ethernet
  */
@@ -80,35 +99,6 @@ static void __init colibri_pxa300_init_eth(void)
 static inline void __init colibri_pxa300_init_eth(void) {}
 #endif /* CONFIG_AX88796 */
 
-#if defined(CONFIG_USB_OHCI_HCD) || defined(CONFIG_USB_OHCI_HCD_MODULE)
-static mfp_cfg_t colibri_pxa300_usb_pin_config[] __initdata = {
-       GPIO0_2_USBH_PEN,
-       GPIO1_2_USBH_PWR,
-};
-
-static struct pxaohci_platform_data colibri_pxa300_ohci_info = {
-       .port_mode      = PMM_GLOBAL_MODE,
-       .flags          = ENABLE_PORT1 | POWER_CONTROL_LOW | POWER_SENSE_LOW,
-};
-
-void __init colibri_pxa300_init_ohci(void)
-{
-       pxa3xx_mfp_config(ARRAY_AND_SIZE(colibri_pxa300_usb_pin_config));
-       pxa_set_ohci_info(&colibri_pxa300_ohci_info);
-}
-#else
-static inline void colibri_pxa300_init_ohci(void) {}
-#endif /* CONFIG_USB_OHCI_HCD || CONFIG_USB_OHCI_HCD_MODULE */
-
-static mfp_cfg_t colibri_pxa300_mmc_pin_config[] __initdata = {
-       GPIO7_MMC1_CLK,
-       GPIO14_MMC1_CMD,
-       GPIO3_MMC1_DAT0,
-       GPIO4_MMC1_DAT1,
-       GPIO5_MMC1_DAT2,
-       GPIO6_MMC1_DAT3,
-};
-
 #if defined(CONFIG_FB_PXA) || defined(CONFIG_FB_PXA_MODULE)
 static mfp_cfg_t colibri_pxa300_lcd_pin_config[] __initdata = {
        GPIO54_LCD_LDD_0,
@@ -171,18 +161,15 @@ static inline void colibri_pxa310_init_ac97(void) {}
 
 void __init colibri_pxa300_init(void)
 {
-       pxa_set_ffuart_info(NULL);
-       pxa_set_btuart_info(NULL);
-       pxa_set_stuart_info(NULL);
-
        colibri_pxa300_init_eth();
-       colibri_pxa300_init_ohci();
        colibri_pxa3xx_init_nand();
        colibri_pxa300_init_lcd();
        colibri_pxa3xx_init_lcd(mfp_to_gpio(GPIO39_GPIO));
        colibri_pxa310_init_ac97();
-       colibri_pxa3xx_init_mmc(ARRAY_AND_SIZE(colibri_pxa300_mmc_pin_config),
-                               mfp_to_gpio(MFP_PIN_GPIO13));
+
+       /* Evalboard init */
+       pxa3xx_mfp_config(ARRAY_AND_SIZE(colibri_pxa300_evalboard_pin_config));
+       colibri_pxa270_evalboard_init();
 }
 
 MACHINE_START(COLIBRI300, "Toradex Colibri PXA300")
index ccb2c59b2a3b9acf7a6bacc07b8a5ae37ddbebf9..6f15f2acf0c6c72a560cafb81fbfc6c260204140 100644 (file)
 #include "generic.h"
 #include "devices.h"
 
+#ifdef CONFIG_MACH_COLIBRI_PXA270_EVALBOARD
+static mfp_cfg_t colibri_pxa320_evalboard_pin_config[] __initdata = {
+       /* MMC */
+       GPIO22_MMC1_CLK,
+       GPIO23_MMC1_CMD,
+       GPIO18_MMC1_DAT0,
+       GPIO19_MMC1_DAT1,
+       GPIO20_MMC1_DAT2,
+       GPIO21_MMC1_DAT3,
+       GPIO28_GPIO,    /* SD detect */
+
+       /* UART 1 configuration (may be set by bootloader) */
+       GPIO99_UART1_CTS,
+       GPIO104_UART1_RTS,
+       GPIO97_UART1_RXD,
+       GPIO98_UART1_TXD,
+       GPIO101_UART1_DTR,
+       GPIO103_UART1_DSR,
+       GPIO100_UART1_DCD,
+       GPIO102_UART1_RI,
+
+       /* UART 2 configuration */
+       GPIO109_UART2_CTS,
+       GPIO112_UART2_RTS,
+       GPIO110_UART2_RXD,
+       GPIO111_UART2_TXD,
+
+       /* UART 3 configuration */
+       GPIO30_UART3_RXD,
+       GPIO31_UART3_TXD,
+
+       /* UHC */
+       GPIO2_2_USBH_PEN,
+       GPIO3_2_USBH_PWR,
+};
+#else
+static mfp_cfg_t colibri_pxa320_evalboard_pin_config[] __initdata = {};
+#endif
+
 #if defined(CONFIG_AX88796)
 #define COLIBRI_ETH_IRQ_GPIO   mfp_to_gpio(GPIO36_GPIO)
-
 /*
  * Asix AX88796 Ethernet
  */
@@ -84,26 +122,6 @@ static void __init colibri_pxa320_init_eth(void)
 static inline void __init colibri_pxa320_init_eth(void) {}
 #endif /* CONFIG_AX88796 */
 
-#if defined(CONFIG_USB_OHCI_HCD) || defined(CONFIG_USB_OHCI_HCD_MODULE)
-static mfp_cfg_t colibri_pxa320_usb_pin_config[] __initdata = {
-       GPIO2_2_USBH_PEN,
-       GPIO3_2_USBH_PWR,
-};
-
-static struct pxaohci_platform_data colibri_pxa320_ohci_info = {
-       .port_mode      = PMM_GLOBAL_MODE,
-       .flags          = ENABLE_PORT1 | POWER_CONTROL_LOW | POWER_SENSE_LOW,
-};
-
-void __init colibri_pxa320_init_ohci(void)
-{
-       pxa3xx_mfp_config(ARRAY_AND_SIZE(colibri_pxa320_usb_pin_config));
-       pxa_set_ohci_info(&colibri_pxa320_ohci_info);
-}
-#else
-static inline void colibri_pxa320_init_ohci(void) {}
-#endif /* CONFIG_USB_OHCI_HCD || CONFIG_USB_OHCI_HCD_MODULE */
-
 #if defined(CONFIG_USB_GADGET_PXA27X)||defined(CONFIG_USB_GADGET_PXA27X_MODULE)
 static struct gpio_vbus_mach_info colibri_pxa320_gpio_vbus_info = {
        .gpio_vbus              = mfp_to_gpio(MFP_PIN_GPIO96),
@@ -140,15 +158,6 @@ static void __init colibri_pxa320_init_udc(void)
 static inline void colibri_pxa320_init_udc(void) {}
 #endif
 
-static mfp_cfg_t colibri_pxa320_mmc_pin_config[] __initdata = {
-       GPIO22_MMC1_CLK,
-       GPIO23_MMC1_CMD,
-       GPIO18_MMC1_DAT0,
-       GPIO19_MMC1_DAT1,
-       GPIO20_MMC1_DAT2,
-       GPIO21_MMC1_DAT3
-};
-
 #if defined(CONFIG_FB_PXA) || defined(CONFIG_FB_PXA_MODULE)
 static mfp_cfg_t colibri_pxa320_lcd_pin_config[] __initdata = {
        GPIO6_2_LCD_LDD_0,
@@ -205,53 +214,18 @@ static inline void __init colibri_pxa320_init_ac97(void)
 static inline void colibri_pxa320_init_ac97(void) {}
 #endif
 
-/*
- * The following configuration is verified to work with the Toradex Orchid
- * carrier board
- */
-static mfp_cfg_t colibri_pxa320_uart_pin_config[] __initdata = {
-       /* UART 1 configuration (may be set by bootloader) */
-       GPIO99_UART1_CTS,
-       GPIO104_UART1_RTS,
-       GPIO97_UART1_RXD,
-       GPIO98_UART1_TXD,
-       GPIO101_UART1_DTR,
-       GPIO103_UART1_DSR,
-       GPIO100_UART1_DCD,
-       GPIO102_UART1_RI,
-
-       /* UART 2 configuration */
-       GPIO109_UART2_CTS,
-       GPIO112_UART2_RTS,
-       GPIO110_UART2_RXD,
-       GPIO111_UART2_TXD,
-
-       /* UART 3 configuration */
-       GPIO30_UART3_RXD,
-       GPIO31_UART3_TXD,
-};
-
-static void __init colibri_pxa320_init_uart(void)
-{
-       pxa3xx_mfp_config(ARRAY_AND_SIZE(colibri_pxa320_uart_pin_config));
-}
-
 void __init colibri_pxa320_init(void)
 {
-       pxa_set_ffuart_info(NULL);
-       pxa_set_btuart_info(NULL);
-       pxa_set_stuart_info(NULL);
-
        colibri_pxa320_init_eth();
-       colibri_pxa320_init_ohci();
        colibri_pxa3xx_init_nand();
        colibri_pxa320_init_lcd();
        colibri_pxa3xx_init_lcd(mfp_to_gpio(GPIO49_GPIO));
        colibri_pxa320_init_ac97();
-       colibri_pxa3xx_init_mmc(ARRAY_AND_SIZE(colibri_pxa320_mmc_pin_config),
-                               mfp_to_gpio(MFP_PIN_GPIO28));
-       colibri_pxa320_init_uart();
        colibri_pxa320_init_udc();
+
+       /* Evalboard init */
+       pxa3xx_mfp_config(ARRAY_AND_SIZE(colibri_pxa320_evalboard_pin_config));
+       colibri_pxa270_evalboard_init();
 }
 
 MACHINE_START(COLIBRI320, "Toradex Colibri PXA320")
index 199afa2ae30315e48f0c54cbdbdf8e658a880aca..96b2d9fbfef0b8e6fda574cd76842b7303dbecb3 100644 (file)
@@ -64,55 +64,6 @@ void __init colibri_pxa3xx_init_eth(struct ax_plat_data *plat_data)
 }
 #endif
 
-#if defined(CONFIG_MMC_PXA) || defined(CONFIG_MMC_PXA_MODULE)
-static int mmc_detect_pin;
-
-static int colibri_pxa3xx_mci_init(struct device *dev,
-                                  irq_handler_t colibri_mmc_detect_int,
-                                  void *data)
-{
-       int ret;
-
-       ret = gpio_request(mmc_detect_pin, "mmc card detect");
-       if (ret)
-               return ret;
-
-       gpio_direction_input(mmc_detect_pin);
-       ret = request_irq(gpio_to_irq(mmc_detect_pin), colibri_mmc_detect_int,
-                         IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING,
-                         "MMC card detect", data);
-       if (ret) {
-               gpio_free(mmc_detect_pin);
-               return ret;
-       }
-
-       return 0;
-}
-
-static void colibri_pxa3xx_mci_exit(struct device *dev, void *data)
-{
-       free_irq(mmc_detect_pin, data);
-       gpio_free(gpio_to_irq(mmc_detect_pin));
-}
-
-static struct pxamci_platform_data colibri_pxa3xx_mci_platform_data = {
-       .detect_delay_ms        = 200,
-       .ocr_mask               = MMC_VDD_32_33 | MMC_VDD_33_34,
-       .init                   = colibri_pxa3xx_mci_init,
-       .exit                   = colibri_pxa3xx_mci_exit,
-       .gpio_card_detect       = -1,
-       .gpio_card_ro           = -1,
-       .gpio_power             = -1,
-};
-
-void __init colibri_pxa3xx_init_mmc(mfp_cfg_t *pins, int len, int detect_pin)
-{
-       pxa3xx_mfp_config(pins, len);
-       mmc_detect_pin = detect_pin;
-       pxa_set_mci_info(&colibri_pxa3xx_mci_platform_data);
-}
-#endif /* CONFIG_MMC_PXA || CONFIG_MMC_PXA_MODULE */
-
 #if defined(CONFIG_FB_PXA) || defined(CONFIG_FB_PXA_MODULE)
 static int lcd_bl_pin;
 
index 58dada11054f2deec0102baec6584bd68975b3d4..63a948aaed8db594f3d2362a6f2ddb9da5a70ecf 100644 (file)
@@ -59,5 +59,11 @@ static inline void colibri_pxa3xx_init_nand(void) {}
 #define GPIO0_COLIBRI_PXA270_SD_DETECT 0
 #define GPIO113_COLIBRI_PXA270_TS_IRQ  113
 
+/* GPIO definitions for Colibri PXA300/310 */
+#define GPIO39_COLIBRI_PXA300_SD_DETECT        39
+
+/* GPIO definitions for Colibri PXA320 */
+#define GPIO28_COLIBRI_PXA320_SD_DETECT        28
+
 #endif /* _COLIBRI_H_ */