mb/google/rex: Create deku variant

BUG=b:305793886
TEST=util/abuild/abuild -p none -t google/rex -x -a -b deku
built without errors.

Signed-off-by: Eran Mitrani <mitrani@google.com>
Change-Id: I332e404e82a7980bb8ed1fb084fe957f526f81d1
Reviewed-on: https://review.coreboot.org/c/coreboot/+/78393
Reviewed-by: YH Lin <yueherngl@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jakub Czapiga <czapiga@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
diff --git a/src/mainboard/google/rex/Kconfig b/src/mainboard/google/rex/Kconfig
index 2c68428..3f0947b 100644
--- a/src/mainboard/google/rex/Kconfig
+++ b/src/mainboard/google/rex/Kconfig
@@ -95,6 +95,10 @@
 	def_bool n
 	select BOARD_GOOGLE_BASEBOARD_OVIS
 
+config BOARD_GOOGLE_MODEL_DEKU
+	def_bool n
+	select BOARD_GOOGLE_BASEBOARD_OVIS
+
 config BOARD_GOOGLE_REX0
 	select BOARD_GOOGLE_MODEL_REX
 
@@ -118,6 +122,12 @@
 config BOARD_GOOGLE_OVIS
 	select BOARD_GOOGLE_MODEL_OVIS
 
+config BOARD_GOOGLE_DEKU
+	select BOARD_GOOGLE_MODEL_DEKU
+
+config BOARD_GOOGLE_DEKU4ES
+	select BOARD_GOOGLE_MODEL_DEKU
+
 config BOARD_GOOGLE_OVIS4ES
 	select BOARD_GOOGLE_MODEL_OVIS
 	select SOC_INTEL_METEORLAKE_PRE_PRODUCTION_SILICON
@@ -180,6 +190,8 @@
 	default "Karis4ES" if BOARD_GOOGLE_KARIS4ES
 	default "Ovis" if BOARD_GOOGLE_OVIS
 	default "Ovis4ES" if BOARD_GOOGLE_OVIS4ES
+	default "Deku" if BOARD_GOOGLE_DEKU
+	default "Deku4ES" if BOARD_GOOGLE_DEKU4ES
 
 config VARIANT_DIR
 	string
@@ -187,6 +199,7 @@
 	default "screebo" if BOARD_GOOGLE_MODEL_SCREEBO
 	default "karis" if BOARD_GOOGLE_MODEL_KARIS
 	default "ovis" if BOARD_GOOGLE_MODEL_OVIS
+	default "deku" if BOARD_GOOGLE_MODEL_DEKU
 
 config DIMM_SPD_SIZE
 	default 512
@@ -208,7 +221,7 @@
 
 config DRIVER_TPM_I2C_BUS
 	hex
-	default 0x4 if BOARD_GOOGLE_MODEL_REX || BOARD_GOOGLE_MODEL_SCREEBO || BOARD_GOOGLE_MODEL_OVIS || BOARD_GOOGLE_MODEL_KARIS
+	default 0x4 if BOARD_GOOGLE_MODEL_REX || BOARD_GOOGLE_MODEL_SCREEBO || BOARD_GOOGLE_MODEL_OVIS || BOARD_GOOGLE_MODEL_KARIS || BOARD_GOOGLE_MODEL_DEKU
 
 config DRIVER_TPM_I2C_ADDR
 	hex
diff --git a/src/mainboard/google/rex/Kconfig.name b/src/mainboard/google/rex/Kconfig.name
index 3dfd548..7717458 100644
--- a/src/mainboard/google/rex/Kconfig.name
+++ b/src/mainboard/google/rex/Kconfig.name
@@ -24,6 +24,12 @@
 config BOARD_GOOGLE_OVIS4ES
 	bool "-> Ovis4ES"
 
+config BOARD_GOOGLE_DEKU
+	bool "-> Deku"
+
+config BOARD_GOOGLE_DEKU4ES
+	bool "-> Deku4ES"
+
 config BOARD_GOOGLE_REX4ES
 	bool "-> Rex4ES"
 
diff --git a/src/mainboard/google/rex/variants/deku/Makefile.inc b/src/mainboard/google/rex/variants/deku/Makefile.inc
new file mode 100644
index 0000000..91f031e
--- /dev/null
+++ b/src/mainboard/google/rex/variants/deku/Makefile.inc
@@ -0,0 +1,5 @@
+## SPDX-License-Identifier: GPL-2.0-only
+
+bootblock-y += gpio.c
+romstage-y += gpio.c
+ramstage-y += gpio.c
diff --git a/src/mainboard/google/rex/variants/deku/gpio.c b/src/mainboard/google/rex/variants/deku/gpio.c
new file mode 100644
index 0000000..b6e346f
--- /dev/null
+++ b/src/mainboard/google/rex/variants/deku/gpio.c
@@ -0,0 +1,30 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+
+#include <baseboard/gpio.h>
+#include <baseboard/variants.h>
+#include <types.h>
+#include <soc/gpio.h>
+#include <vendorcode/google/chromeos/chromeos.h>
+
+const struct pad_config *variant_gpio_table(size_t *num)
+{
+	*num = 0;
+	return NULL;
+}
+
+const struct pad_config *variant_early_gpio_table(size_t *num)
+{
+	*num = 0;
+	return NULL;
+}
+
+static const struct cros_gpio cros_gpios[] = {
+};
+
+DECLARE_CROS_GPIOS(cros_gpios);
+
+const struct pad_config *variant_romstage_gpio_table(size_t *num)
+{
+	*num = 0;
+	return NULL;
+}
diff --git a/src/mainboard/google/rex/variants/deku/include/variant/ec.h b/src/mainboard/google/rex/variants/deku/include/variant/ec.h
new file mode 100644
index 0000000..4fc0622
--- /dev/null
+++ b/src/mainboard/google/rex/variants/deku/include/variant/ec.h
@@ -0,0 +1,8 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+
+#ifndef MAINBOARD_EC_H
+#define MAINBOARD_EC_H
+
+#include <baseboard/ec.h>
+
+#endif /* MAINBOARD_GPIO_H */
diff --git a/src/mainboard/google/rex/variants/deku/include/variant/gpio.h b/src/mainboard/google/rex/variants/deku/include/variant/gpio.h
new file mode 100644
index 0000000..27c87b3
--- /dev/null
+++ b/src/mainboard/google/rex/variants/deku/include/variant/gpio.h
@@ -0,0 +1,8 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+
+#ifndef __MAINBOARD_GPIO_H__
+#define __MAINBOARD_GPIO_H__
+
+#include <baseboard/gpio.h>
+
+#endif /* __MAINBOARD_GPIO_H__ */
diff --git a/src/mainboard/google/rex/variants/deku/memory/Makefile.inc b/src/mainboard/google/rex/variants/deku/memory/Makefile.inc
new file mode 100644
index 0000000..eace2e4
--- /dev/null
+++ b/src/mainboard/google/rex/variants/deku/memory/Makefile.inc
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+# This is an auto-generated file. Do not edit!!
+# Add memory parts in mem_parts_used.txt and run spd_tools to regenerate.
+
+SPD_SOURCES = placeholder
diff --git a/src/mainboard/google/rex/variants/deku/memory/dram_id.generated.txt b/src/mainboard/google/rex/variants/deku/memory/dram_id.generated.txt
new file mode 100644
index 0000000..b243b02
--- /dev/null
+++ b/src/mainboard/google/rex/variants/deku/memory/dram_id.generated.txt
@@ -0,0 +1,3 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+DRAM Part Name                 ID to assign
diff --git a/src/mainboard/google/rex/variants/deku/memory/mem_parts_used.txt b/src/mainboard/google/rex/variants/deku/memory/mem_parts_used.txt
new file mode 100644
index 0000000..9621137
--- /dev/null
+++ b/src/mainboard/google/rex/variants/deku/memory/mem_parts_used.txt
@@ -0,0 +1,11 @@
+# This is a CSV file containing a list of memory parts used by this variant.
+# One part per line with an optional fixed ID in column 2.
+# Only include a fixed ID if it is required for legacy reasons!
+# Generated IDs are dependent on the order of parts in this file,
+# so new parts must always be added at the end of the file!
+#
+# Generate an updated Makefile.inc and dram_id.generated.txt by running the
+# part_id_gen tool from util/spd_tools.
+# See util/spd_tools/README.md for more details and instructions.
+
+# Part Name
diff --git a/src/mainboard/google/rex/variants/deku/overridetree.cb b/src/mainboard/google/rex/variants/deku/overridetree.cb
new file mode 100644
index 0000000..b68840f
--- /dev/null
+++ b/src/mainboard/google/rex/variants/deku/overridetree.cb
@@ -0,0 +1,4 @@
+chip soc/intel/meteorlake
+	device domain 0 on
+	end
+end