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

config BOARD_GOOGLE_BASEBOARD_HATCH
	def_bool n
	select BOARD_ROMSIZE_KB_16384 if !BOARD_ROMSIZE_KB_32768
	select DRIVERS_AUDIO_SOF
	select DRIVERS_GENERIC_GPIO_KEYS
	select DRIVERS_GENERIC_MAX98357A
	select DRIVERS_I2C_DA7219
	select DRIVERS_I2C_GENERIC
	select DRIVERS_I2C_HID
	select DRIVERS_I2C_SX9310
	select DRIVERS_SPI_ACPI
	select DRIVERS_USB_ACPI
	select EC_GOOGLE_CHROMEEC
	select EC_GOOGLE_CHROMEEC_BOARDID
	select EC_GOOGLE_CHROMEEC_ESPI
	select EC_GOOGLE_CHROMEEC_I2C_TUNNEL
	select EC_GOOGLE_CHROMEEC_SKUID
	select GOOGLE_SMBIOS_MAINBOARD_VERSION
	select HAVE_ACPI_RESUME
	select HAVE_ACPI_TABLES
	select HAVE_SPD_IN_CBFS
	select INTEL_LPSS_UART_FOR_CONSOLE
	select MAINBOARD_HAS_CHROMEOS
	select MAINBOARD_HAS_TPM2
	select MB_HAS_ACTIVE_HIGH_SD_PWR_ENABLE
	select SOC_INTEL_COMETLAKE_1
	select SOC_INTEL_COMMON_BLOCK_DTT
	select SPI_TPM
	select SYSTEM_TYPE_LAPTOP
	select TPM_GOOGLE_CR50

config BOARD_GOOGLE_AKEMI
	select BOARD_GOOGLE_BASEBOARD_HATCH
	select INTEL_GMA_HAVE_VBT

config BOARD_GOOGLE_DRATINI
	select BOARD_GOOGLE_BASEBOARD_HATCH
	select INTEL_GMA_HAVE_VBT

config BOARD_GOOGLE_HATCH
	select BOARD_GOOGLE_BASEBOARD_HATCH
	select BOARD_ROMSIZE_KB_32768
	select INTEL_GMA_HAVE_VBT

config BOARD_GOOGLE_HELIOS
	select BOARD_GOOGLE_BASEBOARD_HATCH
	select GOOGLE_DSM_CALIB if VPD
	select DRIVERS_I2C_RT1011
	select INTEL_GMA_HAVE_VBT

config BOARD_GOOGLE_HELIOS_DISKSWAP
	select BOARD_GOOGLE_BASEBOARD_HATCH
	select GOOGLE_DSM_CALIB if VPD
	select DRIVERS_I2C_RT1011
	select INTEL_GMA_HAVE_VBT

config BOARD_GOOGLE_JINLON
	select BOARD_GOOGLE_BASEBOARD_HATCH
	select DRIVERS_GFX_GENERIC
	select INTEL_GMA_HAVE_VBT

config BOARD_GOOGLE_KINDRED
	select BOARD_GOOGLE_BASEBOARD_HATCH
	select INTEL_GMA_HAVE_VBT
	select SOC_INTEL_COMMON_MMC_OVERRIDE

config BOARD_GOOGLE_KOHAKU
	select BOARD_GOOGLE_BASEBOARD_HATCH
	select INTEL_GMA_HAVE_VBT

config BOARD_GOOGLE_MUSHU
	select BOARD_GOOGLE_BASEBOARD_HATCH
	select INTEL_GMA_HAVE_VBT

config BOARD_GOOGLE_NIGHTFURY
	select BOARD_GOOGLE_BASEBOARD_HATCH
	select GOOGLE_DSM_CALIB if VPD
	select DRIVERS_I2C_MAX98390
	select INTEL_GMA_HAVE_VBT

config BOARD_GOOGLE_PALKIA
	select BOARD_GOOGLE_BASEBOARD_HATCH
	select GOOGLE_DSM_CALIB if VPD
	select DRIVERS_I2C_RT1011

if BOARD_GOOGLE_BASEBOARD_HATCH

config DISABLE_HECI1_AT_PRE_BOOT
	default y

config CHROMEOS
	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_LID_SWITCH

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 DIMM_MAX
	default 2

config DRIVER_TPM_SPI_BUS
	default 0x1

config UART_FOR_CONSOLE
	default 0

config FMDFILE
	default "src/mainboard/\$(CONFIG_MAINBOARD_DIR)/chromeos-16MiB.fmd" if BOARD_ROMSIZE_KB_16384 && CHROMEOS
	default "src/mainboard/\$(CONFIG_MAINBOARD_DIR)/chromeos-32MiB.fmd" if BOARD_ROMSIZE_KB_32768 && CHROMEOS

config MAINBOARD_DIR
	default "google/hatch"

config MAINBOARD_FAMILY
	string
	default "Google_Hatch"

config MAINBOARD_PART_NUMBER
	default "Akemi" if BOARD_GOOGLE_AKEMI
	default "Dratini" if BOARD_GOOGLE_DRATINI
	default "Hatch" if BOARD_GOOGLE_HATCH
	default "Helios" if BOARD_GOOGLE_HELIOS
	default "Helios_Diskswap" if BOARD_GOOGLE_HELIOS_DISKSWAP
	default "Jinlon" if BOARD_GOOGLE_JINLON
	default "Kindred" if BOARD_GOOGLE_KINDRED
	default "Kohaku" if BOARD_GOOGLE_KOHAKU
	default "Mushu" if BOARD_GOOGLE_MUSHU
	default "Nightfury" if BOARD_GOOGLE_NIGHTFURY
	default "Palkia" if BOARD_GOOGLE_PALKIA

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

config TPM_TIS_ACPI_INTERRUPT
	int
	default 53 # GPE0_DW1_21 (GPP_C21)

config VARIANT_DIR
	default "akemi" if BOARD_GOOGLE_AKEMI
	default "dratini" if BOARD_GOOGLE_DRATINI
	default "hatch" if BOARD_GOOGLE_HATCH
	default "helios" if BOARD_GOOGLE_HELIOS
	default "helios" if BOARD_GOOGLE_HELIOS_DISKSWAP
	default "jinlon" if BOARD_GOOGLE_JINLON
	default "kindred" if BOARD_GOOGLE_KINDRED
	default "kohaku" if BOARD_GOOGLE_KOHAKU
	default "mushu" if BOARD_GOOGLE_MUSHU
	default "nightfury" if BOARD_GOOGLE_NIGHTFURY
	default "palkia" if BOARD_GOOGLE_PALKIA

config VBOOT
	select HAS_RECOVERY_MRC_CACHE
	select VBOOT_EARLY_EC_SYNC

config USE_PM_ACPI_TIMER
	default n

endif # BOARD_GOOGLE_BASEBOARD_HATCH
