From 93c52ed3405971602ee99b0d3c14582be3a23e07 Mon Sep 17 00:00:00 2001 From: Kapil Porwal Date: Wed, 11 Feb 2026 13:34:26 +0530 Subject: [PATCH] mb/google/bluey: Add parallel charging configuration BUG=b:468120472 TEST=Probe and verify the GPIOs on Google/Quartz. Change-Id: I414509d40e3c6e4495dcdb56a8abfd300caf47d9 Signed-off-by: Kapil Porwal Reviewed-on: https://review.coreboot.org/c/coreboot/+/91153 Reviewed-by: Subrata Banik Tested-by: build bot (Jenkins) --- src/mainboard/google/bluey/board.h | 1 + src/mainboard/google/bluey/charging.c | 17 +++++++++++++++-- src/mainboard/google/bluey/mainboard.c | 2 ++ 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/mainboard/google/bluey/board.h b/src/mainboard/google/bluey/board.h index 3d42d89a48..d5218b469b 100644 --- a/src/mainboard/google/bluey/board.h +++ b/src/mainboard/google/bluey/board.h @@ -53,6 +53,7 @@ void setup_chromeos_gpios(void); bool is_off_mode(void); void configure_parallel_charging(void); +void configure_parallel_charging_late(void); void enable_slow_battery_charging(void); void disable_slow_battery_charging(void); diff --git a/src/mainboard/google/bluey/charging.c b/src/mainboard/google/bluey/charging.c index 95f98a0799..6027dc3c6b 100644 --- a/src/mainboard/google/bluey/charging.c +++ b/src/mainboard/google/bluey/charging.c @@ -34,6 +34,8 @@ enum charging_status { #define OUTPUT_INVERT 0x80 #define PERPH_EN 0x80 +#define GPIO_PARALLEL_CHARGING_CFG GPIO(71) + /* * Enable PMC8380F GPIO07 & GPIO09 for parallel charging. */ @@ -43,12 +45,23 @@ void configure_parallel_charging(void) return; printk(BIOS_INFO, "Configure parallel charging support\n"); - spmi_write8(SPMI_ADDR(PMC8380F_SLAVE_ID, GPIO07_MODE_CTL), MODE_OUTPUT); spmi_write8(SPMI_ADDR(PMC8380F_SLAVE_ID, GPIO07_DIG_OUT_SOURCE_CTL), OUTPUT_INVERT); spmi_write8(SPMI_ADDR(PMC8380F_SLAVE_ID, GPIO07_EN_CTL), PERPH_EN); - spmi_write8(SPMI_ADDR(PMC8380F_SLAVE_ID, GPIO09_MODE_CTL), MODE_OUTPUT); + spmi_write8(SPMI_ADDR(PMC8380F_SLAVE_ID, GPIO07_MODE_CTL), MODE_OUTPUT); spmi_write8(SPMI_ADDR(PMC8380F_SLAVE_ID, GPIO09_DIG_OUT_SOURCE_CTL), OUTPUT_INVERT); spmi_write8(SPMI_ADDR(PMC8380F_SLAVE_ID, GPIO09_EN_CTL), PERPH_EN); + spmi_write8(SPMI_ADDR(PMC8380F_SLAVE_ID, GPIO09_MODE_CTL), MODE_OUTPUT); +} + +/* + * Late configuration for parallel charging. + */ +void configure_parallel_charging_late(void) +{ + if (!CONFIG(MAINBOARD_SUPPORTS_PARALLEL_CHARGING)) + return; + + gpio_output(GPIO_PARALLEL_CHARGING_CFG, 1); } /* diff --git a/src/mainboard/google/bluey/mainboard.c b/src/mainboard/google/bluey/mainboard.c index 5b6278b3a0..099f825344 100644 --- a/src/mainboard/google/bluey/mainboard.c +++ b/src/mainboard/google/bluey/mainboard.c @@ -122,6 +122,8 @@ void lb_add_boot_mode(struct lb_header *header) mode->size = sizeof(*mode); mode->boot_mode = get_boot_mode(); + configure_parallel_charging_late(); + /* Enable charging only during off-mode or low-battery mode with charger present */ if (is_low_power_boot_with_charger()) enable_slow_battery_charging();