UPSTREAM: mb/google/nissa: Disable the stylus GPIO pins based on fw_config

TEST=Boot to OS on nivviks/nirwen and check that stylus GPIOs are
configured based on fw_config.

(cherry picked from commit ad0288a843ab65f2a567cf6095c129e2ca8e8476)

Original-Signed-off-by: V Sowmya <v.sowmya@intel.com>
Original-Change-Id: Ibbe9f379abe10a741642e11d4833d3a53489693a
Original-Reviewed-on: https://review.coreboot.org/c/coreboot/+/66929
Original-Reviewed-by: Reka Norman <rekanorman@chromium.org>
Original-Reviewed-by: Kangheui Won <khwon@chromium.org>
Original-Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
GitOrigin-RevId: ad0288a843ab65f2a567cf6095c129e2ca8e8476
Change-Id: I6c34311c16a0defc4124ff4624b97e24a4db8e94
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/coreboot/+/3888805
Commit-Queue: Patrick Georgi <pgeorgi@chromium.org>
Tested-by: CopyBot Service Account <copybot.service@gmail.com>
Reviewed-by: Yu-Ping Wu <yupingso@chromium.org>
diff --git a/src/mainboard/google/brya/variants/nivviks/fw_config.c b/src/mainboard/google/brya/variants/nivviks/fw_config.c
index 654d2f4..8a4655b 100644
--- a/src/mainboard/google/brya/variants/nivviks/fw_config.c
+++ b/src/mainboard/google/brya/variants/nivviks/fw_config.c
@@ -94,6 +94,13 @@
 	PAD_NC_LOCK(GPP_E17, 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(DB_USB, DB_1C_LTE))) {
@@ -133,4 +140,10 @@
 		gpio_padbased_override(padbased_table, nvme_disable_pads,
 						ARRAY_SIZE(nvme_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));
+	}
 }