UPSTREAM: mb/google/zork: Add FP enable for Morphius

Add FP enable/disable based on SKU ID for Morphius. This is meant
to resolve a UMA issue with Morphius devices that had the FPMCU
populated on non-fp devices.  Since the FPMCU is present, and the
firmware enables the power GPIO's based on variant, not SKU, the
devices were reporting data on fingerprint errantly.

BUG=b:258040377
TEST=Flash to Morphius, test FP.
Disable test SKU, flash on Morphius, test FP.

(cherry picked from commit 10201aa99de8d78c6cea42a7222006165427d58a)

Original-Change-Id: If5794a9a1b7eb3daaa4cdfd1354dfb0c688624fd
Original-Signed-off-by: Jon Murphy <jpmurphy@google.com>
Original-Reviewed-on: https://review.coreboot.org/c/coreboot/+/78622
Original-Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
Original-Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Original-Reviewed-by: Eric Lai <ericllai@google.com>
Original-Reviewed-by: Matt DeVillier <matt.devillier@amd.corp-partner.google.com>
GitOrigin-RevId: 10201aa99de8d78c6cea42a7222006165427d58a
Change-Id: I39ba4e34dbfbd91e4c6311b4bf38f0ee1aedb34b
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/coreboot/+/4979327
Tested-by: ChromeOS Prod (Robot) <chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com>
Reviewed-by: Shelley Chen <shchen@chromium.org>
Commit-Queue: Shelley Chen <shchen@chromium.org>
(cherry picked from commit 0a003e2e6edd2a46e5ac91e1db6b537135e716a0)
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/coreboot/+/4980795
Reviewed-by: Mark Hasemeyer <markhas@google.com>
Commit-Queue: Karthikeyan Ramasubramanian <kramasub@google.com>
Tested-by: Jonathon Murphy <jpmurphy@google.com>
Reviewed-by: Karthikeyan Ramasubramanian <kramasub@google.com>
Commit-Queue: Jonathon Murphy <jpmurphy@google.com>
Auto-Submit: Jonathon Murphy <jpmurphy@google.com>
diff --git a/src/mainboard/google/zork/variants/baseboard/helpers.c b/src/mainboard/google/zork/variants/baseboard/helpers.c
index 7057a48..ed98177 100644
--- a/src/mainboard/google/zork/variants/baseboard/helpers.c
+++ b/src/mainboard/google/zork/variants/baseboard/helpers.c
@@ -183,7 +183,7 @@
 	return extract_field(FW_CONFIG_MASK_DB_INDEX, FW_CONFIG_DB_INDEX_SHIFT);
 }
 
-bool variant_has_fingerprint(void)
+__weak bool variant_has_fingerprint(void)
 {
 	if (CONFIG(VARIANT_HAS_FPMCU))
 		return true;
diff --git a/src/mainboard/google/zork/variants/morphius/variant.c b/src/mainboard/google/zork/variants/morphius/variant.c
index 092ff26..aa2290e 100644
--- a/src/mainboard/google/zork/variants/morphius/variant.c
+++ b/src/mainboard/google/zork/variants/morphius/variant.c
@@ -2,6 +2,17 @@
 
 #include <baseboard/variants.h>
 
+#define MORPHIUS_SKU_1  0x5A010010
+#define MORPHIUS_SKU_2  0x5A010011
+#define MORPHIUS_SKU_3  0x5A010012
+#define MORPHIUS_SKU_4  0x5A010014
+#define MORPHIUS_SKU_5  0x5A010029
+#define MORPHIUS_SKU_11 0x5A010025
+#define MORPHIUS_SKU_12 0x5A010026
+#define MORPHIUS_SKU_13 0x5A010013
+#define MORPHIUS_SKU_14 0x5A010028
+#define MORPHIUS_SKU_15 0x5A010016
+
 void variant_devtree_update(void)
 {
 	struct soc_amd_picasso_config *cfg;
@@ -14,3 +25,22 @@
 	if (!(variant_has_emmc() || boot_is_factory_unprovisioned()))
 		cfg->emmc_config.timing = SD_EMMC_DISABLE;
 }
+
+bool variant_has_fingerprint(void)
+{
+	switch (sku_id()) {
+	case MORPHIUS_SKU_1:
+	case MORPHIUS_SKU_2:
+	case MORPHIUS_SKU_3:
+	case MORPHIUS_SKU_4:
+	case MORPHIUS_SKU_5:
+	case MORPHIUS_SKU_11:
+	case MORPHIUS_SKU_12:
+	case MORPHIUS_SKU_13:
+	case MORPHIUS_SKU_14:
+	case MORPHIUS_SKU_15:
+		return true;
+	default:
+		return false;
+	}
+}