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

if ARCH_ASPEED || COMPILE_TEST

menu "ASPEED SoC drivers"

config ASPEED_LPC_CTRL
	tristate "ASPEED LPC firmware cycle control"
	select REGMAP
	select MFD_SYSCON
	default ARCH_ASPEED
	help
	  Control LPC firmware cycle mappings through ioctl()s. The driver
	  also provides a read/write interface to a BMC ram region where the
	  host LPC read/write region can be buffered.

config ASPEED_LPC_SNOOP
	tristate "ASPEED LPC snoop support"
	select REGMAP
	select MFD_SYSCON
	default ARCH_ASPEED
	help
	  Provides a driver to control the LPC snoop interface which
	  allows the BMC to listen on and save the data written by
	  the host to an arbitrary LPC I/O port.

config ASPEED_P2A_CTRL
	tristate "ASPEED P2A (VGA MMIO to BMC) bridge control"
	select REGMAP
	select MFD_SYSCON
	default ARCH_ASPEED
	help
	  Control ASPEED P2A VGA MMIO to BMC mappings through ioctl()s.  The
	  driver also provides an interface for userspace mappings to a
	  pre-defined region.

config ASPEED_SOCINFO
	bool "ASPEED SoC Information driver"
	default ARCH_ASPEED
	select SOC_BUS
	default ARCH_ASPEED
	help
	  Say yes to support decoding of ASPEED BMC information.

endmenu

endif
