diff options
author | Tom Hughes <tomhughes@chromium.org> | 2022-09-21 14:10:01 -0700 |
---|---|---|
committer | Tom Hughes <tomhughes@chromium.org> | 2022-09-22 12:49:33 -0700 |
commit | 2bcf863b492fe7ed8105c853814dba6ed32ba719 (patch) | |
tree | fcf6ce5810f9ff9e3c8cce434812dd75492269ed /board/banshee/led.c | |
parent | e5fb0b9ba488614b5684e640530f00821ab7b943 (diff) | |
parent | 28712dae9d7ed1e694f7622cc083afa71090d4d5 (diff) | |
download | chrome-ec-2bcf863b492fe7ed8105c853814dba6ed32ba719.tar.gz |
Merge remote-tracking branch cros/main into firmware-fpmcu-bloonchipper-releasefirmware-fpmcu-bloonchipper-release
Generated by: ./util/update_release_branch.py --board bloonchipper
--relevant_paths_file ./util/fingerprint-relevant-paths.txt firmware-
fpmcu-bloonchipper-release
Relevant changes:
git log --oneline e5fb0b9ba4..28712dae9d -- board/hatch_fp
board/bloonchipper common/fpsensor docs/fingerprint driver/fingerprint
util/getversion.sh
ded9307b79 util/getversion.sh: Fix version when not in a git repo
956055e692 board: change Google USB vendor info
71b2ef709d Update license boilerplate text in source code files
33e11afda0 Revert "fpsensor: Build fpsensor source file with C++"
c8d0360723 fpsensor: Build fpsensor source file with C++
bc113abd53 fpsensor: Fix g++ compiler error
150a58a0dc fpsensor: Fix fp_set_sensor_mode return type
b33b5ce85b fpsensor: Remove nested designators for C++ compatibility
2e864b2539 tree-wide: const-ify argv for console commands
56d8b360f9 test: Add test for get ikm failure when seed not set
3a3d6c3690 test: Add test for fpsensor trivial key failure
233e6bbd08 fpsensor_crypto: Abstract calls to hmac_SHA256
0a041b285b docs/fingerprint: Typo correction
c03fab67e2 docs/fingerprint: Fix the path of fputils.py
0b5d4baf5a util/getversion.sh: Fix empty file list handling
6e128fe760 FPMCU dev board environment with Satlab
3eb29b6aa5 builtin: Move ssize_t to sys/types.h
345d62ebd1 docs/fingerprint: Update power numbers for latest dartmonkey release
c25ffdb316 common: Conditionally support printf %l and %i modifiers
9a3c514b45 test: Add a test to check if the debugger is connected
54e603413f Move standard library tests to their own file
43fa6b4bf8 docs/fingerprint: Update power numbers for latest bloonchipper release
25536f9a84 driver/fingerprint/fpc/bep/fpc_sensor_spi.c: Format with clang-format
4face99efd driver/fingerprint/fpc/libfp/fpc_sensor_pal.h: Format with clang-format
738de2b575 trng: Rename rand to trng_rand
14b8270edd docs/fingerprint: Update dragonclaw power numbers
0b268f93d1 driver/fingerprint/fpc/libfp/fpc_private.c: Format with clang-format
f80da163f2 driver/fingerprint/fpc/libfp/fpc_private.h: Format with clang-format
5e9c85c9b1 driver/fingerprint/fpc/libfp/fpc_sensor_pal.c: Format with clang-format
c1f9dd3cf8 driver/fingerprint/fpc/libfp/fpc_bio_algorithm.h: Format with clang-format
eb1e1bed8d driver/fingerprint/fpc/libfp/fpc1145_private.h: Format with clang-format
6e7b611821 driver/fingerprint/fpc/bep/fpc_bio_algorithm.h: Format with clang-format
e0589cd5e2 driver/fingerprint/fpc/bep/fpc1035_private.h: Format with clang-format
7905e556a0 common/fpsensor/fpsensor_crypto.c: Format with clang-format
21289d170c driver/fingerprint/fpc/bep/fpc1025_private.h: Format with clang-format
98a20f937e common/fpsensor/fpsensor_state.c: Format with clang-format
a2d255d8af common/fpsensor/fpsensor.c: Format with clang-format
73055eeb3f driver/fingerprint/fpc/bep/fpc_private.c: Format with clang-format
0f7b5cb509 common/fpsensor/fpsensor_private.h: Format with clang-format
1ceade6e65 driver/fingerprint/fpc/bep/fpc_private.h: Format with clang-format
dc3e9008b8 board/hatch_fp/board.h: Format with clang-format
dca9d74321 Revert "trng: Rename rand to trng_rand"
a6b0b3554f trng: Rename rand to trng_rand
28d0b75b70 third_party/boringssl: Remove unused header
BRANCH=None
BUG=b:246424843 b:234181908 b:244781166 b:234181908 b:244387210
BUG=b:242720240 chromium:1098010 b:180945056 b:236025198 b:234181908
BUG=b:234181908 b:237344361 b:131913998 b:236386294 b:234143158
BUG=b:234781655 b:215613183 b:242720910
TEST=`make -j buildall`
TEST=./test/run_device_tests.py --board bloonchipper
Test "aes": PASSED
Test "cec": PASSED
Test "cortexm_fpu": PASSED
Test "crc": PASSED
Test "flash_physical": PASSED
Test "flash_write_protect": PASSED
Test "fpsensor_hw": PASSED
Test "fpsensor_spi_ro": PASSED
Test "fpsensor_spi_rw": PASSED
Test "fpsensor_uart_ro": PASSED
Test "fpsensor_uart_rw": PASSED
Test "mpu_ro": PASSED
Test "mpu_rw": PASSED
Test "mutex": PASSED
Test "pingpong": PASSED
Test "printf": PASSED
Test "queue": PASSED
Test "rollback_region0": PASSED
Test "rollback_region1": PASSED
Test "rollback_entropy": PASSED
Test "rtc": PASSED
Test "sha256": PASSED
Test "sha256_unrolled": PASSED
Test "static_if": PASSED
Test "stdlib": PASSED
Test "system_is_locked_wp_on": PASSED
Test "system_is_locked_wp_off": PASSED
Test "timer_dos": PASSED
Test "utils": PASSED
Test "utils_str": PASSED
Test "stm32f_rtc": PASSED
Test "panic_data_bloonchipper_v2.0.4277": PASSED
Test "panic_data_bloonchipper_v2.0.5938": PASSED
Force-Relevant-Builds: all
Signed-off-by: Tom Hughes <tomhughes@chromium.org>
Change-Id: I264ad0ffe7afcd507a1e483c6e934a9c4fea47c3
Diffstat (limited to 'board/banshee/led.c')
-rw-r--r-- | board/banshee/led.c | 92 |
1 files changed, 41 insertions, 51 deletions
diff --git a/board/banshee/led.c b/board/banshee/led.c index b1c6a6445f..1471388085 100644 --- a/board/banshee/led.c +++ b/board/banshee/led.c @@ -1,4 +1,4 @@ -/* Copyright 2022 The Chromium OS Authors. All rights reserved. +/* Copyright 2022 The ChromiumOS Authors * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ @@ -28,16 +28,15 @@ #define LED_TICKS_PER_CYCLE 10 #define LED_ON_TICKS 5 -#define BREATH_LIGHT_LENGTH 55 -#define BREATH_HOLD_LENGTH 50 -#define BREATH_OFF_LENGTH 200 +#define BREATH_LIGHT_LENGTH 100 +#define BREATH_HOLD_LENGTH 50 +#define BREATH_OFF_LENGTH 200 const enum ec_led_id supported_led_ids[] = { EC_LED_ID_BATTERY_LED, EC_LED_ID_POWER_LED, }; - enum breath_status { BREATH_LIGHT_UP = 0, BREATH_LIGHT_DOWN, @@ -45,26 +44,23 @@ enum breath_status { BREATH_OFF, }; -enum led_port { - RIGHT_PORT = 1, - LEFT_PORT -}; +enum led_port { RIGHT_PORT = 1, LEFT_PORT }; const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids); struct pwm_led_color_map led_color_map[EC_LED_COLOR_COUNT] = { - /* Red, Green, Blue */ - [EC_LED_COLOR_RED] = { 50, 0, 0 }, - [EC_LED_COLOR_GREEN] = { 0, 50, 0 }, - [EC_LED_COLOR_BLUE] = { 0, 0, 8 }, - [EC_LED_COLOR_YELLOW] = { 40, 50, 0 }, - [EC_LED_COLOR_WHITE] = { 20, 50, 25 }, - [EC_LED_COLOR_AMBER] = { 45, 5, 0 }, + /* Red, Green, Blue */ + [EC_LED_COLOR_RED] = { 50, 0, 0 }, + [EC_LED_COLOR_GREEN] = { 0, 50, 0 }, + [EC_LED_COLOR_BLUE] = { 0, 0, 8 }, + [EC_LED_COLOR_YELLOW] = { 40, 50, 0 }, + [EC_LED_COLOR_WHITE] = { 4, 10, 5 }, + [EC_LED_COLOR_AMBER] = { 45, 5, 0 }, }; struct pwm_led_color_map pwr_led_color_map[EC_LED_COLOR_COUNT] = { - /* White, Green, Red */ - [EC_LED_COLOR_WHITE] = { BREATH_LIGHT_LENGTH, 0, 0 }, + /* White, Green, Red */ + [EC_LED_COLOR_WHITE] = { BREATH_LIGHT_LENGTH, 0, 0 }, }; /* @@ -88,13 +84,11 @@ struct pwm_led pwm_leds[CONFIG_LED_PWM_COUNT] = { }, }; - uint8_t breath_led_light_up; uint8_t breath_led_light_down; uint8_t breath_led_hold; uint8_t breath_led_off; - int breath_pwm_enable; int breath_led_status; static void breath_led_pwm_deferred(void); @@ -102,21 +96,19 @@ DECLARE_DEFERRED(breath_led_pwm_deferred); /* * Breath LED API - * Max duty (percentage) = BREATH_LIGHT_LENGTH (55%) - * Fade time (second) = 550ms(In) / 550ms(Out) + * Max duty (percentage) = BREATH_LIGHT_LENGTH (100%) + * Fade time (second) = 1000ms(In) / 1000ms(Out) * Duration time (second) = BREATH_HOLD_LENGTH(500ms) * Interval time (second) = BREATH_OFF_LENGTH(2000ms) */ static void breath_led_pwm_deferred(void) { - switch (breath_led_status) { case BREATH_LIGHT_UP: - if (breath_led_light_up <= BREATH_LIGHT_LENGTH) - pwm_set_duty(PWM_CH_POWER_LED_W, - breath_led_light_up++); + if (breath_led_light_up <= BREATH_LIGHT_LENGTH) + pwm_set_duty(PWM_CH_POWER_LED_W, breath_led_light_up++); else { breath_led_light_up = 0; breath_led_light_down = BREATH_LIGHT_LENGTH; @@ -126,7 +118,7 @@ static void breath_led_pwm_deferred(void) break; case BREATH_HOLD: - if (breath_led_hold <= BREATH_HOLD_LENGTH) + if (breath_led_hold <= BREATH_HOLD_LENGTH) breath_led_hold++; else { breath_led_hold = 0; @@ -138,7 +130,7 @@ static void breath_led_pwm_deferred(void) if (breath_led_light_down != 0) pwm_set_duty(PWM_CH_POWER_LED_W, - breath_led_light_down--); + breath_led_light_down--); else { breath_led_light_down = BREATH_LIGHT_LENGTH; breath_led_status = BREATH_OFF; @@ -147,7 +139,7 @@ static void breath_led_pwm_deferred(void) break; case BREATH_OFF: - if (breath_led_off <= BREATH_OFF_LENGTH) + if (breath_led_off <= BREATH_OFF_LENGTH) breath_led_off++; else { breath_led_off = 0; @@ -157,12 +149,10 @@ static void breath_led_pwm_deferred(void) break; } - if (breath_pwm_enable) hook_call_deferred(&breath_led_pwm_deferred_data, 10 * MSEC); } - void breath_led_run(uint8_t enable) { if (enable && !breath_pwm_enable) { @@ -180,7 +170,6 @@ void breath_led_run(uint8_t enable) } } - void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range) { if (led_id == EC_LED_ID_BATTERY_LED) { @@ -192,7 +181,6 @@ void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range) brightness_range[EC_LED_COLOR_WHITE] = 100; } else if (led_id == EC_LED_ID_POWER_LED) brightness_range[EC_LED_COLOR_WHITE] = 100; - } void set_pwr_led_color(enum pwm_led_id id, int color) @@ -265,8 +253,8 @@ static int led_get_charge_percent(void) static void select_active_port_led(int port) { if ((charge_get_state() == PWR_STATE_DISCHARGE && - led_get_charge_percent() < 10) || - charge_get_state() == PWR_STATE_ERROR) { + led_get_charge_percent() < 10) || + charge_get_state() == PWR_STATE_ERROR) { gpio_set_level(GPIO_LEFT_SIDE, 1); gpio_set_level(GPIO_RIGHT_SIDE, 1); } else if (port == RIGHT_PORT) { @@ -283,8 +271,7 @@ static void select_active_port_led(int port) static int led_power_enable(void) { - if (gpio_get_level(GPIO_LEFT_SIDE) || - gpio_get_level(GPIO_RIGHT_SIDE)) + if (gpio_get_level(GPIO_LEFT_SIDE) || gpio_get_level(GPIO_RIGHT_SIDE)) return true; return false; @@ -309,7 +296,6 @@ static void set_active_port_color(int color) static void led_set_battery(void) { static int battery_ticks; - uint32_t chflags = charge_get_flags(); battery_ticks++; @@ -322,38 +308,43 @@ static void led_set_battery(void) if (led_auto_control_is_enabled(EC_LED_ID_BATTERY_LED)) { if (led_get_charge_percent() < 10) set_active_port_color((battery_ticks & 0x2) ? - EC_LED_COLOR_RED : -1); + EC_LED_COLOR_RED : + -1); else set_active_port_color(-1); } break; case PWR_STATE_ERROR: - set_active_port_color((battery_ticks & 0x2) ? - EC_LED_COLOR_RED : -1); + set_active_port_color((battery_ticks & 0x2) ? EC_LED_COLOR_RED : + -1); break; case PWR_STATE_CHARGE_NEAR_FULL: - set_active_port_color(EC_LED_COLOR_GREEN); + set_active_port_color(EC_LED_COLOR_WHITE); break; case PWR_STATE_IDLE: - if (chflags & CHARGE_FLAG_FORCE_IDLE) - set_active_port_color((battery_ticks & 0x4) ? - EC_LED_COLOR_AMBER : -1); - else - set_active_port_color(EC_LED_COLOR_AMBER); + set_active_port_color(EC_LED_COLOR_AMBER); + break; + case PWR_STATE_FORCED_IDLE: + set_active_port_color( + (battery_ticks & 0x4) ? EC_LED_COLOR_AMBER : -1); break; default: break; } - } static void led_set_power(void) { + /* turn off led when lid is close*/ + if (!lid_is_open()) { + set_pwr_led_color(PWM_LED1, -1); + return; + } + if (chipset_in_state(CHIPSET_STATE_ANY_SUSPEND)) { breath_led_run(1); return; - } - else + } else breath_led_run(0); if (chipset_in_state(CHIPSET_STATE_ON)) { @@ -369,6 +360,5 @@ static void led_tick(void) led_set_battery(); if (led_auto_control_is_enabled(EC_LED_ID_POWER_LED)) led_set_power(); - } DECLARE_HOOK(HOOK_TICK, led_tick, HOOK_PRIO_DEFAULT); |