diff options
author | Scott Chao <scott_chao@wistron.corp-partner.google.com> | 2021-08-04 21:06:53 +0800 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2021-08-05 01:05:55 +0000 |
commit | bd1729a3280a23dcceeb9a395eb97d27b6b5aae9 (patch) | |
tree | 534148f33f469071b83997b330a7f80a9d6d04c5 | |
parent | 2eb53a39662b905c65015bafb5f73ab2324d369c (diff) | |
download | chrome-ec-bd1729a3280a23dcceeb9a395eb97d27b6b5aae9.tar.gz |
primus: fix led behavior
- Power button led should act as A-cover led when enter suspend.
- A-cover led is active high.
BUG=b:190637023
BRANCH=none
TEST=make -j BOARD=primus
Signed-off-by: Scott Chao <scott_chao@wistron.corp-partner.google.com>
Change-Id: I9b272380bb690d6c97fefa297b301f340dbcd822
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3070803
Reviewed-by: Boris Mittelberg <bmbm@google.com>
-rw-r--r-- | board/primus/board.h | 3 | ||||
-rw-r--r-- | board/primus/led.c | 18 | ||||
-rw-r--r-- | board/primus/pwm.c | 6 |
3 files changed, 20 insertions, 7 deletions
diff --git a/board/primus/board.h b/board/primus/board.h index 1f091ea2a0..bae895a0dd 100644 --- a/board/primus/board.h +++ b/board/primus/board.h @@ -129,6 +129,9 @@ #define CONFIG_TEMP_SENSOR_POWER_GPIO GPIO_SEQ_EC_DSW_PWROK #define CONFIG_STEINHART_HART_3V3_30K9_47K_4050B +/* LED */ +#define CONFIG_BATTERY_LEVEL_NEAR_FULL 91 + /* * TODO: no fan control loop until sensors are tuned */ diff --git a/board/primus/led.c b/board/primus/led.c index dec67263ab..21ee9e7ce1 100644 --- a/board/primus/led.c +++ b/board/primus/led.c @@ -176,16 +176,26 @@ static void suspend_led_update(void) /* 1s gradual on, 1s gradual off, 3s off */ if (tick <= TICKS_STEP2_DIMMER) { - /* increase 5 duty every 50ms until PWM=100 */ - /* enter here 20 times, total duartion is 1sec */ + /* increase 5 duty every 50ms until PWM=100 + * enter here 20 times, total duartion is 1sec + * A-cover and power button led are shared same + * behavior. + */ pwm_set_duty(PWM_CH_TKP_A_LED_N, tick * LED_BAT_S3_PWM_RESCALE); + pwm_set_duty(PWM_CH_LED4, + tick * LED_BAT_S3_PWM_RESCALE); msleep(LED_BAT_S3_TICK_MS); } else if (tick <= TICKS_STEP3_OFF) { - /* decrease 5 duty every 50ms until PWM=0 */ - /* enter here 20 times, total duartion is 1sec */ + /* decrease 5 duty every 50ms until PWM=0 + * enter here 20 times, total duartion is 1sec + * A-cover and power button led are shared same + * behavior. + */ pwm_set_duty(PWM_CH_TKP_A_LED_N, (TICKS_STEP3_OFF - tick) * LED_BAT_S3_PWM_RESCALE); + pwm_set_duty(PWM_CH_LED4, (TICKS_STEP3_OFF + - tick) * LED_BAT_S3_PWM_RESCALE); msleep(LED_BAT_S3_TICK_MS); } else { tick = TICKS_STEP1_BRIGHTER; diff --git a/board/primus/pwm.c b/board/primus/pwm.c index a946071159..6529443651 100644 --- a/board/primus/pwm.c +++ b/board/primus/pwm.c @@ -17,7 +17,7 @@ const struct pwm_t pwm_channels[] = { }, [PWM_CH_TKP_A_LED_N] = { .channel = 1, - .flags = PWM_CONFIG_ACTIVE_LOW | PWM_CONFIG_DSLEEP, + .flags = PWM_CONFIG_DSLEEP, .freq = 4800, }, [PWM_CH_LED1_AMBER] = { @@ -52,14 +52,14 @@ BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT); static void board_pwm_init(void) { /* - * Turn on LOGO led and turn off battery/power led + * Turn off LOGO/power/battery led */ pwm_enable(PWM_CH_LED1_AMBER, 1); pwm_set_duty(PWM_CH_LED1_AMBER, 0); pwm_enable(PWM_CH_LED2_WHITE, 1); pwm_set_duty(PWM_CH_LED2_WHITE, 0); pwm_enable(PWM_CH_TKP_A_LED_N, 1); - pwm_set_duty(PWM_CH_TKP_A_LED_N, 100); + pwm_set_duty(PWM_CH_TKP_A_LED_N, 0); pwm_enable(PWM_CH_LED4, 1); pwm_set_duty(PWM_CH_LED4, 0); |