]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - arch/arm/mach-pxa/colibri-pxa320.c
Merge tag 'v2.6.38' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
[mv-sheeva.git] / arch / arm / mach-pxa / colibri-pxa320.c
index ca5f29e2e9cd412fcb3ca010603ffd3019898190..ff9ff5f4fc47e599f409c10935151e65621023e1 100644 (file)
 #include "generic.h"
 #include "devices.h"
 
+#ifdef CONFIG_MACH_COLIBRI_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,
+
+       /* I2C */
+       GPIO32_I2C_SCL,
+       GPIO33_I2C_SDA,
+
+       /* PCMCIA */
+       MFP_CFG(GPIO59, AF7),   /* PRST ; AF7 to tristate */
+       MFP_CFG(GPIO61, AF7),   /* PCE1 ; AF7 to tristate */
+       MFP_CFG(GPIO60, AF7),   /* PCE2 ; AF7 to tristate */
+       MFP_CFG(GPIO62, AF7),   /* PCD ; AF7 to tristate */
+       MFP_CFG(GPIO56, AF7),   /* PSKTSEL ; AF7 to tristate */
+       GPIO27_GPIO,            /* RDnWR ; input/tristate */
+       GPIO50_GPIO,            /* PREG ; input/tristate */
+       GPIO2_RDY,
+       GPIO5_NPIOR,
+       GPIO6_NPIOW,
+       GPIO7_NPIOS16,
+       GPIO8_NPWAIT,
+       GPIO29_GPIO,            /* PRDY (READY GPIO) */
+       GPIO57_GPIO,            /* PPEN (POWER GPIO) */
+       GPIO81_GPIO,            /* PCD (DETECT GPIO) */
+       GPIO77_GPIO,            /* PRST (RESET GPIO) */
+       GPIO53_GPIO,            /* PBVD1 */
+       GPIO79_GPIO,            /* PBVD2 */
+       GPIO54_GPIO,            /* POE */
+};
+#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 +147,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 +183,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,59 +239,24 @@ 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_evalboard_init();
 }
 
 MACHINE_START(COLIBRI320, "Toradex Colibri PXA320")
        .boot_params    = COLIBRI_SDRAM_BASE + 0x100,
        .init_machine   = colibri_pxa320_init,
-       .map_io         = pxa_map_io,
+       .map_io         = pxa3xx_map_io,
        .init_irq       = pxa3xx_init_irq,
        .timer          = &pxa_timer,
 MACHINE_END