]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - arch/arm/mach-omap2/board-cm-t35.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-omap2 / board-cm-t35.c
index 63f764e2af3ff31c9b5edceb6da2e9dcc307cd90..dac141610666442dd7e578acb92b97163948d95d 100644 (file)
@@ -46,6 +46,7 @@
 #include <plat/gpmc.h>
 #include <plat/usb.h>
 #include <plat/display.h>
+#include <plat/panel-generic-dpi.h>
 #include <plat/mcspi.h>
 
 #include <mach/hardware.h>
@@ -351,22 +352,32 @@ static void cm_t35_panel_disable_tv(struct omap_dss_device *dssdev)
 {
 }
 
+static struct panel_generic_dpi_data lcd_panel = {
+       .name                   = "toppoly_tdo35s",
+       .platform_enable        = cm_t35_panel_enable_lcd,
+       .platform_disable       = cm_t35_panel_disable_lcd,
+};
+
 static struct omap_dss_device cm_t35_lcd_device = {
        .name                   = "lcd",
-       .driver_name            = "toppoly_tdo35s_panel",
        .type                   = OMAP_DISPLAY_TYPE_DPI,
+       .driver_name            = "generic_dpi_panel",
+       .data                   = &lcd_panel,
        .phy.dpi.data_lines     = 18,
-       .platform_enable        = cm_t35_panel_enable_lcd,
-       .platform_disable       = cm_t35_panel_disable_lcd,
+};
+
+static struct panel_generic_dpi_data dvi_panel = {
+       .name                   = "generic",
+       .platform_enable        = cm_t35_panel_enable_dvi,
+       .platform_disable       = cm_t35_panel_disable_dvi,
 };
 
 static struct omap_dss_device cm_t35_dvi_device = {
        .name                   = "dvi",
-       .driver_name            = "generic_panel",
        .type                   = OMAP_DISPLAY_TYPE_DPI,
+       .driver_name            = "generic_dpi_panel",
+       .data                   = &dvi_panel,
        .phy.dpi.data_lines     = 24,
-       .platform_enable        = cm_t35_panel_enable_dvi,
-       .platform_disable       = cm_t35_panel_disable_dvi,
 };
 
 static struct omap_dss_device cm_t35_tv_device = {
@@ -600,8 +611,8 @@ static struct ehci_hcd_omap_platform_data ehci_pdata __initdata = {
        .port_mode[2] = EHCI_HCD_OMAP_MODE_UNKNOWN,
 
        .phy_reset  = true,
-       .reset_gpio_port[0]  = -EINVAL,
-       .reset_gpio_port[1]  = -EINVAL,
+       .reset_gpio_port[0]  = OMAP_MAX_GPIO_LINES + 6,
+       .reset_gpio_port[1]  = OMAP_MAX_GPIO_LINES + 7,
        .reset_gpio_port[2]  = -EINVAL
 };
 
@@ -630,12 +641,6 @@ static int cm_t35_twl_gpio_setup(struct device *dev, unsigned gpio,
        cm_t35_vmmc1_supply.dev = mmc[0].dev;
        cm_t35_vsim_supply.dev = mmc[0].dev;
 
-       /* setup USB with proper PHY reset GPIOs */
-       ehci_pdata.reset_gpio_port[0] = gpio + 6;
-       ehci_pdata.reset_gpio_port[1] = gpio + 7;
-
-       usb_ehci_init(&ehci_pdata);
-
        return 0;
 }
 
@@ -683,10 +688,10 @@ static void __init cm_t35_init_irq(void)
        omap_board_config = cm_t35_config;
        omap_board_config_size = ARRAY_SIZE(cm_t35_config);
 
-       omap2_init_common_hw(mt46h32m32lf6_sdrc_params,
+       omap2_init_common_infrastructure();
+       omap2_init_common_devices(mt46h32m32lf6_sdrc_params,
                             mt46h32m32lf6_sdrc_params);
        omap_init_irq();
-       omap_gpio_init();
 }
 
 static struct omap_board_mux board_mux[] __initdata = {
@@ -805,6 +810,7 @@ static void __init cm_t35_init(void)
        cm_t35_init_display();
 
        usb_musb_init(&musb_board_data);
+       usb_ehci_init(&ehci_pdata);
 }
 
 MACHINE_START(CM_T35, "Compulab CM-T35")