# SPDX-License-Identifier: GPL-2.0-only
#
# IIO Digital Gyroscope Sensor drivers configuration
#
# When adding new entries keep the list in alphabetical order

menu "Digital gyroscope sensors"

config ADIS16080
	tristate "Analog Devices ADIS16080/100 Yaw Rate Gyroscope with SPI driver"
	depends on SPI
	help
	  Say yes here to build support for Analog Devices ADIS16080, ADIS16100 Yaw
	  Rate Gyroscope with SPI.

config ADIS16130
	tristate "Analog Devices ADIS16130 High Precision Angular Rate Sensor driver"
	depends on SPI
	help
	  Say yes here to build support for Analog Devices ADIS16130 High Precision
	  Angular Rate Sensor driver.

config ADIS16136
	tristate "Analog devices ADIS16136 and similar gyroscopes driver"
	depends on SPI_MASTER
	select IIO_ADIS_LIB
	select IIO_ADIS_LIB_BUFFER if IIO_BUFFER
	help
	  Say yes here to build support for the Analog Devices ADIS16133, ADIS16135,
	  ADIS16136 gyroscope devices.

config ADIS16260
	tristate "Analog Devices ADIS16260 Digital Gyroscope Sensor SPI driver"
	depends on SPI
	select IIO_ADIS_LIB
	select IIO_ADIS_LIB_BUFFER if IIO_BUFFER
	help
	  Say yes here to build support for Analog Devices ADIS16260 ADIS16265
	  ADIS16250 ADIS16255 and ADIS16251 programmable digital gyroscope sensors.

	  This driver can also be built as a module.  If so, the module
	  will be called adis16260.

config ADXRS290
	tristate "Analog Devices ADXRS290 Dual-Axis MEMS Gyroscope SPI driver"
	depends on SPI
	select IIO_BUFFER
	select IIO_TRIGGERED_BUFFER
	help
	  Say yes here to build support for Analog Devices ADXRS290 programmable
	  digital output gyroscope.

	  This driver can also be built as a module. If so, the module will be
	  called adxrs290.

config ADXRS450
	tristate "Analog Devices ADXRS450/3 Digital Output Gyroscope SPI driver"
	depends on SPI
	help
	  Say yes here to build support for Analog Devices ADXRS450 and ADXRS453
	  programmable digital output gyroscope.

	  This driver can also be built as a module.  If so, the module
	  will be called adxrs450.

config BMG160
	tristate "BOSCH BMG160 Gyro Sensor"
	depends on (I2C || SPI_MASTER)
	select IIO_BUFFER
	select IIO_TRIGGERED_BUFFER
	select BMG160_I2C if (I2C)
	select BMG160_SPI if (SPI)
	help
	  Say yes here to build support for BOSCH BMG160 Tri-axis Gyro Sensor
	  driver connected via I2C or SPI. This driver also supports BMI055
	  and BMI088 gyroscope.

	  This driver can also be built as a module.  If so, the module
	  will be called bmg160_i2c or bmg160_spi.

config BMG160_I2C
	tristate
	select REGMAP_I2C

config BMG160_SPI
	tristate
	select REGMAP_SPI

config FXAS21002C
	tristate "NXP FXAS21002C Gyro Sensor"
	select IIO_BUFFER
	select IIO_TRIGGERED_BUFFER
	select FXAS21002C_I2C if (I2C)
	select FXAS21002C_SPI if (SPI)
	depends on (I2C || SPI_MASTER)
	help
	  Say yes here to build support for NXP FXAS21002C Tri-axis Gyro
	  Sensor driver connected via I2C or SPI.

	  This driver can also be built as a module.  If so, the module
	  will be called fxas21002c_i2c or fxas21002c_spi.

config FXAS21002C_I2C
	tristate
	select REGMAP_I2C

config FXAS21002C_SPI
	tristate
	select REGMAP_SPI

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

config MPU3050
	tristate
	select IIO_BUFFER
	select IIO_TRIGGERED_BUFFER
	select REGMAP

config MPU3050_I2C
	tristate "Invensense MPU3050 devices on I2C"
	depends on I2C
	select MPU3050
	select REGMAP_I2C
	select I2C_MUX
	help
	  This driver supports the Invensense MPU3050 gyroscope over I2C.
	  This driver can be built as a module. The module will be called
	  inv-mpu3050-i2c.

config IIO_ST_GYRO_3AXIS
	tristate "STMicroelectronics gyroscopes 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 gyroscopes:
	  L3G4200D, LSM330DL, L3GD20, LSM330DLC, L3G4IS, LSM330, LSM9DS0.

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

config IIO_ST_GYRO_I2C_3AXIS
	tristate "STMicroelectronics gyroscopes 3-Axis I2C Interface"
	depends on I2C && IIO_ST_GYRO_3AXIS
	default I2C && IIO_ST_GYRO_3AXIS
	select IIO_ST_SENSORS_I2C
	help
	  Build support for STMicroelectronics gyroscopes I2C interface.

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


config IIO_ST_GYRO_SPI_3AXIS
	tristate "STMicroelectronics gyroscopes 3-Axis SPI Interface"
	depends on SPI_MASTER && IIO_ST_GYRO_3AXIS
	default SPI_MASTER && IIO_ST_GYRO_3AXIS
	select IIO_ST_SENSORS_SPI
	help
	  Build support for STMicroelectronics gyroscopes SPI interface.

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


config ITG3200
	tristate "InvenSense ITG3200 Digital 3-Axis Gyroscope I2C driver"
	depends on I2C
	select IIO_TRIGGERED_BUFFER if IIO_BUFFER
	help
	  Say yes here to add support for the InvenSense ITG3200 digital
	  3-axis gyroscope sensor.

endmenu