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

config BOARD_GOOGLE_BASEBOARD_OCTOPUS
	def_bool n
	select BOARD_ROMSIZE_KB_16384
	select DRIVERS_GENERIC_GPIO_KEYS
	select DRIVERS_GENERIC_MAX98357A
	select DRIVERS_I2C_CS42L42
	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_SKUID
	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 NO_BOOTBLOCK_CONSOLE
	select SOC_ESPI
	select SOC_INTEL_GEMINILAKE
	select SPI_TPM
	select SYSTEM_TYPE_LAPTOP
	select TPM_GOOGLE_CR50

config BOARD_GOOGLE_AMPTON
	select BOARD_GOOGLE_BASEBOARD_OCTOPUS
	select INTEL_GMA_HAVE_VBT
	select NHLT_RT5682 if INCLUDE_NHLT_BLOBS

config BOARD_GOOGLE_BLOOG
	select BOARD_GOOGLE_BASEBOARD_OCTOPUS
	select INTEL_GMA_HAVE_VBT
	select NHLT_DA7219 if INCLUDE_NHLT_BLOBS
	select NHLT_RT5682 if INCLUDE_NHLT_BLOBS

config BOARD_GOOGLE_BOBBA
	select BOARD_GOOGLE_BASEBOARD_OCTOPUS
	select INTEL_GMA_HAVE_VBT
	select NHLT_DA7219 if INCLUDE_NHLT_BLOBS
	select NHLT_RT5682 if INCLUDE_NHLT_BLOBS

config BOARD_GOOGLE_CASTA
	select BOARD_GOOGLE_BASEBOARD_OCTOPUS
	select INTEL_GMA_HAVE_VBT
	select NHLT_DA7219 if INCLUDE_NHLT_BLOBS

config BOARD_GOOGLE_DOOD
	select BOARD_GOOGLE_BASEBOARD_OCTOPUS
	select NHLT_DA7219 if INCLUDE_NHLT_BLOBS

config BOARD_GOOGLE_FLEEX
	select BOARD_GOOGLE_BASEBOARD_OCTOPUS
	select INTEL_GMA_HAVE_VBT
	select NHLT_DA7219 if INCLUDE_NHLT_BLOBS
	select NHLT_RT5682 if INCLUDE_NHLT_BLOBS

config BOARD_GOOGLE_FOOB
	select BOARD_GOOGLE_BASEBOARD_OCTOPUS
	select NHLT_DA7219 if INCLUDE_NHLT_BLOBS

config BOARD_GOOGLE_GARG
	select BOARD_GOOGLE_BASEBOARD_OCTOPUS
	select INTEL_GMA_HAVE_VBT
	select NHLT_DA7219 if INCLUDE_NHLT_BLOBS
	select NHLT_RT5682 if INCLUDE_NHLT_BLOBS

config BOARD_GOOGLE_LICK
	select BOARD_GOOGLE_BASEBOARD_OCTOPUS
	select INTEL_GMA_HAVE_VBT
	select NHLT_DA7219 if INCLUDE_NHLT_BLOBS

config BOARD_GOOGLE_MEEP
	select BOARD_GOOGLE_BASEBOARD_OCTOPUS
	select INTEL_GMA_HAVE_VBT
	select NHLT_DA7219 if INCLUDE_NHLT_BLOBS
	select NHLT_RT5682 if INCLUDE_NHLT_BLOBS

config BOARD_GOOGLE_OCTOPUS
	select BOARD_GOOGLE_BASEBOARD_OCTOPUS

config BOARD_GOOGLE_PHASER
	select BOARD_GOOGLE_BASEBOARD_OCTOPUS
	select INTEL_GMA_HAVE_VBT
	select NHLT_DA7219 if INCLUDE_NHLT_BLOBS
	select NHLT_RT5682 if INCLUDE_NHLT_BLOBS

config BOARD_GOOGLE_YORP
	select BOARD_GOOGLE_BASEBOARD_OCTOPUS
	select INTEL_GMA_HAVE_VBT
	select NHLT_DA7219 if INCLUDE_NHLT_BLOBS

if BOARD_GOOGLE_BASEBOARD_OCTOPUS

config CHROMEOS_WIFI_SAR
	bool
	default y if CHROMEOS
	select DSAR_ENABLE
	select GEO_SAR_ENABLE
	select SAR_ENABLE
	select USE_SAR

config CHROMEOS
	select EC_GOOGLE_CHROMEEC_SWITCHES
	select HAS_RECOVERY_MRC_CACHE
	select VBOOT_LID_SWITCH

config MAINBOARD_DIR
	default "google/octopus"

config VARIANT_DIR
	default "yorp" if BOARD_GOOGLE_YORP
	default "phaser" if BOARD_GOOGLE_PHASER
	default "fleex" if BOARD_GOOGLE_FLEEX
	default "bobba" if BOARD_GOOGLE_BOBBA
	default "meep" if BOARD_GOOGLE_MEEP
	default "ampton" if BOARD_GOOGLE_AMPTON
	default "casta" if BOARD_GOOGLE_CASTA
	default "bloog" if BOARD_GOOGLE_BLOOG
	default "octopus" if BOARD_GOOGLE_OCTOPUS
	default "garg" if BOARD_GOOGLE_GARG
	default "dood" if BOARD_GOOGLE_DOOD
	default "lick" if BOARD_GOOGLE_LICK
	default "foob" if BOARD_GOOGLE_FOOB

config DEVICETREE
	default "variants/baseboard/devicetree.cb"

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

config MAINBOARD_PART_NUMBER
	default "Yorp" if BOARD_GOOGLE_YORP
	default "Phaser" if BOARD_GOOGLE_PHASER
	default "Fleex" if BOARD_GOOGLE_FLEEX
	default "Bobba" if BOARD_GOOGLE_BOBBA
	default "Meep" if BOARD_GOOGLE_MEEP
	default "Ampton" if BOARD_GOOGLE_AMPTON
	default "Casta" if BOARD_GOOGLE_CASTA
	default "Bloog" if BOARD_GOOGLE_BLOOG
	default "Octopus" if BOARD_GOOGLE_OCTOPUS
	default "Garg" if BOARD_GOOGLE_GARG
	default "Dood" if BOARD_GOOGLE_DOOD
	default "Lick" if BOARD_GOOGLE_LICK
	default "Foob" if BOARD_GOOGLE_FOOB

config MAINBOARD_FAMILY
	string
	default "Google_Octopus"

config UART_FOR_CONSOLE
	int
	default 2

config INCLUDE_NHLT_BLOBS
	bool "Include blobs for audio"
	select NHLT_DMIC_2CH_16B
	select NHLT_DMIC_4CH_16B
	select NHLT_MAX98357

config DRIVER_TPM_SPI_BUS
	default 0x1

config TPM_TIS_ACPI_INTERRUPT
	int
	default 63 # GPE0_DW1_31 (GPIO_63)

config DRAM_PART_NUM_NOT_ALWAYS_IN_CBI
	bool
	default y if BOARD_GOOGLE_BOBBA
	default y if BOARD_GOOGLE_FLEEX
	default y if BOARD_GOOGLE_MEEP
	default y if BOARD_GOOGLE_OCTOPUS
	default y if BOARD_GOOGLE_PHASER
	default y if BOARD_GOOGLE_YORP

config DRAM_PART_IN_CBI_BOARD_ID_MIN
	int
	depends on DRAM_PART_NUM_NOT_ALWAYS_IN_CBI
	default 255 if BOARD_GOOGLE_YORP
	default 2 if BOARD_GOOGLE_PHASER
	default 2 if BOARD_GOOGLE_FLEEX
	default 3 if BOARD_GOOGLE_BOBBA
	default 1 if BOARD_GOOGLE_MEEP
	default 255 if BOARD_GOOGLE_OCTOPUS

config FMDFILE
	default "src/mainboard/\$(CONFIG_MAINBOARD_DIR)/default.fmd" if !CHROMEOS

endif # BOARD_GOOGLE_OCTOPUS
