mb/google/nissa/var/pujjo: Disable stylus GPIO pins based on fw_config

BUG=b:250470706
TEST=Boot to OS on pujjo and check that stylus GPIO are
 configured based on fw_config.

Signed-off-by: Leo Chou <leo.chou@lcfc.corp-partner.google.com>
Change-Id: I4218748cb06426a918d89f688599c652062ac78c
Reviewed-on: https://review.coreboot.org/c/coreboot/+/68075
Reviewed-by: Reka Norman <rekanorman@chromium.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
diff --git a/src/mainboard/google/brya/variants/pujjo/fw_config.c b/src/mainboard/google/brya/variants/pujjo/fw_config.c
index ee86e74..dfc70c5 100644
--- a/src/mainboard/google/brya/variants/pujjo/fw_config.c
+++ b/src/mainboard/google/brya/variants/pujjo/fw_config.c
@@ -27,6 +27,13 @@
 	PAD_NC_LOCK(GPP_H13, NONE, LOCK_CONFIG),
 };
 
+static const struct pad_config stylus_disable_pads[] = {
+	/* F13 : SOC_PEN_DETECT_R_ODL */
+	PAD_NC_LOCK(GPP_F13, NONE, LOCK_CONFIG),
+	/* F15 : SOC_PEN_DETECT_ODL */
+	PAD_NC_LOCK(GPP_F15, NONE, LOCK_CONFIG),
+};
+
 void fw_config_gpio_padbased_override(struct pad_config *padbased_table)
 {
 	if (!fw_config_probe(FW_CONFIG(LTE, LTE_PRESENT))) {
@@ -41,4 +48,9 @@
 						ARRAY_SIZE(sd_disable_pads));
 	}
 
+	if (fw_config_probe(FW_CONFIG(STYLUS, STYLUS_ABSENT))) {
+		printk(BIOS_INFO, "Disable Stylus GPIO pins.\n");
+		gpio_padbased_override(padbased_table, stylus_disable_pads,
+						ARRAY_SIZE(stylus_disable_pads));
+	}
 }