//LGE_UPDATE_S [email protected] Exponential BL level applied 20120731 static void lm3530_set_main_current_level(struct i2c_client *client, int level) { struct lm3530_device *dev; int cal_value = 0; int max_brightness = main_lm3530_dev->max_brightness; dev = (struct lm3530_device *)i2c_get_clientdata(client); dev->bl_dev->props.brightness = level; mutex_lock(&main_lm3530_dev->bl_mutex); if (level != 0) { if (level > 0 && level < MIN_LEVEL) cal_value = 0; else if (level >= MIN_LEVEL && level <= MAX_LEVEL) { cal_value = mapped_value[level-MIN_LEVEL]; } else if (level > MAX_LEVEL) cal_value = max_brightness; cur_main_lcd_level = cal_value; lm3530_write_reg(client, 0xA0, cal_value); /* printk("%s() :level is : %d, cal_value is : * 0x%x\n", __func__, level, cal_value); */ } else lm3530_write_reg(client, 0x10, 0x00); msleep(1); mutex_unlock(&main_lm3530_dev->bl_mutex); }
static void lm3530_set_main_current_level(struct i2c_client *client, int level) { struct lm3530_device *dev = i2c_get_clientdata(client); int cal_value = 0; int min_brightness = dev->min_brightness; int max_brightness = dev->max_brightness; dev->bl_dev->props.brightness = cur_main_lcd_level = level; if (level != 0) { if (level > 0 && level <= min_brightness) cal_value = min_brightness; else if (level > min_brightness && level <= max_brightness) cal_value = level; else if (level > max_brightness) cal_value = max_brightness; if (dev->blmap) { if (cal_value < dev->blmap_size) lm3530_write_reg(client, 0xA0, dev->blmap[cal_value]); else dev_warn(&client->dev, "invalid index %d:%d\n", dev->blmap_size, cal_value); } else { lm3530_write_reg(client, 0xA0, cal_value); } } else lm3530_write_reg(client, 0x10, 0x00); mdelay(1); }
static void lm3530_backlight_on(struct i2c_client *client, int level) { struct lm3530_device *dev = i2c_get_clientdata(client); mutex_lock(&backlight_mtx); if (backlight_status == BL_OFF) { pr_info("%s, ++ lm3530_backlight_on \n",__func__); lm3530_hw_reset(client); lm3530_write_reg(dev->client, 0xA0, 0x00); lm3530_write_reg(dev->client, 0x10, (pwm_status == BL_OFF) ? dev->max_current & 0x1F : dev->max_current ); } if (first_boot) { lm3530_write_reg(dev->client, 0x10, (pwm_status == BL_OFF) ? dev->max_current & 0x1F : dev->max_current ); first_boot = false; } lm3530_set_main_current_level(dev->client, level); backlight_status = BL_ON; mutex_unlock(&backlight_mtx); }
void lm3530_backlight_on(int level) { if (backlight_status == BL_OFF) { msleep(17); printk("%s, ++ lm3530_backlight_on \n",__func__); lm3530_hw_reset(); lm3530_write_reg(main_lm3530_dev->client, 0xA0, 0x00); /* reset 0 brightness */ lm3530_write_reg(main_lm3530_dev->client, 0x10, main_lm3530_dev->max_current); lm3530_write_reg(main_lm3530_dev->client, 0x30, 0x00); /* fade in, out */ /* msleep(100); */ } /* printk("%s received (prev backlight_status: %s)\n", * __func__, backlight_status?"ON":"OFF");*/ lm3530_set_main_current_level(main_lm3530_dev->client, level); backlight_status = BL_ON; return; }
void lm3530_backlight_on(int level) { if (backlight_status == LM3530_BL_OFF) { lm3530_hw_reset(); lm3530_write_reg(main_lm3530_dev->client, 0x10, 0xB5); lm3530_write_reg(main_lm3530_dev->client, 0x30, 0x09); } backlight_status = LM3530_BL_ON; return; }
void lm3530_lcd_backlight_enable(int level) { int ret=0; if (backlight_status == LM3530_BL_OFF) { ret = lm3530_write_reg(main_lm3530_dev->client, 0x10, 0xB5); ret |= lm3530_write_reg(main_lm3530_dev->client, 0x30, 0x09); } ret |= lm3530_write_reg(main_lm3530_dev->client, 0xA0, level); backlight_status = LM3530_BL_ON; return; }
void lm3530_lcd_backlight_set_level2(int level) { if (level > LM3530_MAX_LEVEL) level = LM3530_MAX_LEVEL; lm3530_write_reg(main_lm3530_dev->client, 0xA0, level); msleep(130); }
void lm3530_lcd_backlight_disable(int level) { int ret; if (backlight_status == LM3530_BL_OFF) return; backlight_status = LM3530_BL_OFF; ret = lm3530_write_reg(main_lm3530_dev->client, 0xA0, level); return; }
static void lm3530_lcd_backlight_pwm_enable(void) { struct i2c_client *client = lm3530_i2c_client; struct lm3530_device *dev = i2c_get_clientdata(client); if (backlight_status == BL_OFF) return; lm3530_write_reg(client, 0x10, dev->max_current); }
void lm3530_backlight_on(int level) { if (lm3530_suspension.suspended) return; if(backlight_status == BL_OFF){ lm3530_hw_reset(); lm3530_write_reg(main_lm3530_dev->client, 0xA0, 0x00); //reset 0 brightness lm3530_write_reg(main_lm3530_dev->client, 0x10, main_lm3530_dev->max_current); #ifndef CONFIG_LGIT_VIDEO_CABC lm3530_write_reg(main_lm3530_dev->client, 0x30, 0x2d); //fade in, out #endif } lm3530_set_main_current_level(main_lm3530_dev->client, level); backlight_status = BL_ON; return; }
static void lm3530_set_main_current_level(struct i2c_client *client, int level) { struct lm3530_device *dev; int cal_value; int min_brightness = main_lm3530_dev->min_brightness; int max_brightness = main_lm3530_dev->max_brightness; dev = (struct lm3530_device *)i2c_get_clientdata(client); dev->bl_dev->props.brightness = cur_main_lcd_level = level; mutex_lock(&main_lm3530_dev->bl_mutex); if(level!= 0){ if (level <= MIN_LEVEL) cal_value = min_brightness; else if(level > MIN_LEVEL && level < MAX_LEVEL_BL) cal_value = level; else if(level >=MAX_LEVEL_BL) cal_value = max_brightness; #ifdef CONFIG_LGE_PM_FACTORY_CURRENT_DOWN if((0 == battery_info_get())&&((usb_cable_info == 6) ||(usb_cable_info == 7)||(usb_cable_info == 11))) { cal_value = min_brightness; } #endif lm3530_write_reg(client, 0xA0, cal_value); printk ("level=%d,cal_value=%d\n",level,cal_value); } else{ lm3530_write_reg(client, 0x10, 0x00); } mutex_unlock(&main_lm3530_dev->bl_mutex); }
static void lm3530_set_main_current_level(struct i2c_client *client, int level) { struct lm3530_device *dev; int cal_value; int min_brightness = main_lm3530_dev->min_brightness; int max_brightness = main_lm3530_dev->max_brightness; int ret; // dev = (struct lm3530_device *)i2c_get_clientdata(client); dev->bl_dev->props.brightness = cur_main_lcd_level = level; mutex_lock(&main_lm3530_dev->bl_mutex); if(level!= 0){ if (level <= MIN_LEVEL) cal_value = min_brightness; else if(level > MIN_LEVEL && level < MAX_LEVEL_BL) #ifdef LOG_SCALE_MAPPING // for log scale mapping if(level*2 <= 84) // hardware request : level < UI level: 84 cal_value=(int)(level*2*5/10 + 42); else cal_value=(int)((2323*level*2/10000)+66); //for log scale mapping #else // for linear scale mapping //cal_value =(max_brightness- min_brightness)*level/(MAX_LEVEL_BL- MIN_LEVEL) // -((max_brightness- min_brightness)*MIN_LEVEL/(MAX_LEVEL_BL- MIN_LEVEL)-min_brightness); cal_value = level; #endif else if(level >=MAX_LEVEL_BL) cal_value = max_brightness; #ifdef CONFIG_LGE_PM_FACTORY_CURRENT_DOWN if(((usb_cable_info == 6) ||(usb_cable_info == 7)||(usb_cable_info == 11))) { cal_value = min_brightness; } #endif lm3530_write_reg(client, 0xA0, cal_value); //printk ("................... level=%d,cal_value=%d\n",level,cal_value); }
static ssize_t lcd_store_br_mode(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) { struct i2c_client *client = lm3530_i2c_client; struct lm3530_device *ldev = i2c_get_clientdata(client); int mode; if (!count) return -EINVAL; mode = simple_strtoul(buf, NULL, 10); if (mode < 0 || mode > 1) return -EINVAL; if (mode == 1) ldev->max_current |= BR_MODE; else ldev->max_current &= ~(BR_MODE); lm3530_write_reg(ldev->client, 0x10, ldev->max_current); br_mode = mode; return count; }