static void bd2802_configure(struct bd2802_led *led) { struct bd2802_led_platform_data *pdata = led->pdata; u8 reg; reg = bd2802_get_reg_addr(LED1, RED, BD2802_REG_HOURSETUP); bd2802_write_byte(led->client, reg, pdata->rgb_time); reg = bd2802_get_reg_addr(LED2, RED, BD2802_REG_HOURSETUP); bd2802_write_byte(led->client, reg, pdata->rgb_time); }
static void bd2802_configure(struct bd2802_led *led) { u8 reg; reg = bd2802_get_reg_addr(LED1, RED, BD2802_REG_HOURSETUP); bd2802_write_byte(led->client, reg, BD2802_TIME_SETUP); reg = bd2802_get_reg_addr(LED2, RED, BD2802_REG_HOURSETUP); bd2802_write_byte(led->client, reg, BD2802_TIME_SETUP); printk("############## system_rev = %d\n", system_rev); bd2802_write_byte(led->client, BD2812_DCDCDRIVER, 0x00); bd2802_write_byte(led->client, BD2812_PIN_FUNC_SETUP, 0x0F); }
static void bd2802_turn_off(struct bd2802_led *led, enum led_ids id, enum led_colors color) { u8 reg; if (bd2802_is_rgb_off(led, id, color)) return; reg = bd2802_get_reg_addr(id, color, BD2802_REG_CURRENT1SETUP); bd2802_write_byte(led->client, reg, BD2802_CURRENT_000); reg = bd2802_get_reg_addr(id, color, BD2802_REG_CURRENT2SETUP); bd2802_write_byte(led->client, reg, BD2802_CURRENT_000); bd2802_update_state(led, id, color, BD2802_OFF); }
static void bd2802_set_blink(struct bd2802_led *led, enum led_ids id, enum led_colors color) { u8 reg; if (bd2802_is_all_off(led) && !led->adf_on) bd2802_reset_cancel(led); reg = bd2802_get_reg_addr(id, color, BD2802_REG_CURRENT1SETUP); bd2802_write_byte(led->client, reg, BD2802_CURRENT_000); reg = bd2802_get_reg_addr(id, color, BD2802_REG_CURRENT2SETUP); bd2802_write_byte(led->client, reg, led->rgb_current); reg = bd2802_get_reg_addr(id, color, BD2802_REG_WAVEPATTERN); bd2802_write_byte(led->client, reg, led->wave_pattern); bd2802_enable(led, id); bd2802_update_state(led, id, color, BD2802_BLINK); }
static void bd2802_set_on(struct bd2802_led *led, enum led_ids id, enum led_colors color) { u8 reg; if (bd2802_is_all_off(led) && !led->adf_on) bd2802_reset_cancel(led); reg = bd2802_get_reg_addr(id, color, BD2802_REG_CURRENT1SETUP); bd2802_write_byte(led->client, reg, BD2802_CURRENT_032); reg = bd2802_get_reg_addr(id, color, BD2802_REG_CURRENT2SETUP); bd2802_write_byte(led->client, reg, BD2802_CURRENT_000); reg = bd2802_get_reg_addr(id, color, BD2802_REG_WAVEPATTERN); bd2802_write_byte(led->client, reg, BD2802_PATTERN_FULL); bd2802_enable(led, id); bd2802_update_state(led, id, color, BD2802_ON); }
static void bd2802_turn_blue(struct bd2802_led *led, enum key_leds id) { u8 reg; switch (id) { case MENU: reg = bd2802_get_reg_addr(LED1, GREEN, BD2802_REG_CURRENT1SETUP); bd2802_write_byte(led->client, reg, BD2802_CURRENT_000); reg = bd2802_get_reg_addr(LED1, GREEN, BD2802_REG_CURRENT2SETUP); bd2802_write_byte(led->client, reg, BD2802_CURRENT_000); break; case HOME: reg = bd2802_get_reg_addr(LED2, RED, BD2802_REG_CURRENT1SETUP); bd2802_write_byte(led->client, reg, BD2802_CURRENT_000); reg = bd2802_get_reg_addr(LED2, RED, BD2802_REG_CURRENT2SETUP); bd2802_write_byte(led->client, reg, BD2802_CURRENT_000); break; case BACK: reg = bd2802_get_reg_addr(LED2, GREEN, BD2802_REG_CURRENT1SETUP); bd2802_write_byte(led->client, reg, BD2802_CURRENT_000); reg = bd2802_get_reg_addr(LED2, GREEN, BD2802_REG_CURRENT2SETUP); bd2802_write_byte(led->client, reg, BD2802_CURRENT_000); break; case SEARCH: reg = bd2802_get_reg_addr(LED1, RED, BD2802_REG_CURRENT1SETUP); bd2802_write_byte(led->client, reg, BD2802_CURRENT_000); reg = bd2802_get_reg_addr(LED1, RED, BD2802_REG_CURRENT2SETUP); bd2802_write_byte(led->client, reg, BD2802_CURRENT_000); break; case HIDDEN1://BLUE1 reg = bd2802_get_reg_addr(LED1, BLUE, BD2802_REG_CURRENT1SETUP); bd2802_write_byte(led->client, reg, led->blue_current); reg = bd2802_get_reg_addr(LED1, BLUE, BD2802_REG_CURRENT2SETUP); bd2802_write_byte(led->client, reg, led->blue_current); break; case HIDDEN2://BLUE2 reg = bd2802_get_reg_addr(LED2, BLUE, BD2802_REG_CURRENT1SETUP); bd2802_write_byte(led->client, reg, led->blue_current); reg = bd2802_get_reg_addr(LED2, BLUE, BD2802_REG_CURRENT2SETUP); bd2802_write_byte(led->client, reg, led->blue_current); break; default: break; } }