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>
This commit is contained in:
@@ -758,21 +758,6 @@ static struct omap_dss_device sdp4430_lcd2_device = {
|
|||||||
.channel = OMAP_DSS_CHANNEL_LCD2,
|
.channel = OMAP_DSS_CHANNEL_LCD2,
|
||||||
};
|
};
|
||||||
|
|
||||||
static void sdp4430_lcd_init(void)
|
|
||||||
{
|
|
||||||
int r;
|
|
||||||
|
|
||||||
r = gpio_request_one(dsi1_panel.reset_gpio, GPIOF_DIR_OUT,
|
|
||||||
"lcd1_reset_gpio");
|
|
||||||
if (r)
|
|
||||||
pr_err("%s: Could not get lcd1_reset_gpio\n", __func__);
|
|
||||||
|
|
||||||
r = gpio_request_one(dsi2_panel.reset_gpio, GPIOF_DIR_OUT,
|
|
||||||
"lcd2_reset_gpio");
|
|
||||||
if (r)
|
|
||||||
pr_err("%s: Could not get lcd2_reset_gpio\n", __func__);
|
|
||||||
}
|
|
||||||
|
|
||||||
static struct omap_dss_hdmi_data sdp4430_hdmi_data = {
|
static struct omap_dss_hdmi_data sdp4430_hdmi_data = {
|
||||||
.hpd_gpio = HDMI_GPIO_HPD,
|
.hpd_gpio = HDMI_GPIO_HPD,
|
||||||
};
|
};
|
||||||
@@ -858,7 +843,6 @@ static void __init omap_4430sdp_display_init(void)
|
|||||||
if (r)
|
if (r)
|
||||||
pr_err("%s: Could not get display_sel GPIO\n", __func__);
|
pr_err("%s: Could not get display_sel GPIO\n", __func__);
|
||||||
|
|
||||||
sdp4430_lcd_init();
|
|
||||||
sdp4430_picodlp_init();
|
sdp4430_picodlp_init();
|
||||||
omap_display_init(&sdp4430_dss_data);
|
omap_display_init(&sdp4430_dss_data);
|
||||||
/*
|
/*
|
||||||
|
@@ -993,6 +993,15 @@ static int taal_probe(struct omap_dss_device *dssdev)
|
|||||||
|
|
||||||
dev_set_drvdata(&dssdev->dev, td);
|
dev_set_drvdata(&dssdev->dev, td);
|
||||||
|
|
||||||
|
if (gpio_is_valid(panel_data->reset_gpio)) {
|
||||||
|
r = gpio_request_one(panel_data->reset_gpio, GPIOF_OUT_INIT_LOW,
|
||||||
|
"taal rst");
|
||||||
|
if (r) {
|
||||||
|
dev_err(&dssdev->dev, "failed to request reset gpio\n");
|
||||||
|
goto err_rst_gpio;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
taal_hw_reset(dssdev);
|
taal_hw_reset(dssdev);
|
||||||
|
|
||||||
if (panel_data->use_dsi_backlight) {
|
if (panel_data->use_dsi_backlight) {
|
||||||
@@ -1073,6 +1082,9 @@ err_gpio:
|
|||||||
if (bldev != NULL)
|
if (bldev != NULL)
|
||||||
backlight_device_unregister(bldev);
|
backlight_device_unregister(bldev);
|
||||||
err_bl:
|
err_bl:
|
||||||
|
if (gpio_is_valid(panel_data->reset_gpio))
|
||||||
|
gpio_free(panel_data->reset_gpio);
|
||||||
|
err_rst_gpio:
|
||||||
destroy_workqueue(td->workqueue);
|
destroy_workqueue(td->workqueue);
|
||||||
err_wq:
|
err_wq:
|
||||||
free_regulators(panel_config->regulators, panel_config->num_regulators);
|
free_regulators(panel_config->regulators, panel_config->num_regulators);
|
||||||
@@ -1116,6 +1128,9 @@ static void __exit taal_remove(struct omap_dss_device *dssdev)
|
|||||||
free_regulators(td->panel_config->regulators,
|
free_regulators(td->panel_config->regulators,
|
||||||
td->panel_config->num_regulators);
|
td->panel_config->num_regulators);
|
||||||
|
|
||||||
|
if (gpio_is_valid(panel_data->reset_gpio))
|
||||||
|
gpio_free(panel_data->reset_gpio);
|
||||||
|
|
||||||
kfree(td);
|
kfree(td);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user