config BOARD_GOOGLE_BASEBOARD_DEDEDE
	def_bool n
	select BOARD_ROMSIZE_KB_16384 if !BOARD_ROMSIZE_KB_32768
	select DPTF_USE_EISA_HID
	select DRIVERS_GENERIC_GPIO_KEYS
	select DRIVERS_I2C_GENERIC
	select DRIVERS_I2C_GPIO_MUX
	select DRIVERS_I2C_HID
	select DRIVERS_I2C_SX9324
	select DRIVERS_INTEL_DPTF
	select DRIVERS_SPI_ACPI
	select DRIVERS_USB_ACPI
	select EC_GOOGLE_CHROMEEC
	select EC_GOOGLE_CHROMEEC_BOARDID
	select EC_GOOGLE_CHROMEEC_ESPI
	select EC_GOOGLE_CHROMEEC_SKUID
	select FW_CONFIG
	select FW_CONFIG_SOURCE_CHROMEEC_CBI
	select GOOGLE_SMBIOS_MAINBOARD_VERSION
	select HAVE_ACPI_RESUME
	select HAVE_ACPI_TABLES
	select INTEL_LPSS_UART_FOR_CONSOLE
	select MAINBOARD_HAS_CHROMEOS
	select MAINBOARD_HAS_TPM2
	select SOC_INTEL_JASPERLAKE
	select SOC_INTEL_COMMON_BLOCK_DTT
	select SOC_INTEL_CSE_LITE_SKU
	select HAVE_SPD_IN_CBFS if !BOARD_GOOGLE_DEDEDE
	select DRIVERS_INTEL_MIPI_CAMERA
	select SOC_INTEL_COMMON_BLOCK_IPU
	select DRIVERS_GENERIC_ALC1015

config BOARD_GOOGLE_BASEBOARD_DEDEDE_CR50
	def_bool n
	select CR50_USE_LONG_INTERRUPT_PULSES
	select MAINBOARD_HAS_SPI_TPM_CR50
	select BOARD_GOOGLE_BASEBOARD_DEDEDE

config BOARD_GOOGLE_BASEBOARD_DEDEDE_TPM2
	def_bool n
	select MAINBOARD_HAS_LPC_TPM
	select BOARD_GOOGLE_BASEBOARD_DEDEDE

if BOARD_GOOGLE_BASEBOARD_DEDEDE

config BASEBOARD_DEDEDE_LAPTOP
	def_bool n
	select SYSTEM_TYPE_LAPTOP

config CHROMEOS
	select CHROMEOS_CSE_BOARD_RESET_OVERRIDE if BOARD_GOOGLE_BASEBOARD_DEDEDE_CR50
	select CHROMEOS_DRAM_PART_NUMBER_IN_CBI
	select EC_GOOGLE_CHROMEEC_SWITCHES
	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
	select HAS_RECOVERY_MRC_CACHE
	select VBOOT_EARLY_EC_SYNC
	select VBOOT_LID_SWITCH

config CHROMEOS_WIFI_SAR
	bool "Enable SAR options for Chrome OS build"
	depends on CHROMEOS
	select DSAR_ENABLE
	select SAR_ENABLE
	select USE_SAR

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

config DIMM_SPD_SIZE
	int
	default 512

config FMDFILE
	string
	default "src/mainboard/\$(CONFIG_MAINBOARD_DIR)/chromeos-dedede-16MiB.fmd" if BOARD_ROMSIZE_KB_16384
	default "src/mainboard/\$(CONFIG_MAINBOARD_DIR)/chromeos-dedede-32MiB.fmd" if BOARD_ROMSIZE_KB_32768

config MAINBOARD_DIR
	string
	default "google/dedede"

config MAINBOARD_FAMILY
	string
	default "Google_Dedede" if BOARD_GOOGLE_DEDEDE

config MAINBOARD_PART_NUMBER
	string
	default "Boten" if BOARD_GOOGLE_BOTEN
	default "Boten" if BOARD_GOOGLE_BOTEN_LEGACY
	default "Dedede" if BOARD_GOOGLE_DEDEDE
	default "Drawcia" if BOARD_GOOGLE_DRAWCIA
	default "Drawcia" if BOARD_GOOGLE_DRAWCIA_LEGACY
	default "Madoo" if BOARD_GOOGLE_MADOO
	default "Waddledoo" if BOARD_GOOGLE_WADDLEDOO
	default "Waddledee" if BOARD_GOOGLE_WADDLEDEE
	default "Wheelie" if BOARD_GOOGLE_WHEELIE
	default "Lalala" if BOARD_GOOGLE_LALALA
	default "Magolor" if BOARD_GOOGLE_MAGOLOR
	default "Metaknight" if BOARD_GOOGLE_METAKNIGHT
	default "Lantis" if BOARD_GOOGLE_LANTIS
	default "Galtic" if BOARD_GOOGLE_GALTIC
	default "Sasuke" if BOARD_GOOGLE_SASUKE
	default "Storo" if BOARD_GOOGLE_STORO
	default "Sasukette" if BOARD_GOOGLE_SASUKETTE
	default "Kracko" if BOARD_GOOGLE_KRACKO
	default "Blipper" if BOARD_GOOGLE_BLIPPER
	default "Cret" if BOARD_GOOGLE_CRET

config MAX_CPUS
	int
	default 4

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

config UART_FOR_CONSOLE
	int
	default 2

config VARIANT_DIR
	string
	default "boten" if BOARD_GOOGLE_BOTEN
	default "boten" if BOARD_GOOGLE_BOTEN_LEGACY
	default "dedede" if BOARD_GOOGLE_DEDEDE
	default "drawcia" if BOARD_GOOGLE_DRAWCIA
	default "drawcia" if BOARD_GOOGLE_DRAWCIA_LEGACY
	default "madoo" if BOARD_GOOGLE_MADOO
	default "waddledoo" if BOARD_GOOGLE_WADDLEDOO
	default "waddledee" if BOARD_GOOGLE_WADDLEDEE
	default "wheelie" if BOARD_GOOGLE_WHEELIE
	default "lalala" if BOARD_GOOGLE_LALALA
	default "magolor" if BOARD_GOOGLE_MAGOLOR
	default "metaknight" if BOARD_GOOGLE_METAKNIGHT
	default "lantis" if BOARD_GOOGLE_LANTIS
	default "galtic" if BOARD_GOOGLE_GALTIC
	default "sasuke" if BOARD_GOOGLE_SASUKE
	default "storo" if BOARD_GOOGLE_STORO
	default "sasukette" if BOARD_GOOGLE_SASUKETTE
	default "kracko" if BOARD_GOOGLE_KRACKO
	default "blipper" if BOARD_GOOGLE_BLIPPER
	default "cret" if BOARD_GOOGLE_CRET

endif #BOARD_GOOGLE_BASEBOARD_DEDEDE

if BOARD_GOOGLE_BASEBOARD_DEDEDE_CR50

config DRIVER_TPM_SPI_BUS
	default 0x1

config TPM_TIS_ACPI_INTERRUPT
	int
	default 4  # GPE0_DW0_4 (GPP_B4)

endif #BOARD_GOOGLE_BASEBOARD_DEDEDE_CR50

if BOARD_GOOGLE_BASEBOARD_DEDEDE_TPM2

config TPM_PIRQ
	hex
	default 0x24 # GPP_B4_IRQ

endif #BOARD_GOOGLE_BASEBOARD_DEDEDE_TPM2
