UPSTREAM: mb/google/poppy: Add support for variant SKU romstage GPIO configs

Add functionality that allows a variant SKU to have a specific set of
GPIO configs in romstage (modeled after the existing one in
ramstage)

BUG=b:245954151
TEST=builds

(cherry picked from commit 39c279acf89ec4cc7b8ca57c2e9f0f4bc897df54)

Original-Change-Id: I593a23951306908fadc00e6bc8d9d310f09c5e4b
Original-Signed-off-by: Tarun Tuli <taruntuli@google.com>
Original-Reviewed-on: https://review.coreboot.org/c/coreboot/+/73211
Original-Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Original-Reviewed-by: Subrata Banik <subratabanik@google.com>
Original-Reviewed-by: Shelley Chen <shchen@google.com>
Original-Reviewed-by: Eric Lai <eric_lai@quanta.corp-partner.google.com>
GitOrigin-RevId: 39c279acf89ec4cc7b8ca57c2e9f0f4bc897df54
Change-Id: Icf918ad9ed92dcbfe0ff5e82371eaec8eabcc18c
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/coreboot/+/4493833
Reviewed-by: Shelley Chen <shchen@chromium.org>
Auto-Submit: Tarun Tuli <taruntuli@google.com>
Commit-Queue: Tarun Tuli <taruntuli@google.com>
Tested-by: Tarun Tuli <taruntuli@google.com>
diff --git a/src/mainboard/google/poppy/romstage.c b/src/mainboard/google/poppy/romstage.c
index 083e9d6..4ee9d54 100644
--- a/src/mainboard/google/poppy/romstage.c
+++ b/src/mainboard/google/poppy/romstage.c
@@ -154,6 +154,8 @@
 
 	pads = variant_romstage_gpio_table(&num);
 	gpio_configure_pads(pads, num);
+	pads = variant_romstage_sku_gpio_table(&num);
+	gpio_configure_pads(pads, num);
 
 	memset(&p, 0, sizeof(p));
 	variant_memory_params(&p);
diff --git a/src/mainboard/google/poppy/variants/baseboard/gpio.c b/src/mainboard/google/poppy/variants/baseboard/gpio.c
index c1b8e4c..b3f9404 100644
--- a/src/mainboard/google/poppy/variants/baseboard/gpio.c
+++ b/src/mainboard/google/poppy/variants/baseboard/gpio.c
@@ -393,6 +393,13 @@
 	return NULL;
 }
 
+const struct pad_config * __weak
+	variant_romstage_sku_gpio_table(size_t *num)
+{
+	*num = 0;
+	return NULL;
+}
+
 static const struct cros_gpio cros_gpios[] = {
 	CROS_GPIO_REC_AL(CROS_GPIO_VIRTUAL, CROS_GPIO_DEVICE_NAME),
 	CROS_GPIO_WP_AH(GPIO_PCH_WP, CROS_GPIO_DEVICE_NAME),
diff --git a/src/mainboard/google/poppy/variants/baseboard/include/baseboard/variants.h b/src/mainboard/google/poppy/variants/baseboard/include/baseboard/variants.h
index a8142ca..73ff8ae 100644
--- a/src/mainboard/google/poppy/variants/baseboard/include/baseboard/variants.h
+++ b/src/mainboard/google/poppy/variants/baseboard/include/baseboard/variants.h
@@ -36,6 +36,7 @@
 const struct cros_gpio *variant_cros_gpios(size_t *num);
 /* Config gpio by different sku id */
 const struct pad_config *variant_sku_gpio_table(size_t *num);
+const struct pad_config *variant_romstage_sku_gpio_table(size_t *num);
 
 enum memory_type {
 	MEMORY_LPDDR3,