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; } }
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__); } } }
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; } }
/* 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 }
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; } } }
/* 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; } }
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; } }