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);
}
Esempio n. 5
0
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;
}
Esempio n. 6
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;

}