if BOARD_SYSTEM76_GALP3_C || BOARD_SYSTEM76_DARP5

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_COLOR_KEYBOARD if BOARD_SYSTEM76_DARP5
	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 PCIEXP_HOTPLUG
	select PCIEXP_HOTPLUG_PREFETCH_MEM_BELOW_4G # Fix running out of MTRRs
	select SOC_INTEL_COMMON_BLOCK_HDA_VERB
	select SOC_INTEL_WHISKEYLAKE
	select SPD_READ_BY_WORD
	select SYSTEM_TYPE_LAPTOP
	select TPM_MEASURED_BOOT
	select TPM_RDRESP_NEED_DELAY

config MAINBOARD_DIR
	default "system76/whl-u"

config VARIANT_DIR
	default "galp3-c" if BOARD_SYSTEM76_GALP3_C
	default "darp5" if BOARD_SYSTEM76_DARP5

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

config MAINBOARD_PART_NUMBER
	default "galp3-c" if BOARD_SYSTEM76_GALP3_C
	default "darp5" if BOARD_SYSTEM76_DARP5

config MAINBOARD_SMBIOS_PRODUCT_NAME
	string
	default "Galago Pro" if BOARD_SYSTEM76_GALP3_C
	default "Darter Pro" if BOARD_SYSTEM76_DARP5

config MAINBOARD_VERSION
	string
	default "galp3-c" if BOARD_SYSTEM76_GALP3_C
	default "darp5" if BOARD_SYSTEM76_DARP5

config CBFS_SIZE
	default 0xA00000

config CONSOLE_POST
	bool
	default y

config ONBOARD_VGA_IS_PRIMARY
	bool
	default y

config UART_FOR_CONSOLE
	int
	default 2

config MAX_CPUS
	int
	default 8

config DIMM_MAX
	default 2

config POST_DEVICE
	bool
	default n

endif
