#include <linux/delay.h>
#include <linux/ktime.h>
#define BL_SET 255
+#define BL_DIFF_VALUE 100
+#define BL_INIT_VALUE 102
+#define BL_MIN_VALUE 0
struct wm831x_backlight_data {
struct wm831x *wm831x;
int isink_reg;
static int wm831x_backlight_update_status(struct backlight_device *bl)
{
int brightness = bl->props.brightness;
+ if ((brightness<=BL_INIT_VALUE) && (brightness>0)) {
+ brightness = brightness + BL_DIFF_VALUE;
+ }
+ else if (brightness > BL_INIT_VALUE) {
+ brightness =
+ ((BL_SET-BL_INIT_VALUE-BL_DIFF_VALUE)*brightness+BL_SET*BL_DIFF_VALUE)
+ /(BL_SET-BL_INIT_VALUE);
+ }
if(gwm831x_data->suspend_flag == 1)
brightness = 0;
return PTR_ERR(bl);
}
- bl->props.brightness = BL_SET;
+ bl->props.brightness = BL_INIT_VALUE;
bl->props.max_brightness= BL_SET;
platform_set_drvdata(pdev, bl);