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 if SOC_INTEL_ALDERLAKE_PCH_P
	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_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 SOC_INTEL_RAPTORLAKE
	select DRIVERS_INTEL_ISH
	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_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_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_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

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

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_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

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

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

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
