Example #1
0
static void aat28xx_wakeup(struct aat28xx_driver_data *drvdata)
{
	unsigned int aat28xx_intensity;

	if (!drvdata || drvdata->state == NORMAL_STATE)
		return;

	dprintk("operation mode is %s\n", (drvdata->mode == NORMAL_MODE) ? "normal_mode" : "alc_mode");

	if (drvdata->state == POWEROFF_STATE) {
		aat28xx_poweron(drvdata);
//LG_CHANGE [[email protected]] 2011-10-12 , LCD brightness [START]		
		aat28xx_go_opmode(drvdata);
		if (drvdata->mode == NORMAL_MODE) {
			if(drvdata->version == 2862) {
				/* LGE_CHANGE
				  * Using 'Fade in' function supported by AAT2862 when wakeup.
				  * 2010-08-21, [email protected]
				 */
				aat28xx_write(drvdata->client, drvdata->reg_addrs.fade, 0x00);	/* Floor current : 0.48mA */
				aat28xx_intensity = (~(drvdata->intensity)& 0x1F);	/* Invert BL control bits and Clear upper 3bits */
				aat28xx_intensity |= 0xA0;							/* MEQS(7)=1, Disable Fade(6)=0, LCD_ON(5)=1*/
				aat28xx_write(drvdata->client, drvdata->reg_addrs.bl_m, aat28xx_intensity);
				aat28xx_write(drvdata->client, drvdata->reg_addrs.fade, 0x08);	/* Fade in to intensity brightness in 1000ms. */
			} else {
				aat28xx_set_table(drvdata, drvdata->cmds.normal);
				aat28xx_write(drvdata->client, drvdata->reg_addrs.bl_m, drvdata->intensity);
			}
			drvdata->state = NORMAL_STATE;
		}	
//LG_CHANGE [[email protected]] 2011-10-12 , LCD brightness [END]			
	} else if (drvdata->state == SLEEP_STATE) {
		if (drvdata->mode == NORMAL_MODE) {
			if(drvdata->version == 2862) {
				/* LGE_CHANGE
				  * Using 'Fade in' function supported by AAT2862 when wakeup.
				  * 2010-08-21, [email protected]
				 */
				aat28xx_write(drvdata->client, drvdata->reg_addrs.fade, 0x00);	/* Floor current : 0.48mA */
				aat28xx_intensity = (~(drvdata->intensity)& 0x1F);	/* Invert BL control bits and Clear upper 3bits */
				aat28xx_intensity |= 0xA0;							/* MEQS(7)=1, Disable Fade(6)=0, LCD_ON(5)=1*/
				aat28xx_write(drvdata->client, drvdata->reg_addrs.bl_m, aat28xx_intensity);
				aat28xx_write(drvdata->client, drvdata->reg_addrs.fade, 0x08);	/* Fade in to intensity brightness in 1000ms. */
			} else {
				aat28xx_set_table(drvdata, drvdata->cmds.normal);
				aat28xx_write(drvdata->client, drvdata->reg_addrs.bl_m, drvdata->intensity);
			}
			drvdata->state = NORMAL_STATE;
		} else if (drvdata->mode == ALC_MODE) {
			/* LGE_CHANGE
			 * Remove ALC mode
			 * 2010-07-26. [email protected]
			 */
			//aat28xx_set_table(drvdata, drvdata->cmds.alc);
			//drvdata->state = NORMAL_STATE;
		}
	}
}
void aat28xx_switch_mode(struct device *dev, int next_mode)
{
	struct aat28xx_driver_data *drvdata = dev_get_drvdata(dev);
	unsigned int aat28xx_intensity;

	if (!drvdata || drvdata->mode == next_mode)
		return;

	if (next_mode == ALC_MODE) {
		/*           
                    
                                     
   */
		//aat28xx_set_table(drvdata, drvdata->cmds.alc);
	}
	else if (next_mode == NORMAL_MODE) {
		aat28xx_set_table(drvdata, drvdata->cmds.alc);

		if(drvdata->version == 2862) {
			aat28xx_intensity = (~(drvdata->intensity)& 0x1F);	/* Invert BL control bits and Clear upper 3bits */
			aat28xx_intensity |= 0xE0;				/* MEQS(7)=1, Disable Fade(6)=1, LCD_ON(5)=1*/
			aat28xx_write(drvdata->client, drvdata->reg_addrs.bl_m, aat28xx_intensity);
		} else {
			aat28xx_write(drvdata->client, drvdata->reg_addrs.bl_m, drvdata->intensity);
		}
	} else {
		printk(KERN_ERR "%s: invalid mode(%d)!!!\n", __func__, next_mode);
		return;
	}

	drvdata->mode = next_mode;
	return;
}
static void aat28xx_sleep(struct aat28xx_driver_data *drvdata)
{
	if (!drvdata || drvdata->state == SLEEP_STATE)
		return;

	dprintk("operation mode is %s\n", (drvdata->mode == NORMAL_MODE) ? "normal_mode" : "alc_mode");
	
	switch (drvdata->mode) {
		case NORMAL_MODE:
			drvdata->state = SLEEP_STATE;
			aat28xx_set_table(drvdata, drvdata->cmds.sleep);
			break;

		case ALC_MODE:
			/*           
                     
                                      
    */
			//drvdata->state = SLEEP_STATE;
			//aat28xx_set_table(drvdata, drvdata->cmds.sleep);
			//udelay(500);
			//break;

		default:
			eprintk("Invalid Mode\n");
			break;
	}
}
Example #4
0
static void aat28xx_wakeup(struct aat28xx_driver_data *drvdata)
{
	if (!drvdata || drvdata->state == NORMAL_STATE)
		return;

	printk(KERN_INFO "%s: cur state=%d to wakeup state(1)\n", __func__, drvdata->state);
	
	if (drvdata->state == POWEROFF_STATE) {
		aat28xx_poweron(drvdata);
	} else if (drvdata->state == SLEEP_STATE) {
		if (drvdata->mode == NORMAL_MODE) {
			if(drvdata->version == 2862) {
				aat28xx_write(drvdata->client, drvdata->reg_addrs.fade, 0x00);	/* Floor current : 0.48mA */
				aat28xx_write(drvdata->client, drvdata->reg_addrs.bl_m, 0x9F);
				aat28xx_send_intensity_no_check(drvdata, drvdata->intensity);
			} else {
				aat28xx_set_table(drvdata, drvdata->cmds.normal);
				aat28xx_send_intensity_no_check(drvdata, drvdata->intensity);
			}
			drvdata->state = NORMAL_STATE;
		} else if (drvdata->mode == ALC_MODE) {
			printk(KERN_ERR "%s: invalide mode!!!\n", __func__);
		}
	}
}
Example #5
0
static void aat28xx_go_opmode(struct aat28xx_driver_data *drvdata)
{
	dprintk("operation mode is %s\n", (drvdata->mode == NORMAL_MODE) ? "normal_mode" : "alc_mode");
	
	switch (drvdata->mode) {
		case NORMAL_MODE:
			aat28xx_set_table(drvdata, drvdata->cmds.normal);
			drvdata->state = NORMAL_STATE;
			break;

		case ALC_MODE:
		default:
			eprintk("Invalid Mode\n");
			break;
	}
}
Example #6
0
/* This function provide sleep enter routine for power management. */
static void aat28xx_sleep(struct aat28xx_driver_data *drvdata)
{
#if defined(CONFIG_MACH_MSM7X27_THUNDERC)
	int cam_status;
#endif

	if (!drvdata || drvdata->state == SLEEP_STATE)
		return;

	dprintk("operation mode is %s\n", (drvdata->mode == NORMAL_MODE) ? "normal_mode" : "alc_mode");
	
	switch (drvdata->mode) {
		case NORMAL_MODE:
			drvdata->state = SLEEP_STATE;
			aat28xx_set_table(drvdata, drvdata->cmds.sleep);
			break;

		case ALC_MODE:
			/* LGE_CHANGE
			 * Remove ALC mode
			 * 2010-07-26. [email protected]
			 */
			//drvdata->state = SLEEP_STATE;
			//aat28xx_set_table(drvdata, drvdata->cmds.sleep);
			//udelay(500);
			//break;

		default:
			eprintk("Invalid Mode\n");
			break;
	}
/* LGE_CHANGE
 * Shut down the AAT28xx according to the status of Camera for VS660
 * 2010-07-26, [email protected]
 */
#if defined(CONFIG_MACH_MSM7X27_THUNDERC)
	cam_status = camera_status();
	if (cam_status == CAMERA_POWER_OFF){
		//printk("Camera status is %d. 0:On, 1: Off\n",CAMERA_POWER_OFF);
		/* LGE_CHANGE [[email protected]] 2010-07-29, block it, for BEAG issue: LCD blank out */
		//aat28xx_poweroff(drvdata); 
	}
#endif
	
}
Example #7
0
void aat28xx_switch_mode(struct device *dev, int next_mode)
{
	struct aat28xx_driver_data *drvdata = dev_get_drvdata(dev);

	if (!drvdata || drvdata->mode == next_mode)
		return;

	if (next_mode == NORMAL_MODE) {
		aat28xx_set_table(drvdata, drvdata->cmds.alc);
	    aat28xx_send_intensity_no_check(drvdata, drvdata->intensity);
	} else {
		printk(KERN_ERR "%s: invalid mode(%d)!!!\n", __func__, next_mode);
		return;
	}

	drvdata->mode = next_mode;
	return;
}
static void aat28xx_wakeup(struct aat28xx_driver_data *drvdata)
{
	unsigned int aat28xx_intensity;

	if (!drvdata || drvdata->state == NORMAL_STATE)
		return;

	dprintk("operation mode is %s\n", (drvdata->mode == NORMAL_MODE) ? "normal_mode" : "alc_mode");

	if (drvdata->state == POWEROFF_STATE) {
		aat28xx_poweron(drvdata);
		/*           
                                                                                                      
                                                                                                           
                                     
   */
		//aat28xx_go_opmode(drvdata);
	} else if (drvdata->state == SLEEP_STATE) {
		if (drvdata->mode == NORMAL_MODE) {
			if(drvdata->version == 2862) {
				/*           
                                                                  
                                        
     */
				aat28xx_write(drvdata->client, drvdata->reg_addrs.fade, 0x00);	/* Floor current : 0.48mA */
				aat28xx_intensity = (~(drvdata->intensity)& 0x1F);	/* Invert BL control bits and Clear upper 3bits */
				aat28xx_intensity |= 0xA0;							/* MEQS(7)=1, Disable Fade(6)=0, LCD_ON(5)=1*/
				aat28xx_write(drvdata->client, drvdata->reg_addrs.bl_m, aat28xx_intensity);
				aat28xx_write(drvdata->client, drvdata->reg_addrs.fade, 0x08);	/* Fade in to intensity brightness in 1000ms. */
			} else {
				aat28xx_set_table(drvdata, drvdata->cmds.normal);
				aat28xx_write(drvdata->client, drvdata->reg_addrs.bl_m, drvdata->intensity);
			}
			drvdata->state = NORMAL_STATE;
		} else if (drvdata->mode == ALC_MODE) {
			/*           
                     
                                      
    */
			//aat28xx_set_table(drvdata, drvdata->cmds.alc);
			//drvdata->state = NORMAL_STATE;
		}
	}
}
Example #9
0
/* This function provide sleep enter routine for power management. */
static void aat28xx_sleep(struct aat28xx_driver_data *drvdata)
{
	if (!drvdata || drvdata->state == SLEEP_STATE)
		return;

	printk(KERN_INFO "%s: cur state=%d to sleep state(2)\n", __func__, drvdata->state);
	
	switch (drvdata->mode) {
		case NORMAL_MODE:
			drvdata->state = SLEEP_STATE;
			aat28xx_set_table(drvdata, drvdata->cmds.sleep);
			break;

		case ALC_MODE:
		default:
			eprintk("Invalid Mode\n");
			break;
	}
}
Example #10
0
static void aat28xx_go_opmode(struct aat28xx_driver_data *drvdata)
{
	dprintk("operation mode is %s\n", (drvdata->mode == NORMAL_MODE) ? "normal_mode" : "alc_mode");
	
	switch (drvdata->mode) {
		case NORMAL_MODE:
			aat28xx_set_table(drvdata, drvdata->cmds.normal);
			drvdata->state = NORMAL_STATE;
			break;
		case ALC_MODE:
			/* LGE_CHANGE
			 * Remove ALC mode
			 * 2010-07-26. [email protected]
			 */
			//aat28xx_set_table(drvdata, drvdata->cmds.alc);
			//drvdata->state = NORMAL_STATE;
			//break;
		default:
			eprintk("Invalid Mode\n");
			break;
	}
}