static void lm3533_set_main_current_level(struct i2c_client *client, int level) { struct lm3533_device *dev = i2c_get_clientdata(client); int cal_value = 0; int min_brightness = dev->min_brightness; int max_brightness = dev->max_brightness; int max_current = dev->max_current; int gpio = dev->hwen_gpio; pr_debug("lm3533_level[BL]:%d \n", level); //dev->cur_main_lcd_level = level; //dev->saved_main_lcd_level = dev->cur_main_lcd_level; mutex_lock(&lm3533dev->bl_mutex); if(level!= 0){ gpio_set_value(gpio, 1); //cal_value = level; /*if(level >= 1 && level <= 255) { cal_value = (((level*2250-30*2250)/225)*251 + 4*2250)/2250; //input min=30, Max255,,, Output min 20 ; max 255 if(cal_value < 165) cal_value = (cal_value*108)/100 - 38; else cal_value = (cal_value*150)/100 - 100; } else{ mdelay(1); return; }*/ if (level < 0) level=0; if (level >255) level=255; cal_value=default_160nit_53percent_lut[level]; if (cal_value < LM3533_BL_MIN_BRIGHTNESS){ cal_value = LM3533_BL_MIN_BRIGHTNESS; } else if (cal_value > LM3533_BL_MAX_BRIGHTNESS) { cal_value = LM3533_BL_MAX_BRIGHTNESS; } #if defined(CONFIG_MACH_X3) //jude84.kim For Milky U and Factorymode if((is_tegra_batteryexistWhenBoot() != 1) && (charging_mode == CHARGING_FACTORY)){ cal_value = LM3533_BL_MIN_BRIGHTNESS; } #endif lm3533_bl_write_reg(client, 0x1F, dev->cur_maxcurrent); lm3533_bl_write_reg(client, 0x40, cal_value); } else if(level == 0){ cal_value = level; lm3533_bl_write_reg(client, 0x1F, dev->cur_maxcurrent); lm3533_bl_write_reg(client, 0x40, cal_value); } mutex_unlock(&lm3533dev->bl_mutex); mdelay(1); }
static void lm3533_set_main_current_level(struct i2c_client *client, int level) { struct lm3533_device *dev = i2c_get_clientdata(client); int cal_value = 0; int gpio = dev->hwen_gpio; printk("lm3533_set_main_current_level *** level:%d \n", level); mutex_lock(&lm3533dev->bl_mutex); if (level != 0) { gpio_set_value(gpio, 1); if (level < 0) level = 0; if (level > 255) level = 255; cal_value = default_77_lut[level]; if (cal_value < LM3533_BL_MIN_BRIGHTNESS) { cal_value = LM3533_BL_MIN_BRIGHTNESS; } else if (cal_value > LM3533_BL_MAX_BRIGHTNESS) { cal_value = LM3533_BL_MAX_BRIGHTNESS; } lm3533_bl_write_reg(client, 0x40, cal_value); } else if (level == 0) { cal_value = level; lm3533_bl_write_reg(client, 0x40, cal_value); } mutex_unlock(&lm3533dev->bl_mutex); mdelay(1); }
static void lm3533_backlight_on(struct i2c_client *client, int level) { struct lm3533_device *dev = i2c_get_clientdata(client); dev_dbg(&client->dev, "backlight on...\n"); lm3533_hw_reset(dev); lm3533_bl_write_reg(client, 0x10, 0x0); //HVLED 1 & 2 are controlled by Bank A #if defined(ENABLE_PWM_SIGNAL) lm3533_bl_write_reg(client, 0x14, 0x1); // #else lm3533_bl_write_reg(client, 0x14, 0x0); //PWM input is disabled for CABC #endif lm3533_bl_write_reg(client, 0x1A, 0x2); //Linear & Control Bank A is configured for register Current control lm3533_bl_write_reg(client, 0x27, 0x1); //Control Bank A is enable #if !defined(CONFIG_MACH_HD5_LGD) lm3533_bl_write_reg(client, 0x2C, 0x0A); // #else lm3533_bl_write_reg(client, 0x2C, 0x0C); //Active High, OVP(24V), Boost Frequency(500 khz) #endif lm3533_set_main_current_level(client, level); // dev->bl_status = BL_ON; return; }
static void lm3533_set_main_current_level(struct i2c_client *client, int level) { struct lm3533_device *dev = i2c_get_clientdata(client); int cal_value = 0; int min_brightness = dev->min_brightness; int max_brightness = dev->max_brightness; int max_current = dev->max_current; int gpio = dev->hwen_gpio; printk("lm3533_set_main_current_level *** level:%d \n", level); mutex_lock(&lm3533dev->bl_mutex); if(level!= 0){ gpio_set_value(gpio, 1); if (level < 0) level=0; if (level >255) level=255; cal_value=default_77_lut[level]; if (cal_value < LM3533_BL_MIN_BRIGHTNESS){ cal_value = LM3533_BL_MIN_BRIGHTNESS; } else if (cal_value > LM3533_BL_MAX_BRIGHTNESS) { cal_value = LM3533_BL_MAX_BRIGHTNESS; } #if defined(CONFIG_MACH_X3) && defined(CONFIG_ARCH_TEGRA_3x_SOC) if((is_tegra_batteryexistWhenBoot() != 1) && (charging_mode == CHARGING_FACTORY)){ cal_value = LM3533_BL_MIN_BRIGHTNESS; } #endif lm3533_bl_write_reg(client, 0x40, cal_value); } else if(level == 0){ cal_value = level; lm3533_bl_write_reg(client, 0x40, cal_value); } mutex_unlock(&lm3533dev->bl_mutex); mdelay(1); }
static void lm3533_lcd_backlight_set_maxcurrent(struct i2c_client *client, int level) { // Disable this check if you dare. // See README. if (level > LM3533_BL_MAX_MAXCURRENT) level = LM3533_BL_MAX_MAXCURRENT; if (level < LM3533_BL_MIN_MAXCURRENT) level = LM3533_BL_MIN_MAXCURRENT; if (client != NULL) { struct lm3533_device *lm3533_dev = i2c_get_clientdata(client); lm3533_bl_write_reg(client, 0x1F, level); lm3533_dev->cur_maxcurrent = level; } else { printk("%s : No i2c client\n", __func__); } }
static void lm3533_backlight_on(struct i2c_client *client, int level) { struct lm3533_device *dev = i2c_get_clientdata(client); dev_dbg(&client->dev, "backlight on...\n"); lm3533_hw_reset(dev); lm3533_bl_write_reg(client, 0x10, 0x0); //HVLED 1 & 2 are controlled by Bank A lm3533_bl_write_reg(client, 0x14, 0x0); //PWM input is disabled for CABC lm3533_bl_write_reg(client, 0x1A, 0x2); //Linear & Control Bank A is configured for register Current control lm3533_bl_write_reg(client, 0x1F, dev->cur_maxcurrent); //Full-Scale Current (default 20.2mA) lm3533_bl_write_reg(client, 0x27, 0x1); //Control Bank A is enable lm3533_bl_write_reg(client, 0x2C, 0x0A); //Active High, OVP(24V), Boost Frequency(500 khz) lm3533_set_main_current_level(client, level); dev->bl_status = BL_ON; return; }