aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKan-Ru Chen <kanru@0xlab.org>2010-07-05 10:04:40 -0400
committerTony Lindgren <tony@atomide.com>2010-07-05 10:04:40 -0400
commit31c73f74f3e2d3b842f1dcb3bbcfc4b53b62f797 (patch)
treee293babda183c1d33c46f53f2c61ebef0aa34d39
parent61d07ef4b4eea2f4c2aaef10ef013775896314a9 (diff)
OMAP2: Devkit8000: Enable DVI-D output
This patch corrects the DVI-D output setup of Devkit8000 Devkit8000 has different DVI reset pin with the BeagleBoard. On Devkit8000 the TWL4030 GPIO_7 is assigned to do the job. Signed-off-by: Kan-Ru Chen <kanru@0xlab.org> Signed-off-by: Tony Lindgren <tony@atomide.com>
-rw-r--r--arch/arm/mach-omap2/board-devkit8000.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/arch/arm/mach-omap2/board-devkit8000.c b/arch/arm/mach-omap2/board-devkit8000.c
index a0860a96b624..03cb97e3319b 100644
--- a/arch/arm/mach-omap2/board-devkit8000.c
+++ b/arch/arm/mach-omap2/board-devkit8000.c
@@ -140,13 +140,18 @@ static int devkit8000_panel_enable_lcd(struct omap_dss_device *dssdev)
140static void devkit8000_panel_disable_lcd(struct omap_dss_device *dssdev) 140static void devkit8000_panel_disable_lcd(struct omap_dss_device *dssdev)
141{ 141{
142} 142}
143
143static int devkit8000_panel_enable_dvi(struct omap_dss_device *dssdev) 144static int devkit8000_panel_enable_dvi(struct omap_dss_device *dssdev)
144{ 145{
146 if (dssdev->reset_gpio != -EINVAL)
147 gpio_set_value(dssdev->reset_gpio, 1);
145 return 0; 148 return 0;
146} 149}
147 150
148static void devkit8000_panel_disable_dvi(struct omap_dss_device *dssdev) 151static void devkit8000_panel_disable_dvi(struct omap_dss_device *dssdev)
149{ 152{
153 if (dssdev->reset_gpio != -EINVAL)
154 gpio_set_value(dssdev->reset_gpio, 0);
150} 155}
151 156
152static int devkit8000_panel_enable_tv(struct omap_dss_device *dssdev) 157static int devkit8000_panel_enable_tv(struct omap_dss_device *dssdev)
@@ -186,6 +191,7 @@ static struct omap_dss_device devkit8000_dvi_device = {
186 .driver_name = "generic_panel", 191 .driver_name = "generic_panel",
187 .type = OMAP_DISPLAY_TYPE_DPI, 192 .type = OMAP_DISPLAY_TYPE_DPI,
188 .phy.dpi.data_lines = 24, 193 .phy.dpi.data_lines = 24,
194 .reset_gpio = -EINVAL, /* will be replaced */
189 .platform_enable = devkit8000_panel_enable_dvi, 195 .platform_enable = devkit8000_panel_enable_dvi,
190 .platform_disable = devkit8000_panel_disable_dvi, 196 .platform_disable = devkit8000_panel_disable_dvi,
191}; 197};
@@ -272,6 +278,15 @@ static int devkit8000_twl_gpio_setup(struct device *dev,
272 devkit8000_vmmc1_supply.dev = mmc[0].dev; 278 devkit8000_vmmc1_supply.dev = mmc[0].dev;
273 devkit8000_vsim_supply.dev = mmc[0].dev; 279 devkit8000_vsim_supply.dev = mmc[0].dev;
274 280
281 /* TWL4030_GPIO_MAX + 1 == ledB, PMU_STAT (out, active low LED) */
282 gpio_leds[2].gpio = gpio + TWL4030_GPIO_MAX + 1;
283
284 /* gpio + 7 is "DVI_PD" (out, active low) */
285 devkit8000_dvi_device.reset_gpio = gpio + 7;
286 gpio_request(devkit8000_dvi_device.reset_gpio, "DVI PowerDown");
287 /* Disable until needed */
288 gpio_direction_output(devkit8000_dvi_device.reset_gpio, 0);
289
275 return 0; 290 return 0;
276} 291}
277 292