# SPDX-License-Identifier: GPL-2.0-or-later

config BOARD_GOOGLE_BASEBOARD_SKYRIM
	def_bool n

if BOARD_GOOGLE_BASEBOARD_SKYRIM

config AMD_FWM_POSITION_INDEX
	int
	default 3
	help
	  TODO: might need to be adapted for better placement of files in cbfs

config BOARD_SPECIFIC_OPTIONS
	def_bool y
	select AMD_SOC_CONSOLE_UART
	select BOARD_ROMSIZE_KB_16384
	select DRIVERS_GENERIC_GPIO_KEYS
	select DRIVERS_GENERIC_MAX98357A
	select DRIVERS_I2C_GENERIC
	select DRIVERS_I2C_HID
	select DRIVERS_I2C_NAU8825
	select DRIVERS_USB_HUB
	select DRIVERS_WIFI_GENERIC
	select EC_GOOGLE_CHROMEEC
	select EC_GOOGLE_CHROMEEC_ESPI
	select EC_GOOGLE_CHROMEEC_SKUID
	select EC_GOOGLE_CHROMEEC_BOARDID
	select ELOG
	select ELOG_GSMI
	select FW_CONFIG
	select FW_CONFIG_SOURCE_CHROMEEC_CBI
	select I2C_TPM
	select MAINBOARD_HAS_CHROMEOS
	select MAINBOARD_HAS_TPM2
	select PSP_DISABLE_POSTCODES   # TODO re-enable PSP postcodes later (b/227199049)
	select SOC_AMD_SABRINA
	select SOC_AMD_COMMON_BLOCK_USE_ESPI
	select TPM_GOOGLE_TI50

config CHROMEOS
	select EC_GOOGLE_CHROMEEC_SWITCHES

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

config DRIVER_TPM_I2C_BUS
	hex
	default 0x03

config DRIVER_TPM_I2C_ADDR
	hex
	default 0x50

config FMDFILE
	default "src/mainboard/\$(CONFIG_MAINBOARD_DIR)/chromeos.fmd"

config MAINBOARD_DIR
	default "google/skyrim"

config MAINBOARD_FAMILY
	string
	default "Google_Skyrim"

config MAINBOARD_PART_NUMBER
	default "Skyrim" if BOARD_GOOGLE_SKYRIM

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

config VARIANT_DIR
	string
	default "skyrim" if BOARD_GOOGLE_SKYRIM

config VBOOT
	select VBOOT_LID_SWITCH
	select VBOOT_SEPARATE_VERSTAGE
	select VBOOT_STARTS_IN_BOOTBLOCK

# TODO: Remove once CBFS verification on AMD has been fixed.
config VBOOT_GSCVD
	bool
	default n

if !EM100	# EM100 defaults in soc/amd/common/blocks/spi/Kconfig
config EFS_SPI_READ_MODE
	default 2          # Dual IO (1-1-2)

config EFS_SPI_SPEED
	default 0	# 66MHz

config EFS_SPI_MICRON_FLAG
	default 0

config NORMAL_READ_SPI_SPEED
	default 1	# 33MHz

config ALT_SPI_SPEED
	default 0	# 66MHz

endif # !EM100

endif # BOARD_GOOGLE_BASEBOARD_SKYRIM
