ec/google/chromeec: Add Kconfig to enable battery full workaround
Commit 55a972236e ("chromeec: Disable battery remaining capacity
workaround") disabled the workaround for all ChromeEC devices, since
newer EC firmware applies compensation via battery_compensate_params.
Older boards use EC branches that lack this logic; without it, users can
see 93–100% charge–discharge cycling and stale full-capacity reporting.
Add a Kconfig to configure the workaround, and select it for older
boards whose EC firmware lacks battery_compensate_params logic.
EC firmware branches were inspected to determine which ones lack this
logic.
TEST=build/boot google/lulu, verify battery full indication works
correctly with the Kconfig selected.
Change-Id: I096e0cf402e07f846b961319e01fb8f2c2dde7fc
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90960
Reviewed-by: Caveh Jalali <caveh@chromium.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
This commit is contained in:
parent
85e59e87e9
commit
e464a02635
11 changed files with 26 additions and 4 deletions
|
|
@ -220,6 +220,17 @@ config EC_GOOGLE_CHROMEEC_READ_BATTERY_LONG_STRING
|
|||
|
||||
If unsure, say N.
|
||||
|
||||
config EC_GOOGLE_CHROMEEC_NEEDS_BATTERY_WORKAROUND
|
||||
bool
|
||||
help
|
||||
Enable the ACPI "full battery" workaround (BFWK) for remaining capacity.
|
||||
When enabled, remaining charge near full is reported as full capacity to
|
||||
hide 93-100% charge-discharge cycles and to handle batteries that don't report
|
||||
full capacity timely.
|
||||
Select this for older boards whose EC firmware lacks battery_compensate_params
|
||||
logic.
|
||||
If unsure, say N.
|
||||
|
||||
config EC_GOOGLE_CHROMEEC_LPC_GENERIC_MEMORY_RANGE
|
||||
def_bool n
|
||||
help
|
||||
|
|
|
|||
|
|
@ -414,8 +414,9 @@ Device (BAT0)
|
|||
})
|
||||
Name (BSTP, 0)
|
||||
|
||||
// Workaround for full battery status, disabled by default
|
||||
Name (BFWK, 0)
|
||||
// Workaround for full battery status, disabled by default,
|
||||
// enabled via Kconfig for older boards lacking EC compensation.
|
||||
Name (BFWK, CONFIG(EC_GOOGLE_CHROMEEC_NEEDS_BATTERY_WORKAROUND))
|
||||
|
||||
// Method to enable full battery workaround
|
||||
Method (BFWE)
|
||||
|
|
@ -504,8 +505,9 @@ Device (BAT1)
|
|||
})
|
||||
Name (BSTP, 0)
|
||||
|
||||
// Workaround for full battery status, disabled by default
|
||||
Name (BFWK, 0)
|
||||
// Workaround for full battery status, disabled by default,
|
||||
// enabled via Kconfig for older boards lacking EC compensation.
|
||||
Name (BFWK, CONFIG(EC_GOOGLE_CHROMEEC_NEEDS_BATTERY_WORKAROUND))
|
||||
|
||||
// Method to enable full battery workaround
|
||||
Method (BFWE)
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ config BOARD_GOOGLE_BASEBOARD_AURON
|
|||
select DRIVERS_OPTION_CFR_ENABLED if PAYLOAD_EDK2 && SMMSTORE
|
||||
select EC_GOOGLE_CHROMEEC
|
||||
select EC_GOOGLE_CHROMEEC_LPC
|
||||
select EC_GOOGLE_CHROMEEC_NEEDS_BATTERY_WORKAROUND
|
||||
select HAVE_ACPI_RESUME
|
||||
select HAVE_ACPI_TABLES
|
||||
select HAVE_OPTION_TABLE
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ config BOARD_GOOGLE_BASEBOARD_CYAN
|
|||
select EC_GOOGLE_CHROMEEC_BOARDID
|
||||
select EC_GOOGLE_CHROMEEC_LPC
|
||||
select EC_GOOGLE_CHROMEEC_MEC
|
||||
select EC_GOOGLE_CHROMEEC_NEEDS_BATTERY_WORKAROUND
|
||||
select HAVE_ACPI_RESUME
|
||||
select HAVE_ACPI_TABLES
|
||||
select HAVE_OPTION_TABLE
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@ config BOARD_SPECIFIC_OPTIONS
|
|||
select EC_GOOGLE_CHROMEEC
|
||||
select EC_GOOGLE_CHROMEEC_BOARDID
|
||||
select EC_GOOGLE_CHROMEEC_ESPI
|
||||
select EC_GOOGLE_CHROMEEC_NEEDS_BATTERY_WORKAROUND
|
||||
select HAVE_ACPI_RESUME
|
||||
select HAVE_ACPI_TABLES
|
||||
select I2C_TPM
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ config BOARD_GOOGLE_BASEBOARD_GLADOS
|
|||
select EC_GOOGLE_CHROMEEC_BOARDID
|
||||
select EC_GOOGLE_CHROMEEC_LPC
|
||||
select EC_GOOGLE_CHROMEEC_MEC
|
||||
select EC_GOOGLE_CHROMEEC_NEEDS_BATTERY_WORKAROUND
|
||||
select EC_GOOGLE_CHROMEEC_PD
|
||||
select HAVE_ACPI_RESUME
|
||||
select HAVE_ACPI_TABLES
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ config BOARD_SPECIFIC_OPTIONS
|
|||
select DRIVERS_OPTION_CFR_ENABLED if PAYLOAD_EDK2 && SMMSTORE
|
||||
select EC_GOOGLE_CHROMEEC
|
||||
select EC_GOOGLE_CHROMEEC_AUTO_FAN_CTRL
|
||||
select EC_GOOGLE_CHROMEEC_NEEDS_BATTERY_WORKAROUND
|
||||
select EC_GOOGLE_CHROMEEC_LPC
|
||||
select HAVE_ACPI_RESUME
|
||||
select HAVE_ACPI_TABLES
|
||||
|
|
|
|||
|
|
@ -73,6 +73,7 @@ config BOARD_GOOGLE_NOCTURNE
|
|||
select DRIVERS_I2C_SX9310
|
||||
select DRIVERS_SPI_ACPI
|
||||
select DRIVERS_USB_ACPI
|
||||
select EC_GOOGLE_CHROMEEC_NEEDS_BATTERY_WORKAROUND
|
||||
select EXCLUDE_NATIVE_SD_INTERFACE
|
||||
select GEO_SAR_ENABLE if CHROMEOS_WIFI_SAR
|
||||
select INTEL_GMA_HAVE_VBT
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ config BOARD_GOOGLE_BASEBOARD_RAMBI
|
|||
select BOARD_ROMSIZE_KB_8192
|
||||
select EC_GOOGLE_CHROMEEC
|
||||
select EC_GOOGLE_CHROMEEC_LPC
|
||||
select EC_GOOGLE_CHROMEEC_NEEDS_BATTERY_WORKAROUND
|
||||
select ENABLE_BUILTIN_COM1 if CONSOLE_SERIAL
|
||||
select HAVE_ACPI_RESUME
|
||||
select HAVE_ACPI_TABLES
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ config BOARD_GOOGLE_BASEBOARD_REEF
|
|||
select DRIVERS_OPTION_CFR_ENABLED if PAYLOAD_EDK2 && SMMSTORE
|
||||
select EC_GOOGLE_CHROMEEC
|
||||
select EC_GOOGLE_CHROMEEC_BOARDID
|
||||
select EC_GOOGLE_CHROMEEC_NEEDS_BATTERY_WORKAROUND
|
||||
select EC_GOOGLE_CHROMEEC_LPC
|
||||
select GOOGLE_SMBIOS_MAINBOARD_VERSION
|
||||
select HAVE_ACPI_RESUME
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ config BOARD_GOOGLE_BASEBOARD_SLIPPY
|
|||
select DRIVERS_OPTION_CFR_ENABLED if PAYLOAD_EDK2 && SMMSTORE
|
||||
select EC_GOOGLE_CHROMEEC
|
||||
select EC_GOOGLE_CHROMEEC_LPC
|
||||
select EC_GOOGLE_CHROMEEC_NEEDS_BATTERY_WORKAROUND
|
||||
select HAVE_ACPI_RESUME
|
||||
select HAVE_ACPI_TABLES
|
||||
select HAVE_OPTION_TABLE
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue