# 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_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: lsm6ds3, lsm6ds3h, lsm6dsl, lsm6dsm,
	  ism330dlc, lsm6dso, lsm6dsox, asm330lhh, lsm6dsr, lsm6ds3tr-c,
	  ism330dhcx, lsm6dsrx, lsm6ds0 and the accelerometer/gyroscope
	  of 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
