[PATCH] iio: accel: Change adxl345 depend to negate adxl35x

Jorge Marques posted 1 patch 3 months, 1 week ago
There is a newer version of this series
drivers/iio/accel/Kconfig | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
[PATCH] iio: accel: Change adxl345 depend to negate adxl35x
Posted by Jorge Marques 3 months, 1 week ago
Change 'depends on INPUT_ADXL34X=n' to '!(INPUT_ADXL34X)' to allow both
drivers to be compiled as modules. The user then can use the blacklist
to block loading one.

Signed-off-by: Jorge Marques <jorge.marques@analog.com>
---
There are two drivers for the compatible:

- adi,adxl345

* IIO: 
  drivers/iio/accel/adxl345_core.c
  drivers/iio/accel/adxl345_spi.c
  drivers/iio/accel/adxl345_i2c.c
* Inputs:
  drivers/input/misc/adxl34x-spi.c
  drivers/input/misc/adxl34x-i2c.c

To disallows both being complied, the depends INPUT_ADXL34X=n
was added to ADXL345 symbols. However, it should be possible to compile
both as modules, then blacklist one of them in the /etc/modprobe.d/blacklist.conf
file. This patch changes the rule to !(INPUT_ADXL34X) to allow both as
modules, but still disallow INPUT_ADXL34X to be built-in and ADXL345 as
module.

The following compatibles are not shared between both drivers:

* IIO:
  adi,adxl375 spi/i2c
* Inputs:
  adi,adxl34x i2c
---
 drivers/iio/accel/Kconfig | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/iio/accel/Kconfig b/drivers/iio/accel/Kconfig
index 76911278fb217..f657acba5ab7d 100644
--- a/drivers/iio/accel/Kconfig
+++ b/drivers/iio/accel/Kconfig
@@ -64,7 +64,7 @@ config ADXL345
 
 config ADXL345_I2C
 	tristate "Analog Devices ADXL345 3-Axis Digital Accelerometer I2C Driver"
-	depends on INPUT_ADXL34X=n
+	depends on !INPUT_ADXL34X
 	depends on I2C
 	select ADXL345
 	select REGMAP_I2C
@@ -78,7 +78,7 @@ config ADXL345_I2C
 
 config ADXL345_SPI
 	tristate "Analog Devices ADXL345 3-Axis Digital Accelerometer SPI Driver"
-	depends on INPUT_ADXL34X=n
+	depends on !INPUT_ADXL34X
 	depends on SPI
 	select ADXL345
 	select REGMAP_SPI

---
base-commit: 70437bbd7529e9860fb7f0c92a89e0e6abaa994e
change-id: 20251031-adxl345-allow-adxl34x-mod-8c3b11cb54c6

Best regards,
-- 
Jorge Marques <jorge.marques@analog.com>
Re: [PATCH] iio: accel: Change adxl345 depend to negate adxl35x
Posted by Andy Shevchenko 3 months, 1 week ago
On Fri, Oct 31, 2025 at 11:05:08AM +0100, Jorge Marques wrote:
> Change 'depends on INPUT_ADXL34X=n' to '!(INPUT_ADXL34X)' to allow both
> drivers to be compiled as modules. The user then can use the blacklist
> to block loading one.

> ---
> There are two drivers for the compatible:
> 
> - adi,adxl345
> 
> * IIO: 
>   drivers/iio/accel/adxl345_core.c
>   drivers/iio/accel/adxl345_spi.c
>   drivers/iio/accel/adxl345_i2c.c
> * Inputs:
>   drivers/input/misc/adxl34x-spi.c
>   drivers/input/misc/adxl34x-i2c.c
> 
> To disallows both being complied, the depends INPUT_ADXL34X=n
> was added to ADXL345 symbols. However, it should be possible to compile
> both as modules, then blacklist one of them in the /etc/modprobe.d/blacklist.conf
> file. This patch changes the rule to !(INPUT_ADXL34X) to allow both as
> modules, but still disallow INPUT_ADXL34X to be built-in and ADXL345 as
> module.
> 
> The following compatibles are not shared between both drivers:
> 
> * IIO:
>   adi,adxl375 spi/i2c
> * Inputs:
>   adi,adxl34x i2c

I like the idea, but I think this needs to be clearly stated in the Kconfig
help for both symbols. So user will _know_ that in such a case it's their
responsibility of properly made choice. On top of that you might want to
investigate existing DTS in the kernel and see if some of the choices may be
made at the platform / CPU level.

-- 
With Best Regards,
Andy Shevchenko
Re: [PATCH] iio: accel: Change adxl345 depend to negate adxl35x
Posted by Jorge Marques 2 months, 4 weeks ago
On Fri, Oct 31, 2025 at 12:13:39PM +0200, Andy Shevchenko wrote:
> On Fri, Oct 31, 2025 at 11:05:08AM +0100, Jorge Marques wrote:
> > Change 'depends on INPUT_ADXL34X=n' to '!(INPUT_ADXL34X)' to allow both
> > drivers to be compiled as modules. The user then can use the blacklist
> > to block loading one.
> 
> > ---
> > There are two drivers for the compatible:
> > 
> > - adi,adxl345
> > 
> > * IIO: 
> >   drivers/iio/accel/adxl345_core.c
> >   drivers/iio/accel/adxl345_spi.c
> >   drivers/iio/accel/adxl345_i2c.c
> > * Inputs:
> >   drivers/input/misc/adxl34x-spi.c
> >   drivers/input/misc/adxl34x-i2c.c
> > 
> > To disallows both being complied, the depends INPUT_ADXL34X=n
> > was added to ADXL345 symbols. However, it should be possible to compile
> > both as modules, then blacklist one of them in the /etc/modprobe.d/blacklist.conf
> > file. This patch changes the rule to !(INPUT_ADXL34X) to allow both as
> > modules, but still disallow INPUT_ADXL34X to be built-in and ADXL345 as
> > module.
> > 
> > The following compatibles are not shared between both drivers:
> > 
> > * IIO:
> >   adi,adxl375 spi/i2c
> > * Inputs:
> >   adi,adxl34x i2c
> 
> I like the idea, but I think this needs to be clearly stated in the Kconfig
> help for both symbols. So user will _know_ that in such a case it's their
> responsibility of properly made choice. On top of that you might want to
> investigate existing DTS in the kernel and see if some of the choices may be
> made at the platform / CPU level.

Sure, I will add a info for the user in the symbols. I think the choice
is on the defconfig that the user uses, the driver is a accelerometer,
but one exposes as an IIO device while the other as input (e.g., for
screen rotation).

Best regards,
Jorge
> 
> -- 
> With Best Regards,
> Andy Shevchenko
> 
>