* [PATCH] iio: stm: don't always auto-enable I2C and SPI interface drivers
@ 2021-12-29 7:29 Nikita Yushchenko
[not found] ` <CAHp75VfKcKyc8fdu0XnaYYnY2UP+27=8hKJMtzwH5755Cw=sww@mail.gmail.com>
2022-01-02 7:02 ` Linus Walleij
0 siblings, 2 replies; 5+ messages in thread
From: Nikita Yushchenko @ 2021-12-29 7:29 UTC (permalink / raw)
To: Jonathan Cameron, Lars-Peter Clausen, Andy Shevchenko,
Linus Walleij, Alexandru Ardelean, Cai Huoqing
Cc: linux-iio, linux-kernel, Nikita Yushchenko
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 is possible to explicitly disable drivers
that are not needed for particular target.
Signed-off-by: Nikita Yushchenko <nikita.yoush@cogentembedded.com>
---
drivers/iio/accel/Kconfig | 35 ++++++++++++++-----------
drivers/iio/common/st_sensors/Kconfig | 2 --
drivers/iio/gyro/Kconfig | 37 ++++++++++++++++-----------
drivers/iio/imu/st_lsm9ds0/Kconfig | 28 +++++++++++++++-----
drivers/iio/magnetometer/Kconfig | 35 ++++++++++++++-----------
drivers/iio/pressure/Kconfig | 35 ++++++++++++++-----------
6 files changed, 104 insertions(+), 68 deletions(-)
diff --git a/drivers/iio/accel/Kconfig b/drivers/iio/accel/Kconfig
index 49587c992a6d..fee33dda4ee4 100644
--- a/drivers/iio/accel/Kconfig
+++ b/drivers/iio/accel/Kconfig
@@ -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 y if (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 y if (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"
diff --git a/drivers/iio/common/st_sensors/Kconfig b/drivers/iio/common/st_sensors/Kconfig
index 9364ec7a811f..eda8f347fda5 100644
--- a/drivers/iio/common/st_sensors/Kconfig
+++ b/drivers/iio/common/st_sensors/Kconfig
@@ -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
diff --git a/drivers/iio/gyro/Kconfig b/drivers/iio/gyro/Kconfig
index a672f7d12bbb..9af15bed7550 100644
--- a/drivers/iio/gyro/Kconfig
+++ b/drivers/iio/gyro/Kconfig
@@ -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 y if (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 y if (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"
diff --git a/drivers/iio/imu/st_lsm9ds0/Kconfig b/drivers/iio/imu/st_lsm9ds0/Kconfig
index 53b7017014f8..1f6e7365048a 100644
--- a/drivers/iio/imu/st_lsm9ds0/Kconfig
+++ b/drivers/iio/imu/st_lsm9ds0/Kconfig
@@ -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 y if (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 y if (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.
diff --git a/drivers/iio/magnetometer/Kconfig b/drivers/iio/magnetometer/Kconfig
index 565ee41ccb3a..caec46b93564 100644
--- a/drivers/iio/magnetometer/Kconfig
+++ b/drivers/iio/magnetometer/Kconfig
@@ -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 y if (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 y if (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
diff --git a/drivers/iio/pressure/Kconfig b/drivers/iio/pressure/Kconfig
index fc0d3cfca418..962e45e29142 100644
--- a/drivers/iio/pressure/Kconfig
+++ b/drivers/iio/pressure/Kconfig
@@ -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 y if (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 y if (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"
--
2.30.2
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] iio: stm: don't always auto-enable I2C and SPI interface drivers
[not found] ` <CAHp75VfKcKyc8fdu0XnaYYnY2UP+27=8hKJMtzwH5755Cw=sww@mail.gmail.com>
@ 2021-12-30 20:21 ` Nikita Yushchenko
0 siblings, 0 replies; 5+ messages in thread
From: Nikita Yushchenko @ 2021-12-30 20:21 UTC (permalink / raw)
To: Andy Shevchenko
Cc: Jonathan Cameron, Lars-Peter Clausen, Andy Shevchenko,
Linus Walleij, Alexandru Ardelean, Cai Huoqing, linux-iio,
linux-kernel
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 is possible to explicitly disable drivers
> that are not needed for particular
>
> NAK if users need now manually update their .config / defconfigs.
No they don't need to update anything.
And 'make oldconfig' will be old.
The config will only change after a manual action.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] iio: stm: don't always auto-enable I2C and SPI interface drivers
2021-12-29 7:29 [PATCH] iio: stm: don't always auto-enable I2C and SPI interface drivers Nikita Yushchenko
[not found] ` <CAHp75VfKcKyc8fdu0XnaYYnY2UP+27=8hKJMtzwH5755Cw=sww@mail.gmail.com>
@ 2022-01-02 7:02 ` Linus Walleij
2022-01-02 10:59 ` Nikita Yushchenko
2022-01-02 13:49 ` Arnd Bergmann
1 sibling, 2 replies; 5+ messages in thread
From: Linus Walleij @ 2022-01-02 7:02 UTC (permalink / raw)
To: Nikita Yushchenko, Arnd Bergmann
Cc: Jonathan Cameron, Lars-Peter Clausen, Andy Shevchenko,
Alexandru Ardelean, Cai Huoqing, linux-iio, linux-kernel
On Wed, Dec 29, 2021 at 8:29 AM Nikita Yushchenko
<nikita.yoush@cogentembedded.com> wrote:
> 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 y if (I2C && IIO_ST_ACCEL_3AXIS)
> + select IIO_ST_SENSORS_I2C
This thing that a Kconfig symbol is made to depend on itself just
boggles my head but it wouldn't surprise me if KConfig is this weird :(
I CCed Arnd who knows KConfig a bit better than anyone I know.
Yours,
Linus Walleij
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] iio: stm: don't always auto-enable I2C and SPI interface drivers
2022-01-02 7:02 ` Linus Walleij
@ 2022-01-02 10:59 ` Nikita Yushchenko
2022-01-02 13:49 ` Arnd Bergmann
1 sibling, 0 replies; 5+ messages in thread
From: Nikita Yushchenko @ 2022-01-02 10:59 UTC (permalink / raw)
To: Linus Walleij, Arnd Bergmann
Cc: Jonathan Cameron, Lars-Peter Clausen, Andy Shevchenko,
Alexandru Ardelean, Cai Huoqing, linux-iio, linux-kernel
02.01.2022 10:02, Linus Walleij wrote:
> On Wed, Dec 29, 2021 at 8:29 AM Nikita Yushchenko
> <nikita.yoush@cogentembedded.com> wrote:
>
>> 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 y if (I2C && IIO_ST_ACCEL_3AXIS)
>> + select IIO_ST_SENSORS_I2C
>
> This thing that a Kconfig symbol is made to depend on itself just
> boggles my head but it wouldn't surprise me if KConfig is this weird :(
>
> I CCed Arnd who knows KConfig a bit better than anyone I know.
Sorry but I don't see a dependency on itself here.
"IIO_ST_ACCEL_I2C_3AXIS" depends on "IIO_ST_ACCEL_3AXIS"
Name with I2C embedded not at end could be a bit wired, but in this patch I don't change any names to
keep things 100% backward-compatible.
Nikita
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] iio: stm: don't always auto-enable I2C and SPI interface drivers
2022-01-02 7:02 ` Linus Walleij
2022-01-02 10:59 ` Nikita Yushchenko
@ 2022-01-02 13:49 ` Arnd Bergmann
1 sibling, 0 replies; 5+ messages in thread
From: Arnd Bergmann @ 2022-01-02 13:49 UTC (permalink / raw)
To: Linus Walleij
Cc: Nikita Yushchenko, Arnd Bergmann, Jonathan Cameron,
Lars-Peter Clausen, Andy Shevchenko, Alexandru Ardelean,
Cai Huoqing, linux-iio, Linux Kernel Mailing List
On Sun, Jan 2, 2022 at 2:02 AM Linus Walleij <linus.walleij@linaro.org> wrote:
>
> On Wed, Dec 29, 2021 at 8:29 AM Nikita Yushchenko
> <nikita.yoush@cogentembedded.com> wrote:
>
> > 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 y if (I2C && IIO_ST_ACCEL_3AXIS)
> > + select IIO_ST_SENSORS_I2C
>
> This thing that a Kconfig symbol is made to depend on itself just
> boggles my head but it wouldn't surprise me if KConfig is this weird :(
>
> I CCed Arnd who knows KConfig a bit better than anyone I know.
It looks fine to me, the only thing I'd change is to write the default as
default I2C && IIO_ST_SENSORS_I2C
rather than 'default y', which is less intuitive for the case where one
of the dependencies is =m.
Arnd
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2022-01-02 13:50 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-12-29 7:29 [PATCH] iio: stm: don't always auto-enable I2C and SPI interface drivers Nikita Yushchenko
[not found] ` <CAHp75VfKcKyc8fdu0XnaYYnY2UP+27=8hKJMtzwH5755Cw=sww@mail.gmail.com>
2021-12-30 20:21 ` Nikita Yushchenko
2022-01-02 7:02 ` Linus Walleij
2022-01-02 10:59 ` Nikita Yushchenko
2022-01-02 13:49 ` Arnd Bergmann
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®