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

config ACPI_FNKEY_GEN_SCANCODE
	default 94 if BOARD_GOOGLE_XOL

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_I2C_RT5645
	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 EDK2_UFS_ENABLE if EDK2_REPO_MRCHROMEBOX
	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 CR50_RESET_CLEAR_EC_AP_IDLE_FLAG
	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

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_BASEBOARD_TRULO
	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_COMMON_MMC_OVERRIDE
	select SOC_INTEL_CSE_LITE_COMPRESS_ME_RW
	select SOC_INTEL_CSE_LITE_SYNC_IN_RAMSTAGE
	select SOC_INTEL_TWINLAKE
	select SYSTEM_TYPE_LAPTOP
	select TPM_GOOGLE_TI50

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 DRIVERS_GFX_GENERIC
	select DRIVERS_INTEL_MIPI_CAMERA
	select HAVE_WWAN_POWER_SEQUENCE
	select INTEL_GMA_HAVE_VBT
	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_GENERIC_NAU8315
	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

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
	select CHROMEOS_WIFI_SAR if CHROMEOS

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_SUNDANCE
	select BOARD_GOOGLE_BASEBOARD_NISSA
	select DRIVERS_GENERIC_GPIO_KEYS

config BOARD_GOOGLE_PUJJOGA
	select BOARD_GOOGLE_BASEBOARD_NISSA

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 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 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_GENERIC_NAU8315
	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_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_TRULO
	select BOARD_GOOGLE_BASEBOARD_TRULO

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 EC_GOOGLE_CHROMEEC_INCLUDE_SSFC_IN_FW_CONFIG
	select HAVE_WWAN_POWER_SEQUENCE
	select INTEL_GMA_HAVE_VBT

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
	default "trulo" if BOARD_GOOGLE_BASEBOARD_TRULO

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

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-16MiB-debugfsp.fmd" if CHROMEOS && (BOARD_GOOGLE_BASEBOARD_NISSA || BOARD_GOOGLE_BASEBOARD_TRULO) && BOARD_ROMSIZE_KB_16384 && BUILDING_WITH_DEBUG_FSP
	default "src/mainboard/\$(CONFIG_MAINBOARD_DIR)/chromeos-16MiB.fmd" if CHROMEOS && (BOARD_GOOGLE_BASEBOARD_NISSA || BOARD_GOOGLE_BASEBOARD_TRULO) && BOARD_ROMSIZE_KB_16384
	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
	default "Google_Trulo" if BOARD_GOOGLE_BASEBOARD_TRULO

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

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

config VBOOT
	select VBOOT_EARLY_EC_SYNC if !BOARD_GOOGLE_BASEBOARD_NISSA
	select VBOOT_LID_SWITCH

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
