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
	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_BASEBOARD_REX
	def_bool n
	select BOARD_GOOGLE_REX_COMMON
	select DRIVERS_INTEL_PMC
	select DRIVERS_GENERIC_GPIO_KEYS
	select DRIVERS_WWAN_FM350GL
	select HAVE_FSP_LOGO_SUPPORT if RUN_FSP_GOP
	select HAVE_SLP_S0_GATE
	select MAINBOARD_HAS_CHROMEOS
	select MEMORY_SOLDERDOWN
	select SOC_INTEL_IOE_DIE_SUPPORT
	select SOC_INTEL_METEORLAKE_U_H
	select SOC_INTEL_ENABLE_USB4_PCIE_RESOURCES
	select SYSTEM_TYPE_LAPTOP
	select TPM_GOOGLE_TI50
	select CHROMEOS_WIFI_SAR if CHROMEOS

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

config BOARD_GOOGLE_MODEL_KARIS
	def_bool n
	select BOARD_GOOGLE_BASEBOARD_REX
	select CHROMEOS_WIFI_SAR if CHROMEOS

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_IOE_DIE_SUPPORT
	select SOC_INTEL_METEORLAKE_U_H
	select SOC_INTEL_ENABLE_USB4_PCIE_RESOURCES
	select TPM_GOOGLE_TI50

config BOARD_GOOGLE_MODEL_OVIS
	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

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

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_REX_EC_ISH
	select BOARD_GOOGLE_MODEL_REX_EC_ISH

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

config BOARD_GOOGLE_REX4ES
	select BOARD_GOOGLE_MODEL_REX
	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

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

choice
	prompt "Choose desired processor power limits (PLs)"
	default PL_BASELINE if BOARD_GOOGLE_MODEL_SCREEBO
	default PL_PERFORMANCE

config PL_PERFORMANCE
	bool "Performance: Maximum PLs for maximum performance"

config PL_BASELINE
	bool "Baseline: Baseline PLs for balanced performance at lower power"

endchoice

endif # BOARD_GOOGLE_REX_COMMON
