summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTing Shen <phoenixshen@google.com>2022-01-14 17:57:30 +0800
committerCommit Bot <commit-bot@chromium.org>2022-01-19 05:35:02 +0000
commita10ef3c9aca3958b7e1cf3b98a8b9a77366e28f4 (patch)
tree710d48adf9d47caba45a3cd9dcbb50c9426fd254
parenta9686ae771066a9e97012d9126fef5596b36f5dd (diff)
downloadchrome-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.c32
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);