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

config SOUTHBRIDGE_INTEL_I82801IX
	bool
	select ACPI_COMMON_MADT_LAPIC
	select ACPI_INTEL_HARDWARE_SLEEP_VALUES
	select ACPI_SOC_NVS
	select AZALIA_PLUGIN_SUPPORT
	select HAVE_SMI_HANDLER if !NO_SMM
	select HAVE_USBDEBUG_OPTIONS
	select INTEL_DESCRIPTOR_MODE_CAPABLE
	select SOUTHBRIDGE_INTEL_COMMON_GPIO
	select SOUTHBRIDGE_INTEL_COMMON_PMBASE
	select SOUTHBRIDGE_INTEL_COMMON_PMCLIB
	select SOUTHBRIDGE_INTEL_COMMON_RCBA_PIRQ
	select SOUTHBRIDGE_INTEL_COMMON_RESET
	select SOUTHBRIDGE_INTEL_COMMON_RTC
	select SOUTHBRIDGE_INTEL_COMMON_SMBUS
	select SOUTHBRIDGE_INTEL_COMMON_EARLY_SMBUS
	select SOUTHBRIDGE_INTEL_COMMON_SMM if !NO_SMM
	select SOUTHBRIDGE_INTEL_COMMON_SPI_ICH9 if !BOARD_EMULATION_QEMU_X86_Q35
	select SOUTHBRIDGE_INTEL_COMMON_USB_DEBUG
	select SOUTHBRIDGE_INTEL_COMMON_WATCHDOG
	select TCO_SPACE_NOT_YET_SPLIT
	select USE_WATCHDOG_ON_BOOT

if SOUTHBRIDGE_INTEL_I82801IX

config EHCI_BAR
	hex
	default 0xfef00000

config HPET_MIN_TICKS
	default 0x80

## Some enterprise variants may require an IFD
config INTEL_DESCRIPTOR_MODE_REQUIRED
	bool
	default n

config PCIEXP_HOTPLUG
	default y

endif
