diff options
author | Ting Shen <phoenixshen@google.com> | 2022-01-14 17:57:30 +0800 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2022-01-19 05:35:02 +0000 |
commit | a10ef3c9aca3958b7e1cf3b98a8b9a77366e28f4 (patch) | |
tree | 710d48adf9d47caba45a3cd9dcbb50c9426fd254 | |
parent | a9686ae771066a9e97012d9126fef5596b36f5dd (diff) | |
download | chrome-ec-a10ef3c9aca3958b7e1cf3b98a8b9a77366e28f4.tar.gz |
krabby: configure led
Add basic LED implementation for Krabby.
BUG=none
TEST=ectool led (power|battery) <color>
manually verify
BRANCH=none
Signed-off-by: Ting Shen <phoenixshen@google.com>
Change-Id: I6117e44b404c21ab81126b8e0c317f07f4814e79
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3389068
Tested-by: Ting Shen <phoenixshen@chromium.org>
Auto-Submit: Ting Shen <phoenixshen@chromium.org>
Reviewed-by: Eric Yilun Lin <yllin@google.com>
Commit-Queue: Eric Yilun Lin <yllin@google.com>
-rw-r--r-- | zephyr/projects/corsola/src/krabby/led.c | 32 |
1 files changed, 21 insertions, 11 deletions
diff --git a/zephyr/projects/corsola/src/krabby/led.c b/zephyr/projects/corsola/src/krabby/led.c index d07ec46004..7b3aaf095b 100644 --- a/zephyr/projects/corsola/src/krabby/led.c +++ b/zephyr/projects/corsola/src/krabby/led.c @@ -3,11 +3,13 @@ * found in the LICENSE file. */ +#include "chipset.h" #include "ec_commands.h" #include "gpio.h" +#include "hooks.h" #include "led_common.h" #include "led_onoff_states.h" -#include "chipset.h" +#include "pwm.h" __override const int led_charge_lvl_1 = 5; __override const int led_charge_lvl_2 = 95; @@ -46,16 +48,29 @@ const enum ec_led_id supported_led_ids[] = { const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids); +const enum pwm_channel LED_POWER_WHITE = NAMED_PWM(ec_led1_odl); +const enum pwm_channel LED_BATTERY_AMBER = NAMED_PWM(ec_led2_odl); +const enum pwm_channel LED_BATTERY_WHITE = NAMED_PWM(ec_led3_odl); + __override void led_set_color_battery(enum ec_led_colors color) { + pwm_enable(LED_BATTERY_AMBER, color == EC_LED_COLOR_AMBER); + pwm_enable(LED_BATTERY_WHITE, color == EC_LED_COLOR_WHITE); } __override void led_set_color_power(enum ec_led_colors color) { + pwm_enable(LED_POWER_WHITE, color == EC_LED_COLOR_WHITE); } void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range) { + if (led_id == EC_LED_ID_BATTERY_LED) { + brightness_range[EC_LED_COLOR_AMBER] = 1; + brightness_range[EC_LED_COLOR_WHITE] = 1; + } else if (led_id == EC_LED_ID_POWER_LED) { + brightness_range[EC_LED_COLOR_WHITE] = 1; + } } int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness) @@ -77,15 +92,10 @@ int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness) return EC_SUCCESS; } -__override enum led_states board_led_get_state(enum led_states desired_state) +void board_led_init(void) { - if (desired_state == STATE_BATTERY_ERROR) { - if (chipset_in_state(CHIPSET_STATE_ON)) - return desired_state; - else if (chipset_in_state(CHIPSET_STATE_ANY_SUSPEND)) - return STATE_DISCHARGE_S3; - else - return STATE_DISCHARGE_S5; - } - return desired_state; + pwm_set_duty(LED_POWER_WHITE, 100); + pwm_set_duty(LED_BATTERY_AMBER, 100); + pwm_set_duty(LED_BATTERY_WHITE, 100); } +DECLARE_HOOK(HOOK_INIT, board_led_init, HOOK_PRIO_DEFAULT); |