omap3: Enable DSS2 for IGEP v2 board
Signed-off-by: Enric Balletbo i Serra <eballetbo@iseebcn.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
This commit is contained in:
parent
d0885486d7
commit
691de27f3c
1 changed files with 75 additions and 0 deletions
|
@ -28,6 +28,7 @@
|
|||
#include <plat/common.h>
|
||||
#include <plat/gpmc.h>
|
||||
#include <plat/usb.h>
|
||||
#include <plat/display.h>
|
||||
|
||||
#include "mux.h"
|
||||
#include "hsmmc.h"
|
||||
|
@ -38,6 +39,7 @@
|
|||
#define IGEP2_GPIO_LED0_RED 26
|
||||
#define IGEP2_GPIO_LED0_GREEN 27
|
||||
#define IGEP2_GPIO_LED1_RED 28
|
||||
#define IGEP2_GPIO_DVI_PUP 170
|
||||
|
||||
#if defined(CONFIG_SMSC911X) || defined(CONFIG_SMSC911X_MODULE)
|
||||
|
||||
|
@ -164,6 +166,76 @@ static struct twl4030_usb_data igep2_usb_data = {
|
|||
.usb_mode = T2_USB_MODE_ULPI,
|
||||
};
|
||||
|
||||
static int igep2_enable_dvi(struct omap_dss_device *dssdev)
|
||||
{
|
||||
gpio_direction_output(IGEP2_GPIO_DVI_PUP, 1);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void igep2_disable_dvi(struct omap_dss_device *dssdev)
|
||||
{
|
||||
gpio_direction_output(IGEP2_GPIO_DVI_PUP, 0);
|
||||
}
|
||||
|
||||
static struct omap_dss_device igep2_dvi_device = {
|
||||
.type = OMAP_DISPLAY_TYPE_DPI,
|
||||
.name = "dvi",
|
||||
.driver_name = "generic_panel",
|
||||
.phy.dpi.data_lines = 24,
|
||||
.platform_enable = igep2_enable_dvi,
|
||||
.platform_disable = igep2_disable_dvi,
|
||||
};
|
||||
|
||||
static struct omap_dss_device *igep2_dss_devices[] = {
|
||||
&igep2_dvi_device
|
||||
};
|
||||
|
||||
static struct omap_dss_board_info igep2_dss_data = {
|
||||
.num_devices = ARRAY_SIZE(igep2_dss_devices),
|
||||
.devices = igep2_dss_devices,
|
||||
.default_device = &igep2_dvi_device,
|
||||
};
|
||||
|
||||
static struct platform_device igep2_dss_device = {
|
||||
.name = "omapdss",
|
||||
.id = -1,
|
||||
.dev = {
|
||||
.platform_data = &igep2_dss_data,
|
||||
},
|
||||
};
|
||||
|
||||
static struct regulator_consumer_supply igep2_vpll2_supply = {
|
||||
.supply = "vdds_dsi",
|
||||
.dev = &igep2_dss_device.dev,
|
||||
};
|
||||
|
||||
static struct regulator_init_data igep2_vpll2 = {
|
||||
.constraints = {
|
||||
.name = "VDVI",
|
||||
.min_uV = 1800000,
|
||||
.max_uV = 1800000,
|
||||
.apply_uV = true,
|
||||
.valid_modes_mask = REGULATOR_MODE_NORMAL
|
||||
| REGULATOR_MODE_STANDBY,
|
||||
.valid_ops_mask = REGULATOR_CHANGE_MODE
|
||||
| REGULATOR_CHANGE_STATUS,
|
||||
},
|
||||
.num_consumer_supplies = 1,
|
||||
.consumer_supplies = &igep2_vpll2_supply,
|
||||
};
|
||||
|
||||
static void __init igep2_display_init(void)
|
||||
{
|
||||
if (gpio_request(IGEP2_GPIO_DVI_PUP, "GPIO_DVI_PUP") &&
|
||||
gpio_direction_output(IGEP2_GPIO_DVI_PUP, 1))
|
||||
pr_err("IGEP v2: Could not obtain gpio GPIO_DVI_PUP\n");
|
||||
}
|
||||
|
||||
static struct platform_device *igep2_devices[] __initdata = {
|
||||
&igep2_dss_device,
|
||||
};
|
||||
|
||||
static void __init igep2_init_irq(void)
|
||||
{
|
||||
omap_board_config = igep2_config;
|
||||
|
@ -191,6 +263,7 @@ static struct twl4030_platform_data igep2_twldata = {
|
|||
.codec = &igep2_codec_data,
|
||||
.gpio = &igep2_gpio_data,
|
||||
.vmmc1 = &igep2_vmmc1,
|
||||
.vpll2 = &igep2_vpll2,
|
||||
|
||||
};
|
||||
|
||||
|
@ -236,10 +309,12 @@ static void __init igep2_init(void)
|
|||
{
|
||||
omap3_mux_init(board_mux, OMAP_PACKAGE_CBB);
|
||||
igep2_i2c_init();
|
||||
platform_add_devices(igep2_devices, ARRAY_SIZE(igep2_devices));
|
||||
omap_serial_init();
|
||||
usb_musb_init();
|
||||
usb_ehci_init(&ehci_pdata);
|
||||
|
||||
igep2_display_init();
|
||||
igep2_init_smsc911x();
|
||||
|
||||
/* GPIO userspace leds */
|
||||
|
|
Loading…
Reference in a new issue