Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3acc797c authored by Tomi Valkeinen's avatar Tomi Valkeinen
Browse files

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: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
Acked-by: default avatarTony Lindgren <tony@atomide.com>
parent dac8eb5f
Loading
Loading
Loading
Loading
+0 −16
Original line number Diff line number Diff line
@@ -758,21 +758,6 @@ static struct omap_dss_device sdp4430_lcd2_device = {
	.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 = {
	.hpd_gpio = HDMI_GPIO_HPD,
};
@@ -858,7 +843,6 @@ static void __init omap_4430sdp_display_init(void)
	if (r)
		pr_err("%s: Could not get display_sel GPIO\n", __func__);

	sdp4430_lcd_init();
	sdp4430_picodlp_init();
	omap_display_init(&sdp4430_dss_data);
	/*
+15 −0
Original line number Diff line number Diff line
@@ -993,6 +993,15 @@ static int taal_probe(struct omap_dss_device *dssdev)

	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);

	if (panel_data->use_dsi_backlight) {
@@ -1073,6 +1082,9 @@ static int taal_probe(struct omap_dss_device *dssdev)
	if (bldev != NULL)
		backlight_device_unregister(bldev);
err_bl:
	if (gpio_is_valid(panel_data->reset_gpio))
		gpio_free(panel_data->reset_gpio);
err_rst_gpio:
	destroy_workqueue(td->workqueue);
err_wq:
	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,
			td->panel_config->num_regulators);

	if (gpio_is_valid(panel_data->reset_gpio))
		gpio_free(panel_data->reset_gpio);

	kfree(td);
}