#
# IIO Digital Gyroscope Sensor drivers configuration
#
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 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 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 HID_SENSOR_GYRO_3D
	depends on HID_SENSOR_HUB
	select IIO_BUFFER
	select IIO_TRIGGERED_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 IIO_ST_GYRO_3AXIS
	tristate "STMicroelectronics gyroscopes 3-Axis Driver"
	depends on (I2C || SPI_MASTER) && SYSFS
	select IIO_ST_SENSORS_CORE
	select IIO_ST_GYRO_I2C_3AXIS if (I2C)
	select IIO_ST_GYRO_SPI_3AXIS if (SPI_MASTER)
	select IIO_TRIGGERED_BUFFER if (IIO_BUFFER)
	select IIO_ST_GYRO_BUFFER if (IIO_TRIGGERED_BUFFER)
	help
	  Say yes here to build support for STMicroelectronics gyroscopes:
	  L3G4200D, LSM330DL, L3GD20, LSM330DLC, L3G4IS, LSM330.

	  This driver can also be built as a module. If so, will be created
	  these modules:
	  - st_gyro (core functions for the driver [it is mandatory]);
	  - st_gyro_i2c (necessary for the I2C devices [optional*]);
	  - st_gyro_spi (necessary for the SPI devices [optional*]);

	  (*) one of these is necessary to do something.

config IIO_ST_GYRO_I2C_3AXIS
	tristate
	depends on IIO_ST_GYRO_3AXIS
	depends on IIO_ST_SENSORS_I2C

config IIO_ST_GYRO_SPI_3AXIS
	tristate
	depends on IIO_ST_GYRO_3AXIS
	depends on IIO_ST_SENSORS_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
