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

config BOARD_GOOGLE_BRYA_COMMON
	def_bool n
	select DRIVERS_GENERIC_ALC1015
	select DRIVERS_GENERIC_GPIO_KEYS
	select DRIVERS_GENERIC_MAX98357A
	select DRIVERS_I2C_GENERIC
	select DRIVERS_I2C_HID
	select DRIVERS_I2C_NAU8825
	select DRIVERS_INTEL_DPTF
	select DRIVERS_INTEL_DPTF_SUPPORTS_TPCH
	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_WIFI_GENERIC
	select DRIVERS_WWAN_FM350GL
	select EC_GOOGLE_CHROMEEC
	select EC_GOOGLE_CHROMEEC_BOARDID
	select EC_GOOGLE_CHROMEEC_ESPI
	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_FSP_LOGO_SUPPORT if RUN_FSP_GOP
	select I2C_TPM
	select INTEL_LPSS_UART_FOR_CONSOLE
	select MAINBOARD_HAS_CHROMEOS
	select MAINBOARD_HAS_TPM2
	select PMC_IPC_ACPI_INTERFACE
	select SOC_INTEL_COMMON_BLOCK_PCIE_RTD3
	select SOC_INTEL_CSE_LITE_SKU
	select SOC_INTEL_CSE_SEND_EOP_ASYNC
	select SOC_INTEL_ENABLE_USB4_PCIE_RESOURCES if SOC_INTEL_ALDERLAKE_PCH_P
	select SOC_INTEL_COMMON_BASECODE_DEBUG_FEATURE
	select SOC_INTEL_CRASHLOG
	select SOC_INTEL_CSE_PRE_CPU_RESET_TELEMETRY_V1
	select SOC_INTEL_STORE_ISH_FW_VERSION if DRIVERS_INTEL_ISH

config BOARD_GOOGLE_BASEBOARD_BRYA
	def_bool n
	select BOARD_GOOGLE_BRYA_COMMON
	select BOARD_ROMSIZE_KB_32768
	select DRIVERS_AUDIO_SOF
	select DRIVERS_GFX_GENERIC
	select HAVE_SLP_S0_GATE
	select MEMORY_SOLDERDOWN if !BOARD_GOOGLE_BANSHEE
	select SOC_INTEL_ALDERLAKE_PCH_P
	select SYSTEM_TYPE_LAPTOP
	select TPM_GOOGLE_CR50

config BOARD_GOOGLE_BASEBOARD_BRASK
	def_bool n
	select BOARD_GOOGLE_BRYA_COMMON
	select BOARD_ROMSIZE_KB_32768
	select ENABLE_TCSS_DISPLAY_DETECTION if RUN_FSP_GOP
	select HAVE_SLP_S0_GATE
	select MEMORY_SODIMM if !BOARD_GOOGLE_CONSTITUTION
	select RT8168_GEN_ACPI_POWER_RESOURCE
	select RT8168_GET_MAC_FROM_VPD
	select RT8168_SET_LED_MODE
	select SOC_INTEL_ALDERLAKE_PCH_P
	select TPM_GOOGLE_CR50
	select CR50_RESET_CLEAR_EC_AP_IDLE_FLAG

config BOARD_GOOGLE_BASEBOARD_HADES
	def_bool n
	select BOARD_GOOGLE_BRYA_COMMON
	select BOARD_ROMSIZE_KB_32768
	select DUMP_SMBIOS_TYPE17
	select HAVE_SLP_S0_GATE
	select INCLUDE_NVIDIA_GPU_ASL
	select MEMORY_SODIMM
	select PCIEXP_SUPPORT_RESIZABLE_BARS
	select SOC_INTEL_ALDERLAKE_PCH_P
	select SOC_INTEL_RAPTORLAKE
	select SYSTEM_TYPE_LAPTOP
	select TPM_GOOGLE_CR50

config BOARD_GOOGLE_BASEBOARD_NISSA
	def_bool n
	select BOARD_GOOGLE_BRYA_COMMON
	select BOARD_ROMSIZE_KB_16384 if !BOARD_ROMSIZE_KB_32768
	select CHROMEOS_DRAM_PART_NUMBER_IN_CBI if CHROMEOS
	select DRIVERS_AUDIO_SOF
	select DRIVERS_INTEL_ISH
	select MAINBOARD_DISABLE_STAGE_CACHE
	select MEMORY_SOLDERDOWN
	select SOC_INTEL_ALDERLAKE_PCH_N
	select SOC_INTEL_CSE_LITE_COMPRESS_ME_RW
	select SOC_INTEL_CSE_LITE_SYNC_IN_RAMSTAGE
	select SYSTEM_TYPE_LAPTOP
	select TPM_GOOGLE_TI50
	select SOC_INTEL_COMMON_MMC_OVERRIDE

config BOARD_GOOGLE_AGAH
	select BOARD_GOOGLE_BASEBOARD_BRYA
	select DRIVERS_GENESYSLOGIC_GL9750
	select INCLUDE_NVIDIA_GPU_ASL
	select PCIEXP_SUPPORT_RESIZABLE_BARS
	select RT8168_GEN_ACPI_POWER_RESOURCE
	select RT8168_GET_MAC_FROM_VPD
	select RT8168_SET_LED_MODE
	select SOC_INTEL_RAPTORLAKE

config BOARD_GOOGLE_ANAHERA
	select BOARD_GOOGLE_BASEBOARD_BRYA
	select DRIVERS_GENESYSLOGIC_GL9763E
	select DRIVERS_GENESYSLOGIC_GL9750
	select HAVE_PCIE_WWAN
	select HAVE_WWAN_POWER_SEQUENCE
	select INTEL_GMA_HAVE_VBT

config BOARD_GOOGLE_ANAHERA4ES
	select BOARD_GOOGLE_BASEBOARD_BRYA
	select DEFAULT_ADL_NEM
	select DRIVERS_GENESYSLOGIC_GL9763E
	select DRIVERS_GENESYSLOGIC_GL9750
	select HAVE_PCIE_WWAN
	select HAVE_WWAN_POWER_SEQUENCE

config BOARD_GOOGLE_ANRAGGAR
	select BOARD_GOOGLE_BASEBOARD_NISSA
	select BOARD_ROMSIZE_KB_16384
	select DRIVERS_GENERIC_BAYHUB_LV2
	select DRIVERS_GENERIC_GPIO_KEYS
	select INTEL_GMA_HAVE_VBT
	select DRIVERS_INTEL_MIPI_CAMERA
	select HAVE_WWAN_POWER_SEQUENCE
	select DRIVERS_GFX_GENERIC
	select CHROMEOS_WIFI_SAR if CHROMEOS

config BOARD_GOOGLE_AURASH
	select BOARD_GOOGLE_BASEBOARD_BRASK
	select INTEL_GMA_HAVE_VBT

config BOARD_GOOGLE_BANSHEE
	select BOARD_GOOGLE_BASEBOARD_BRYA
	select CHROMEOS_WIFI_SAR if CHROMEOS
	select DRIVERS_GENERIC_GPIO_KEYS
	select INTEL_GMA_HAVE_VBT
	select MEMORY_SODIMM

config BOARD_GOOGLE_BRASK
	select BOARD_GOOGLE_BASEBOARD_BRASK
	select DRIVERS_GENESYSLOGIC_GL9755
	select INTEL_GMA_HAVE_VBT
	select SOC_INTEL_CRASHLOG

config BOARD_GOOGLE_BRYA0
	select BOARD_GOOGLE_BASEBOARD_BRYA
	select DRIVERS_GENESYSLOGIC_GL9755
	select DRIVERS_I2C_SX9324
	select DRIVERS_I2C_SX9324_SUPPORT_LEGACY_LINUX_DRIVER
	select DRIVERS_INTEL_MIPI_CAMERA
	select SOC_INTEL_COMMON_BLOCK_IPU
	select SOC_INTEL_CRASHLOG
	select SOC_INTEL_RAPTORLAKE
	select DRIVERS_GENERIC_NAU8315

config BOARD_GOOGLE_BUJIA
	select BOARD_GOOGLE_BASEBOARD_BRASK
	select SOC_INTEL_RAPTORLAKE

config BOARD_GOOGLE_CRAASK
	select BOARD_GOOGLE_BASEBOARD_NISSA
	select CHROMEOS_WIFI_SAR if CHROMEOS
	select DRIVERS_GENERIC_GPIO_KEYS
	select DRIVERS_GENESYSLOGIC_GL9750
	select DRIVERS_INTEL_MIPI_CAMERA
	select EC_GOOGLE_CHROMEEC_INCLUDE_SSFC_IN_FW_CONFIG
	select HAVE_WWAN_POWER_SEQUENCE
	select INTEL_GMA_HAVE_VBT

config BOARD_GOOGLE_CRAASKOV
	select BOARD_GOOGLE_BASEBOARD_NISSA
	select CHROMEOS_WIFI_SAR if CHROMEOS

config BOARD_GOOGLE_CONSTITUTION
	select BOARD_GOOGLE_BASEBOARD_BRASK
	select CHROMEOS_WIFI_SAR if CHROMEOS
	select MEMORY_SOLDERDOWN
	select SOC_INTEL_RAPTORLAKE

config BOARD_GOOGLE_CROTA
	select BOARD_GOOGLE_BASEBOARD_BRYA
	select CHROMEOS_WIFI_SAR if CHROMEOS
	select DRIVERS_GENESYSLOGIC_GL9750
	select DRIVERS_I2C_CS42L42
	select HAVE_WWAN_POWER_SEQUENCE
	select INTEL_GMA_HAVE_VBT
	select SOC_INTEL_RAPTORLAKE

config BOARD_GOOGLE_DOCHI
	select BOARD_GOOGLE_BASEBOARD_BRYA
	select CHROMEOS_WIFI_SAR if CHROMEOS
	select DRIVERS_INTEL_ISH
	select SOC_INTEL_RAPTORLAKE
	select USE_UNIFIED_AP_FIRMWARE_FOR_UFS_AND_NON_UFS

config BOARD_GOOGLE_FELWINTER
	select BOARD_GOOGLE_BASEBOARD_BRYA
	select CHROMEOS_WIFI_SAR if CHROMEOS
	select DRIVERS_GENERIC_GPIO_KEYS
	select DRIVERS_GENESYSLOGIC_GL9755
	select INTEL_GMA_HAVE_VBT

config BOARD_GOOGLE_GAELIN
	select BOARD_GOOGLE_BASEBOARD_BRASK
	select SOC_INTEL_RAPTORLAKE

config BOARD_GOOGLE_GIMBLE
	select BOARD_GOOGLE_BASEBOARD_BRYA
	select DRIVERS_GENESYSLOGIC_GL9750
	select DRIVERS_I2C_MAX98390
	select GOOGLE_DSM_CALIB if VPD
	select GOOGLE_DSM_PARAM_FILE_NAME if VPD
	select INTEL_GMA_HAVE_VBT

config BOARD_GOOGLE_GIMBLE4ES
	select BOARD_GOOGLE_BASEBOARD_BRYA
	select DEFAULT_ADL_NEM
	select DRIVERS_GENESYSLOGIC_GL9750
	select DRIVERS_I2C_MAX98390
	select GOOGLE_DSM_CALIB if VPD
	select GOOGLE_DSM_PARAM_FILE_NAME if VPD

config BOARD_GOOGLE_GLADIOS
	select BOARD_GOOGLE_BASEBOARD_BRASK
	select CHROMEOS_WIFI_SAR if CHROMEOS
	select DRIVERS_GENESYSLOGIC_GL9763E
	select DRIVERS_GENESYSLOGIC_GL9750
	select INTEL_GMA_HAVE_VBT
	select SOC_INTEL_RAPTORLAKE

config BOARD_GOOGLE_GLASSWAY
	select BOARD_GOOGLE_BASEBOARD_NISSA
	select DRIVERS_GENERIC_GPIO_KEYS
	select DRIVERS_GENESYSLOGIC_GL9750
	select EC_GOOGLE_CHROMEEC_INCLUDE_SSFC_IN_FW_CONFIG

config BOARD_GOOGLE_GOTHRAX
	select BOARD_GOOGLE_BASEBOARD_NISSA
	select DRIVERS_GENERIC_GPIO_KEYS
	select DRIVERS_GENESYSLOGIC_GL9750
	select DRIVERS_I2C_SX9324
	select DRIVERS_I2C_SX9324_SUPPORT_LEGACY_LINUX_DRIVER
	select HAVE_WWAN_POWER_SEQUENCE

config BOARD_GOOGLE_HADES
	select BOARD_GOOGLE_BASEBOARD_HADES
	select DRIVERS_GENESYSLOGIC_GL9755
	select RT8168_GEN_ACPI_POWER_RESOURCE
	select RT8168_GET_MAC_FROM_VPD
	select RT8168_SET_LED_MODE

config BOARD_GOOGLE_KANO
	select BOARD_GOOGLE_BASEBOARD_BRYA
	select CHROMEOS_WIFI_SAR if CHROMEOS
	select DRIVERS_I2C_MAX98373
	select DRIVERS_I2C_NAU8825
	select DRIVERS_INTEL_MIPI_CAMERA
	select EC_GOOGLE_CHROMEEC_INCLUDE_SSFC_IN_FW_CONFIG
	select INTEL_GMA_HAVE_VBT
	select SOC_INTEL_COMMON_BLOCK_IPU
	select SOC_INTEL_RAPTORLAKE

config BOARD_GOOGLE_KINOX
	select BOARD_GOOGLE_BASEBOARD_BRASK
	select INTEL_GMA_HAVE_VBT

config BOARD_GOOGLE_KULDAX
	select BOARD_GOOGLE_BASEBOARD_BRASK
	select CHROMEOS_WIFI_SAR if CHROMEOS
	select DRIVERS_GENESYSLOGIC_GL9755
	select EC_GOOGLE_CHROMEEC_INCLUDE_SSFC_IN_FW_CONFIG
	select INTEL_GMA_HAVE_VBT
	select SOC_INTEL_RAPTORLAKE

config BOARD_GOOGLE_JOXER
	select BOARD_GOOGLE_BASEBOARD_NISSA
	select CHROMEOS_WIFI_SAR if CHROMEOS
	select DRIVERS_GENESYSLOGIC_GL9750
	select INTEL_GMA_HAVE_VBT

config BOARD_GOOGLE_LISBON
	select BOARD_GOOGLE_BASEBOARD_BRASK
	select CHROMEOS_WIFI_SAR if CHROMEOS
	select DRIVERS_GENESYSLOGIC_GL9750
	select DRIVERS_GENESYSLOGIC_GL9763E
	select INTEL_GMA_HAVE_VBT
	select SOC_INTEL_RAPTORLAKE

config BOARD_GOOGLE_MARASOV
	select BOARD_GOOGLE_BASEBOARD_BRYA
	select CHROMEOS_WIFI_SAR if CHROMEOS
	select DRIVERS_INTEL_ISH
	select SOC_INTEL_RAPTORLAKE
	select USE_UNIFIED_AP_FIRMWARE_FOR_UFS_AND_NON_UFS

config BOARD_GOOGLE_MITHRAX
	select BOARD_GOOGLE_BASEBOARD_BRYA
	select CHROMEOS_WIFI_SAR if CHROMEOS
	select DRIVERS_GENERIC_GPIO_KEYS
	select DRIVERS_GENESYSLOGIC_GL9755
	select INTEL_GMA_HAVE_VBT

config BOARD_GOOGLE_MOLI
	select BOARD_GOOGLE_BASEBOARD_BRASK
	select INTEL_GMA_HAVE_VBT

config BOARD_GOOGLE_NIVVIKS
	select BOARD_GOOGLE_BASEBOARD_NISSA
	select BOARD_ROMSIZE_KB_32768
	select DRIVERS_GENERIC_GPIO_KEYS
	select DRIVERS_GENESYSLOGIC_GL9750
	select DRIVERS_I2C_SX9324
	select DRIVERS_I2C_SX9324_SUPPORT_LEGACY_LINUX_DRIVER
	select DRIVERS_INTEL_MIPI_CAMERA
	select HAVE_WWAN_POWER_SEQUENCE
	select INTEL_GMA_HAVE_VBT

config BOARD_GOOGLE_NEREID
	select BOARD_GOOGLE_BASEBOARD_NISSA
	select BOARD_ROMSIZE_KB_32768
	select DRIVERS_GENERIC_BAYHUB_LV2
	select DRIVERS_GENERIC_GPIO_KEYS
	select INTEL_GMA_HAVE_VBT

config BOARD_GOOGLE_NOKRIS
	select BOARD_GOOGLE_BASEBOARD_NISSA

config BOARD_GOOGLE_NOVA
	select BOARD_GOOGLE_BASEBOARD_BRASK
	select SOC_INTEL_RAPTORLAKE

config BOARD_GOOGLE_OMNIGUL
	select BOARD_GOOGLE_BASEBOARD_BRYA
	select CHROMEOS_WIFI_SAR if CHROMEOS
	select DRIVERS_INTEL_ISH
	select SOC_INTEL_RAPTORLAKE
	select USE_UNIFIED_AP_FIRMWARE_FOR_UFS_AND_NON_UFS

config BOARD_GOOGLE_OSIRIS
	select BOARD_GOOGLE_BASEBOARD_BRYA
	select CHROMEOS_WIFI_SAR if CHROMEOS
	select EC_GOOGLE_CHROMEEC_INCLUDE_SSFC_IN_FW_CONFIG
	select INTEL_GMA_HAVE_VBT
	select RT8168_GEN_ACPI_POWER_RESOURCE
	select RT8168_GET_MAC_FROM_VPD
	select RT8168_SET_LED_MODE
	select SOC_INTEL_RAPTORLAKE

config BOARD_GOOGLE_PIRRHA
	select BOARD_GOOGLE_BASEBOARD_NISSA
	select DRIVERS_INTEL_MIPI_CAMERA
	select DRIVERS_I2C_DA7219

config BOARD_GOOGLE_PRIMUS
	select BOARD_GOOGLE_BASEBOARD_BRYA
	select DRIVERS_GENESYSLOGIC_GL9755
	select HAVE_PCIE_WWAN
	select HAVE_WWAN_POWER_SEQUENCE
	select INTEL_GMA_HAVE_VBT

config BOARD_GOOGLE_PUJJO
	select BOARD_GOOGLE_BASEBOARD_NISSA
	select CHROMEOS_WIFI_SAR if CHROMEOS
	select DRIVERS_GENERIC_BAYHUB_LV2
	select DRIVERS_GENERIC_GPIO_KEYS
	select DRIVERS_GENESYSLOGIC_GL9750
	select DRIVERS_I2C_SX9324
	select DRIVERS_I2C_SX9324_SUPPORT_LEGACY_LINUX_DRIVER
	select DRIVERS_WWAN_FM350GL
	select HAVE_PCIE_WWAN
	select HAVE_WWAN_POWER_SEQUENCE
	select INTEL_GMA_HAVE_VBT

config BOARD_GOOGLE_QUANDISO
	select BOARD_GOOGLE_BASEBOARD_NISSA
	select CHROMEOS_WIFI_SAR if CHROMEOS
	select DRIVERS_GENESYSLOGIC_GL9750
	select DRIVERS_GENERIC_GPIO_KEYS
	select DRIVERS_I2C_SX9324
	select HAVE_WWAN_POWER_SEQUENCE
	select INTEL_GMA_HAVE_VBT

config BOARD_GOOGLE_REDRIX
	select BOARD_GOOGLE_BASEBOARD_BRYA
	select GOOGLE_DSM_CALIB if VPD
	select DRIVERS_GENESYSLOGIC_GL9755
	select DRIVERS_I2C_MAX98390
	select DRIVERS_INTEL_MIPI_CAMERA
	select EC_GOOGLE_CHROMEEC_INCLUDE_SSFC_IN_FW_CONFIG
	select GOOGLE_DSM_PARAM_FILE_NAME if VPD
	select INTEL_GMA_HAVE_VBT
	select SOC_INTEL_COMMON_BLOCK_IPU

config BOARD_GOOGLE_REDRIX4ES
	select BOARD_GOOGLE_BASEBOARD_BRYA
	select DEFAULT_ADL_NEM
	select DRIVERS_GENESYSLOGIC_GL9755
	select DRIVERS_I2C_MAX98390
	select DRIVERS_INTEL_MIPI_CAMERA
	select EC_GOOGLE_CHROMEEC_INCLUDE_SSFC_IN_FW_CONFIG
	select GOOGLE_DSM_CALIB if VPD
	select GOOGLE_DSM_PARAM_FILE_NAME if VPD
	select SOC_INTEL_COMMON_BLOCK_IPU

config BOARD_GOOGLE_SKOLAS
	select BOARD_GOOGLE_BASEBOARD_BRYA
	select DRIVERS_GENESYSLOGIC_GL9755
	select DRIVERS_INTEL_MIPI_CAMERA
	select DRIVERS_I2C_SX9324
	select DRIVERS_I2C_SX9324_SUPPORT_LEGACY_LINUX_DRIVER
	select INTEL_GMA_HAVE_VBT
	select SOC_INTEL_COMMON_BLOCK_IPU
	select SOC_INTEL_RAPTORLAKE
	select DRIVERS_GENERIC_NAU8315

config BOARD_GOOGLE_SKOLAS4ES
	select BOARD_GOOGLE_BASEBOARD_BRYA
	select DEFAULT_ADL_NEM
	select DRIVERS_GENESYSLOGIC_GL9755
	select DRIVERS_INTEL_MIPI_CAMERA
	select DRIVERS_I2C_SX9324
	select DRIVERS_I2C_SX9324_SUPPORT_LEGACY_LINUX_DRIVER
	select INTEL_GMA_HAVE_VBT
	select SOC_INTEL_COMMON_BLOCK_IPU
	select SOC_INTEL_RAPTORLAKE

config BOARD_GOOGLE_TAEKO
	select BOARD_GOOGLE_BASEBOARD_BRYA
	select CHROMEOS_WIFI_SAR if CHROMEOS
	select DRIVERS_GENERIC_BAYHUB_LV2
	select DRIVERS_GENESYSLOGIC_GL9750
	select DRIVERS_GENESYSLOGIC_GL9763E
	select DRIVERS_GENESYSLOGIC_GL9763E_L1_MAX if DRIVERS_GENESYSLOGIC_GL9763E
	select INTEL_GMA_HAVE_VBT
	select SOC_INTEL_RAPTORLAKE

config BOARD_GOOGLE_TAEKO4ES
	select BOARD_GOOGLE_BASEBOARD_BRYA
	select CHROMEOS_WIFI_SAR if CHROMEOS
	select DEFAULT_ADL_NEM
	select DRIVERS_GENERIC_BAYHUB_LV2
	select DRIVERS_GENESYSLOGIC_GL9750
	select DRIVERS_GENESYSLOGIC_GL9763E

config BOARD_GOOGLE_TANIKS
	select BOARD_GOOGLE_BASEBOARD_BRYA
	select CHROMEOS_WIFI_SAR if CHROMEOS
	select DRIVERS_GENERIC_BAYHUB_LV2
	select DRIVERS_GENESYSLOGIC_GL9750
	select DRIVERS_GENESYSLOGIC_GL9763E
	select DRIVERS_GENESYSLOGIC_GL9763E_L1_MAX
	select INTEL_GMA_HAVE_VBT

config BOARD_GOOGLE_TIVVIKS
	select BOARD_GOOGLE_BASEBOARD_NISSA
	select BOARD_ROMSIZE_KB_32768
	select DRIVERS_GENERIC_GPIO_KEYS
	select DRIVERS_GENESYSLOGIC_GL9750
	select DRIVERS_I2C_SX9324
	select DRIVERS_I2C_SX9324_SUPPORT_LEGACY_LINUX_DRIVER
	select DRIVERS_INTEL_MIPI_CAMERA
	select HAVE_WWAN_POWER_SEQUENCE
	select INTEL_GMA_HAVE_VBT
	select SOC_INTEL_TWINLAKE

config BOARD_GOOGLE_ULDREN
	select BOARD_GOOGLE_BASEBOARD_NISSA
	select CHROMEOS_WIFI_SAR if CHROMEOS
	select DRIVERS_I2C_CS42L42
	select HAVE_WWAN_POWER_SEQUENCE

config BOARD_GOOGLE_VELL
	select BOARD_GOOGLE_BASEBOARD_BRYA
	select CHROMEOS_WIFI_SAR if CHROMEOS
	select DRIVERS_INTEL_MIPI_CAMERA
	select DRIVERS_I2C_CS35L53
	select SOC_INTEL_COMMON_BLOCK_IPU

config BOARD_GOOGLE_VOLMAR
	select BOARD_GOOGLE_BASEBOARD_BRYA
	select CHROMEOS_WIFI_SAR if CHROMEOS
	select EC_GOOGLE_CHROMEEC_INCLUDE_SSFC_IN_FW_CONFIG
	select DRIVERS_I2C_MAX98373
	select DRIVERS_I2C_NAU8825
	select INTEL_GMA_HAVE_VBT

config BOARD_GOOGLE_XIVU
	select BOARD_GOOGLE_BASEBOARD_NISSA
	select DRIVERS_GENERIC_GPIO_KEYS
	select DRIVERS_GENESYSLOGIC_GL9750
	select DRIVERS_INTEL_MIPI_CAMERA
	select INTEL_GMA_HAVE_VBT

config BOARD_GOOGLE_XOL
	select BOARD_GOOGLE_BASEBOARD_BRYA
	select DRIVERS_I2C_DA7219
	select DRIVERS_INTEL_ISH
	select SOC_INTEL_RAPTORLAKE
	select USE_UNIFIED_AP_FIRMWARE_FOR_UFS_AND_NON_UFS

config BOARD_GOOGLE_YAVIKS
	select BOARD_GOOGLE_BASEBOARD_NISSA
	select CHROMEOS_WIFI_SAR if CHROMEOS
	select DRIVERS_GENESYSLOGIC_GL9750
	select DRIVERS_GENERIC_GPIO_KEYS
	select DRIVERS_INTEL_MIPI_CAMERA
	select DRIVERS_MTK_WIFI
	select EC_GOOGLE_CHROMEEC_INCLUDE_SSFC_IN_FW_CONFIG
	select HAVE_WWAN_POWER_SEQUENCE
	select INTEL_GMA_HAVE_VBT
	select USE_MTCL

config BOARD_GOOGLE_YAVILLA
	select BOARD_GOOGLE_BASEBOARD_NISSA
	select CHROMEOS_WIFI_SAR if CHROMEOS
	select DRIVERS_GENERIC_GPIO_KEYS
	select DRIVERS_INTEL_MIPI_CAMERA
	select HAVE_WWAN_POWER_SEQUENCE
	select INTEL_GMA_HAVE_VBT
	select EC_GOOGLE_CHROMEEC_INCLUDE_SSFC_IN_FW_CONFIG

config BOARD_GOOGLE_YAVISTA
	select BOARD_GOOGLE_BASEBOARD_NISSA

config BOARD_GOOGLE_ZYDRON
	select BOARD_GOOGLE_BASEBOARD_BRYA
	select CHROMEOS_WIFI_SAR if CHROMEOS
	select DEFAULT_ADL_NEM
	select DRIVERS_I2C_MAX98373
	select DRIVERS_I2C_NAU8825
	select DRIVERS_INTEL_MIPI_CAMERA
	select EC_GOOGLE_CHROMEEC_INCLUDE_SSFC_IN_FW_CONFIG
	select SOC_INTEL_COMMON_BLOCK_IPU
	select SOC_INTEL_RAPTORLAKE

if BOARD_GOOGLE_BRYA_COMMON

config BASEBOARD_DIR
	string
	default "brya" if BOARD_GOOGLE_BASEBOARD_BRYA
	default "brask" if BOARD_GOOGLE_BASEBOARD_BRASK
	default "hades" if BOARD_GOOGLE_BASEBOARD_HADES
	default "nissa" if BOARD_GOOGLE_BASEBOARD_NISSA

config CHROMEOS
	select EC_GOOGLE_CHROMEEC_SWITCHES
	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 DRIVER_TPM_I2C_BUS
	hex
	default 0x1 if BOARD_GOOGLE_BRYA0
	default 0x1 if BOARD_GOOGLE_BRASK
	default 0x1 if BOARD_GOOGLE_PRIMUS
	default 0x1 if BOARD_GOOGLE_GIMBLE
	default 0x3 if BOARD_GOOGLE_GIMBLE4ES
	default 0x1 if BOARD_GOOGLE_REDRIX
	default 0x3 if BOARD_GOOGLE_REDRIX4ES
	default 0x1 if BOARD_GOOGLE_KANO
	default 0x1 if BOARD_GOOGLE_TAEKO
	default 0x3 if BOARD_GOOGLE_TAEKO4ES
	default 0x1 if BOARD_GOOGLE_FELWINTER
	default 0x1 if BOARD_GOOGLE_ANAHERA
	default 0x3 if BOARD_GOOGLE_ANAHERA4ES
	default 0x1 if BOARD_GOOGLE_VELL
	default 0x1 if BOARD_GOOGLE_TANIKS
	default 0x0 if BOARD_GOOGLE_NIVVIKS
	default 0x0 if BOARD_GOOGLE_NEREID
	default 0x3 if BOARD_GOOGLE_AGAH
	default 0x1 if BOARD_GOOGLE_VOLMAR
	default 0x1 if BOARD_GOOGLE_BANSHEE
	default 0x1 if BOARD_GOOGLE_KINOX
	default 0x0 if BOARD_GOOGLE_CRAASK
	default 0x1 if BOARD_GOOGLE_CROTA
	default 0x1 if BOARD_GOOGLE_MOLI
	default 0x1 if BOARD_GOOGLE_OSIRIS
	default 0x1 if BOARD_GOOGLE_MITHRAX
	default 0x1 if BOARD_GOOGLE_KULDAX
	default 0x1 if BOARD_GOOGLE_SKOLAS
	default 0x1 if BOARD_GOOGLE_SKOLAS4ES
	default 0x0 if BOARD_GOOGLE_JOXER
	default 0x0 if BOARD_GOOGLE_PUJJO
	default 0x0 if BOARD_GOOGLE_XIVU
	default 0x0 if BOARD_GOOGLE_YAVIKS
	default 0x1 if BOARD_GOOGLE_ZYDRON
	default 0x1 if BOARD_GOOGLE_LISBON
	default 0x1 if BOARD_GOOGLE_GLADIOS
	default 0x1 if BOARD_GOOGLE_MARASOV
	default 0x1 if BOARD_GOOGLE_GAELIN
	default 0x1 if BOARD_GOOGLE_OMNIGUL
	default 0x1 if BOARD_GOOGLE_CONSTITUTION
	default 0x1 if BOARD_GOOGLE_AURASH
	default 0x3 if BOARD_GOOGLE_HADES
	default 0x0 if BOARD_GOOGLE_YAVILLA
	default 0x0 if BOARD_GOOGLE_ULDREN
	default 0x0 if BOARD_GOOGLE_CRAASKOV
	default 0x0 if BOARD_GOOGLE_GOTHRAX
	default 0x0 if BOARD_GOOGLE_PIRRHA
	default 0x1 if BOARD_GOOGLE_DOCHI
	default 0x0 if BOARD_GOOGLE_QUANDISO
	default 0x0 if BOARD_GOOGLE_ANRAGGAR
	default 0x1 if BOARD_GOOGLE_XOL
	default 0x0 if BOARD_GOOGLE_GLASSWAY
	default 0x1 if BOARD_GOOGLE_NOVA
	default 0x1 if BOARD_GOOGLE_BUJIA
	default 0x0 if BOARD_GOOGLE_TIVVIKS

config DRIVER_TPM_I2C_ADDR
	hex
	default 0x50

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

config TPM_TIS_ACPI_INTERRUPT
	int
	default 13 if !BOARD_GOOGLE_BASEBOARD_HADES # GPE0_DW0_13 (GPP_A13_IRQ)
	default 20 if BOARD_GOOGLE_BASEBOARD_HADES # GPE0_DW0_20 (GPP_A20_IRQ)

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

config MAINBOARD_DIR
	default "google/brya"

config MAINBOARD_FAMILY
	string
	default "Google_Brya" if BOARD_GOOGLE_BASEBOARD_BRYA
	default "Google_Brask" if BOARD_GOOGLE_BASEBOARD_BRASK
	default "Google_Hades" if BOARD_GOOGLE_BASEBOARD_HADES
	default "Google_Nissa" if BOARD_GOOGLE_BASEBOARD_NISSA

config MAINBOARD_PART_NUMBER
	default "Brya" if BOARD_GOOGLE_BRYA0
	default "Brask" if BOARD_GOOGLE_BRASK
	default "Primus" if BOARD_GOOGLE_PRIMUS
	default "Gimble" if BOARD_GOOGLE_GIMBLE
	default "Gimble4ES" if BOARD_GOOGLE_GIMBLE4ES
	default "Redrix" if BOARD_GOOGLE_REDRIX
	default "Redrix4ES" if BOARD_GOOGLE_REDRIX4ES
	default "Kano" if BOARD_GOOGLE_KANO
	default "Taeko" if BOARD_GOOGLE_TAEKO
	default "Taeko4ES" if BOARD_GOOGLE_TAEKO4ES
	default "Felwinter" if BOARD_GOOGLE_FELWINTER
	default "Anahera" if BOARD_GOOGLE_ANAHERA
	default "Anahera4ES" if BOARD_GOOGLE_ANAHERA4ES
	default "Vell" if BOARD_GOOGLE_VELL
	default "Taniks" if BOARD_GOOGLE_TANIKS
	default "Nivviks" if BOARD_GOOGLE_NIVVIKS
	default "Nereid" if BOARD_GOOGLE_NEREID
	default "Agah" if BOARD_GOOGLE_AGAH
	default "Volmar" if BOARD_GOOGLE_VOLMAR
	default "Banshee" if BOARD_GOOGLE_BANSHEE
	default "Crota" if BOARD_GOOGLE_CROTA
	default "Moli" if BOARD_GOOGLE_MOLI
	default "Kinox" if BOARD_GOOGLE_KINOX
	default "Craask" if BOARD_GOOGLE_CRAASK
	default "Osiris" if BOARD_GOOGLE_OSIRIS
	default "Mithrax" if BOARD_GOOGLE_MITHRAX
	default "Kuldax" if BOARD_GOOGLE_KULDAX
	default "Skolas" if BOARD_GOOGLE_SKOLAS
	default "Skolas4ES" if BOARD_GOOGLE_SKOLAS4ES
	default "Joxer" if BOARD_GOOGLE_JOXER
	default "Pujjo" if BOARD_GOOGLE_PUJJO
	default "Xivu" if BOARD_GOOGLE_XIVU
	default "Gaelin" if BOARD_GOOGLE_GAELIN
	default "Yaviks" if BOARD_GOOGLE_YAVIKS
	default "Lisbon" if BOARD_GOOGLE_LISBON
	default "Zydron" if BOARD_GOOGLE_ZYDRON
	default "Gladios" if BOARD_GOOGLE_GLADIOS
	default "Marasov" if BOARD_GOOGLE_MARASOV
	default "Omnigul" if BOARD_GOOGLE_OMNIGUL
	default "Constitution" if BOARD_GOOGLE_CONSTITUTION
	default "Aurash" if BOARD_GOOGLE_AURASH
	default "Hades" if BOARD_GOOGLE_HADES
	default "Uldren" if BOARD_GOOGLE_ULDREN
	default "Yavilla" if BOARD_GOOGLE_YAVILLA
	default "Gothrax" if BOARD_GOOGLE_GOTHRAX
	default "Craaskov" if BOARD_GOOGLE_CRAASKOV
	default "Pirrha" if BOARD_GOOGLE_PIRRHA
	default "Quandiso" if BOARD_GOOGLE_QUANDISO
	default "Nokris" if BOARD_GOOGLE_NOKRIS
	default "Dochi" if BOARD_GOOGLE_DOCHI
	default "Anraggar" if BOARD_GOOGLE_ANRAGGAR
	default "Xol" if BOARD_GOOGLE_XOL
	default "Glassway" if BOARD_GOOGLE_GLASSWAY
	default "Nova" if BOARD_GOOGLE_NOVA
	default "Bujia" if BOARD_GOOGLE_BUJIA
	default "Tivviks" if BOARD_GOOGLE_TIVVIKS
	default "Yavista" if BOARD_GOOGLE_YAVISTA

config VARIANT_DIR
	default "brya0" if BOARD_GOOGLE_BRYA0
	default "brask" if BOARD_GOOGLE_BRASK
	default "primus" if BOARD_GOOGLE_PRIMUS
	default "gimble" if BOARD_GOOGLE_GIMBLE
	default "gimble4es" if BOARD_GOOGLE_GIMBLE4ES
	default "redrix" if BOARD_GOOGLE_REDRIX
	default "redrix4es" if BOARD_GOOGLE_REDRIX4ES
	default "kano" if BOARD_GOOGLE_KANO
	default "taeko" if BOARD_GOOGLE_TAEKO
	default "taeko4es" if BOARD_GOOGLE_TAEKO4ES
	default "felwinter" if BOARD_GOOGLE_FELWINTER
	default "anahera" if BOARD_GOOGLE_ANAHERA
	default "anahera4es" if BOARD_GOOGLE_ANAHERA4ES
	default "vell" if BOARD_GOOGLE_VELL
	default "taniks" if BOARD_GOOGLE_TANIKS
	default "nivviks" if BOARD_GOOGLE_NIVVIKS
	default "nereid" if BOARD_GOOGLE_NEREID
	default "agah" if BOARD_GOOGLE_AGAH
	default "volmar" if BOARD_GOOGLE_VOLMAR
	default "banshee" if BOARD_GOOGLE_BANSHEE
	default "crota" if BOARD_GOOGLE_CROTA
	default "moli" if BOARD_GOOGLE_MOLI
	default "kinox" if BOARD_GOOGLE_KINOX
	default "craask" if BOARD_GOOGLE_CRAASK
	default "osiris" if BOARD_GOOGLE_OSIRIS
	default "mithrax" if BOARD_GOOGLE_MITHRAX
	default "kuldax" if BOARD_GOOGLE_KULDAX
	default "skolas" if BOARD_GOOGLE_SKOLAS
	default "skolas4es" if BOARD_GOOGLE_SKOLAS4ES
	default "joxer" if BOARD_GOOGLE_JOXER
	default "pujjo" if BOARD_GOOGLE_PUJJO
	default "xivu" if BOARD_GOOGLE_XIVU
	default "gaelin" if BOARD_GOOGLE_GAELIN
	default "yaviks" if BOARD_GOOGLE_YAVIKS
	default "lisbon" if BOARD_GOOGLE_LISBON
	default "zydron" if BOARD_GOOGLE_ZYDRON
	default "gladios" if BOARD_GOOGLE_GLADIOS
	default "marasov" if BOARD_GOOGLE_MARASOV
	default "omnigul" if BOARD_GOOGLE_OMNIGUL
	default "constitution" if BOARD_GOOGLE_CONSTITUTION
	default "aurash" if BOARD_GOOGLE_AURASH
	default "hades" if BOARD_GOOGLE_HADES
	default "uldren" if BOARD_GOOGLE_ULDREN
	default "yavilla" if BOARD_GOOGLE_YAVILLA
	default "gothrax" if BOARD_GOOGLE_GOTHRAX
	default "craaskov" if BOARD_GOOGLE_CRAASKOV
	default "pirrha" if BOARD_GOOGLE_PIRRHA
	default "quandiso" if BOARD_GOOGLE_QUANDISO
	default "nokris" if BOARD_GOOGLE_NOKRIS
	default "dochi" if BOARD_GOOGLE_DOCHI
	default "anraggar" if BOARD_GOOGLE_ANRAGGAR
	default "xol" if BOARD_GOOGLE_XOL
	default "glassway" if BOARD_GOOGLE_GLASSWAY
	default "nova" if BOARD_GOOGLE_NOVA
	default "bujia" if BOARD_GOOGLE_BUJIA
	default "nivviks" if BOARD_GOOGLE_TIVVIKS
	default "yavista" if BOARD_GOOGLE_YAVISTA

config VBOOT
	select VBOOT_EARLY_EC_SYNC if !BOARD_GOOGLE_BASEBOARD_NISSA
	select VBOOT_LID_SWITCH

config DIMM_SPD_SIZE
	default 512

config UART_FOR_CONSOLE
	int
	default 0

config HAVE_WWAN_POWER_SEQUENCE
	def_bool n
	help
	  Select this if the variant has a WWAN module and requires the poweroff sequence
	  to be performed on shutdown. Must define WWAN_FCPO, WWAN_RST and WWAN_PERST GPIOs
	  in variant.h, as well as T1_OFF_MS (time between PERST & RST) and T2_OFF_MS (time
	  between RST and FCPO). WWAN_PERST and T1_OFF_MS are only necessary for PCIe WWAN
	  (when HAVE_PCIE_WWAN is also selected).

config HAVE_PCIE_WWAN
	def_bool n

config USE_PM_ACPI_TIMER
	default n

config DEFAULT_ADL_NEM
	bool
	help
	  Brya variants with Alder Lake ESx silicon to choose this config
	  as eNEM was fuse disable till ESx silicon revision.

choice
	prompt "Cache as RAM (CAR) setup configuration to use"
	default USE_ADL_NEM if DEFAULT_ADL_NEM
	default USE_ADL_ENEM

config USE_ADL_ENEM
	bool "eNEM: when selected, the variant will use eNEM instead of regular NEM."
	select INTEL_CAR_NEM_ENHANCED

config USE_ADL_NEM
	bool "NEM: when selected, the variant will use regular NEM."
	select INTEL_CAR_NEM

endchoice

config MEMORY_SODIMM
	def_bool n
	select SPD_CACHE_ENABLE
	select SPD_CACHE_IN_FMAP

config MEMORY_SOLDERDOWN
	def_bool n
	select CHROMEOS_DRAM_PART_NUMBER_IN_CBI if CHROMEOS
	select HAVE_SPD_IN_CBFS

config HAVE_SLP_S0_GATE
	def_bool n

config INCLUDE_NVIDIA_GPU_ASL
	def_bool n
	help
	  Select this if the variant has an Nvidia GN20 GPU attached to PEG1

config PCIEXP_DEFAULT_MAX_RESIZABLE_BAR_BITS
	int
	default 33

endif # BOARD_GOOGLE_BRYA_COMMON
