|
@@ -40,6 +40,7 @@
|
|
|
#include <mach/hardware.h>
|
|
|
#include <plat/mcspi.h>
|
|
|
#include <plat/usb.h>
|
|
|
+#include <plat/display.h>
|
|
|
|
|
|
#include "mux.h"
|
|
|
#include "sdram-micron-mt46h32m32lf-6.h"
|
|
@@ -192,6 +193,61 @@ static struct twl4030_keypad_data pandora_kp_data = {
|
|
|
.rep = 1,
|
|
|
};
|
|
|
|
|
|
+static struct omap_dss_device pandora_lcd_device = {
|
|
|
+ .name = "lcd",
|
|
|
+ .driver_name = "tpo_td043mtea1_panel",
|
|
|
+ .type = OMAP_DISPLAY_TYPE_DPI,
|
|
|
+ .phy.dpi.data_lines = 24,
|
|
|
+ .reset_gpio = 157,
|
|
|
+};
|
|
|
+
|
|
|
+static struct omap_dss_device pandora_tv_device = {
|
|
|
+ .name = "tv",
|
|
|
+ .driver_name = "venc",
|
|
|
+ .type = OMAP_DISPLAY_TYPE_VENC,
|
|
|
+ .phy.venc.type = OMAP_DSS_VENC_TYPE_SVIDEO,
|
|
|
+};
|
|
|
+
|
|
|
+static struct omap_dss_device *pandora_dss_devices[] = {
|
|
|
+ &pandora_lcd_device,
|
|
|
+ &pandora_tv_device,
|
|
|
+};
|
|
|
+
|
|
|
+static struct omap_dss_board_info pandora_dss_data = {
|
|
|
+ .num_devices = ARRAY_SIZE(pandora_dss_devices),
|
|
|
+ .devices = pandora_dss_devices,
|
|
|
+ .default_device = &pandora_lcd_device,
|
|
|
+};
|
|
|
+
|
|
|
+static struct platform_device pandora_dss_device = {
|
|
|
+ .name = "omapdss",
|
|
|
+ .id = -1,
|
|
|
+ .dev = {
|
|
|
+ .platform_data = &pandora_dss_data,
|
|
|
+ },
|
|
|
+};
|
|
|
+
|
|
|
+static struct regulator_consumer_supply pandora_vcc_lcd_supply = {
|
|
|
+ .supply = "vcc",
|
|
|
+ .dev = &pandora_lcd_device.dev,
|
|
|
+};
|
|
|
+
|
|
|
+static struct regulator_consumer_supply pandora_vdda_dac_supply = {
|
|
|
+ .supply = "vdda_dac",
|
|
|
+ .dev = &pandora_dss_device.dev,
|
|
|
+};
|
|
|
+
|
|
|
+static struct regulator_consumer_supply pandora_vdds_supplies[] = {
|
|
|
+ {
|
|
|
+ .supply = "vdds_sdi",
|
|
|
+ .dev = &pandora_dss_device.dev,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .supply = "vdds_dsi",
|
|
|
+ .dev = &pandora_dss_device.dev,
|
|
|
+ },
|
|
|
+};
|
|
|
+
|
|
|
static struct omap2_hsmmc_info omap3pandora_mmc[] = {
|
|
|
{
|
|
|
.mmc = 1,
|
|
@@ -277,6 +333,51 @@ static struct regulator_init_data pandora_vmmc2 = {
|
|
|
.consumer_supplies = &pandora_vmmc2_supply,
|
|
|
};
|
|
|
|
|
|
+/* VDAC for DSS driving S-Video */
|
|
|
+static struct regulator_init_data pandora_vdac = {
|
|
|
+ .constraints = {
|
|
|
+ .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 = &pandora_vdda_dac_supply,
|
|
|
+};
|
|
|
+
|
|
|
+/* VPLL2 for digital video outputs */
|
|
|
+static struct regulator_init_data pandora_vpll2 = {
|
|
|
+ .constraints = {
|
|
|
+ .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 = ARRAY_SIZE(pandora_vdds_supplies),
|
|
|
+ .consumer_supplies = pandora_vdds_supplies,
|
|
|
+};
|
|
|
+
|
|
|
+/* VAUX1 for LCD */
|
|
|
+static struct regulator_init_data pandora_vaux1 = {
|
|
|
+ .constraints = {
|
|
|
+ .min_uV = 3000000,
|
|
|
+ .max_uV = 3000000,
|
|
|
+ .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 = &pandora_vcc_lcd_supply,
|
|
|
+};
|
|
|
+
|
|
|
static struct twl4030_usb_data omap3pandora_usb_data = {
|
|
|
.usb_mode = T2_USB_MODE_ULPI,
|
|
|
};
|
|
@@ -298,6 +399,9 @@ static struct twl4030_platform_data omap3pandora_twldata = {
|
|
|
.codec = &omap3pandora_codec_data,
|
|
|
.vmmc1 = &pandora_vmmc1,
|
|
|
.vmmc2 = &pandora_vmmc2,
|
|
|
+ .vdac = &pandora_vdac,
|
|
|
+ .vpll2 = &pandora_vpll2,
|
|
|
+ .vaux1 = &pandora_vaux1,
|
|
|
.keypad = &pandora_kp_data,
|
|
|
};
|
|
|
|
|
@@ -365,6 +469,12 @@ static struct spi_board_info omap3pandora_spi_board_info[] __initdata = {
|
|
|
.controller_data = &ads7846_mcspi_config,
|
|
|
.irq = OMAP_GPIO_IRQ(OMAP3_PANDORA_TS_GPIO),
|
|
|
.platform_data = &ads7846_config,
|
|
|
+ }, {
|
|
|
+ .modalias = "tpo_td043mtea1_panel_spi",
|
|
|
+ .bus_num = 1,
|
|
|
+ .chip_select = 1,
|
|
|
+ .max_speed_hz = 375000,
|
|
|
+ .platform_data = &pandora_lcd_device,
|
|
|
}
|
|
|
};
|
|
|
|
|
@@ -379,6 +489,7 @@ static void __init omap3pandora_init_irq(void)
|
|
|
static struct platform_device *omap3pandora_devices[] __initdata = {
|
|
|
&pandora_leds_gpio,
|
|
|
&pandora_keys_gpio,
|
|
|
+ &pandora_dss_device,
|
|
|
};
|
|
|
|
|
|
static struct ehci_hcd_omap_platform_data ehci_pdata __initconst = {
|