diff options
Diffstat (limited to 'firmware/targets/f7/furi-hal/furi-hal-light.c')
-rw-r--r-- | firmware/targets/f7/furi-hal/furi-hal-light.c | 57 |
1 files changed, 30 insertions, 27 deletions
diff --git a/firmware/targets/f7/furi-hal/furi-hal-light.c b/firmware/targets/f7/furi-hal/furi-hal-light.c index ecf0d4f2..15a69f09 100644 --- a/firmware/targets/f7/furi-hal/furi-hal-light.c +++ b/firmware/targets/f7/furi-hal/furi-hal-light.c @@ -1,46 +1,49 @@ #include <furi-hal-light.h> #include <lp5562.h> -#define TAG "FuriHalLight" - -#define LED_CURRENT_RED 50 -#define LED_CURRENT_GREEN 50 -#define LED_CURRENT_BLUE 50 -#define LED_CURRENT_WHITE 150 +#define LED_CURRENT_RED 50 +#define LED_CURRENT_GREEN 50 +#define LED_CURRENT_BLUE 50 +#define LED_CURRENT_WHITE 150 void furi_hal_light_init() { - lp5562_reset(); + furi_hal_i2c_acquire(&furi_hal_i2c_handle_power); + + lp5562_reset(&furi_hal_i2c_handle_power); + + lp5562_set_channel_current(&furi_hal_i2c_handle_power, LP5562ChannelRed, LED_CURRENT_RED); + lp5562_set_channel_current(&furi_hal_i2c_handle_power, LP5562ChannelGreen, LED_CURRENT_GREEN); + lp5562_set_channel_current(&furi_hal_i2c_handle_power, LP5562ChannelBlue, LED_CURRENT_BLUE); + lp5562_set_channel_current(&furi_hal_i2c_handle_power, LP5562ChannelWhite, LED_CURRENT_WHITE); - lp5562_set_channel_current(LP5562ChannelRed, LED_CURRENT_RED); - lp5562_set_channel_current(LP5562ChannelGreen, LED_CURRENT_GREEN); - lp5562_set_channel_current(LP5562ChannelBlue, LED_CURRENT_BLUE); - lp5562_set_channel_current(LP5562ChannelWhite, LED_CURRENT_WHITE); + lp5562_set_channel_value(&furi_hal_i2c_handle_power, LP5562ChannelRed, 0x00); + lp5562_set_channel_value(&furi_hal_i2c_handle_power, LP5562ChannelGreen, 0x00); + lp5562_set_channel_value(&furi_hal_i2c_handle_power, LP5562ChannelBlue, 0x00); + lp5562_set_channel_value(&furi_hal_i2c_handle_power, LP5562ChannelWhite, 0x00); - lp5562_set_channel_value(LP5562ChannelRed, 0x00); - lp5562_set_channel_value(LP5562ChannelGreen, 0x00); - lp5562_set_channel_value(LP5562ChannelBlue, 0x00); - lp5562_set_channel_value(LP5562ChannelWhite, 0x00); + lp5562_enable(&furi_hal_i2c_handle_power); + lp5562_configure(&furi_hal_i2c_handle_power); - lp5562_enable(); - lp5562_configure(); - FURI_LOG_I(TAG, "Init OK"); + furi_hal_i2c_release(&furi_hal_i2c_handle_power); } void furi_hal_light_set(Light light, uint8_t value) { + furi_hal_i2c_acquire(&furi_hal_i2c_handle_power); switch(light) { - case LightRed: - lp5562_set_channel_value(LP5562ChannelRed, value); + case LightRed: + lp5562_set_channel_value(&furi_hal_i2c_handle_power, LP5562ChannelRed, value); break; - case LightGreen: - lp5562_set_channel_value(LP5562ChannelGreen, value); + case LightGreen: + lp5562_set_channel_value(&furi_hal_i2c_handle_power, LP5562ChannelGreen, value); break; - case LightBlue: - lp5562_set_channel_value(LP5562ChannelBlue, value); + case LightBlue: + lp5562_set_channel_value(&furi_hal_i2c_handle_power, LP5562ChannelBlue, value); break; - case LightBacklight: - lp5562_set_channel_value(LP5562ChannelWhite, value); + case LightBacklight: + lp5562_set_channel_value(&furi_hal_i2c_handle_power, LP5562ChannelWhite, value); break; - default: + default: break; } + furi_hal_i2c_release(&furi_hal_i2c_handle_power); }
\ No newline at end of file |