config BOARD_GOOGLE_BASEBOARD_VOLTEER
	def_bool n
	select BOARD_ROMSIZE_KB_32768
	select DRIVERS_AUDIO_SOF
	select DRIVERS_GENERIC_GPIO_KEYS
	select DRIVERS_GENERIC_MAX98357A
	select DRIVERS_GENESYSLOGIC_GL9763E
	select DRIVERS_I2C_GENERIC
	select DRIVERS_I2C_HID
	select DRIVERS_I2C_MAX98373
	select DRIVERS_I2C_SX9310
	select DRIVERS_INTEL_DPTF
	select DRIVERS_INTEL_PMC
	select DRIVERS_INTEL_SOUNDWIRE
	select DRIVERS_INTEL_USB4_RETIMER
	select DRIVERS_SOUNDWIRE_ALC5682
	select DRIVERS_SOUNDWIRE_MAX98373
	select DRIVERS_SPI_ACPI
	select DRIVERS_USB_ACPI
	select EC_GOOGLE_CHROMEEC
	select EC_GOOGLE_CHROMEEC_BOARDID
	select EC_GOOGLE_CHROMEEC_INCLUDE_SSFC_IN_FW_CONFIG
	select EC_GOOGLE_CHROMEEC_LPC
	select EC_GOOGLE_CHROMEEC_SKUID
	select ENABLE_TCSS_USB_DETECTION if !CHROMEOS
	select FW_CONFIG
	select FW_CONFIG_SOURCE_CHROMEEC_CBI
	select GOOGLE_SMBIOS_MAINBOARD_VERSION
	select HAVE_ACPI_RESUME
	select HAVE_ACPI_TABLES
	select HAVE_SPD_IN_CBFS
	select I2C_TPM if BOARD_GOOGLE_VOLTEER2_TI50
	select INTEL_LPSS_UART_FOR_CONSOLE
	select MAINBOARD_HAS_CHROMEOS
	select MAINBOARD_HAS_TPM2
	select SOC_INTEL_COMMON_BLOCK_TCSS
	select SOC_INTEL_CSE_LITE_SKU
	select SOC_INTEL_TIGERLAKE
	select SPI_TPM if !BOARD_GOOGLE_VOLTEER2_TI50
	select TPM_GOOGLE_TI50 if BOARD_GOOGLE_VOLTEER2_TI50
	select TPM_GOOGLE_CR50 if !BOARD_GOOGLE_VOLTEER2_TI50

config BOARD_GOOGLE_CHRONICLER
	select BOARD_GOOGLE_BASEBOARD_VOLTEER
	select INTEL_GMA_HAVE_VBT

config BOARD_GOOGLE_COLLIS
	select BOARD_GOOGLE_BASEBOARD_VOLTEER
	select INTEL_GMA_HAVE_VBT

config BOARD_GOOGLE_COPANO
	select BOARD_GOOGLE_BASEBOARD_VOLTEER
	select INTEL_GMA_HAVE_VBT
	select SOC_INTEL_ENABLE_USB4_PCIE_RESOURCES

config BOARD_GOOGLE_DELBIN
	select BOARD_GOOGLE_BASEBOARD_VOLTEER
	select DRIVERS_GENESYSLOGIC_GL9755
	select INTEL_GMA_HAVE_VBT

config BOARD_GOOGLE_DROBIT
	select BOARD_GOOGLE_BASEBOARD_VOLTEER
	select DRIVERS_GENESYSLOGIC_GL9755
	select INTEL_GMA_HAVE_VBT
	select SOC_INTEL_ENABLE_USB4_PCIE_RESOURCES

config BOARD_GOOGLE_ELDRID
	select BOARD_GOOGLE_BASEBOARD_VOLTEER
	select INTEL_GMA_HAVE_VBT

config BOARD_GOOGLE_ELEMI
	select BOARD_GOOGLE_BASEBOARD_VOLTEER
	select INTEL_GMA_HAVE_VBT

config BOARD_GOOGLE_HALVOR
	select BOARD_GOOGLE_BASEBOARD_VOLTEER
	select INTEL_CAR_NEM

config BOARD_GOOGLE_LINDAR
	select BOARD_GOOGLE_BASEBOARD_VOLTEER
	select GOOGLE_DSM_CALIB if VPD
	select DRIVERS_GENERIC_BAYHUB_LV2
	select DRIVERS_I2C_RT1011
	select INTEL_CAR_NEM
	select INTEL_GMA_HAVE_VBT

config BOARD_GOOGLE_MALEFOR
	select BOARD_GOOGLE_BASEBOARD_VOLTEER
	select INTEL_CAR_NEM

config BOARD_GOOGLE_TERRADOR
	select BOARD_GOOGLE_BASEBOARD_VOLTEER

config BOARD_GOOGLE_TODOR
	select BOARD_GOOGLE_BASEBOARD_VOLTEER
	select INTEL_CAR_NEM

config BOARD_GOOGLE_TRONDO
	select BOARD_GOOGLE_BASEBOARD_VOLTEER
	select INTEL_CAR_NEM

config BOARD_GOOGLE_VOEMA
	select BOARD_GOOGLE_BASEBOARD_VOLTEER
	select INTEL_GMA_HAVE_VBT
	select VARIANT_HAS_MIPI_CAMERA

config BOARD_GOOGLE_VOLET
	select BOARD_GOOGLE_BASEBOARD_VOLTEER
	select INTEL_GMA_HAVE_VBT

config BOARD_GOOGLE_VOLTEER
	select BOARD_GOOGLE_BASEBOARD_VOLTEER
	select INTEL_CAR_NEM
	select SOC_INTEL_ENABLE_USB4_PCIE_RESOURCES
	select VARIANT_HAS_MIPI_CAMERA

config BOARD_GOOGLE_VOLTEER2
	select BOARD_GOOGLE_BASEBOARD_VOLTEER
	select DRIVER_I2C_TPM_ACPI
	select DRIVERS_GENESYSLOGIC_GL9755
	select INTEL_GMA_HAVE_VBT
	select SOC_INTEL_ENABLE_USB4_PCIE_RESOURCES
	select VARIANT_HAS_MIPI_CAMERA

config BOARD_GOOGLE_VOLTEER2_TI50
	select BOARD_GOOGLE_BASEBOARD_VOLTEER
	select DRIVER_I2C_TPM_ACPI
	select DRIVERS_GENESYSLOGIC_GL9755
	select SOC_INTEL_ENABLE_USB4_PCIE_RESOURCES
	select VARIANT_HAS_MIPI_CAMERA

config BOARD_GOOGLE_VOXEL
	select BOARD_GOOGLE_BASEBOARD_VOLTEER
	select GEO_SAR_ENABLE if CHROMEOS_WIFI_SAR
	select INTEL_GMA_HAVE_VBT
	select SOC_INTEL_ENABLE_USB4_PCIE_RESOURCES

if BOARD_GOOGLE_BASEBOARD_VOLTEER

config CHROMEOS
	select CHROMEOS_CSE_BOARD_RESET_OVERRIDE
	select CHROMEOS_DRAM_PART_NUMBER_IN_CBI
	select EC_GOOGLE_CHROMEEC_SWITCHES
	select GBB_FLAG_FORCE_DEV_BOOT_ALTFW
	select GBB_FLAG_FORCE_DEV_BOOT_USB
	select GBB_FLAG_FORCE_DEV_SWITCH_ON
	select GBB_FLAG_FORCE_MANUAL_RECOVERY
	select HAS_RECOVERY_MRC_CACHE
	select VBOOT_EARLY_EC_SYNC
	select VBOOT_LID_SWITCH

config VBOOT_GSCVD
	bool
	default n

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

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

config DRIVER_TPM_SPI_BUS
	default 0x1

config DRIVER_TPM_I2C_BUS
	hex
	default 0x1

config DRIVER_TPM_I2C_ADDR
	hex
	default 0x50

config INTEL_GMA_VBT_FILE
	default "src/mainboard/\$(MAINBOARDDIR)/variants/\$(VARIANT_DIR)/data.vbt" \
		if BOARD_GOOGLE_ELEMI || BOARD_GOOGLE_LINDAR || \
		   BOARD_GOOGLE_VOEMA || BOARD_GOOGLE_DROBIT
	default "src/mainboard/\$(MAINBOARDDIR)/variants/baseboard/data.vbt" if INTEL_GMA_HAVE_VBT

config MAINBOARD_DIR
	default "google/volteer"

config MAINBOARD_FAMILY
	string
	default "Google_Volteer"

config MAINBOARD_PART_NUMBER
	default "Chronicler" if BOARD_GOOGLE_CHRONICLER
	default "Collis" if BOARD_GOOGLE_COLLIS
	default "Copano" if BOARD_GOOGLE_COPANO
	default "Delbin" if BOARD_GOOGLE_DELBIN
	default "Drobit" if BOARD_GOOGLE_DROBIT
	default "Eldrid" if BOARD_GOOGLE_ELDRID
	default "Elemi" if BOARD_GOOGLE_ELEMI
	default "Halvor" if BOARD_GOOGLE_HALVOR
	default "Lindar" if BOARD_GOOGLE_LINDAR
	default "Malefor" if BOARD_GOOGLE_MALEFOR
	default "Terrador" if BOARD_GOOGLE_TERRADOR
	default "Todor" if BOARD_GOOGLE_TODOR
	default "Trondo" if BOARD_GOOGLE_TRONDO
	default "Voema" if BOARD_GOOGLE_VOEMA
	default "Volet" if BOARD_GOOGLE_VOLET
	default "Volteer" if BOARD_GOOGLE_VOLTEER
	default "Volteer2" if BOARD_GOOGLE_VOLTEER2
	default "Volteer2_Ti50" if BOARD_GOOGLE_VOLTEER2_TI50
	default "Voxel" if BOARD_GOOGLE_VOXEL

config TPM_TIS_ACPI_INTERRUPT
	int
	default 21  # GPE0_DW0_21 (GPP_C21)

config VARIANT_DIR
	default "chronicler" if BOARD_GOOGLE_CHRONICLER
	default "collis" if BOARD_GOOGLE_COLLIS
	default "copano" if BOARD_GOOGLE_COPANO
	default "delbin" if BOARD_GOOGLE_DELBIN
	default "drobit" if BOARD_GOOGLE_DROBIT
	default "eldrid" if BOARD_GOOGLE_ELDRID
	default "elemi" if BOARD_GOOGLE_ELEMI
	default "halvor" if BOARD_GOOGLE_HALVOR
	default "lindar" if BOARD_GOOGLE_LINDAR
	default "malefor" if BOARD_GOOGLE_MALEFOR
	default "terrador" if BOARD_GOOGLE_TERRADOR
	default "todor" if BOARD_GOOGLE_TODOR
	default "trondo" if BOARD_GOOGLE_TRONDO
	default "voema" if BOARD_GOOGLE_VOEMA
	default "volet" if BOARD_GOOGLE_VOLET
	default "volteer" if BOARD_GOOGLE_VOLTEER
	default "volteer2" if BOARD_GOOGLE_VOLTEER2
	default "volteer2" if BOARD_GOOGLE_VOLTEER2_TI50
	default "voxel" if BOARD_GOOGLE_VOXEL

config VARIANT_HAS_MIPI_CAMERA
	bool
	default n

endif # BOARD_GOOGLE_BASEBOARD_VOLTEER
