From 9b0af4860442782d5ebe4cb4e32828d09c0923d2 Mon Sep 17 00:00:00 2001 From: Sean Rhodes Date: Mon, 13 Oct 2025 16:15:27 +0100 Subject: [PATCH] mb/starlabs/starbook/mtl: Update GPIO config The GPIO config in the tree does not allow for S3 resume to work, as the eSPI Virtual Wires stop reponding when the system enters S3. Through setting the GpioOverride UPD to 0, the configuration in this patch was discovered. This configuration keeps the virtual wires working, and in turn, S3 resume works. Change-Id: I5f73f74970d70f7736aa019a8e37e898921ae740 Signed-off-by: Sean Rhodes Reviewed-on: https://review.coreboot.org/c/coreboot/+/90281 Tested-by: build bot (Jenkins) Reviewed-by: Matt DeVillier --- .../starlabs/starbook/variants/mtl/gpio.c | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/src/mainboard/starlabs/starbook/variants/mtl/gpio.c b/src/mainboard/starlabs/starbook/variants/mtl/gpio.c index 9f920dfcd5..944c1452f8 100644 --- a/src/mainboard/starlabs/starbook/variants/mtl/gpio.c +++ b/src/mainboard/starlabs/starbook/variants/mtl/gpio.c @@ -22,21 +22,21 @@ const struct pad_config *variant_early_gpio_table(size_t *num) /* Pad configuration in ramstage. */ const struct pad_config gpio_table[] = { /* General Purpose I/O Deep */ - PAD_CFG_NF(GPP_V00, NONE, DEEP, NF1), /* Battery Low */ - PAD_CFG_NF(GPP_V01, NONE, DEEP, NF1), /* Charger Connected */ - PAD_CFG_NF(GPP_V03, UP_20K, DEEP, NF1), /* Power Button */ + PAD_CFG_NF_IOSTANDBY_IGNORE(GPP_V00, NONE, DEEP, NF1), /* Battery Low */ + PAD_CFG_NF_IOSTANDBY_IGNORE(GPP_V01, NONE, DEEP, NF1), /* Charger Connected */ + PAD_CFG_NF_IOSTANDBY_IGNORE(GPP_V03, UP_20K, DEEP, NF1), /* Power Button */ PAD_CFG_NF(GPP_V04, NONE, DEEP, NF1), /* Sleep S3 */ PAD_CFG_NF(GPP_V05, NONE, DEEP, NF1), /* Sleep S4 */ PAD_CFG_NF(GPP_V08, NONE, DEEP, NF1), /* Bluetooth Suspend */ - /* eSPI - Configure automatically on reset */ - // PAD_CFG_NF_IOSTANDBY_IGNORE(GPP_A00, UP_20K, DEEP, NF1), /* eSPI IO 0 */ - // PAD_CFG_NF_IOSTANDBY_IGNORE(GPP_A01, UP_20K, DEEP, NF1), /* eSPI IO 1 */ - // PAD_CFG_NF_IOSTANDBY_IGNORE(GPP_A02, UP_20K, DEEP, NF1), /* eSPI IO 2 */ - // PAD_CFG_NF_IOSTANDBY_IGNORE(GPP_A03, UP_20K, DEEP, NF1), /* eSPI IO 3 */ - // PAD_CFG_NF_IOSTANDBY_IGNORE(GPP_A04, UP_20K, DEEP, NF1), /* eSPI CS 0 */ - // PAD_CFG_NF_IOSTANDBY_IGNORE(GPP_A05, UP_20K, DEEP, NF1), /* eSPI Clk */ - // PAD_CFG_NF_IOSTANDBY_IGNORE(GPP_A06, NONE, DEEP, NF1), /* eSPI Reset */ + /* eSPI */ + PAD_CFG_NF_IOSTANDBY_IGNORE(GPP_A00, UP_20K, DEEP, NF1), /* eSPI IO 0 */ + PAD_CFG_NF_IOSTANDBY_IGNORE(GPP_A01, UP_20K, DEEP, NF1), /* eSPI IO 1 */ + PAD_CFG_NF_IOSTANDBY_IGNORE(GPP_A02, UP_20K, DEEP, NF1), /* eSPI IO 2 */ + PAD_CFG_NF_IOSTANDBY_IGNORE(GPP_A03, UP_20K, DEEP, NF1), /* eSPI IO 3 */ + PAD_CFG_NF_IOSTANDBY_IGNORE(GPP_A04, UP_20K, DEEP, NF1), /* eSPI CS 0 */ + PAD_CFG_NF_IOSTANDBY_IGNORE(GPP_A05, UP_20K, DEEP, NF1), /* eSPI Clk */ + PAD_CFG_NF_IOSTANDBY_IGNORE(GPP_A06, NONE, DEEP, NF1), /* eSPI Reset */ /* Touchpad */ PAD_CFG_NF(GPP_H19, NONE, DEEP, NF1), /* Data */ @@ -44,12 +44,12 @@ const struct pad_config gpio_table[] = { PAD_CFG_GPI_APIC(GPP_B00, NONE, DEEP, LEVEL, INVERT), /* Interrupt */ /* SSD */ - PAD_CFG_NF(GPP_D20, NONE, DEEP, NF1), /* Clock Request 8 */ + PAD_CFG_NF_IOSTANDBY_IGNORE(GPP_D20, NONE, PLTRST, NF1), /* Clock Request 8 */ PAD_CFG_GPO(GPP_A20, 1, PLTRST), /* Reset */ PAD_CFG_GPO(GPP_H07, 1, DEEP), /* Enable */ /* Wireless */ - PAD_CFG_NF(GPP_D21, NONE, DEEP, NF2), /* Clock Request 5 */ + PAD_CFG_NF_IOSTANDBY_IGNORE(GPP_D21, NONE, PLTRST, NF2), /* Clock Request 5 */ PAD_CFG_GPO(GPP_H02, 1, PLTRST), /* Reset */ PAD_CFG_GPO(GPP_B19, 1, DEEP), /* WiFi RF Kill */ PAD_CFG_GPO(GPP_B18, 1, DEEP), /* Bluetooth RF Kill */ @@ -59,9 +59,9 @@ const struct pad_config gpio_table[] = { PAD_CFG_NF(GPP_B16, NONE, DEEP, NF2), /* HDMI Hot Plug */ PAD_CFG_NF(GPP_H16, NONE, DEEP, NF1), /* HDMI Clock */ PAD_CFG_NF(GPP_H17, NONE, DEEP, NF1), /* HDMI Data */ - PAD_CFG_NF(GPP_A21, NONE, DEEP, NF1), /* PMC Interrupt */ - PAD_CFG_NF(GPP_C06, NONE, DEEP, NF1), /* SML Clock */ - PAD_CFG_NF(GPP_C07, NONE, DEEP, NF1), /* SML Data */ + PAD_CFG_NF_IOSTANDBY_IGNORE(GPP_A21, NONE, DEEP, NF1), /* PMC Interrupt */ + PAD_CFG_NF_IOSTANDBY_IGNORE(GPP_C06, NONE, DEEP, NF1), /* SML Clock */ + PAD_CFG_NF_IOSTANDBY_IGNORE(GPP_C07, NONE, DEEP, NF1), /* SML Data */ /* High-Definition Audio */ PAD_CFG_NF(GPP_D10, NATIVE, DEEP, NF1), /* Clock */