## SPDX-License-Identifier: GPL-2.0-only

config BOARD_GOOGLE_REX_COMMON
	def_bool n
	select BOARD_ROMSIZE_KB_32768
	select DRIVERS_GFX_GENERIC
	select DRIVERS_I2C_GENERIC
	select DRIVERS_I2C_HID
	select DRIVERS_INTEL_DPTF
	select DRIVERS_INTEL_MIPI_SUPPORTS_PRE_PRODUCTION_SOC if SOC_INTEL_METEORLAKE_PRE_PRODUCTION_SILICON
	select DRIVERS_INTEL_USB4_RETIMER
	select DRIVERS_WIFI_GENERIC
	select DRIVERS_INTEL_MIPI_CAMERA
	select DRIVERS_SPI_ACPI
	select EC_GOOGLE_CHROMEEC
	select EC_GOOGLE_CHROMEEC_BOARDID
	select EC_GOOGLE_CHROMEEC_ESPI
	select EC_GOOGLE_CHROMEEC_SKUID
	select FW_CONFIG
	select FW_CONFIG_SOURCE_CHROMEEC_CBI
	select GOOGLE_SMBIOS_MAINBOARD_VERSION
	select HAVE_ACPI_RESUME
	select HAVE_ACPI_TABLES
	select I2C_TPM
	select INTEL_LPSS_UART_FOR_CONSOLE
	select MAINBOARD_DISABLE_STAGE_CACHE
	select MAINBOARD_HAS_TPM2
	select MB_COMPRESS_RAMSTAGE_LZ4
	select PMC_IPC_ACPI_INTERFACE
	select SOC_INTEL_COMMON_BLOCK_VARIANT_POWER_LIMIT

config BOARD_GOOGLE_BASEBOARD_OVIS
	def_bool n
	select BOARD_GOOGLE_REX_COMMON
	select DRIVERS_INTEL_PMC
	select ENABLE_TCSS_DISPLAY_DETECTION if RUN_FSP_GOP
	select HAVE_SLP_S0_GATE
	select MAINBOARD_HAS_CHROMEOS
	select MEMORY_SOLDERDOWN
	select RT8168_GEN_ACPI_POWER_RESOURCE
	select RT8168_GET_MAC_FROM_VPD
	select RT8168_SET_LED_MODE
	select SOC_INTEL_CSE_LITE_SKU
	select SOC_INTEL_CSE_PRE_CPU_RESET_TELEMETRY_V2
	select SOC_INTEL_CSE_SEND_EOP_ASYNC
	select SOC_INTEL_IOE_DIE_SUPPORT
	select SOC_INTEL_METEORLAKE_U_H
	select SOC_INTEL_ENABLE_USB4_PCIE_RESOURCES
	select TPM_GOOGLE_TI50

config BOARD_GOOGLE_BASEBOARD_REX
	def_bool n
	select BOARD_GOOGLE_REX_COMMON
	select CHROMEOS_WIFI_SAR if CHROMEOS
	select DRIVERS_INTEL_PMC
	select DRIVERS_GENERIC_GPIO_KEYS
	select DRIVERS_WWAN_FM350GL
	select HAVE_SLP_S0_GATE
	select MAINBOARD_HAS_CHROMEOS
	select MEMORY_SOLDERDOWN
	select SOC_INTEL_ENABLE_USB4_PCIE_RESOURCES
	select SOC_INTEL_IOE_DIE_SUPPORT
	select SOC_INTEL_METEORLAKE_U_H
	select SYSTEM_TYPE_LAPTOP
	select TPM_GOOGLE_TI50

config BOARD_GOOGLE_MODEL_DEKU
	def_bool n
	select BOARD_GOOGLE_BASEBOARD_OVIS

config BOARD_GOOGLE_MODEL_KARIS
	def_bool n
	select BOARD_GOOGLE_BASEBOARD_REX
	select SOC_INTEL_CSE_LITE_SKU
	select SOC_INTEL_CSE_PRE_CPU_RESET_TELEMETRY_V2
	select SOC_INTEL_CSE_SEND_EOP_ASYNC

config BOARD_GOOGLE_MODEL_OVIS
	def_bool n
	select BOARD_GOOGLE_BASEBOARD_OVIS

config BOARD_GOOGLE_MODEL_REX
	def_bool n
	select BOARD_GOOGLE_BASEBOARD_REX
	select DRIVERS_GENERIC_MAX98357A
	select DRIVERS_GENESYSLOGIC_GL9755
	select DRIVERS_I2C_SX9324
	select DRIVERS_INTEL_ISH
	select DRIVERS_INTEL_SOUNDWIRE
	select DRIVERS_NXP_UWB_SR1XX
	select DRIVERS_SOUNDWIRE_CS42L42
	select DRIVERS_SOUNDWIRE_MAX98363

config BOARD_GOOGLE_MODEL_REX_EC_ISH
	def_bool n
	select BOARD_GOOGLE_MODEL_REX
	select SOC_INTEL_CSE_LITE_SKU
	select SOC_INTEL_CSE_PRE_CPU_RESET_TELEMETRY_V2
	select SOC_INTEL_CSE_SEND_EOP_ASYNC
	select SOC_INTEL_STORE_ISH_FW_VERSION

config BOARD_GOOGLE_MODEL_SCREEBO
	def_bool n
	select BOARD_GOOGLE_BASEBOARD_REX
	select DRIVERS_GENERIC_ALC1015
	select DRIVERS_GENESYSLOGIC_GL9750
	select SOC_INTEL_CSE_LITE_SKU
	select SOC_INTEL_CSE_PRE_CPU_RESET_TELEMETRY_V2
	select SOC_INTEL_CSE_SEND_EOP_ASYNC

config BOARD_GOOGLE_DEKU
	select BOARD_GOOGLE_MODEL_DEKU

config BOARD_GOOGLE_DEKU4ES
	select BOARD_GOOGLE_MODEL_DEKU

config BOARD_GOOGLE_KARIS
	select BOARD_GOOGLE_MODEL_KARIS

config BOARD_GOOGLE_KARIS4ES
	select BOARD_GOOGLE_MODEL_KARIS
	select SOC_INTEL_METEORLAKE_PRE_PRODUCTION_SILICON

config BOARD_GOOGLE_OVIS
	select BOARD_GOOGLE_MODEL_OVIS

config BOARD_GOOGLE_OVIS4ES
	select BOARD_GOOGLE_MODEL_OVIS
	select SOC_INTEL_METEORLAKE_PRE_PRODUCTION_SILICON

config BOARD_GOOGLE_REX0
	select BOARD_GOOGLE_MODEL_REX
	select SOC_INTEL_CSE_LITE_SKU
	select SOC_INTEL_CSE_PRE_CPU_RESET_TELEMETRY_V2
	select SOC_INTEL_CSE_SEND_EOP_ASYNC

config BOARD_GOOGLE_REX64
	select BOARD_GOOGLE_MODEL_REX
	select HAVE_X86_64_SUPPORT
	select SOC_INTEL_CSE_LITE_SYNC_BY_PAYLOAD
	select SOC_INTEL_CSE_SEND_EOP_BY_PAYLOAD
	select USE_X86_64_SUPPORT

config BOARD_GOOGLE_REX_EC_ISH
	select BOARD_GOOGLE_MODEL_REX_EC_ISH

config BOARD_GOOGLE_REX4ES
	select BOARD_GOOGLE_MODEL_REX
	select SOC_INTEL_CSE_LITE_SKU
	select SOC_INTEL_CSE_PRE_CPU_RESET_TELEMETRY_V2
	select SOC_INTEL_CSE_SEND_EOP_ASYNC
	select SOC_INTEL_METEORLAKE_PRE_PRODUCTION_SILICON

config BOARD_GOOGLE_REX4ES_EC_ISH
	select BOARD_GOOGLE_MODEL_REX_EC_ISH
	select SOC_INTEL_METEORLAKE_PRE_PRODUCTION_SILICON

config BOARD_GOOGLE_SCREEBO
	select BOARD_GOOGLE_MODEL_SCREEBO

config BOARD_GOOGLE_SCREEBO4ES
	select BOARD_GOOGLE_MODEL_SCREEBO
	select SOC_INTEL_METEORLAKE_PRE_PRODUCTION_SILICON

if BOARD_GOOGLE_REX_COMMON

config BASEBOARD_DIR
	string
	default "rex" if BOARD_GOOGLE_BASEBOARD_REX
	default "ovis" if BOARD_GOOGLE_BASEBOARD_OVIS

config CHROMEOS
	select EC_GOOGLE_CHROMEEC_SWITCHES
	select GBB_FLAG_FORCE_DEV_SWITCH_ON
	select GBB_FLAG_FORCE_DEV_BOOT_USB
	select GBB_FLAG_FORCE_MANUAL_RECOVERY
	select HAS_RECOVERY_MRC_CACHE

config CHROMEOS_WIFI_SAR
	bool "Enable SAR options for ChromeOS build"
	depends on CHROMEOS
	select DSAR_ENABLE
	select GEO_SAR_ENABLE
	select SAR_ENABLE
	select USE_SAR

config DEVICETREE
	default "variants/baseboard/\$(CONFIG_BASEBOARD_DIR)/devicetree_pre_prod.cb" if SOC_INTEL_METEORLAKE_PRE_PRODUCTION_SILICON
	default "variants/baseboard/\$(CONFIG_BASEBOARD_DIR)/devicetree.cb"

config FMDFILE
	default "src/mainboard/\$(CONFIG_MAINBOARD_DIR)/chromeos4es-debug-fsp.fmd" if CHROMEOS && BUILDING_WITH_DEBUG_FSP && SOC_INTEL_METEORLAKE_PRE_PRODUCTION_SILICON
	default "src/mainboard/\$(CONFIG_MAINBOARD_DIR)/chromeos4es.fmd" if CHROMEOS && SOC_INTEL_METEORLAKE_PRE_PRODUCTION_SILICON
	default "src/mainboard/\$(CONFIG_MAINBOARD_DIR)/chromeos-debug-fsp.fmd" if CHROMEOS && BUILDING_WITH_DEBUG_FSP
	default "src/mainboard/\$(CONFIG_MAINBOARD_DIR)/chromeos.fmd" if CHROMEOS

config MAINBOARD_DIR
	default "google/rex"

config MAINBOARD_FAMILY
	string
	default "Google_Rex" if BOARD_GOOGLE_BASEBOARD_REX
	default "Google_Ovis" if BOARD_GOOGLE_BASEBOARD_OVIS

config MAINBOARD_PART_NUMBER
	default "Rex" if BOARD_GOOGLE_REX0
	default "Rex64" if BOARD_GOOGLE_REX64
	default "Rex_Ec_Ish" if BOARD_GOOGLE_REX_EC_ISH
	default "Rex4ES" if BOARD_GOOGLE_REX4ES
	default "Rex4ES_Ec_Ish" if BOARD_GOOGLE_REX4ES_EC_ISH
	default "Screebo" if BOARD_GOOGLE_SCREEBO
	default "Screebo4ES" if BOARD_GOOGLE_SCREEBO4ES
	default "Karis" if BOARD_GOOGLE_KARIS
	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
	default "rex0" if BOARD_GOOGLE_MODEL_REX
	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

config MEMORY_SOLDERDOWN
	def_bool n
	select CHROMEOS_DRAM_PART_NUMBER_IN_CBI if CHROMEOS
	select HAVE_SPD_IN_CBFS

config VBOOT
	select VBOOT_LID_SWITCH if BOARD_GOOGLE_BASEBOARD_REX

config UART_FOR_CONSOLE
	int
	default 0

config OVERRIDE_DEVICETREE
	default "variants/\$(CONFIG_VARIANT_DIR)/overridetree.cb"

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 || BOARD_GOOGLE_MODEL_DEKU

config DRIVER_TPM_I2C_ADDR
	hex
	default 0x50

config TPM_TIS_ACPI_INTERRUPT
	int
	default 35  # GPE0_DW1_03 (GPP_E03)

config USE_PM_ACPI_TIMER
	default n

config HAVE_SLP_S0_GATE
	def_bool n

endif # BOARD_GOOGLE_REX_COMMON