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

config SOUTHBRIDGE_INTEL_I82801IX
	bool
	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 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
