summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--board/storo/board.h3
-rw-r--r--common/led_onoff_states.c13
2 files changed, 14 insertions, 2 deletions
diff --git a/board/storo/board.h b/board/storo/board.h
index a6bc89c44f..0693b3f3bc 100644
--- a/board/storo/board.h
+++ b/board/storo/board.h
@@ -21,6 +21,9 @@
/* Battery */
#define CONFIG_BATTERY_FUEL_GAUGE
+#define CONFIG_BATTERY_EXPORT_DISPLAY_SOC
+#undef CONFIG_BATT_HOST_SHUTDOWN_PERCENTAGE
+#define CONFIG_BATT_HOST_SHUTDOWN_PERCENTAGE 3
/* BC 1.2 */
#define CONFIG_BC12_DETECT_PI3USB9201
diff --git a/common/led_onoff_states.c b/common/led_onoff_states.c
index 7b699b4fea..595e8ab10d 100644
--- a/common/led_onoff_states.c
+++ b/common/led_onoff_states.c
@@ -15,6 +15,7 @@
#include "led_common.h"
#include "led_onoff_states.h"
#include "system.h"
+#include "util.h"
#define CPRINTS(format, args...) cprints(CC_GPIO, format, ## args)
@@ -35,6 +36,14 @@ __overridable void led_set_color_battery(enum ec_led_colors color)
int charge_get_percent(void);
#endif
+static int led_get_charge_percent(void)
+{
+ if (IS_ENABLED(CONFIG_BATTERY_EXPORT_DISPLAY_SOC))
+ return DIV_ROUND_NEAREST(charge_get_display_charge(), 10);
+ else
+ return charge_get_percent();
+}
+
static enum led_states led_get_state(void)
{
int charge_lvl;
@@ -46,7 +55,7 @@ static enum led_states led_get_state(void)
switch (charge_get_state()) {
case PWR_STATE_CHARGE:
/* Get percent charge */
- charge_lvl = charge_get_percent();
+ charge_lvl = led_get_charge_percent();
/* Determine which charge state to use */
if (charge_lvl < led_charge_lvl_1)
new_state = STATE_CHARGING_LVL_1;
@@ -70,7 +79,7 @@ static enum led_states led_get_state(void)
case PWR_STATE_DISCHARGE /* and PWR_STATE_DISCHARGE_FULL */:
if (chipset_in_state(CHIPSET_STATE_ON)) {
#ifdef CONFIG_LED_ONOFF_STATES_BAT_LOW
- if (charge_get_percent() <
+ if (led_get_charge_percent() <
CONFIG_LED_ONOFF_STATES_BAT_LOW)
new_state = STATE_DISCHARGE_S0_BAT_LOW;
else