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

config BOARD_GOOGLE_BASEBOARD_PUFF
	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_INTEL_DPTF
	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 FW_CONFIG
	select FW_CONFIG_SOURCE_CHROMEEC_CBI
	select GOOGLE_SMBIOS_MAINBOARD_VERSION
	select HAVE_ACPI_RESUME
	select HAVE_ACPI_TABLES
	select INTEL_LPSS_UART_FOR_CONSOLE
	select MAINBOARD_HAS_CHROMEOS
	select MAINBOARD_HAS_TPM2
	select MB_HAS_ACTIVE_HIGH_SD_PWR_ENABLE
	select RT8168_GEN_ACPI_POWER_RESOURCE
	select RT8168_GET_MAC_FROM_VPD
	select RT8168_SET_LED_MODE
	select SOC_INTEL_COMETLAKE_1
	select SOC_INTEL_COMMON_BLOCK_DTT
	select SOC_INTEL_CSE_LITE_SKU
	select SPD_CACHE_IN_FMAP
	select SPD_READ_BY_WORD
	select SPI_TPM
	select TPM_GOOGLE_CR50

config BOARD_GOOGLE_AMBASSADOR
	select BOARD_GOOGLE_BASEBOARD_PUFF
	select INTEL_GMA_HAVE_VBT

config BOARD_GOOGLE_DOOLY
	select BOARD_GOOGLE_BASEBOARD_PUFF
	select INTEL_GMA_HAVE_VBT

config BOARD_GOOGLE_DUFFY_LEGACY
	select BOARD_GOOGLE_BASEBOARD_PUFF
	select BOARD_ROMSIZE_KB_32768
	select INTEL_GMA_HAVE_VBT

config BOARD_GOOGLE_DUFFY
	select BOARD_GOOGLE_BASEBOARD_PUFF
	select INTEL_GMA_HAVE_VBT

config BOARD_GOOGLE_FAFFY
	select BOARD_GOOGLE_BASEBOARD_PUFF
	select INTEL_GMA_HAVE_VBT

config BOARD_GOOGLE_GENESIS
	select BOARD_GOOGLE_BASEBOARD_PUFF
	select INTEL_GMA_HAVE_VBT

config BOARD_GOOGLE_KAISA_LEGACY
	select BOARD_GOOGLE_BASEBOARD_PUFF
	select BOARD_ROMSIZE_KB_32768
	select INTEL_GMA_HAVE_VBT

config BOARD_GOOGLE_KAISA
	select BOARD_GOOGLE_BASEBOARD_PUFF
	select INTEL_GMA_HAVE_VBT

config BOARD_GOOGLE_MOONBUGGY
	select BOARD_GOOGLE_BASEBOARD_PUFF

config BOARD_GOOGLE_NOIBAT
	select BOARD_GOOGLE_BASEBOARD_PUFF
	select INTEL_GMA_HAVE_VBT

config BOARD_GOOGLE_PUFF
	select BOARD_GOOGLE_BASEBOARD_PUFF
	select BOARD_ROMSIZE_KB_32768
	select INTEL_GMA_HAVE_VBT

config BOARD_GOOGLE_SCOUT
	select BOARD_GOOGLE_BASEBOARD_PUFF

config BOARD_GOOGLE_WYVERN
	select BOARD_GOOGLE_BASEBOARD_PUFF
	select INTEL_GMA_HAVE_VBT

if BOARD_GOOGLE_BASEBOARD_PUFF

config CHROMEOS
	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
	select CHROMEOS_CSE_BOARD_RESET_OVERRIDE

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 POWER_OFF_ON_CR50_UPDATE
	bool
	default n

config MAINBOARD_DIR
	default "google/puff"

config MAINBOARD_FAMILY
	string
	default "Google_Puff"

config MAINBOARD_PART_NUMBER
	default "Ambassador" if BOARD_GOOGLE_AMBASSADOR
	default "Dooly" if BOARD_GOOGLE_DOOLY
	default "Duffy" if BOARD_GOOGLE_DUFFY
	default "Duffy" if BOARD_GOOGLE_DUFFY_LEGACY
	default "Faffy" if BOARD_GOOGLE_FAFFY
	default "Genesis" if BOARD_GOOGLE_GENESIS
	default "Kaisa" if BOARD_GOOGLE_KAISA
	default "Kaisa" if BOARD_GOOGLE_KAISA_LEGACY
	default "Moonbuggy" if BOARD_GOOGLE_MOONBUGGY
	default "Noibat" if BOARD_GOOGLE_NOIBAT
	default "Puff" if BOARD_GOOGLE_PUFF
	default "Scout" if BOARD_GOOGLE_SCOUT
	default "Wyvern" if BOARD_GOOGLE_WYVERN

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

config TPM_TIS_ACPI_INTERRUPT
	int
	default 53 # GPE0_DW1_21 (GPP_C21)

config VARIANT_DIR
	default "ambassador" if BOARD_GOOGLE_AMBASSADOR
	default "dooly" if BOARD_GOOGLE_DOOLY
	default "duffy" if BOARD_GOOGLE_DUFFY
	default "duffy" if BOARD_GOOGLE_DUFFY_LEGACY
	default "faffy" if BOARD_GOOGLE_FAFFY
	default "genesis" if BOARD_GOOGLE_GENESIS
	default "kaisa" if BOARD_GOOGLE_KAISA
	default "kaisa" if BOARD_GOOGLE_KAISA_LEGACY
	default "moonbuggy" if BOARD_GOOGLE_MOONBUGGY
	default "noibat" if BOARD_GOOGLE_NOIBAT
	default "puff" if BOARD_GOOGLE_PUFF
	default "scout" if BOARD_GOOGLE_SCOUT
	default "wyvern" if BOARD_GOOGLE_WYVERN

config VBOOT
	select HAS_RECOVERY_MRC_CACHE
	select VBOOT_EARLY_EC_SYNC

config USE_PM_ACPI_TIMER
	default n

config EDK2_BOOT_TIMEOUT
	int
	default 5

endif # BOARD_GOOGLE_BASEBOARD_PUFF
