static int bd2802_bl_suspend(struct i2c_client *client, pm_message_t state) { struct bd2802_led *led = i2c_get_clientdata(client); DBG("\n"); if (led->led_state==BD2802_TEST_ON) return 0; bd2802_off(led); led->led_state = BD2802_OFF; return 0; }
static void bd2802_ledmin_work_func(struct work_struct *work) { struct bd2802_led *led = container_of(work, struct bd2802_led, ledmin_work); led->white_current = BD2802_CURRENT_WHITE_MIN; led->blue_current = BD2802_CURRENT_000; /* LGE_UPDATE_S 2011-10-26 [[email protected]] : Turn off LED backlight for power consumption */ #if 0 bd2802_on(led); led->led_state = BD2802_DIMMING; #else bd2802_off(led); led->led_state = BD2802_OFF; #endif /* LGE_UPDATE_E 2011-10-26 [[email protected]] : Turn off LED backlight for power consumption */ }
// LGE_B_DOM_E 20110106 [email protected], Justin LED onoff static ssize_t bd2802_store_led_onoff(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) { struct bd2802_led *led = i2c_get_clientdata(to_i2c_client(dev)); int value; if (!count) return -EINVAL; value = simple_strtoul(buf, NULL, 10); DBG("value=%d\n",value); if (value==1 || value == 255) { led->led_state = BD2802_DIMMING; // Huexxx: enable dimmed... led->white_current = min_current; // Huexxx: enable dimmed... led->blue_current = BD2802_CURRENT_000; led->blink_enable=0; bd2802_reset_cancel(led); bd2802_on(led); bd2802_enable(led); led_enabled = 1; } else if (value==0) { bd2802_off(led); gpio_set_value(RGB_LED_CNTL, 0); led->led_state=BD2802_OFF; led_enabled = 0; } else { if (value > 1) { return -EINVAL; DBG("Value is not valid\n"); } } return count; }
static ssize_t bd2802_store_led_testmode(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) { struct bd2802_led *led = i2c_get_clientdata(to_i2c_client(dev)); int value; if (!count) return -EINVAL; value = simple_strtoul(buf, NULL, 10); DBG("value=%d led->led_state=%d\n",value,led->led_state); if ((value==1)&&(led->led_state!=BD2802_TEST_ON)) { led->led_state=BD2802_TEST_ON; led->white_current = BD2802_CURRENT_WHITE_MAX; led->blue_current = BD2802_CURRENT_000; bd2802_reset_cancel(led); bd2802_on(led); bd2802_enable(led); DBG("TEST LED ON\n"); } else if ((value==0)&&(led->led_state!=BD2802_TEST_OFF)) { bd2802_off(led); gpio_set_value(RGB_LED_CNTL, 0); led->led_state=BD2802_TEST_OFF; DBG("TEST LED OFF\n"); } else { if (value > 1) { return -EINVAL; DBG("Value is not valid\n"); } } return count; }