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

if BOARD_SYSTEM76_GAZE14 || BOARD_SYSTEM76_GAZE15

config BOARD_SPECIFIC_OPTIONS
	def_bool y
	select BOARD_ROMSIZE_KB_16384
	select DRIVERS_GENERIC_CBFS_SERIAL
	select DRIVERS_GENERIC_CBFS_UUID
	select DRIVERS_I2C_HID
	select EC_SYSTEM76_EC
	select EC_SYSTEM76_EC_DGPU
	select HAVE_ACPI_RESUME
	select HAVE_ACPI_TABLES
	select HAVE_CMOS_DEFAULT
	select HAVE_OPTION_TABLE
	select INTEL_GMA_HAVE_VBT
	select INTEL_LPSS_UART_FOR_CONSOLE
	select MEMORY_MAPPED_TPM
	select MAINBOARD_HAS_TPM2
	select NO_UART_ON_SUPERIO
	select SOC_INTEL_CANNONLAKE_PCH_H
	select SOC_INTEL_COFFEELAKE if BOARD_SYSTEM76_GAZE14
	select SOC_INTEL_COMETLAKE_1 if BOARD_SYSTEM76_GAZE15
	select SOC_INTEL_COMMON_BLOCK_HDA_VERB
	select SPD_READ_BY_WORD
	select SYSTEM_TYPE_LAPTOP
	select TPM_MEASURED_BOOT
	select TPM_RDRESP_NEED_DELAY

config MAINBOARD_DIR
	default "system76/gaze15"

config VARIANT_DIR
	default "gaze14" if BOARD_SYSTEM76_GAZE14
	default "gaze15" if BOARD_SYSTEM76_GAZE15

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

config MAINBOARD_PART_NUMBER
	default "gaze14" if BOARD_SYSTEM76_GAZE14
	default "gaze15" if BOARD_SYSTEM76_GAZE15

config MAINBOARD_SMBIOS_PRODUCT_NAME
	default "Gazelle"

config MAINBOARD_VERSION
	default "gaze14" if BOARD_SYSTEM76_GAZE14
	default "gaze15" if BOARD_SYSTEM76_GAZE15

config CBFS_SIZE
	default 0xa00000 if BOARD_SYSTEM76_GAZE14
	default 0xc00000

config CONSOLE_POST
	default y

config ONBOARD_VGA_IS_PRIMARY
	default y

config UART_FOR_CONSOLE
	default 2

config DIMM_MAX
	default 2

config POST_DEVICE
	default n

endif
