From 3bebadd347e83629aacdcbb4afbee69b2d57e7f7 Mon Sep 17 00:00:00 2001 From: Subrata Banik Date: Wed, 24 Dec 2025 17:54:08 +0000 Subject: [PATCH] mb/google/bluey: Enable dynamic SoC calculation and log battery level Enable EC_GOOGLE_CHROMEEC_BATTERY_SOC_DYNAMIC for the Quenbi and Quartz models. These Qualcomm-based boards require State of Charge (SoC) to be calculated from dynamic battery metrics because the standard charge state command is restricted during certain active power states. Additionally, add platform_dump_battery_soc_information() to romstage to log the battery percentage early in the boot process. This helps with debugging power-related issues during the early boot sequence when serial console is enabled. Details: - Select EC_GOOGLE_CHROMEEC_BATTERY_SOC_DYNAMIC for Quenbi and Quartz. - Call the SoC dump in platform_romstage_main() if CONSOLE_SERIAL is on. BUG=none TEST=Boot Quenbi/Quartz and verify "Battery state-of-charge X" appears in the romstage serial console logs. Change-Id: I6184762140884762140884762140884762140884 Signed-off-by: Subrata Banik Reviewed-on: https://review.coreboot.org/c/coreboot/+/90619 Reviewed-by: Kapil Porwal Tested-by: build bot (Jenkins) --- src/mainboard/google/bluey/Kconfig | 2 ++ src/mainboard/google/bluey/romstage.c | 12 ++++++++++++ 2 files changed, 14 insertions(+) diff --git a/src/mainboard/google/bluey/Kconfig b/src/mainboard/google/bluey/Kconfig index c185938caf..e5665ea752 100644 --- a/src/mainboard/google/bluey/Kconfig +++ b/src/mainboard/google/bluey/Kconfig @@ -31,6 +31,7 @@ config BOARD_GOOGLE_MODEL_QUENBI def_bool n select BOARD_GOOGLE_BASEBOARD_BLUEY select BOARD_ROMSIZE_KB_32768 + select EC_GOOGLE_CHROMEEC_BATTERY_SOC_DYNAMIC select MAINBOARD_HAS_CHROME_EC select MAINBOARD_HAS_FINGERPRINT_VIA_SPI select MAINBOARD_HAS_GOOGLE_TPM @@ -39,6 +40,7 @@ config BOARD_GOOGLE_MODEL_QUARTZ def_bool n select BOARD_GOOGLE_BASEBOARD_BLUEY select BOARD_ROMSIZE_KB_32768 + select EC_GOOGLE_CHROMEEC_BATTERY_SOC_DYNAMIC select MAINBOARD_HAS_CHROME_EC select MAINBOARD_HAS_FINGERPRINT_VIA_SPI select MAINBOARD_HAS_GOOGLE_TPM diff --git a/src/mainboard/google/bluey/romstage.c b/src/mainboard/google/bluey/romstage.c index dbfda5511e..3ada667376 100644 --- a/src/mainboard/google/bluey/romstage.c +++ b/src/mainboard/google/bluey/romstage.c @@ -77,11 +77,23 @@ int qclib_mainboard_override(struct qclib_cb_if_table *table) return 0; } +static void platform_dump_battery_soc_information(void) +{ + uint32_t batt_pct; + if (google_chromeec_read_batt_state_of_charge(&batt_pct)) + printk(BIOS_WARNING, "Failed to get battery level\n"); + else + printk(BIOS_INFO, "Battery state-of-charge %d\n", batt_pct); +} + void platform_romstage_main(void) { /* Watchdog must be checked first to avoid erasing watchdog info later. */ check_wdog(); + if (CONFIG(EC_GOOGLE_CHROMEEC) && CONFIG(CONSOLE_SERIAL)) + platform_dump_battery_soc_information(); + shrm_fw_load_reset(); /* QCLib: DDR init & train */