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

config IIO_ST_LSM6DSX
	tristate "ST_LSM6DSx driver for STM 6-axis IMU MEMS sensors"
	depends on (I2C || SPI || I3C)
	select IIO_BUFFER
	select IIO_TRIGGERED_BUFFER
	select IIO_KFIFO_BUF
	select IIO_ST_LSM6DSX_I2C if (I2C)
	select IIO_ST_LSM6DSX_SPI if (SPI_MASTER)
	select IIO_ST_LSM6DSX_I3C if (I3C)
	help
	  Say yes here to build support for STMicroelectronics LSM6DSx imu
	  sensor.
	  Supported devices:
	  - asm330lhb
	  - asm330lhh
	  - asm330lhhx
	  - asm330lhhxg1
	  - ism330dhcx
	  - ism330dlc
	  - ism330is
	  - lsm6ds0
	  - lsm6ds3
	  - lsm6ds3h
	  - lsm6ds3tr-c
	  - lsm6dsl
	  - lsm6dsm
	  - lsm6dso
	  - lsm6dso16is
	  - lsm6dsop
	  - lsm6dsox
	  - lsm6dsr
	  - lsm6dsrx
	  - lsm6dst
	  - lsm6dstx
	  - lsm6dsv
	  - lsm6dsv16x
	  - lsm9ds1

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

config IIO_ST_LSM6DSX_I2C
	tristate
	depends on IIO_ST_LSM6DSX
	select REGMAP_I2C

config IIO_ST_LSM6DSX_SPI
	tristate
	depends on IIO_ST_LSM6DSX
	select REGMAP_SPI

config IIO_ST_LSM6DSX_I3C
	tristate
	depends on IIO_ST_LSM6DSX
	select REGMAP_I3C
