static int ltn101al03_power_on(struct omap_dss_device *dssdev)
{
	struct ltn101al03 *lcd = dev_get_drvdata(&dssdev->dev);
	int ret = 0;

	pr_info("(%s): called (@%d)\n", __func__, __LINE__);

	if (lcd->enabled != 1) {
		if (lcd->pdata->set_power)
			lcd->pdata->set_power(true);
		mdelay(10);

		ret = omapdss_dpi_display_enable(dssdev);
		if (ret) {
			dev_err(&dssdev->dev, "failed to enable DPI\n");
			goto err;
		}

		/* reset ltn101al03 bridge */
		if (!dssdev->skip_init) {
			ltn101al03_hw_reset(dssdev);

			msleep(100);
			update_brightness(dssdev);
		}

		lcd->enabled = 1;
	}

	if (dssdev->skip_init)
		dssdev->skip_init = false;

err:
	return ret;
}
예제 #2
0
static int ltn101al03_power_on(struct omap_dss_device *dssdev)
{
	struct ltn101al03 *lcd = dev_get_drvdata(&dssdev->dev);
	int ret = 0;

	if (lcd->enabled != 1) {
		if (lcd->pdata->set_power)
			lcd->pdata->set_power(true);

		ret = omapdss_dpi_display_enable(dssdev);
		if (ret) {
			dev_err(&dssdev->dev, "failed to enable DPI\n");
			goto err;
		}

		/* reset ltn101al03 bridge */
		if (!dssdev->skip_init) {
			ltn101al03_hw_reset(dssdev);

			msleep(100);

			gpio_set_value(lcd->pdata->led_backlight_reset_gpio, 1);
			mdelay(10);
			omap_dm_timer_start(lcd->gptimer);

			usleep_range(2000, 2100);
			update_brightness(dssdev);
		}

		lcd->enabled = 1;
	}

	if (dssdev->skip_init)
		dssdev->skip_init = false;

err:
	return ret;
}