diff options
author | wen zhang <zhangwen6@huaqin.corp-partner.google.com> | 2023-05-12 01:29:00 +0800 |
---|---|---|
committer | Chromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com> | 2023-05-11 19:38:10 +0000 |
commit | 76d2b9b1e47ba721d83ada33f18a1aab28a80ea7 (patch) | |
tree | 65b93d9e21ea9062d0a37bc530dbca23efc667e4 | |
parent | 3d5b996f731dc2697f1ea97a68f06f8493863912 (diff) | |
download | chrome-ec-76d2b9b1e47ba721d83ada33f18a1aab28a80ea7.tar.gz |
battery: Deprecate CONFIG_BATTERY_LEVEL_NEAR_FULL
Atlas, coral, corori, eve, morphius, primus, and rammus are setting
CONFIG_BATTERY_LEVEL_NEAR_FULL to custom values. This causes their LEDs
show 'full' while the display battery percentages are still < 100%.
We'll make these boards define CONFIG_BATT_HOST_FULL_FACTOR, instead.
And fix LED dts for some zephyr projects.
BUG=b:280818345
TEST=build pass
Change-Id: I98f97798ea99cc812671d5b31d64e92d55a1e05a
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4523043
Commit-Queue: wen zhang <zhangwen6@huaqin.corp-partner.google.com>
Tested-by: wen zhang <zhangwen6@huaqin.corp-partner.google.com>
Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org>
27 files changed, 49 insertions, 52 deletions
diff --git a/baseboard/kukui/charger_mt6370.c b/baseboard/kukui/charger_mt6370.c index d3b8cb10ef..c4300c5552 100644 --- a/baseboard/kukui/charger_mt6370.c +++ b/baseboard/kukui/charger_mt6370.c @@ -330,14 +330,14 @@ void mt6370_charger_profile_override(struct charge_state_data *curr) /* * When the charger says it's done charging, even if fuel gauge says - * SOC < BATTERY_LEVEL_NEAR_FULL, we'll overwrite SOC with - * BATTERY_LEVEL_NEAR_FULL. So we can ensure both Chrome OS UI + * SOC < CONFIG_BATT_HOST_FULL_FACTOR, we'll overwrite SOC with + * CONFIG_BATT_HOST_FULL_FACTOR. So we can ensure both Chrome OS UI * and battery LED indicate full charge. * * Enable this hack on on-board gauge only (b/142097561) */ if (IS_ENABLED(CONFIG_BATTERY_MAX17055) && rt946x_is_charge_done()) { - curr->batt.state_of_charge = MAX(BATTERY_LEVEL_NEAR_FULL, + curr->batt.state_of_charge = MAX(CONFIG_BATT_HOST_FULL_FACTOR, curr->batt.state_of_charge); } } diff --git a/board/atlas/board.h b/board/atlas/board.h index 144afda14c..bde6d3e07a 100644 --- a/board/atlas/board.h +++ b/board/atlas/board.h @@ -64,7 +64,8 @@ /* Battery */ #define CONFIG_BATTERY_CUT_OFF #define CONFIG_BATTERY_DEVICE_CHEMISTRY "LION" -#define CONFIG_BATTERY_LEVEL_NEAR_FULL 95 +#undef CONFIG_BATT_HOST_FULL_FACTOR +#define CONFIG_BATT_HOST_FULL_FACTOR 95 #define CONFIG_BATTERY_HW_PRESENT_CUSTOM #define CONFIG_BATTERY_PRESENT_CUSTOM #define CONFIG_BATTERY_SMART diff --git a/board/coral/board.h b/board/coral/board.h index 4b570db1e5..f5cc6bb706 100644 --- a/board/coral/board.h +++ b/board/coral/board.h @@ -49,7 +49,8 @@ #define CONFIG_BATTERY_DEVICE_CHEMISTRY "LION" #define CONFIG_BATTERY_CUT_OFF #define CONFIG_BATTERY_HW_PRESENT_CUSTOM -#define CONFIG_BATTERY_LEVEL_NEAR_FULL 94 +#undef CONFIG_BATT_HOST_FULL_FACTOR +#define CONFIG_BATT_HOST_FULL_FACTOR 94 #define CONFIG_BATTERY_PRESENT_CUSTOM #define CONFIG_BATTERY_SMART diff --git a/board/corori/board.h b/board/corori/board.h index 16628d4619..5db8be64cc 100644 --- a/board/corori/board.h +++ b/board/corori/board.h @@ -37,7 +37,8 @@ /* LED defines */ #define CONFIG_LED_COMMON -#define CONFIG_BATTERY_LEVEL_NEAR_FULL 94 +#undef CONFIG_BATT_HOST_FULL_FACTOR +#define CONFIG_BATT_HOST_FULL_FACTOR 94 #define GPIO_BAT_LED_AMBER GPIO_LED_Y_ODL #define GPIO_PWR_LED_WHITE GPIO_LED_W_ODL diff --git a/board/eve/board.h b/board/eve/board.h index a5cade1cc8..f72fd9b523 100644 --- a/board/eve/board.h +++ b/board/eve/board.h @@ -86,7 +86,8 @@ #define CONFIG_BATTERY_CRITICAL_SHUTDOWN_CUT_OFF #define CONFIG_BATTERY_CUT_OFF #define CONFIG_BATTERY_DEVICE_CHEMISTRY "LION" -#define CONFIG_BATTERY_LEVEL_NEAR_FULL 94 +#undef CONFIG_BATT_HOST_FULL_FACTOR +#define CONFIG_BATT_HOST_FULL_FACTOR 94 #define CONFIG_BATTERY_PRESENT_CUSTOM #define CONFIG_BATTERY_HW_PRESENT_CUSTOM #define CONFIG_BATTERY_SMART diff --git a/board/homestar/led.c b/board/homestar/led.c index 438b2cae33..b1e819a92f 100644 --- a/board/homestar/led.c +++ b/board/homestar/led.c @@ -91,7 +91,7 @@ static void board_led_set_battery(void) /* battery capa <= 5%, Red */ color = LED_RED; } else if (percent > BATTERY_LEVEL_CRITICAL && - percent < BATTERY_LEVEL_NEAR_FULL) { + percent < CONFIG_BATT_HOST_FULL_FACTOR) { /* 5% < battery capa < 97%, Orange */ color = LED_AMBER; } else { diff --git a/board/morphius/board.h b/board/morphius/board.h index b430055930..ca3ecf4f03 100644 --- a/board/morphius/board.h +++ b/board/morphius/board.h @@ -23,7 +23,8 @@ #define CONFIG_ASSERT_CCD_MODE_ON_DTS_CONNECT #undef CONFIG_LED_ONOFF_STATES -#define CONFIG_BATTERY_LEVEL_NEAR_FULL 91 +#undef CONFIG_BATT_HOST_FULL_FACTOR +#define CONFIG_BATT_HOST_FULL_FACTOR 91 #undef ZORK_PS8818_RX_INPUT_TERM #define ZORK_PS8818_RX_INPUT_TERM PS8818_RX_INPUT_TERM_85_OHM diff --git a/board/mrbland/led.c b/board/mrbland/led.c index 9cacb4e3f3..d2ef61f5c4 100644 --- a/board/mrbland/led.c +++ b/board/mrbland/led.c @@ -110,7 +110,7 @@ static void board_led_set_battery(void) /* battery capa <= 5%, Red */ color = LED_RED; } else if (percent > BATTERY_LEVEL_CRITICAL && - percent < BATTERY_LEVEL_NEAR_FULL) { + percent < CONFIG_BATT_HOST_FULL_FACTOR) { /* 5% < battery capa < 97%, Orange */ color = LED_AMBER; } else { diff --git a/board/nautilus/led.c b/board/nautilus/led.c index 59d9b70d10..92e2dd6e8c 100644 --- a/board/nautilus/led.c +++ b/board/nautilus/led.c @@ -91,7 +91,7 @@ static void nautilus_led_set_power_battery(void) switch (chg_state) { case PWR_STATE_DISCHARGE: if ((charge_get_flags() & CHARGE_FLAG_EXTERNAL_POWER) && - charge_percent >= BATTERY_LEVEL_NEAR_FULL) + charge_percent >= CONFIG_BATT_HOST_FULL_FACTOR) cur_led_color = LED_GREEN; else cur_led_color = LED_OFF; diff --git a/board/primus/board.h b/board/primus/board.h index 7346acc2ab..3fb8b868c6 100644 --- a/board/primus/board.h +++ b/board/primus/board.h @@ -131,7 +131,8 @@ #define CONFIG_STEINHART_HART_3V3_30K9_47K_4050B /* LED */ -#define CONFIG_BATTERY_LEVEL_NEAR_FULL 91 +#undef CONFIG_BATT_HOST_FULL_FACTOR +#define CONFIG_BATT_HOST_FULL_FACTOR 91 /* Fan features */ #define CONFIG_CUSTOM_FAN_CONTROL diff --git a/board/rammus/board.h b/board/rammus/board.h index 096d419fe9..bfe8f75e53 100644 --- a/board/rammus/board.h +++ b/board/rammus/board.h @@ -75,7 +75,8 @@ #define CONFIG_BATTERY_HW_PRESENT_CUSTOM #define CONFIG_BATTERY_DEVICE_CHEMISTRY "LION" #define CONFIG_BATTERY_SMART -#define CONFIG_BATTERY_LEVEL_NEAR_FULL 94 +#undef CONFIG_BATT_HOST_FULL_FACTOR +#define CONFIG_BATT_HOST_FULL_FACTOR 94 /* Charger */ #define CONFIG_CHARGE_MANAGER diff --git a/board/rammus/led.c b/board/rammus/led.c index 6526ab0cea..e9b7edec7f 100644 --- a/board/rammus/led.c +++ b/board/rammus/led.c @@ -131,7 +131,7 @@ static void rammus_led_set_battery(void) switch (chg_state) { case PWR_STATE_DISCHARGE: if ((charge_get_flags() & CHARGE_FLAG_EXTERNAL_POWER) && - charge_percent >= BATTERY_LEVEL_NEAR_FULL) + charge_percent >= CONFIG_BATT_HOST_FULL_FACTOR) config_battery_led(LED_STATE_FULL); else config_battery_led(LED_STATE_DISCHARGE); diff --git a/board/scarlet/battery.c b/board/scarlet/battery.c index 5d4412f66c..f38e1f7896 100644 --- a/board/scarlet/battery.c +++ b/board/scarlet/battery.c @@ -243,12 +243,12 @@ int charger_profile_override(struct charge_state_data *curr) /* * When the charger says it's done charging, even if fuel gauge says - * SOC < BATTERY_LEVEL_NEAR_FULL, we'll overwrite SOC with - * BATTERY_LEVEL_NEAR_FULL. So we can ensure both Chrome OS UI + * SOC < CONFIG_BATT_HOST_FULL_FACTOR, we'll overwrite SOC with + * CONFIG_BATT_HOST_FULL_FACTOR. So we can ensure both Chrome OS UI * and battery LED indicate full charge. */ if (rt946x_is_charge_done()) { - curr->batt.state_of_charge = MAX(BATTERY_LEVEL_NEAR_FULL, + curr->batt.state_of_charge = MAX(CONFIG_BATT_HOST_FULL_FACTOR, curr->batt.state_of_charge); /* * This is a workaround for b:78792296. When AP is off and diff --git a/board/scarlet/led.c b/board/scarlet/led.c index c550d3bad9..f4a3bae9f4 100644 --- a/board/scarlet/led.c +++ b/board/scarlet/led.c @@ -74,7 +74,7 @@ static void scarlet_led_set_battery(void) else if (charge_get_percent() < 10) bat_led_set_color((battery_second & 3) ? LED_OFF : LED_AMBER); - else if (charge_get_percent() >= BATTERY_LEVEL_NEAR_FULL && + else if (charge_get_percent() >= CONFIG_BATT_HOST_FULL_FACTOR && (chflags & CHARGE_FLAG_EXTERNAL_POWER)) bat_led_set_color(LED_GREEN); else diff --git a/board/wormdingler/led.c b/board/wormdingler/led.c index 438b2cae33..b1e819a92f 100644 --- a/board/wormdingler/led.c +++ b/board/wormdingler/led.c @@ -91,7 +91,7 @@ static void board_led_set_battery(void) /* battery capa <= 5%, Red */ color = LED_RED; } else if (percent > BATTERY_LEVEL_CRITICAL && - percent < BATTERY_LEVEL_NEAR_FULL) { + percent < CONFIG_BATT_HOST_FULL_FACTOR) { /* 5% < battery capa < 97%, Orange */ color = LED_AMBER; } else { diff --git a/common/charge_state_v2.c b/common/charge_state_v2.c index 1942c1a135..928c600c16 100644 --- a/common/charge_state_v2.c +++ b/common/charge_state_v2.c @@ -1727,7 +1727,7 @@ bool charge_prevent_power_on(bool power_button_pressed) static int battery_near_full(void) { - if (charge_get_percent() < BATTERY_LEVEL_NEAR_FULL) + if (charge_get_percent() < CONFIG_BATT_HOST_FULL_FACTOR) return 0; if (IS_ENABLED(CONFIG_EC_EC_COMM_BATTERY_CLIENT) && diff --git a/common/charger_base.c b/common/charger_base.c index 74a45bb5ea..c2f49dcf21 100644 --- a/common/charger_base.c +++ b/common/charger_base.c @@ -666,7 +666,7 @@ void charger_base_show_charge(void) bool charger_base_charge_near_full(void) { - if (charge_base > -1 && charge_base < BATTERY_LEVEL_NEAR_FULL) + if (charge_base > -1 && charge_base < CONFIG_BATT_HOST_FULL_FACTOR) return false; return true; diff --git a/include/battery.h b/include/battery.h index 0daa6205a7..23d9352643 100644 --- a/include/battery.h +++ b/include/battery.h @@ -25,13 +25,6 @@ /* Stop charge when charging and battery level >= this percentage */ #define BATTERY_LEVEL_FULL 100 -/* Tell host we're charged when battery level >= this percentage */ -#ifdef CONFIG_BATTERY_LEVEL_NEAR_FULL -#define BATTERY_LEVEL_NEAR_FULL CONFIG_BATTERY_LEVEL_NEAR_FULL -#else -#define BATTERY_LEVEL_NEAR_FULL 97 -#endif - /* * Send battery-low host event when discharging and battery level <= this level */ diff --git a/include/config.h b/include/config.h index 152f0bc126..a3a2edb1ed 100644 --- a/include/config.h +++ b/include/config.h @@ -631,12 +631,6 @@ #define CONFIG_BATTERY_LOW_VOLTAGE_TIMEOUT (30 * 60 * SECOND) /* - * Specify the battery percentage at which the host is told it is full. - * If this value is not specified the default is 97% set in battery.h. - */ -#undef CONFIG_BATTERY_LEVEL_NEAR_FULL - -/* * Use memory mapped region to store battery information. It supports only * single battery systems. V2 should be used unless there is a reason not to. */ diff --git a/util/config_allowed.txt b/util/config_allowed.txt index a469d0c156..e29d35f848 100644 --- a/util/config_allowed.txt +++ b/util/config_allowed.txt @@ -79,7 +79,6 @@ CONFIG_BATTERY_BQ27621 CONFIG_BATTERY_BQ4050 CONFIG_BATTERY_CRITICAL_SHUTDOWN_TIMEOUT CONFIG_BATTERY_CUTOFF_DELAY_US -CONFIG_BATTERY_LEVEL_NEAR_FULL CONFIG_BATTERY_LOW_VOLTAGE_PROTECTION CONFIG_BATTERY_LOW_VOLTAGE_TIMEOUT CONFIG_BATTERY_MAX17055 diff --git a/zephyr/include/dt-bindings/battery.h b/zephyr/include/dt-bindings/battery.h index 24ffb2082c..af7ee8aa11 100644 --- a/zephyr/include/dt-bindings/battery.h +++ b/zephyr/include/dt-bindings/battery.h @@ -14,7 +14,6 @@ #define BATTERY_LEVEL_SHUTDOWN 3 #define BATTERY_LEVEL_CRITICAL 5 #define BATTERY_LEVEL_LOW 10 -#define BATTERY_LEVEL_NEAR_FULL 97 #define BATTERY_LEVEL_FULL 100 /* Battery status */ diff --git a/zephyr/program/corsola/magikarp/project.overlay b/zephyr/program/corsola/magikarp/project.overlay index 3628f6770d..349e066f07 100644 --- a/zephyr/program/corsola/magikarp/project.overlay +++ b/zephyr/program/corsola/magikarp/project.overlay @@ -224,8 +224,7 @@ bat-power-state-charge { charge-state = "PWR_STATE_CHARGE"; /* Battery percent range (>= Empty, <= 94%) */ - batt-lvl = <BATTERY_LEVEL_EMPTY - (BATTERY_LEVEL_NEAR_FULL - 3)>; + batt-lvl = <BATTERY_LEVEL_EMPTY 94>; color-0 { led-color = <&color_battery_amber>; }; @@ -234,8 +233,7 @@ bat-power-state-charge-near-full { charge-state = "PWR_STATE_CHARGE"; /* Battery percent range (>= 95%, <= Full) */ - batt-lvl = <(BATTERY_LEVEL_NEAR_FULL - 2) - BATTERY_LEVEL_FULL>; + batt-lvl = <95 BATTERY_LEVEL_FULL>; color-0 { led-color = <&color_battery_white>; }; diff --git a/zephyr/program/corsola/tentacruel/project.overlay b/zephyr/program/corsola/tentacruel/project.overlay index 79e8f4a05b..e23d3561e8 100644 --- a/zephyr/program/corsola/tentacruel/project.overlay +++ b/zephyr/program/corsola/tentacruel/project.overlay @@ -270,8 +270,7 @@ bat-power-state-charge { charge-state = "PWR_STATE_CHARGE"; /* Battery percent range (>= Empty, <= 94%) */ - batt-lvl = <BATTERY_LEVEL_EMPTY - (BATTERY_LEVEL_NEAR_FULL - 3)>; + batt-lvl = <BATTERY_LEVEL_EMPTY 94>; color-0 { led-color = <&color_battery_amber>; }; @@ -280,8 +279,7 @@ bat-power-state-charge-near-full { charge-state = "PWR_STATE_CHARGE"; /* Battery percent range (>= 95%, <= Full) */ - batt-lvl = <(BATTERY_LEVEL_NEAR_FULL - 2) - BATTERY_LEVEL_FULL>; + batt-lvl = <95 BATTERY_LEVEL_FULL>; color-0 { led-color = <&color_battery_white>; }; diff --git a/zephyr/program/corsola/voltorb/project.overlay b/zephyr/program/corsola/voltorb/project.overlay index 7ae230a47e..e5c5df3ab7 100644 --- a/zephyr/program/corsola/voltorb/project.overlay +++ b/zephyr/program/corsola/voltorb/project.overlay @@ -81,17 +81,26 @@ compatible = "cros-ec,led-policy"; /* Voltorb LED bat charge */ - bat-power-state-charge { + bat-power-state-charge-lvl-1 { charge-state = "PWR_STATE_CHARGE"; /* Battery percent range (>= Empty, <= 96%) */ - batt-lvl = <BATTERY_LEVEL_EMPTY - (BATTERY_LEVEL_NEAR_FULL - 1)>; + batt-lvl = <BATTERY_LEVEL_EMPTY 96>; color-0 { led-color = <&color_amber>; }; }; + bat-power-state-charge-lvl-2 { + charge-state = "PWR_STATE_CHARGE"; + /* Battery percent range (>= 97, <= 100%) */ + batt-lvl = <97 100>; + + color-0 { + led-color = <&color_blue>; + }; + }; + /* Voltorb LED bat charge near full */ bat-power-state-charge-near-full { charge-state = "PWR_STATE_CHARGE_NEAR_FULL"; diff --git a/zephyr/program/nissa/uldren/led_policy.dtsi b/zephyr/program/nissa/uldren/led_policy.dtsi index 95c614cafc..afc4e25f71 100644 --- a/zephyr/program/nissa/uldren/led_policy.dtsi +++ b/zephyr/program/nissa/uldren/led_policy.dtsi @@ -7,7 +7,7 @@ power-state-charge { charge-state = "PWR_STATE_CHARGE"; batt-lvl = <BATTERY_LEVEL_EMPTY - BATTERY_LEVEL_NEAR_FULL>; + BATTERY_LEVEL_FULL>; color-0 { led-color = <&color_white>; diff --git a/zephyr/program/nissa/xivu/led_policy.dtsi b/zephyr/program/nissa/xivu/led_policy.dtsi index 562e361ec5..598480f865 100644 --- a/zephyr/program/nissa/xivu/led_policy.dtsi +++ b/zephyr/program/nissa/xivu/led_policy.dtsi @@ -14,8 +14,8 @@ power-state-charge-lvl-2 { charge-state = "PWR_STATE_CHARGE"; - /* Battery percent range (>= 95%, <= Near Full) */ - batt-lvl = <95 97>; + /* Battery percent range (>= 95%, <= 100%) */ + batt-lvl = <95 100>; color-0 { led-color = <&color_white>; diff --git a/zephyr/program/skyrim/frostflow/led_policy.dtsi b/zephyr/program/skyrim/frostflow/led_policy.dtsi index 28e33219a0..178ba9085a 100644 --- a/zephyr/program/skyrim/frostflow/led_policy.dtsi +++ b/zephyr/program/skyrim/frostflow/led_policy.dtsi @@ -14,8 +14,8 @@ power-state-charge-lvl-2 { charge-state = "PWR_STATE_CHARGE"; - /* Battery percent range (>= 95%, <= Near Full) */ - batt-lvl = <95 97>; + /* Battery percent range (>= 95%, <= 100%) */ + batt-lvl = <95 100>; color-0 { led-color = <&color_white>; |