Example #1
0
/* a hacky interface to control the panel power */
static void lcdc_config_gpios(int on)
{
	printk(KERN_INFO "%s: power goes to %d\n", __func__, on);

	if (panel_power(on))
		printk(KERN_ERR "%s: panel_power failed!\n", __func__);
	if (panel_gpio_switch(on))
		printk(KERN_ERR "%s: panel_gpio_switch failed!\n", __func__);
}
static void mecha_auo_panel_power(bool on_off)
{
	if (!!on_off) {
		LCMDBG("%s(%d):\n", __func__, on_off);
		gpio_set_value(MECHA_LCD_RSTz, 1);
		udelay(500);
		gpio_set_value(MECHA_LCD_RSTz, 0);
		udelay(500);
		gpio_set_value(MECHA_LCD_RSTz, 1);
		hr_msleep(20);
		panel_gpio_switch(on_off);
	} else {
		LCMDBG("%s(%d):\n", __func__, on_off);
		gpio_set_value(MECHA_LCD_RSTz, 1);
		hr_msleep(70);
		panel_gpio_switch(on_off);
	}
}
static int express_smd_panel_uninit(struct msm_lcdc_panel_ops *ops)
{
    LCMDBG("\n");

    mutex_lock(&panel_lock);
    express_panel_power(0);
    panel_gpio_switch(0);
    mutex_unlock(&panel_lock);

    return 0;
}