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/lindar/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/lindar/led.c')
-rw-r--r-- | board/lindar/led.c | 346 |
1 files changed, 157 insertions, 189 deletions
diff --git a/board/lindar/led.c b/board/lindar/led.c index 6d602d5c4e..9ad7b48fb2 100644 --- a/board/lindar/led.c +++ b/board/lindar/led.c @@ -1,4 +1,4 @@ -/* Copyright 2020 The Chromium OS Authors. All rights reserved. +/* Copyright 2020 The ChromiumOS Authors * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. * @@ -23,44 +23,49 @@ #include "timer.h" #include "util.h" -#define CPRINTS(format, args...) cprints(CC_CHARGER, format, ## args) -#define CPRINTF(format, args...) cprintf(CC_CHARGER, format, ## args) +#define CPRINTS(format, args...) cprints(CC_CHARGER, format, ##args) +#define CPRINTF(format, args...) cprintf(CC_CHARGER, format, ##args) -#define LED_OFF_LVL 1 -#define LED_ON_LVL 0 +#define LED_OFF_LVL 1 +#define LED_ON_LVL 0 __override const int led_charge_lvl_1 = 5; __override const int led_charge_lvl_2 = 97; __override struct led_descriptor - led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = { - [STATE_CHARGING_LVL_1] = {{EC_LED_COLOR_RED, LED_INDEFINITE} }, - [STATE_CHARGING_LVL_2] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} }, - [STATE_CHARGING_FULL_CHARGE] = {{EC_LED_COLOR_GREEN, LED_INDEFINITE} }, - [STATE_DISCHARGE_S0] = {{LED_OFF, LED_INDEFINITE} }, - [STATE_DISCHARGE_S3] = {{LED_OFF, LED_INDEFINITE} }, - [STATE_DISCHARGE_S5] = {{LED_OFF, LED_INDEFINITE} }, - [STATE_BATTERY_ERROR] = {{EC_LED_COLOR_RED, 1 * LED_ONE_SEC}, - {LED_OFF, 1 * LED_ONE_SEC} }, - [STATE_FACTORY_TEST] = {{EC_LED_COLOR_RED, 2 * LED_ONE_SEC}, - {EC_LED_COLOR_GREEN, 2 * LED_ONE_SEC} }, -}; + led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = { + [STATE_CHARGING_LVL_1] = { { EC_LED_COLOR_RED, + LED_INDEFINITE } }, + [STATE_CHARGING_LVL_2] = { { EC_LED_COLOR_AMBER, + LED_INDEFINITE } }, + [STATE_CHARGING_FULL_CHARGE] = { { EC_LED_COLOR_GREEN, + LED_INDEFINITE } }, + [STATE_DISCHARGE_S0] = { { LED_OFF, LED_INDEFINITE } }, + [STATE_DISCHARGE_S3] = { { LED_OFF, LED_INDEFINITE } }, + [STATE_DISCHARGE_S5] = { { LED_OFF, LED_INDEFINITE } }, + [STATE_BATTERY_ERROR] = { { EC_LED_COLOR_RED, 1 * LED_ONE_SEC }, + { LED_OFF, 1 * LED_ONE_SEC } }, + [STATE_FACTORY_TEST] = { { EC_LED_COLOR_RED, 2 * LED_ONE_SEC }, + { EC_LED_COLOR_GREEN, + 2 * LED_ONE_SEC } }, + }; __override const struct led_descriptor - led_pwr_state_table[PWR_LED_NUM_STATES][LED_NUM_PHASES] = { - [PWR_LED_STATE_ON] = {{EC_LED_COLOR_WHITE, LED_INDEFINITE} }, - [PWR_LED_STATE_SUSPEND_AC] = {{EC_LED_COLOR_WHITE, 1 * LED_ONE_SEC}, - {LED_OFF, 3 * LED_ONE_SEC} }, - [PWR_LED_STATE_SUSPEND_NO_AC] = {{EC_LED_COLOR_WHITE, 1 * LED_ONE_SEC}, - {LED_OFF, 3 * LED_ONE_SEC} }, - [PWR_LED_STATE_OFF] = {{LED_OFF, LED_INDEFINITE} }, -}; - -const enum ec_led_id supported_led_ids[] = { - EC_LED_ID_BATTERY_LED, - EC_LED_ID_POWER_LED -}; + led_pwr_state_table[PWR_LED_NUM_STATES][LED_NUM_PHASES] = { + [PWR_LED_STATE_ON] = { { EC_LED_COLOR_WHITE, LED_INDEFINITE } }, + [PWR_LED_STATE_SUSPEND_AC] = { { EC_LED_COLOR_WHITE, + 1 * LED_ONE_SEC }, + { LED_OFF, 3 * LED_ONE_SEC } }, + [PWR_LED_STATE_SUSPEND_NO_AC] = { { EC_LED_COLOR_WHITE, + 1 * LED_ONE_SEC }, + { LED_OFF, + 3 * LED_ONE_SEC } }, + [PWR_LED_STATE_OFF] = { { LED_OFF, LED_INDEFINITE } }, + }; + +const enum ec_led_id supported_led_ids[] = { EC_LED_ID_BATTERY_LED, + EC_LED_ID_POWER_LED }; const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids); @@ -135,9 +140,8 @@ static void controller_write(uint8_t reg, uint8_t val) buf[0] = reg; buf[1] = val; - i2c_xfer_unlocked(I2C_PORT_LIGHTBAR, ktd2061_i2c_addr, - buf, 2, 0, 0, - I2C_XFER_SINGLE); + i2c_xfer_unlocked(I2C_PORT_LIGHTBAR, ktd2061_i2c_addr, buf, 2, 0, 0, + I2C_XFER_SINGLE); } enum lightbar_states { @@ -187,51 +191,46 @@ struct lightbar_descriptor { uint8_t ticks; }; -#define BAR_INFINITE UINT8_MAX -#define LIGHTBAR_ONE_SEC (1000 / HOOK_TICK_INTERVAL_MS) +#define BAR_INFINITE UINT8_MAX +#define LIGHTBAR_ONE_SEC (1000 / HOOK_TICK_INTERVAL_MS) #define LIGHTBAR_COUNT_FOR_RESUME_FROM_SLEEP (3 * LIGHTBAR_ONE_SEC) int lightbar_resume_tick; -const struct lightbar_descriptor - lb_table[LB_NUM_STATES][LIGHTBAR_NUM_PHASES] = { - [LB_STATE_OFF] = {{BAR_OFF, BAR_INFINITE} }, - [LB_STATE_LID_CLOSE] = {{BAR_OFF, BAR_INFINITE} }, - [LB_STATE_SLEEP_AC_ONLY] = {{BAR_OFF, BAR_INFINITE} }, - [LB_STATE_SLEEP_AC_BAT_LOW] = {{BAR_COLOR_ORG_20_PERCENT, - BAR_INFINITE} }, - [LB_STATE_SLEEP_AC_BAT_LV1] = {{BAR_COLOR_GRN_40_PERCENT, - BAR_INFINITE} }, - [LB_STATE_SLEEP_AC_BAT_LV2] = {{BAR_COLOR_GRN_60_PERCENT, - BAR_INFINITE} }, - [LB_STATE_SLEEP_AC_BAT_LV3] = {{BAR_COLOR_GRN_80_PERCENT, - BAR_INFINITE} }, - [LB_STATE_SLEEP_AC_BAT_LV4] = {{BAR_COLOR_GRN_FULL, BAR_INFINITE} }, - [LB_STATE_SLEEP_BAT_LOW] = {{BAR_OFF, 5 * LIGHTBAR_ONE_SEC}, - {BAR_COLOR_ORG_FULL, LIGHTBAR_ONE_SEC} }, - [LB_STATE_SLEEP_BAT_ONLY] = {{BAR_OFF, BAR_INFINITE} }, - [LB_STATE_S0_AC_ONLY] = {{BAR_OFF, BAR_INFINITE} }, - [LB_STATE_S0_BAT_LOW] = {{BAR_COLOR_ORG_20_PERCENT, - BAR_INFINITE} }, - [LB_STATE_S0_BAT_LV1] = {{BAR_COLOR_GRN_40_PERCENT, - BAR_INFINITE} }, - [LB_STATE_S0_BAT_LV2] = {{BAR_COLOR_GRN_60_PERCENT, - BAR_INFINITE} }, - [LB_STATE_S0_BAT_LV3] = {{BAR_COLOR_GRN_80_PERCENT, - BAR_INFINITE} }, - [LB_STATE_S0_BAT_LV4] = {{BAR_COLOR_GRN_FULL, BAR_INFINITE} }, +const struct lightbar_descriptor lb_table[LB_NUM_STATES][LIGHTBAR_NUM_PHASES] = { + [LB_STATE_OFF] = { { BAR_OFF, BAR_INFINITE } }, + [LB_STATE_LID_CLOSE] = { { BAR_OFF, BAR_INFINITE } }, + [LB_STATE_SLEEP_AC_ONLY] = { { BAR_OFF, BAR_INFINITE } }, + [LB_STATE_SLEEP_AC_BAT_LOW] = { { BAR_COLOR_ORG_20_PERCENT, + BAR_INFINITE } }, + [LB_STATE_SLEEP_AC_BAT_LV1] = { { BAR_COLOR_GRN_40_PERCENT, + BAR_INFINITE } }, + [LB_STATE_SLEEP_AC_BAT_LV2] = { { BAR_COLOR_GRN_60_PERCENT, + BAR_INFINITE } }, + [LB_STATE_SLEEP_AC_BAT_LV3] = { { BAR_COLOR_GRN_80_PERCENT, + BAR_INFINITE } }, + [LB_STATE_SLEEP_AC_BAT_LV4] = { { BAR_COLOR_GRN_FULL, BAR_INFINITE } }, + [LB_STATE_SLEEP_BAT_LOW] = { { BAR_OFF, 5 * LIGHTBAR_ONE_SEC }, + { BAR_COLOR_ORG_FULL, LIGHTBAR_ONE_SEC } }, + [LB_STATE_SLEEP_BAT_ONLY] = { { BAR_OFF, BAR_INFINITE } }, + [LB_STATE_S0_AC_ONLY] = { { BAR_OFF, BAR_INFINITE } }, + [LB_STATE_S0_BAT_LOW] = { { BAR_COLOR_ORG_20_PERCENT, BAR_INFINITE } }, + [LB_STATE_S0_BAT_LV1] = { { BAR_COLOR_GRN_40_PERCENT, BAR_INFINITE } }, + [LB_STATE_S0_BAT_LV2] = { { BAR_COLOR_GRN_60_PERCENT, BAR_INFINITE } }, + [LB_STATE_S0_BAT_LV3] = { { BAR_COLOR_GRN_80_PERCENT, BAR_INFINITE } }, + [LB_STATE_S0_BAT_LV4] = { { BAR_COLOR_GRN_FULL, BAR_INFINITE } }, }; -#define DISABLE_LIGHTBAR 0x00 -#define ENABLE_LIGHTBAR 0x80 -#define I_OFF 0x00 -#define GRN_I_ON 0x1E -#define ORG_I_ON 0x28 -#define SEL_OFF 0x00 -#define SEL_1ST_LED BIT(7) -#define SEL_2ND_LED BIT(3) -#define SEL_BOTH (SEL_1ST_LED | SEL_2ND_LED) -#define SKU_ID_NONE 0x00 -#define SKU_ID_INVALID 0x01 +#define DISABLE_LIGHTBAR 0x00 +#define ENABLE_LIGHTBAR 0x80 +#define I_OFF 0x00 +#define GRN_I_ON 0x1E +#define ORG_I_ON 0x28 +#define SEL_OFF 0x00 +#define SEL_1ST_LED BIT(7) +#define SEL_2ND_LED BIT(3) +#define SEL_BOTH (SEL_1ST_LED | SEL_2ND_LED) +#define SKU_ID_NONE 0x00 +#define SKU_ID_INVALID 0x01 #define LB_SUPPORTED_SKUID_LOWER 458700 #define LB_SUPPORTED_SKUID_UPPER 458800 @@ -259,7 +258,7 @@ static bool lightbar_is_supported(void) * if system support lightbar or not. */ if (skuid >= LB_SUPPORTED_SKUID_LOWER && - skuid <= LB_SUPPORTED_SKUID_UPPER) + skuid <= LB_SUPPORTED_SKUID_UPPER) result = true; else result = false; @@ -310,8 +309,7 @@ static void lightbar_set_demo_state(enum lightbar_states tmp_state) LIGHTBAR_COUNT_FOR_RESUME_FROM_SLEEP; } ccprintf("lightbar_demo_state = %d; lightbar_resume_tick %d.\n", - lightbar_demo_state, - lightbar_resume_tick); + lightbar_demo_state, lightbar_resume_tick); } static enum lightbar_states lightbar_get_demo_state(void) @@ -321,8 +319,8 @@ static enum lightbar_states lightbar_get_demo_state(void) * simulate lightbar off. */ if ((lightbar_demo_state != LB_NUM_STATES) && - (lightbar_demo_state >= LB_STATE_S0_AC_ONLY) && - (lightbar_resume_tick == 0)) + (lightbar_demo_state >= LB_STATE_S0_AC_ONLY) && + (lightbar_resume_tick == 0)) return LB_STATE_OFF; return lightbar_demo_state; @@ -356,89 +354,65 @@ static bool lightbar_is_enabled(void) * ISEL_A12, ISEL_A34, ISEL_B12, ISEL_B34, ISEL_C12, ISEL_C34 */ const uint8_t lightbar_10_led_cfg[LIGHTBAR_COLOR_TOTAL][KTD20XX_TOTOAL_REG] = { - [BAR_RESET] = { - 0x00, 0x00, DISABLE_LIGHTBAR, - I_OFF, I_OFF, I_OFF, I_OFF, I_OFF, I_OFF, - SEL_OFF, SEL_OFF, SEL_OFF, SEL_OFF, SEL_OFF, SEL_OFF - }, - [BAR_OFF] = { - 0x00, 0x00, DISABLE_LIGHTBAR, - I_OFF, I_OFF, I_OFF, I_OFF, I_OFF, I_OFF, - SEL_OFF, SEL_OFF, SEL_OFF, SEL_OFF, SEL_OFF, SEL_OFF - }, - [BAR_COLOR_ORG_20_PERCENT] = { - 0x00, 0x00, ENABLE_LIGHTBAR, - I_OFF, ORG_I_ON, I_OFF, I_OFF, I_OFF, I_OFF, - SEL_OFF, SEL_BOTH, SEL_OFF, SEL_OFF, SEL_OFF, SEL_OFF - }, - [BAR_COLOR_GRN_40_PERCENT] = { - 0x00, 0x00, ENABLE_LIGHTBAR, - GRN_I_ON, I_OFF, I_OFF, I_OFF, I_OFF, I_OFF, - SEL_BOTH, SEL_BOTH, SEL_OFF, SEL_OFF, SEL_OFF, SEL_OFF - }, - [BAR_COLOR_GRN_60_PERCENT] = { - 0x00, 0x00, ENABLE_LIGHTBAR, - GRN_I_ON, I_OFF, I_OFF, I_OFF, I_OFF, I_OFF, - SEL_BOTH, SEL_BOTH, SEL_OFF, SEL_BOTH, SEL_OFF, SEL_OFF - }, - [BAR_COLOR_GRN_80_PERCENT] = { - 0x00, 0x00, ENABLE_LIGHTBAR, - GRN_I_ON, I_OFF, I_OFF, I_OFF, I_OFF, I_OFF, - SEL_BOTH, SEL_BOTH, SEL_BOTH, SEL_BOTH, SEL_OFF, SEL_OFF - }, - [BAR_COLOR_GRN_FULL] = { - 0x00, 0x00, ENABLE_LIGHTBAR, - GRN_I_ON, I_OFF, I_OFF, I_OFF, I_OFF, I_OFF, - SEL_BOTH, SEL_BOTH, SEL_BOTH, SEL_BOTH, SEL_BOTH, SEL_OFF - }, - [BAR_COLOR_ORG_FULL] = { - 0x00, 0x00, ENABLE_LIGHTBAR, - I_OFF, ORG_I_ON, I_OFF, I_OFF, I_OFF, I_OFF, - SEL_BOTH, SEL_BOTH, SEL_BOTH, SEL_BOTH, SEL_BOTH, SEL_OFF - } + [BAR_RESET] = { 0x00, 0x00, DISABLE_LIGHTBAR, I_OFF, I_OFF, I_OFF, + I_OFF, I_OFF, I_OFF, SEL_OFF, SEL_OFF, SEL_OFF, SEL_OFF, + SEL_OFF, SEL_OFF }, + [BAR_OFF] = { 0x00, 0x00, DISABLE_LIGHTBAR, I_OFF, I_OFF, I_OFF, I_OFF, + I_OFF, I_OFF, SEL_OFF, SEL_OFF, SEL_OFF, SEL_OFF, SEL_OFF, + SEL_OFF }, + [BAR_COLOR_ORG_20_PERCENT] = { 0x00, 0x00, ENABLE_LIGHTBAR, I_OFF, + ORG_I_ON, I_OFF, I_OFF, I_OFF, I_OFF, + SEL_OFF, SEL_BOTH, SEL_OFF, SEL_OFF, + SEL_OFF, SEL_OFF }, + [BAR_COLOR_GRN_40_PERCENT] = { 0x00, 0x00, ENABLE_LIGHTBAR, GRN_I_ON, + I_OFF, I_OFF, I_OFF, I_OFF, I_OFF, + SEL_BOTH, SEL_BOTH, SEL_OFF, SEL_OFF, + SEL_OFF, SEL_OFF }, + [BAR_COLOR_GRN_60_PERCENT] = { 0x00, 0x00, ENABLE_LIGHTBAR, GRN_I_ON, + I_OFF, I_OFF, I_OFF, I_OFF, I_OFF, + SEL_BOTH, SEL_BOTH, SEL_OFF, SEL_BOTH, + SEL_OFF, SEL_OFF }, + [BAR_COLOR_GRN_80_PERCENT] = { 0x00, 0x00, ENABLE_LIGHTBAR, GRN_I_ON, + I_OFF, I_OFF, I_OFF, I_OFF, I_OFF, + SEL_BOTH, SEL_BOTH, SEL_BOTH, SEL_BOTH, + SEL_OFF, SEL_OFF }, + [BAR_COLOR_GRN_FULL] = { 0x00, 0x00, ENABLE_LIGHTBAR, GRN_I_ON, I_OFF, + I_OFF, I_OFF, I_OFF, I_OFF, SEL_BOTH, SEL_BOTH, + SEL_BOTH, SEL_BOTH, SEL_BOTH, SEL_OFF }, + [BAR_COLOR_ORG_FULL] = { 0x00, 0x00, ENABLE_LIGHTBAR, I_OFF, ORG_I_ON, + I_OFF, I_OFF, I_OFF, I_OFF, SEL_BOTH, SEL_BOTH, + SEL_BOTH, SEL_BOTH, SEL_BOTH, SEL_OFF } }; const uint8_t lightbar_12_led_cfg[LIGHTBAR_COLOR_TOTAL][KTD20XX_TOTOAL_REG] = { - [BAR_RESET] = { - 0x00, 0x00, DISABLE_LIGHTBAR, - I_OFF, I_OFF, I_OFF, I_OFF, I_OFF, I_OFF, - SEL_OFF, SEL_OFF, SEL_OFF, SEL_OFF, SEL_OFF, SEL_OFF - }, - [BAR_OFF] = { - 0x00, 0x00, DISABLE_LIGHTBAR, - I_OFF, I_OFF, I_OFF, I_OFF, I_OFF, I_OFF, - SEL_OFF, SEL_OFF, SEL_OFF, SEL_OFF, SEL_OFF, SEL_OFF - }, - [BAR_COLOR_ORG_20_PERCENT] = { - 0x00, 0x00, ENABLE_LIGHTBAR, - I_OFF, ORG_I_ON, I_OFF, I_OFF, I_OFF, I_OFF, - SEL_2ND_LED, SEL_BOTH, SEL_OFF, SEL_OFF, SEL_OFF, SEL_OFF - }, - [BAR_COLOR_GRN_40_PERCENT] = { - 0x00, 0x00, ENABLE_LIGHTBAR, - GRN_I_ON, I_OFF, I_OFF, I_OFF, I_OFF, I_OFF, - SEL_BOTH, SEL_BOTH, SEL_OFF, SEL_2ND_LED, SEL_OFF, SEL_OFF - }, - [BAR_COLOR_GRN_60_PERCENT] = { - 0x00, 0x00, ENABLE_LIGHTBAR, - GRN_I_ON, I_OFF, I_OFF, I_OFF, I_OFF, I_OFF, - SEL_BOTH, SEL_BOTH, SEL_2ND_LED, SEL_BOTH, SEL_OFF, SEL_OFF - }, - [BAR_COLOR_GRN_80_PERCENT] = { - 0x00, 0x00, ENABLE_LIGHTBAR, - GRN_I_ON, I_OFF, I_OFF, I_OFF, I_OFF, I_OFF, - SEL_BOTH, SEL_BOTH, SEL_BOTH, SEL_BOTH, SEL_OFF, SEL_2ND_LED - }, - [BAR_COLOR_GRN_FULL] = { - 0x00, 0x00, ENABLE_LIGHTBAR, - GRN_I_ON, I_OFF, I_OFF, I_OFF, I_OFF, I_OFF, - SEL_BOTH, SEL_BOTH, SEL_BOTH, SEL_BOTH, SEL_BOTH, SEL_BOTH - }, - [BAR_COLOR_ORG_FULL] = { - 0x00, 0x00, ENABLE_LIGHTBAR, - I_OFF, ORG_I_ON, I_OFF, I_OFF, I_OFF, I_OFF, - SEL_BOTH, SEL_BOTH, SEL_BOTH, SEL_BOTH, SEL_BOTH, SEL_BOTH - } + [BAR_RESET] = { 0x00, 0x00, DISABLE_LIGHTBAR, I_OFF, I_OFF, I_OFF, + I_OFF, I_OFF, I_OFF, SEL_OFF, SEL_OFF, SEL_OFF, SEL_OFF, + SEL_OFF, SEL_OFF }, + [BAR_OFF] = { 0x00, 0x00, DISABLE_LIGHTBAR, I_OFF, I_OFF, I_OFF, I_OFF, + I_OFF, I_OFF, SEL_OFF, SEL_OFF, SEL_OFF, SEL_OFF, SEL_OFF, + SEL_OFF }, + [BAR_COLOR_ORG_20_PERCENT] = { 0x00, 0x00, ENABLE_LIGHTBAR, I_OFF, + ORG_I_ON, I_OFF, I_OFF, I_OFF, I_OFF, + SEL_2ND_LED, SEL_BOTH, SEL_OFF, SEL_OFF, + SEL_OFF, SEL_OFF }, + [BAR_COLOR_GRN_40_PERCENT] = { 0x00, 0x00, ENABLE_LIGHTBAR, GRN_I_ON, + I_OFF, I_OFF, I_OFF, I_OFF, I_OFF, + SEL_BOTH, SEL_BOTH, SEL_OFF, SEL_2ND_LED, + SEL_OFF, SEL_OFF }, + [BAR_COLOR_GRN_60_PERCENT] = { 0x00, 0x00, ENABLE_LIGHTBAR, GRN_I_ON, + I_OFF, I_OFF, I_OFF, I_OFF, I_OFF, + SEL_BOTH, SEL_BOTH, SEL_2ND_LED, + SEL_BOTH, SEL_OFF, SEL_OFF }, + [BAR_COLOR_GRN_80_PERCENT] = { 0x00, 0x00, ENABLE_LIGHTBAR, GRN_I_ON, + I_OFF, I_OFF, I_OFF, I_OFF, I_OFF, + SEL_BOTH, SEL_BOTH, SEL_BOTH, SEL_BOTH, + SEL_OFF, SEL_2ND_LED }, + [BAR_COLOR_GRN_FULL] = { 0x00, 0x00, ENABLE_LIGHTBAR, GRN_I_ON, I_OFF, + I_OFF, I_OFF, I_OFF, I_OFF, SEL_BOTH, SEL_BOTH, + SEL_BOTH, SEL_BOTH, SEL_BOTH, SEL_BOTH }, + [BAR_COLOR_ORG_FULL] = { 0x00, 0x00, ENABLE_LIGHTBAR, I_OFF, ORG_I_ON, + I_OFF, I_OFF, I_OFF, I_OFF, SEL_BOTH, SEL_BOTH, + SEL_BOTH, SEL_BOTH, SEL_BOTH, SEL_BOTH } }; /* @@ -462,7 +436,7 @@ static void lightbar_set_color(enum ec_lightbar_colors color) controller_write(i, lightbar_ctrl[color][i]); controller_write(KTD20XX_CTRL_CFG, - lightbar_ctrl[color][KTD20XX_CTRL_CFG]); + lightbar_ctrl[color][KTD20XX_CTRL_CFG]); i2c_lock(I2C_PORT_LIGHTBAR, 0); } @@ -519,10 +493,10 @@ static void lightbar_sleep_exit(void) DECLARE_HOOK(HOOK_CHIPSET_RESUME, lightbar_sleep_exit, HOOK_PRIO_DEFAULT); -#define LB_BAT_THRESHOLD_1 16 -#define LB_BAT_THRESHOLD_2 40 -#define LB_BAT_THRESHOLD_3 60 -#define LB_BAT_THRESHOLD_4 80 +#define LB_BAT_THRESHOLD_1 16 +#define LB_BAT_THRESHOLD_2 40 +#define LB_BAT_THRESHOLD_3 60 +#define LB_BAT_THRESHOLD_4 80 static enum lightbar_states lightbar_get_state(void) { @@ -536,7 +510,7 @@ static enum lightbar_states lightbar_get_state(void) if (lightbar_resume_tick) { if ((battery_is_present() == BP_YES) && - charge_get_display_charge()) { + charge_get_display_charge()) { if (cur_bat_percent < LB_BAT_THRESHOLD_1) new_state = LB_STATE_S0_BAT_LOW; else if (cur_bat_percent < LB_BAT_THRESHOLD_2) @@ -557,7 +531,7 @@ static enum lightbar_states lightbar_get_state(void) if (extpower_is_present()) { if ((battery_is_present() == BP_YES) && - charge_get_display_charge()) { + charge_get_display_charge()) { if (cur_bat_percent < LB_BAT_THRESHOLD_1) new_state = LB_STATE_SLEEP_AC_BAT_LOW; else if (cur_bat_percent < LB_BAT_THRESHOLD_2) @@ -607,15 +581,14 @@ static void lightbar_update(void) if (lightbar_resume_tick) lightbar_resume_tick--; - if (desired_state != lb_cur_state && - desired_state < LB_NUM_STATES) { + if (desired_state != lb_cur_state && desired_state < LB_NUM_STATES) { /* State is changing */ lb_cur_state = desired_state; /* Reset ticks and period when state changes */ ticks = 0; period = lb_table[lb_cur_state][LIGHTBAR_PHASE_0].ticks + - lb_table[lb_cur_state][LIGHTBAR_PHASE_1].ticks; + lb_table[lb_cur_state][LIGHTBAR_PHASE_1].ticks; /* * System will be waken up when AC status change in S0ix. Due to @@ -630,7 +603,8 @@ static void lightbar_update(void) /* If this state is undefined, turn lightbar off */ if (period == 0) { CPRINTS("Undefined lightbar behavior for lightbar state %d," - "turning off lightbar", lb_cur_state); + "turning off lightbar", + lb_cur_state); lightbar_set_color(BAR_OFF); return; } @@ -649,7 +623,6 @@ static void lightbar_update(void) /* Set the color for the given state and phase */ lightbar_set_color(lb_table[lb_cur_state][phase].color); - } DECLARE_HOOK(HOOK_TICK, lightbar_update, HOOK_PRIO_DEFAULT); @@ -663,17 +636,15 @@ static void lightbar_dump_status(void) int cbi_ssfc_lightbar; ccprintf("lightbar is %ssupported, %sabled, auto_control: %sabled\n", - lightbar_is_supported()?"":"un-", - lightbar_is_enabled()?"en":"dis", - lightbar_is_auto_control()?"en":"dis"); + lightbar_is_supported() ? "" : "un-", + lightbar_is_enabled() ? "en" : "dis", + lightbar_is_auto_control() ? "en" : "dis"); cbi_bid = get_board_id(); cbi_get_sku_id(&cbi_skuid); cbi_ssfc_lightbar = get_cbi_ssfc_lightbar(); - ccprintf("board id = %d, skuid = %d, ssfc_lightbar = %d\n", - cbi_bid, - cbi_skuid, - cbi_ssfc_lightbar); + ccprintf("board id = %d, skuid = %d, ssfc_lightbar = %d\n", cbi_bid, + cbi_skuid, cbi_ssfc_lightbar); } #ifdef CONFIG_CONSOLE_CMDHELP @@ -682,16 +653,16 @@ static int help(const char *cmd) ccprintf("Usage:\n"); ccprintf(" %s - dump lightbar status\n", cmd); ccprintf(" %s on - set on lightbar auto control\n", - cmd); + cmd); ccprintf(" %s off - set off lightbar auto control\n", - cmd); - ccprintf(" %s demo [%x - %x] - demo lightbar state\n", - cmd, LB_STATE_OFF, (LB_NUM_STATES - 1)); + cmd); + ccprintf(" %s demo [%x - %x] - demo lightbar state\n", cmd, + LB_STATE_OFF, (LB_NUM_STATES - 1)); return EC_SUCCESS; } #endif -static int command_lightbar(int argc, char **argv) +static int command_lightbar(int argc, const char **argv) { /* no args = dump lightbar status */ if (argc == 1) { @@ -700,9 +671,9 @@ static int command_lightbar(int argc, char **argv) } if (!strcasecmp(argv[1], "help")) { - #ifdef CONFIG_CONSOLE_CMDHELP +#ifdef CONFIG_CONSOLE_CMDHELP help(argv[0]); - #endif +#endif return EC_SUCCESS; } @@ -744,8 +715,7 @@ static int command_lightbar(int argc, char **argv) return EC_ERROR_INVAL; } -DECLARE_CONSOLE_COMMAND(lightbar, command_lightbar, - "[help | on | off | demo]", +DECLARE_CONSOLE_COMMAND(lightbar, command_lightbar, "[help | on | off | demo]", "get/set lightbar status"); /****************************************************************************/ @@ -788,6 +758,4 @@ static enum ec_status lpc_cmd_lightbar(struct host_cmd_handler_args *args) return EC_RES_SUCCESS; } -DECLARE_HOST_COMMAND(EC_CMD_LIGHTBAR_CMD, - lpc_cmd_lightbar, - EC_VER_MASK(0)); +DECLARE_HOST_COMMAND(EC_CMD_LIGHTBAR_CMD, lpc_cmd_lightbar, EC_VER_MASK(0)); |