]> git.proxmox.com Git - mirror_ubuntu-kernels.git/commitdiff
iio: st_sensors: don't always auto-enable I2C and SPI interface drivers
authorNikita Yushchenko <nikita.yoush@cogentembedded.com>
Mon, 10 Jan 2022 15:24:32 +0000 (18:24 +0300)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Sun, 23 Jan 2022 18:03:35 +0000 (18:03 +0000)
This patch makes I2C and SPI interface drivers for STMicroelectronics
sensor chips individually selectable via Kconfig.

The default is kept unchanged - I2C and SPI interface drivers are still
selected by default if the corresponding bus support is available.

However, the patch makes it possible to explicitly disable drivers
that are not needed for a particular target.

Signed-off-by: Nikita Yushchenko <nikita.yoush@cogentembedded.com>
Acked-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://lore.kernel.org/r/20220110152432.3799227-1-nikita.yoush@cogentembedded.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/accel/Kconfig
drivers/iio/common/st_sensors/Kconfig
drivers/iio/gyro/Kconfig
drivers/iio/imu/st_lsm9ds0/Kconfig
drivers/iio/magnetometer/Kconfig
drivers/iio/pressure/Kconfig

index 49587c992a6d0b3307fa1ef1eda19fef53d8e5d8..eb17ca40e08adc11ff74fd7e189a6b8bd3bb34c3 100644 (file)
@@ -349,8 +349,6 @@ config IIO_ST_ACCEL_3AXIS
        depends on !SENSORS_LIS3_I2C
        depends on !SENSORS_LIS3_SPI
        select IIO_ST_SENSORS_CORE
-       select IIO_ST_ACCEL_I2C_3AXIS if (I2C)
-       select IIO_ST_ACCEL_SPI_3AXIS if (SPI_MASTER)
        select IIO_TRIGGERED_BUFFER if (IIO_BUFFER)
        help
          Say yes here to build support for STMicroelectronics accelerometers:
@@ -358,23 +356,30 @@ config IIO_ST_ACCEL_3AXIS
          LIS331DLH, LSM303DL, LSM303DLM, LSM330, LIS2DH12, H3LIS331DL,
          LNG2DM, LIS3DE, LIS2DE12, LIS2HH12
 
-         This driver can also be built as a module. If so, these modules
-         will be created:
-         - st_accel (core functions for the driver [it is mandatory]);
-         - st_accel_i2c (necessary for the I2C devices [optional*]);
-         - st_accel_spi (necessary for the SPI devices [optional*]);
-
-         (*) one of these is necessary to do something.
+         Also need to enable at least one of I2C and SPI interface drivers
+         below.
 
 config IIO_ST_ACCEL_I2C_3AXIS
-       tristate
-       depends on IIO_ST_ACCEL_3AXIS
-       depends on IIO_ST_SENSORS_I2C
+       tristate "STMicroelectronics accelerometers 3-Axis I2C Interface"
+       depends on I2C && IIO_ST_ACCEL_3AXIS
+       default I2C && IIO_ST_ACCEL_3AXIS
+       select IIO_ST_SENSORS_I2C
+       help
+         Build support for STMicroelectronics accelerometers I2C interface.
+
+         To compile this driver as a module, choose M here. The module
+         will be called st_accel_i2c.
 
 config IIO_ST_ACCEL_SPI_3AXIS
-       tristate
-       depends on IIO_ST_ACCEL_3AXIS
-       depends on IIO_ST_SENSORS_SPI
+       tristate "STMicroelectronics accelerometers 3-Axis SPI Interface"
+       depends on SPI_MASTER && IIO_ST_ACCEL_3AXIS
+       default SPI_MASTER && IIO_ST_ACCEL_3AXIS
+       select IIO_ST_SENSORS_SPI
+       help
+         Build support for STMicroelectronics accelerometers SPI interface.
+
+         To compile this driver as a module, choose M here. The module
+         will be called st_accel_spi.
 
 config KXSD9
        tristate "Kionix KXSD9 Accelerometer Driver"
index 9364ec7a811fd0769afc00327c38b90b69ed8f48..eda8f347fda50a817f4a79ee0cd05a5f5ef23db9 100644 (file)
@@ -13,5 +13,3 @@ config IIO_ST_SENSORS_SPI
 
 config IIO_ST_SENSORS_CORE
        tristate
-       select IIO_ST_SENSORS_I2C if I2C
-       select IIO_ST_SENSORS_SPI if SPI_MASTER
index a672f7d12bbb7c8831f0328d491f0cb6d41384af..97b86c4a53a6190611615d695108a2f30c1ea0d6 100644 (file)
@@ -139,30 +139,37 @@ 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)
        help
          Say yes here to build support for STMicroelectronics gyroscopes:
          L3G4200D, LSM330DL, L3GD20, LSM330DLC, L3G4IS, LSM330, LSM9DS0.
 
-         This driver can also be built as a module. If so, these modules
-         will be created:
-         - 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.
+         Also need to enable at least one of I2C and SPI interface drivers
+         below.
 
 config IIO_ST_GYRO_I2C_3AXIS
-       tristate
-       depends on IIO_ST_GYRO_3AXIS
-       depends on IIO_ST_SENSORS_I2C
+       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
-       depends on IIO_ST_GYRO_3AXIS
-       depends on IIO_ST_SENSORS_SPI
+       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"
index 53b7017014f884004914bc2fb5d108253df363cf..d29558edee60414d96797821674f72cc3c5cdffb 100644 (file)
@@ -5,8 +5,6 @@ config IIO_ST_LSM9DS0
        depends on (I2C || SPI_MASTER) && SYSFS
        depends on !SENSORS_LIS3_I2C
        depends on !SENSORS_LIS3_SPI
-       select IIO_ST_LSM9DS0_I2C if I2C
-       select IIO_ST_LSM9DS0_SPI if SPI_MASTER
        select IIO_ST_ACCEL_3AXIS
        select IIO_ST_MAGN_3AXIS
 
@@ -17,12 +15,30 @@ config IIO_ST_LSM9DS0
          To compile this driver as a module, choose M here: the module
          will be called st_lsm9ds0.
 
+         Also need to enable at least one of I2C and SPI interface drivers
+
 config IIO_ST_LSM9DS0_I2C
-       tristate
-       depends on IIO_ST_LSM9DS0
+       tristate "STMicroelectronics LSM9DS0 IMU I2C interface"
+       depends on I2C && IIO_ST_LSM9DS0
+       default I2C && IIO_ST_LSM9DS0
+       select IIO_ST_ACCEL_I2C_3AXIS
+       select IIO_ST_MAGN_I2C_3AXIS
        select REGMAP_I2C
+       help
+         Build support for STMicroelectronics LSM9DS0 IMU I2C interface.
+
+         To compile this driver as a module, choose M here. The module
+         will be called st_lsm9ds0_i2c.
 
 config IIO_ST_LSM9DS0_SPI
-       tristate
-       depends on IIO_ST_LSM9DS0
+       tristate "STMicroelectronics LSM9DS0 IMU SPI interface"
+       depends on SPI_MASTER && IIO_ST_LSM9DS0
+       default SPI_MASTER && IIO_ST_LSM9DS0
+       select IIO_ST_ACCEL_SPI_3AXIS
+       select IIO_ST_MAGN_SPI_3AXIS
        select REGMAP_SPI
+       help
+         Build support for STMicroelectronics LSM9DS0 IMU I2C interface.
+
+         To compile this driver as a module, choose M here. The module
+         will be called st_lsm9ds0_spi.
index 565ee41ccb3ad6a9df0a4f30d416f6dba85c7590..54445365c4bcfd6c79768950ac0e135238bd7f36 100644 (file)
@@ -117,30 +117,35 @@ config IIO_ST_MAGN_3AXIS
        tristate "STMicroelectronics magnetometers 3-Axis Driver"
        depends on (I2C || SPI_MASTER) && SYSFS
        select IIO_ST_SENSORS_CORE
-       select IIO_ST_MAGN_I2C_3AXIS if (I2C)
-       select IIO_ST_MAGN_SPI_3AXIS if (SPI_MASTER)
        select IIO_TRIGGERED_BUFFER if (IIO_BUFFER)
        help
          Say yes here to build support for STMicroelectronics magnetometers:
          LSM303DLHC, LSM303DLM, LIS3MDL.
 
-         This driver can also be built as a module. If so, these modules
-         will be created:
-         - st_magn (core functions for the driver [it is mandatory]);
-         - st_magn_i2c (necessary for the I2C devices [optional*]);
-         - st_magn_spi (necessary for the SPI devices [optional*]);
-
-         (*) one of these is necessary to do something.
+         Also need to enable at least one of I2C and SPI interface drivers
+         below.
 
 config IIO_ST_MAGN_I2C_3AXIS
-       tristate
-       depends on IIO_ST_MAGN_3AXIS
-       depends on IIO_ST_SENSORS_I2C
+       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
-       depends on IIO_ST_MAGN_3AXIS
-       depends on IIO_ST_SENSORS_SPI
+       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
index fc0d3cfca4186bd9a32130dfb6bbad6b275679f0..0ff756cea63ab63d38d5d8d91e537fee00b384c9 100644 (file)
@@ -194,30 +194,35 @@ config IIO_ST_PRESS
        tristate "STMicroelectronics pressure sensor Driver"
        depends on (I2C || SPI_MASTER) && SYSFS
        select IIO_ST_SENSORS_CORE
-       select IIO_ST_PRESS_I2C if (I2C)
-       select IIO_ST_PRESS_SPI if (SPI_MASTER)
        select IIO_TRIGGERED_BUFFER if (IIO_BUFFER)
        help
          Say yes here to build support for STMicroelectronics pressure
          sensors: LPS001WP, LPS25H, LPS331AP, LPS22HB, LPS22HH.
 
-         This driver can also be built as a module. If so, these modules
-         will be created:
-         - st_pressure (core functions for the driver [it is mandatory]);
-         - st_pressure_i2c (necessary for the I2C devices [optional*]);
-         - st_pressure_spi (necessary for the SPI devices [optional*]);
-
-         (*) one of these is necessary to do something.
+         Also need to enable at least one of I2C and SPI interface drivers
+         below.
 
 config IIO_ST_PRESS_I2C
-       tristate
-       depends on IIO_ST_PRESS
-       depends on IIO_ST_SENSORS_I2C
+       tristate "STMicroelectronics pressure sensor I2C Interface"
+       depends on I2C && IIO_ST_PRESS
+       default I2C && IIO_ST_PRESS
+       select IIO_ST_SENSORS_I2C
+       help
+         Build support for STMicroelectronics pressure sensor I2C interface.
+
+         To compile this driver as a module, choose M here. The module
+         will be called st_pressure_i2c.
 
 config IIO_ST_PRESS_SPI
-       tristate
-       depends on IIO_ST_PRESS
-       depends on IIO_ST_SENSORS_SPI
+       tristate "STMicroelectronics pressure sensor SPI Interface"
+       depends on SPI_MASTER && IIO_ST_PRESS
+       default SPI_MASTER && IIO_ST_PRESS
+       select IIO_ST_SENSORS_SPI
+       help
+         Build support for STMicroelectronics pressure sensor SPI interface.
+
+         To compile this driver as a module, choose M here. The module
+         will be called st_pressure_spi.
 
 config T5403
        tristate "EPCOS T5403 digital barometric pressure sensor driver"