]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - arch/arm/mach-omap2/board-devkit8000.c
Merge remote-tracking branch 'usb-gadget/next'
[karo-tx-linux.git] / arch / arm / mach-omap2 / board-devkit8000.c
index f1d91ba5d1ac2dacf9925f4afc36779051a9a8ef..cdc4fb9960a99dda470d6b939366db4d678be595 100644 (file)
@@ -112,50 +112,81 @@ static struct regulator_consumer_supply devkit8000_vio_supply[] = {
        REGULATOR_SUPPLY("vcc", "spi2.0"),
 };
 
-static struct panel_generic_dpi_data lcd_panel = {
-       .name                   = "innolux_at070tn83",
-       /* gpios filled in code */
+static const struct display_timing devkit8000_lcd_videomode = {
+       .pixelclock     = { 0, 40000000, 0 },
+
+       .hactive = { 0, 800, 0 },
+       .hfront_porch = { 0, 1, 0 },
+       .hback_porch = { 0, 1, 0 },
+       .hsync_len = { 0, 48, 0 },
+
+       .vactive = { 0, 480, 0 },
+       .vfront_porch = { 0, 12, 0 },
+       .vback_porch = { 0, 25, 0 },
+       .vsync_len = { 0, 3, 0 },
+
+       .flags = DISPLAY_FLAGS_HSYNC_LOW | DISPLAY_FLAGS_VSYNC_LOW |
+               DISPLAY_FLAGS_DE_HIGH | DISPLAY_FLAGS_PIXDATA_POSEDGE,
 };
 
-static struct omap_dss_device devkit8000_lcd_device = {
+static struct panel_dpi_platform_data devkit8000_lcd_pdata = {
        .name                   = "lcd",
-       .type                   = OMAP_DISPLAY_TYPE_DPI,
-       .driver_name            = "generic_dpi_panel",
-       .data                   = &lcd_panel,
-       .phy.dpi.data_lines     = 24,
+       .source                 = "dpi.0",
+
+       .data_lines             = 24,
+
+       .display_timing         = &devkit8000_lcd_videomode,
+
+       .enable_gpio            = -1,   /* filled in code */
+       .backlight_gpio         = -1,
 };
 
-static struct tfp410_platform_data dvi_panel = {
-       .power_down_gpio        = -1,
-       .i2c_bus_num            = 1,
+static struct platform_device devkit8000_lcd_device = {
+       .name                   = "panel-dpi",
+       .id                     = 0,
+       .dev.platform_data      = &devkit8000_lcd_pdata,
 };
 
-static struct omap_dss_device devkit8000_dvi_device = {
+static struct connector_dvi_platform_data devkit8000_dvi_connector_pdata = {
        .name                   = "dvi",
-       .type                   = OMAP_DISPLAY_TYPE_DPI,
-       .driver_name            = "tfp410",
-       .data                   = &dvi_panel,
-       .phy.dpi.data_lines     = 24,
+       .source                 = "tfp410.0",
+       .i2c_bus_num            = 1,
 };
 
-static struct omap_dss_device devkit8000_tv_device = {
-       .name                   = "tv",
-       .driver_name            = "venc",
-       .type                   = OMAP_DISPLAY_TYPE_VENC,
-       .phy.venc.type          = OMAP_DSS_VENC_TYPE_SVIDEO,
+static struct platform_device devkit8000_dvi_connector_device = {
+       .name                   = "connector-dvi",
+       .id                     = 0,
+       .dev.platform_data      = &devkit8000_dvi_connector_pdata,
 };
 
+static struct encoder_tfp410_platform_data devkit8000_tfp410_pdata = {
+       .name                   = "tfp410.0",
+       .source                 = "dpi.0",
+       .data_lines             = 24,
+       .power_down_gpio        = -1,   /* filled in code */
+};
 
-static struct omap_dss_device *devkit8000_dss_devices[] = {
-       &devkit8000_lcd_device,
-       &devkit8000_dvi_device,
-       &devkit8000_tv_device,
+static struct platform_device devkit8000_tfp410_device = {
+       .name                   = "tfp410",
+       .id                     = 0,
+       .dev.platform_data      = &devkit8000_tfp410_pdata,
+};
+
+static struct connector_atv_platform_data devkit8000_tv_pdata = {
+       .name = "tv",
+       .source = "venc.0",
+       .connector_type = OMAP_DSS_VENC_TYPE_SVIDEO,
+       .invert_polarity = false,
+};
+
+static struct platform_device devkit8000_tv_connector_device = {
+       .name                   = "connector-analog-tv",
+       .id                     = 0,
+       .dev.platform_data      = &devkit8000_tv_pdata,
 };
 
 static struct omap_dss_board_info devkit8000_dss_data = {
-       .num_devices = ARRAY_SIZE(devkit8000_dss_devices),
-       .devices = devkit8000_dss_devices,
-       .default_device = &devkit8000_lcd_device,
+       .default_display_name = "lcd",
 };
 
 static uint32_t board_keymap[] = {
@@ -204,11 +235,10 @@ static int devkit8000_twl_gpio_setup(struct device *dev,
        gpio_leds[2].gpio = gpio + TWL4030_GPIO_MAX + 1;
 
        /* TWL4030_GPIO_MAX + 0 is "LCD_PWREN" (out, active high) */
-       lcd_panel.num_gpios = 1;
-       lcd_panel.gpios[0] = gpio + TWL4030_GPIO_MAX + 0;
+       devkit8000_lcd_pdata.enable_gpio = gpio + TWL4030_GPIO_MAX + 0;
 
        /* gpio + 7 is "DVI_PD" (out, active low) */
-       dvi_panel.power_down_gpio = gpio + 7;
+       devkit8000_tfp410_pdata.power_down_gpio = gpio + 7;
 
        return 0;
 }
@@ -413,6 +443,10 @@ static struct platform_device *devkit8000_devices[] __initdata = {
        &leds_gpio,
        &keys_gpio,
        &omap_dm9000_dev,
+       &devkit8000_lcd_device,
+       &devkit8000_tfp410_device,
+       &devkit8000_dvi_connector_device,
+       &devkit8000_tv_connector_device,
 };
 
 static struct usbhs_omap_platform_data usbhs_bdata __initdata = {