static int lcdc_chimei_panel_on(struct platform_device *pdev) { int ret; /* */ ret = gpio_request(lvds_pwr_down, "lvds_pwr_down"); if (ret == 0) { /* */ gpio_direction_output(lvds_pwr_down, 1); } else { pr_err("%s: lvds_pwr_down=%d, gpio_request failed\n", __func__, lvds_pwr_down); } msleep(200); /* */ if (chimei_bl_level == 0) chimei_bl_level = 1; lcdc_chimei_set_backlight(chimei_bl_level); msleep(10); ret = gpio_request(led_en, "led_en"); if (ret == 0) { /* */ gpio_direction_output(led_en, 1); } else { pr_err("%s: led_en=%d, gpio_request failed\n", __func__, led_en); } return ret; }
static int lcdc_chimei_panel_off(struct platform_device *pdev) { /* */ gpio_set_value_cansleep(led_en, 0); gpio_free(led_en); msleep(10); lcdc_chimei_set_backlight(0); msleep(200); /* */ /* */ gpio_set_value_cansleep(lvds_pwr_down, 0); gpio_free(lvds_pwr_down); /* */ return 0; }
static int lcdc_chimei_panel_off(struct platform_device *pdev) { /* pull low to disable */ gpio_set_value_cansleep(led_en, 0); gpio_free(led_en); msleep(10); lcdc_chimei_set_backlight(0); msleep(200); /* power off led pwm power >= 200 ms */ /* pull low to shut down lvds */ gpio_set_value_cansleep(lvds_pwr_down, 0); gpio_free(lvds_pwr_down); /* panel power off here */ return 0; }
static void lcdc_chimei_panel_backlight(struct msm_fb_data_type *mfd) { lcdc_chimei_set_backlight(mfd->bl_level); }
static int lcdc_chimei_panel_off(struct platform_device *pdev) { unsigned int my_bl_level = 0; printk(KERN_INFO "lcdc_chimei_panel_off---------------begin"); /* pull low to disable */ if (1 == display_panel_operate) { return 0; } display_panel_operate = 1; if (0 == display_panel_on) { display_panel_operate = 0; return 0; } display_panel_on = 0; gpio_set_value_cansleep(led_en, 0); gpio_free(led_en); msleep(10); if (my_hpd_state) { my_bl_level = chimei_bl_level; } lcdc_chimei_set_backlight(0); if (my_hpd_state) { chimei_bl_level = my_bl_level; } msleep(10); #if S7_HWID_L3H(S7, S7301, B) gpio_set_value_cansleep(led_vccs_en, 0); gpio_free(led_vccs_en); #endif /* power off led pwm power >= 200 ms */ msleep(200); /* pull low to shut down lvds */ gpio_set_value_cansleep(lvds_pwr_down, 0); gpio_free(lvds_pwr_down); gpio_set_value_cansleep(lcd_cabc_en, 0); gpio_free(lcd_cabc_en); gpio_set_value_cansleep(LCDC_GPIO_COLOR_EN, 0); gpio_free(LCDC_GPIO_COLOR_EN); GpioColorRequestStatusFlags = 0; /* panel power off here */ display_panel_power(0); lcdc_gpio_config(0); display_panel_operate = 0; status_of_lcd = LCD_STATUS_OFF; printk(KERN_INFO "lcdc_chimei_panel_off---------------end"); return 0; }
static int lcdc_chimei_panel_on(struct platform_device *pdev) { int ret = 0; #if 1 printk(KERN_INFO "lcdc_chimei_panel_on---------------begin"); if (1 == display_panel_operate) { return ret; } display_panel_operate = 1; if (1 == display_panel_on) { display_panel_operate = 0; return ret; } display_panel_on = 1; /* panel powered on here */ display_panel_power(1); ret = gpio_request(lvds_pwr_down, "lvds_pwr_down"); if (ret == 0) { /* output, pull high to enable */ gpio_direction_output(lvds_pwr_down, 1); } else { pr_err("%s: lvds_pwr_down=%d, gpio_request failed\n", __func__, lvds_pwr_down); } msleep(200); /* power on led pwm power >= 200 ms */ #if S7_HWID_L3H(S7, S7301, B) ret = gpio_request(led_vccs_en, "led_vccs_en"); if (ret == 0) { /* output, pull high to enable */ gpio_direction_output(led_vccs_en, 1); } else { pr_err("%s: led_vccs_en=%d, gpio_request failed\n", __func__, led_vccs_en); } #endif msleep(10); #if 0 lcdc_chimei_set_backlight(chimei_bl_level); msleep(10); #endif ret = gpio_request(led_en, "led_en"); if (ret == 0) { /* output, pull high */ gpio_direction_output(led_en, 1); } else { pr_err("%s: led_en=%d, gpio_request failed\n", __func__, led_en); } /* LCD_CABC_EN */ ret = gpio_request(lcd_cabc_en, "lcd_cabc_en"); if (ret == 0) { /* output, pull low to disable */ gpio_direction_output(lcd_cabc_en, 0); } else { pr_err("%s: cabc_en=%d, gpio_request failed\n", __func__, lcd_cabc_en); } ret = gpio_request(LCDC_GPIO_COLOR_EN, "lcdc_gpio_color_en"); if (ret == 0) { GpioColorRequestStatusFlags = 1; gpio_direction_output(LCDC_GPIO_COLOR_EN, colorEn_state); } else { pr_err("%s: LCDC_GPIO_COLOR_EN=%d, gpio_request failed\n", __func__, LCDC_GPIO_COLOR_EN); } lcdc_gpio_config(1); msleep(20); lcdc_chimei_set_backlight(chimei_bl_level); printk(KERN_INFO "lcdc_chimei_panel_on---------------end"); #endif status_of_lcd = LCD_STATUS_ON; if (-EINVAL == ret) { display_panel_on = 0; } display_panel_operate = 0; return ret; }