aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTomi Valkeinen <tomi.valkeinen@ti.com>2012-02-20 05:18:52 -0500
committerTomi Valkeinen <tomi.valkeinen@ti.com>2012-05-09 03:53:05 -0400
commit3acc797c1db2eb873b13a07f21fe9572af4b78ee (patch)
tree6b28c959da58c5ac7a0da4080688d9b1220fa2cb
parentdac8eb5f1d29eb4cf44305239da7e7a477e48a90 (diff)
OMAPDSS: Taal: move reset gpio handling to taal driver
The reset GPIO for Taal panel driver is currently requested in the 4430sdp board file. This patch moves the gpio request/free into the Taal driver, where it should be. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com> Acked-by: Tony Lindgren <tony@atomide.com>
-rw-r--r--arch/arm/mach-omap2/board-4430sdp.c16
-rw-r--r--drivers/video/omap2/displays/panel-taal.c15
2 files changed, 15 insertions, 16 deletions
diff --git a/arch/arm/mach-omap2/board-4430sdp.c b/arch/arm/mach-omap2/board-4430sdp.c
index 130ab00c09a2..6cbb16fb3817 100644
--- a/arch/arm/mach-omap2/board-4430sdp.c
+++ b/arch/arm/mach-omap2/board-4430sdp.c
@@ -758,21 +758,6 @@ static struct omap_dss_device sdp4430_lcd2_device = {
758 .channel = OMAP_DSS_CHANNEL_LCD2, 758 .channel = OMAP_DSS_CHANNEL_LCD2,
759}; 759};
760 760
761static void sdp4430_lcd_init(void)
762{
763 int r;
764
765 r = gpio_request_one(dsi1_panel.reset_gpio, GPIOF_DIR_OUT,
766 "lcd1_reset_gpio");
767 if (r)
768 pr_err("%s: Could not get lcd1_reset_gpio\n", __func__);
769
770 r = gpio_request_one(dsi2_panel.reset_gpio, GPIOF_DIR_OUT,
771 "lcd2_reset_gpio");
772 if (r)
773 pr_err("%s: Could not get lcd2_reset_gpio\n", __func__);
774}
775
776static struct omap_dss_hdmi_data sdp4430_hdmi_data = { 761static struct omap_dss_hdmi_data sdp4430_hdmi_data = {
777 .hpd_gpio = HDMI_GPIO_HPD, 762 .hpd_gpio = HDMI_GPIO_HPD,
778}; 763};
@@ -858,7 +843,6 @@ static void __init omap_4430sdp_display_init(void)
858 if (r) 843 if (r)
859 pr_err("%s: Could not get display_sel GPIO\n", __func__); 844 pr_err("%s: Could not get display_sel GPIO\n", __func__);
860 845
861 sdp4430_lcd_init();
862 sdp4430_picodlp_init(); 846 sdp4430_picodlp_init();
863 omap_display_init(&sdp4430_dss_data); 847 omap_display_init(&sdp4430_dss_data);
864 /* 848 /*
diff --git a/drivers/video/omap2/displays/panel-taal.c b/drivers/video/omap2/displays/panel-taal.c
index 0f21fa5a16ae..0888162e9ce9 100644
--- a/drivers/video/omap2/displays/panel-taal.c
+++ b/drivers/video/omap2/displays/panel-taal.c
@@ -993,6 +993,15 @@ static int taal_probe(struct omap_dss_device *dssdev)
993 993
994 dev_set_drvdata(&dssdev->dev, td); 994 dev_set_drvdata(&dssdev->dev, td);
995 995
996 if (gpio_is_valid(panel_data->reset_gpio)) {
997 r = gpio_request_one(panel_data->reset_gpio, GPIOF_OUT_INIT_LOW,
998 "taal rst");
999 if (r) {
1000 dev_err(&dssdev->dev, "failed to request reset gpio\n");
1001 goto err_rst_gpio;
1002 }
1003 }
1004
996 taal_hw_reset(dssdev); 1005 taal_hw_reset(dssdev);
997 1006
998 if (panel_data->use_dsi_backlight) { 1007 if (panel_data->use_dsi_backlight) {
@@ -1073,6 +1082,9 @@ err_gpio:
1073 if (bldev != NULL) 1082 if (bldev != NULL)
1074 backlight_device_unregister(bldev); 1083 backlight_device_unregister(bldev);
1075err_bl: 1084err_bl:
1085 if (gpio_is_valid(panel_data->reset_gpio))
1086 gpio_free(panel_data->reset_gpio);
1087err_rst_gpio:
1076 destroy_workqueue(td->workqueue); 1088 destroy_workqueue(td->workqueue);
1077err_wq: 1089err_wq:
1078 free_regulators(panel_config->regulators, panel_config->num_regulators); 1090 free_regulators(panel_config->regulators, panel_config->num_regulators);
@@ -1116,6 +1128,9 @@ static void __exit taal_remove(struct omap_dss_device *dssdev)
1116 free_regulators(td->panel_config->regulators, 1128 free_regulators(td->panel_config->regulators,
1117 td->panel_config->num_regulators); 1129 td->panel_config->num_regulators);
1118 1130
1131 if (gpio_is_valid(panel_data->reset_gpio))
1132 gpio_free(panel_data->reset_gpio);
1133
1119 kfree(td); 1134 kfree(td);
1120} 1135}
1121 1136