From b40bf39567066bc193adff1cf1025b20cc69a7c7 Mon Sep 17 00:00:00 2001 From: Leo Zhou Date: Mon, 18 Nov 2019 22:29:51 +0800 Subject: krane: Use the PWM mode to adjust brightness as lowest Adjust current=4ma, pwm=1/32, and change the state as: charging is blue charged full is green low battery is red BUG=b:137618886 BRANCH=kukui TEST=Do a full charging test, notice LED indicator status under different charge state Change-Id: Ic1b7a99ab3edaee5c92a5cae56bc6d9a321e9c23 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1918995 Reviewed-by: Eric Yilun Lin Tested-by: Kook Zhang Commit-Queue: Leo Zhou --- board/kukui/led.c | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) (limited to 'board') diff --git a/board/kukui/led.c b/board/kukui/led.c index 527568b83d..73fa23a8ab 100644 --- a/board/kukui/led.c +++ b/board/kukui/led.c @@ -43,16 +43,17 @@ static void kukui_led_set_battery(void) switch (chstate) { case PWR_STATE_CHARGE: - case PWR_STATE_CHARGE_NEAR_FULL: - br[EC_LED_COLOR_BLUE] = 2; - br[EC_LED_COLOR_GREEN] = 1; - br[EC_LED_COLOR_RED] = 1; + /* RGB(current, duty) = (4mA,1/32)*/ + br[EC_LED_COLOR_BLUE] = 1; break; case PWR_STATE_DISCHARGE: /* display SoC 10% = real battery SoC 13%*/ if (charge_get_percent() <= 13) br[EC_LED_COLOR_RED] = 1; break; + case PWR_STATE_CHARGE_NEAR_FULL: + br[EC_LED_COLOR_GREEN] = 1; + break; case PWR_STATE_ERROR: br[EC_LED_COLOR_RED] = 1; break; @@ -113,6 +114,23 @@ static void led_reset_auto_control(void) prv_chstate = PWR_STATE_INIT; } +static void krane_led_init(void) +{ + const enum mt6370_led_dim_mode dim = MT6370_LED_DIM_MODE_PWM; + const enum mt6370_led_pwm_freq freq = MT6370_LED_PWM_FREQ1000; + mt6370_led_set_color(LED_MASK_RED | LED_MASK_GREEN | LED_MASK_BLUE); + mt6370_led_set_dim_mode(LED_RED, dim); + mt6370_led_set_dim_mode(LED_GREEN, dim); + mt6370_led_set_dim_mode(LED_BLUE, dim); + mt6370_led_set_pwm_frequency(LED_RED, freq); + mt6370_led_set_pwm_frequency(LED_GREEN, freq); + mt6370_led_set_pwm_frequency(LED_BLUE, freq); + mt6370_led_set_pwm_dim_duty(LED_RED, 0); + mt6370_led_set_pwm_dim_duty(LED_GREEN, 0); + mt6370_led_set_pwm_dim_duty(LED_BLUE, 0); +} +DECLARE_HOOK(HOOK_INIT, krane_led_init, HOOK_PRIO_DEFAULT); + /* Called by hook task every 1 sec */ static void led_second(void) { -- cgit v1.2.1