int lcdc_toshiba_panel_power(int on) { int rc, i; struct msm_gpio *gp; rc = display_common_power(on); if (rc < 0) { return rc; } if (on) { rc = platform_gpios_enable(lcd_panel_gpios, ARRAY_SIZE(lcd_panel_gpios)); if (rc) { return rc; } } else { /* off */ gp = lcd_panel_gpios; for (i = 0; i < ARRAY_SIZE(lcd_panel_gpios); i++) { /* ouput low */ gpio_set(GPIO_PIN(gp->gpio_cfg), 0); gp++; } } return rc; }
static int lcdc_common_panel_power(int on) { int rc, i; struct msm_gpio *gp; printk(KERN_INFO "%s on/off[%d]\n",__func__, on); if (on) { rc = display_common_power(on); if (rc < 0) { printk(KERN_ERR "%s display_common_power failed: %d\n", __func__, rc); return rc; } rc = msm_gpios_enable(lcd_panel_gpios, ARRAY_SIZE(lcd_panel_gpios)); if (rc < 0) { printk(KERN_ERR "%s: gpio enable failed: %d\n", __func__, rc); } printk(KERN_INFO "%s Power on\n",__func__); } else { /* off */ rc = msm_gpios_enable(lcd_panel_off_gpios, ARRAY_SIZE(lcd_panel_off_gpios)); if (rc < 0) { printk(KERN_ERR "%s: gpio enable failed: %d\n", __func__, rc); } gp = lcd_panel_off_gpios; for (i = 0; i < ARRAY_SIZE(lcd_panel_off_gpios); i++) { /* ouput low */ gpio_set_value(GPIO_PIN(gp->gpio_cfg), 0); gp++; } mdelay(20); rc = display_common_power(on); if (rc < 0) { printk(KERN_ERR "%s display_common_power failed: %d\n", __func__, rc); return rc; } printk(KERN_INFO "%s powe offed\n",__func__); } return rc; }
void mddi_panel_poweron(void) { display_common_power(1); }