summaryrefslogtreecommitdiff
path: root/board/primus
diff options
context:
space:
mode:
authorScott Chao <scott_chao@wistron.corp-partner.google.com>2021-08-04 21:06:53 +0800
committerCommit Bot <commit-bot@chromium.org>2021-08-05 01:05:55 +0000
commitbd1729a3280a23dcceeb9a395eb97d27b6b5aae9 (patch)
tree534148f33f469071b83997b330a7f80a9d6d04c5 /board/primus
parent2eb53a39662b905c65015bafb5f73ab2324d369c (diff)
downloadchrome-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>
Diffstat (limited to 'board/primus')
-rw-r--r--board/primus/board.h3
-rw-r--r--board/primus/led.c18
-rw-r--r--board/primus/pwm.c6
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);