if BOARD_INTEL_SHADOWMOUNTAIN

config BOARD_SPECIFIC_OPTIONS
	def_bool y
	select BOARD_ROMSIZE_KB_32768
	select DRIVERS_I2C_GENERIC
	select DRIVERS_I2C_HID
	select DRIVERS_I2C_MAX98373
	select DRIVERS_INTEL_DPTF
	select DRIVERS_INTEL_PMC
	select DRIVERS_INTEL_USB4_RETIMER
	select DRIVERS_SPI_ACPI
	select DRIVERS_USB_ACPI
	select EC_GOOGLE_CHROMEEC
	select EC_GOOGLE_CHROMEEC_BOARDID
	select EC_GOOGLE_CHROMEEC_SKUID
	select EC_GOOGLE_CHROMEEC_LPC
	select HAVE_ACPI_RESUME
	select HAVE_ACPI_TABLES
	select HAVE_SPD_IN_CBFS
	select INTEL_LPSS_UART_FOR_CONSOLE
	select MAINBOARD_HAS_CHROMEOS
	select MAINBOARD_HAS_TPM2
	select PCIEXP_HOTPLUG
	select SOC_INTEL_ALDERLAKE_PCH_P
	select SOC_INTEL_CSE_LITE_SKU
	select SPI_TPM
	select TPM_GOOGLE_CR50
	select INTEL_CAR_NEM #TODO - Enable INTEL_CAR_NEM_ENHANCED

config CHROMEOS
	select GBB_FLAG_FORCE_DEV_SWITCH_ON
	select GBB_FLAG_FORCE_DEV_BOOT_USB
	select GBB_FLAG_FORCE_DEV_BOOT_ALTFW
	select GBB_FLAG_FORCE_MANUAL_RECOVERY

config VBOOT
	select EC_GOOGLE_CHROMEEC_SWITCHES
	select VBOOT_LID_SWITCH
	select HAS_RECOVERY_MRC_CACHE
	select VBOOT_EARLY_EC_SYNC

config DIMM_SPD_SIZE
	default 512

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

config MAINBOARD_DIR
	default "intel/shadowmountain"

config MAINBOARD_FAMILY
	string
	default "Intel_shadowmountain"

config MAINBOARD_PART_NUMBER
	default "shadowmountain"

config PCIEXP_HOTPLUG_BUSES
	int
	default 42

config PCIEXP_HOTPLUG_MEM
	hex
	default 0xc200000  # 194 MiB

config PCIEXP_HOTPLUG_PREFETCH_MEM
	hex
	default 0x1c000000 # 448 MiB

config DRIVER_TPM_SPI_BUS
	default 0x1

config TPM_TIS_ACPI_INTERRUPT
	int
	default 3	# GPE0_DW0_3 (GPP_C3)

endif # BOARD_INTEL_SHADOWMOUNTAIN
