# SPDX-License-Identifier: GPL-2.0-only
#
# Magnetometer sensors
#
# When adding new entries keep the list in alphabetical order

menu "Magnetometer sensors"

config AF8133J
	tristate "Voltafield AF8133J 3-Axis Magnetometer"
	depends on I2C
	depends on OF
	select REGMAP_I2C
	select IIO_BUFFER
	select IIO_TRIGGERED_BUFFER
	help
	  Say yes here to build support for Voltafield AF8133J I2C-based
	  3-axis magnetometer chip.

	  To compile this driver as a module, choose M here: the module
	  will be called af8133j.

config AK8974
	tristate "Asahi Kasei AK8974 3-Axis Magnetometer"
	depends on I2C
	select REGMAP_I2C
	select IIO_BUFFER
	select IIO_TRIGGERED_BUFFER
	help
	  Say yes here to build support for Asahi Kasei AK8974, AMI305 or
	  AMI306 I2C-based 3-axis magnetometer chips.

	  To compile this driver as a module, choose M here: the module
	  will be called ak8974.

config AK8975
	tristate "Asahi Kasei AK8975 3-Axis Magnetometer"
	depends on I2C
	depends on GPIOLIB || COMPILE_TEST
	select IIO_BUFFER
	select IIO_TRIGGERED_BUFFER
	help
	  Say yes here to build support for Asahi Kasei AK8975, AK8963,
	  AK09911, AK09912, AK09916 or AK09918 3-Axis Magnetometer.

	  To compile this driver as a module, choose M here: the module
	  will be called ak8975.

config AK09911
	tristate "Asahi Kasei AK09911 3-axis Compass"
	depends on I2C
	depends on GPIOLIB || COMPILE_TEST
	select AK8975
	help
	  Deprecated: AK09911 is now supported by AK8975 driver.

config BMC150_MAGN
	tristate
	select IIO_BUFFER
	select IIO_TRIGGERED_BUFFER

config BMC150_MAGN_I2C
	tristate "Bosch BMC150 I2C Magnetometer Driver"
	depends on I2C
	select BMC150_MAGN
	select REGMAP_I2C
	help
	  Say yes here to build support for the BMC150 magnetometer with
	  I2C interface.

	  This is a combo module with both accelerometer and magnetometer.
	  This driver is only implementing magnetometer part, which has
	  its own address and register map.

	  This driver also supports I2C Bosch BMC156 and BMM150 chips.
	  To compile this driver as a module, choose M here: the module will be
	  called bmc150_magn_i2c.

config BMC150_MAGN_SPI
	tristate "Bosch BMC150 SPI Magnetometer Driver"
	depends on SPI
	select BMC150_MAGN
	select REGMAP_SPI
	help
	  Say yes here to build support for the BMC150 magnetometer with
	  SPI interface.

	  This is a combo module with both accelerometer and magnetometer.
	  This driver is only implementing magnetometer part, which has
	  its own address and register map.

	  This driver also supports SPI Bosch BMC156 and BMM150 chips.
	  To compile this driver as a module, choose M here: the module will be
	  called bmc150_magn_spi.

config MAG3110
	tristate "Freescale MAG3110 3-Axis Magnetometer"
	depends on I2C
	select IIO_BUFFER
	select IIO_TRIGGERED_BUFFER
	help
	  Say yes here to build support for the Freescale MAG3110 3-Axis
	  magnetometer.

	  To compile this driver as a module, choose M here: the module
	  will be called mag3110.

config HID_SENSOR_MAGNETOMETER_3D
	depends on HID_SENSOR_HUB
	select IIO_BUFFER
	select HID_SENSOR_IIO_COMMON
	select HID_SENSOR_IIO_TRIGGER
	tristate "HID Magenetometer 3D"
	help
	  Say yes here to build support for the HID SENSOR
	  Magnetometer 3D.

config MMC35240
	tristate "MEMSIC MMC35240 3-axis magnetic sensor"
	select REGMAP_I2C
	depends on I2C
	help
	  Say yes here to build support for the MEMSIC MMC35240 3-axis
	  magnetic sensor.

	  To compile this driver as a module, choose M here: the module
	  will be called mmc35240.

config IIO_ST_MAGN_3AXIS
	tristate "STMicroelectronics magnetometers 3-Axis Driver"
	depends on (I2C || SPI_MASTER) && SYSFS
	select IIO_ST_SENSORS_CORE
	select IIO_TRIGGERED_BUFFER if (IIO_BUFFER)
	help
	  Say yes here to build support for STMicroelectronics magnetometers:
	  LSM303C, LSM303DLHC, LSM303DLM, LIS3MDL.

	  Also need to enable at least one of I2C and SPI interface drivers
	  below.

config IIO_ST_MAGN_I2C_3AXIS
	tristate "STMicroelectronics magnetometers 3-Axis I2C Interface"
	depends on I2C && IIO_ST_MAGN_3AXIS
	default I2C && IIO_ST_MAGN_3AXIS
	select IIO_ST_SENSORS_I2C
	help
	  Build support for STMicroelectronics magnetometers I2C interface.

	  To compile this driver as a module, choose M here. The module
	  will be called st_magn_i2c.

config IIO_ST_MAGN_SPI_3AXIS
	tristate "STMicroelectronics magnetometers 3-Axis SPI Interface"
	depends on SPI_MASTER && IIO_ST_MAGN_3AXIS
	default SPI_MASTER && IIO_ST_MAGN_3AXIS
	select IIO_ST_SENSORS_SPI
	help
	  Build support for STMicroelectronics magnetometers SPI interface.

	  To compile this driver as a module, choose M here. The module
	  will be called st_magn_spi.

config SENSORS_HMC5843
	tristate
	select IIO_BUFFER
	select IIO_TRIGGERED_BUFFER

config SENSORS_HMC5843_I2C
	tristate "Honeywell HMC5843/5883/5883L 3-Axis Magnetometer (I2C)"
	depends on I2C
	select SENSORS_HMC5843
	select REGMAP_I2C
	help
	  Say Y here to add support for the Honeywell HMC5843, HMC5883 and
	  HMC5883L 3-Axis Magnetometer (digital compass).

	  This driver can also be compiled as a set of modules.
	  If so, these modules will be created:
	  - hmc5843_core (core functions)
	  - hmc5843_i2c (support for HMC5843, HMC5883, HMC5883L and HMC5983)

config SENSORS_HMC5843_SPI
	tristate "Honeywell HMC5983 3-Axis Magnetometer (SPI)"
	depends on SPI_MASTER
	select SENSORS_HMC5843
	select REGMAP_SPI
	help
	  Say Y here to add support for the Honeywell HMC5983 3-Axis Magnetometer
	  (digital compass).

	  This driver can also be compiled as a set of modules.
	  If so, these modules will be created:
	  - hmc5843_core (core functions)
	  - hmc5843_spi (support for HMC5983)

config SENSORS_RM3100
	tristate
	select IIO_BUFFER
	select IIO_TRIGGERED_BUFFER

config SENSORS_RM3100_I2C
	tristate "PNI RM3100 3-Axis Magnetometer (I2C)"
	depends on I2C
	select SENSORS_RM3100
	select REGMAP_I2C
	help
	  Say Y here to add support for the PNI RM3100 3-Axis Magnetometer.

	  This driver can also be compiled as a module.
	  To compile this driver as a module, choose M here: the module
	  will be called rm3100-i2c.

config SENSORS_RM3100_SPI
	tristate "PNI RM3100 3-Axis Magnetometer (SPI)"
	depends on SPI_MASTER
	select SENSORS_RM3100
	select REGMAP_SPI
	help
	  Say Y here to add support for the PNI RM3100 3-Axis Magnetometer.

	  This driver can also be compiled as a module.
	  To compile this driver as a module, choose M here: the module
	  will be called rm3100-spi.

config TI_TMAG5273
	tristate "TI TMAG5273 Low-Power Linear 3D Hall-Effect Sensor"
	depends on I2C
	select REGMAP_I2C
	help
	  Say Y here to add support for the TI TMAG5273 Low-Power
	  Linear 3D Hall-Effect Sensor.

	  This driver can also be compiled as a module.
	  To compile this driver as a module, choose M here: the module
	  will be called tmag5273.

config YAMAHA_YAS530
	tristate "Yamaha YAS530 family of 3-Axis Magnetometers (I2C)"
	depends on I2C
	select REGMAP_I2C
	select IIO_BUFFER
	select IIO_TRIGGERED_BUFFER
	help
	  Say Y here to add support for the Yamaha YAS530 series of
	  3-Axis Magnetometers. YAS530, YAS532, YAS533 and YAS537 are
	  supported.

	  This driver can also be compiled as a module.
	  To compile this driver as a module, choose M here: the module
	  will be called yamaha-yas.

endmenu
