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

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

config BOARD_GOOGLE_MODEL_SCREEBO
	def_bool n
	select BOARD_GOOGLE_BASEBOARD_REX
	select DRIVERS_GENERIC_ALC1015
	select DRIVERS_GENESYSLOGIC_GL9750

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

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

config FMDFILE
	default "src/mainboard/\$(CONFIG_MAINBOARD_DIR)/chromeos_ec_ish-debug-fsp.fmd" if CHROMEOS && BOARD_GOOGLE_REX_EC_ISH && BUILDING_WITH_DEBUG_FSP
	default "src/mainboard/\$(CONFIG_MAINBOARD_DIR)/chromeos_ec_ish.fmd" if CHROMEOS && BOARD_GOOGLE_REX_EC_ISH
	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 "Screebo" if BOARD_GOOGLE_SCREEBO
	default "Screebo4ES" if BOARD_GOOGLE_SCREEBO4ES
	default "Karis" if BOARD_GOOGLE_KARIS
	default "Ovis" if BOARD_GOOGLE_OVIS
	default "Ovis4ES" if BOARD_GOOGLE_OVIS4ES

config VARIANT_DIR
	string
	default "rex0" if BOARD_GOOGLE_MODEL_REX
	default "screebo" if BOARD_GOOGLE_MODEL_SCREEBO
	default "karis" if BOARD_GOOGLE_KARIS
	default "ovis" if BOARD_GOOGLE_MODEL_OVIS

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

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

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
