# SPDX-License-Identifier: GPL-2.0
# Generic register map support.  There are no user servicable options here,
# this is an API intended to be used by other kernel subsystems.  These
# subsystems should select the appropriate symbols.

config REGMAP
	default y if (REGMAP_I2C || REGMAP_SPI || REGMAP_SPMI || REGMAP_W1 || REGMAP_AC97 || REGMAP_MMIO || REGMAP_IRQ || REGMAP_SOUNDWIRE || REGMAP_SOUNDWIRE_MBQ || REGMAP_SCCB || REGMAP_I3C || REGMAP_SPI_AVMM || REGMAP_MDIO)
	select IRQ_DOMAIN if REGMAP_IRQ
	select MDIO_BUS if REGMAP_MDIO
	bool

config REGCACHE_COMPRESSED
	select LZO_COMPRESS
	select LZO_DECOMPRESS
	bool

config REGMAP_AC97
	tristate

config REGMAP_I2C
	tristate
	depends on I2C

config REGMAP_SLIMBUS
	tristate
	depends on SLIMBUS

config REGMAP_SPI
	tristate
	depends on SPI

config REGMAP_SPMI
	tristate
	depends on SPMI

config REGMAP_W1
	tristate
	depends on W1

config REGMAP_MDIO
	tristate

config REGMAP_MMIO
	tristate

config REGMAP_IRQ
	bool

config REGMAP_SOUNDWIRE
	tristate
	depends on SOUNDWIRE

config REGMAP_SOUNDWIRE_MBQ
	tristate
	depends on SOUNDWIRE

config REGMAP_SCCB
	tristate
	depends on I2C

config REGMAP_I3C
	tristate
	depends on I3C

config REGMAP_SPI_AVMM
	tristate
	depends on SPI
