diff --git a/src/ec/google/chromeec/Kconfig b/src/ec/google/chromeec/Kconfig index 0239a08904..b09c64a88c 100644 --- a/src/ec/google/chromeec/Kconfig +++ b/src/ec/google/chromeec/Kconfig @@ -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 diff --git a/src/ec/google/chromeec/acpi/battery.asl b/src/ec/google/chromeec/acpi/battery.asl index 41b77861a5..eb19c3c422 100644 --- a/src/ec/google/chromeec/acpi/battery.asl +++ b/src/ec/google/chromeec/acpi/battery.asl @@ -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) diff --git a/src/mainboard/google/auron/Kconfig b/src/mainboard/google/auron/Kconfig index b84708f657..a9039912db 100644 --- a/src/mainboard/google/auron/Kconfig +++ b/src/mainboard/google/auron/Kconfig @@ -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 diff --git a/src/mainboard/google/cyan/Kconfig b/src/mainboard/google/cyan/Kconfig index fe4d2a1067..bda0416172 100644 --- a/src/mainboard/google/cyan/Kconfig +++ b/src/mainboard/google/cyan/Kconfig @@ -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 diff --git a/src/mainboard/google/eve/Kconfig b/src/mainboard/google/eve/Kconfig index 40eebc5c50..b473d502bf 100644 --- a/src/mainboard/google/eve/Kconfig +++ b/src/mainboard/google/eve/Kconfig @@ -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 diff --git a/src/mainboard/google/glados/Kconfig b/src/mainboard/google/glados/Kconfig index 811a03deac..6786d1b5f1 100644 --- a/src/mainboard/google/glados/Kconfig +++ b/src/mainboard/google/glados/Kconfig @@ -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 diff --git a/src/mainboard/google/link/Kconfig b/src/mainboard/google/link/Kconfig index 86dd014f2a..df85382246 100644 --- a/src/mainboard/google/link/Kconfig +++ b/src/mainboard/google/link/Kconfig @@ -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 diff --git a/src/mainboard/google/poppy/Kconfig b/src/mainboard/google/poppy/Kconfig index a9b45920db..ac9aa54e56 100644 --- a/src/mainboard/google/poppy/Kconfig +++ b/src/mainboard/google/poppy/Kconfig @@ -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 diff --git a/src/mainboard/google/rambi/Kconfig b/src/mainboard/google/rambi/Kconfig index 750eba1e30..ccdc02a45c 100644 --- a/src/mainboard/google/rambi/Kconfig +++ b/src/mainboard/google/rambi/Kconfig @@ -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 diff --git a/src/mainboard/google/reef/Kconfig b/src/mainboard/google/reef/Kconfig index 06c5575e45..1ce2353432 100644 --- a/src/mainboard/google/reef/Kconfig +++ b/src/mainboard/google/reef/Kconfig @@ -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 diff --git a/src/mainboard/google/slippy/Kconfig b/src/mainboard/google/slippy/Kconfig index d9684d34b3..380ed9fe72 100644 --- a/src/mainboard/google/slippy/Kconfig +++ b/src/mainboard/google/slippy/Kconfig @@ -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