Esempio n. 1
0
/**
 * Exit partial display mode
 *
 * @param lcd_id MAIN_LCD or SUB_LCD
 *
 * @return None.
 */
void lcd_partial_off(kal_uint8 lcd_id)
{
   LSD_TakeControl(LSD_LCDARB_LCD);/*to protect when LCD and MSDC share pins*/
   lcd_power_ctrl(KAL_TRUE);
   switch (lcd_id)
   {
      case MAIN_LCD:
         #if ( !defined(MT6205B) && !defined(MT6208) )
            DRV_WriteReg32(LCD_ROI_CMD_ADDR_REG,MAIN_LCD_CMD_ADDR);
            DRV_WriteReg32(LCD_ROI_DATA_ADDR_REG,MAIN_LCD_DATA_ADDR);
         #endif
         if (MainLCD->TurnOffPartialDisplay != NULL) {
            MainLCD->TurnOffPartialDisplay();
         }
         break;
   #ifdef DUAL_LCD
      case SUB_LCD:
         #if ( !defined(MT6205B) && !defined(MT6208) )
            DRV_WriteReg32(LCD_ROI_CMD_ADDR_REG,SUB_LCD_CMD_ADDR);
            DRV_WriteReg32(LCD_ROI_DATA_ADDR_REG,SUB_LCD_DATA_ADDR);
         #endif /* MT6218B, MT6219 */
         if (SubLCD->TurnOffPartialDisplay != NULL) {
            SubLCD->TurnOffPartialDisplay();
         }
         break;
   #endif   /* DUAL_LCD */
      default:
         ASSERT(0);
         break;
   }
   lcd_power_ctrl(KAL_FALSE);
   LSD_GiveControl(LSD_LCDARB_LCD);/*to protect when LCD and MSDC share pins*/
}
Esempio n. 2
0
/**
 * Set the brightness of LCM
 *
 * @param lcd_id MAIN_LCD or SUB_LCD
 * @param bright_level brightness level of LCM
 *
 * @return None.
 */
void lcd_bright_level(kal_uint8 lcd_id, kal_uint8 bright_level)
{
   LSD_TakeControl(LSD_LCDARB_LCD);/*to protect when LCD and MSDC share pins*/
   lcd_power_ctrl(KAL_TRUE);
   switch (lcd_id)
   {
      case MAIN_LCD:
         #if ( !defined(MT6205B) && !defined(MT6208) )
            DRV_WriteReg32(LCD_ROI_CMD_ADDR_REG,MAIN_LCD_CMD_ADDR);
            DRV_WriteReg32(LCD_ROI_DATA_ADDR_REG,MAIN_LCD_DATA_ADDR);
         #endif
         MainLCD->SetBrightLevel(bright_level);
         break;
#ifdef DUAL_LCD
      case SUB_LCD:
         #if ( !defined(MT6205B) && !defined(MT6208) )
            DRV_WriteReg32(LCD_ROI_CMD_ADDR_REG,SUB_LCD_CMD_ADDR);
            DRV_WriteReg32(LCD_ROI_DATA_ADDR_REG,SUB_LCD_DATA_ADDR);
         #endif
         SubLCD->SetBrightLevel(bright_level);
         break;
#endif   /* DUAL_LCD */
      default:
         ASSERT(0);
         break;
   }
   lcd_power_ctrl(KAL_FALSE);
   LSD_GiveControl(LSD_LCDARB_LCD);/*to protect when LCD and MSDC share pins*/
}
Esempio n. 3
0
static int lcd_resume(void *args)
{
    args = args;
    PRINT_INFO(KERN_INFO "LCD resuming...\n");
	lcd_power_ctrl(ON);
	backlight_power_ctrl(ON);    
    return 0;
}
static void backlight_ctrl(s32 value)
{
	int err, ret;

	if (value) {
		/* backlight ON */
		if (lcd_power == OFF) {
			
			ret = lcd_power_ctrl(ON);
			if (ret != 0) {
				printk(KERN_ERR "lcd power on control is failed\n");
				return;
			}
		}
		
		if (gpio_is_valid(S3C64XX_GPF(15))) {
			err = gpio_request(S3C64XX_GPF(15), "GPF");

			if (err) {
				printk(KERN_ERR "failed to request GPF for "
					"lcd backlight control\n");
			}

			gpio_direction_output(S3C64XX_GPF(15), 1);
		}
		s3cfb_set_brightness((int)(value/3));
	}
	else {
		ret = lcd_power_ctrl(OFF);
		if (ret != 0) {
			printk(KERN_ERR "lcd power off control is failed\n");
		}
		/* backlight OFF */
		if (gpio_is_valid(S3C64XX_GPF(15))) {
			err = gpio_request(S3C64XX_GPF(15), "GPF");

			if (err) {
				printk(KERN_ERR "failed to request GPF for "
					"lcd backlight control\n");
			}

			gpio_direction_output(S3C64XX_GPF(15), 0);
		 }
	}
	gpio_free(S3C64XX_GPF(15));
}
Esempio n. 5
0
static int lcd_suspend(void *args)
{
    args = args;
    
    PRINT_INFO(KERN_INFO "LCD suspending...\n");
	backlight_power_ctrl(OFF);
	lcd_power_ctrl(OFF);
    return 0;
}
static int lcd_resume(void *args)
{
    args = args;
    PRINT_INFO(KERN_INFO "LCD resuming...\n");
	lcd_power_ctrl(ON);
	backlight_power_ctrl(ON); 
	//led_power_ctrl(RED_OFF);//Add by calvin on 16th,Dec 2013
    return 0;
}
Esempio n. 7
0
void s3cfb_init_hw(void)
{
	
	s3cfb_set_fimd_info();

	s3cfb_set_gpio();

	lcd_gpio_init();
	mdelay(100); 
	lcd_power_ctrl();
}