diff mbox series

[v2,5/5] drivers: iio: adc: Rename the LTC2499 iio device

Message ID 20220901121700.1325733-5-ciprian.regus@analog.com (mailing list archive)
State Changes Requested
Headers show
Series [v2,1/5] dt-bindings: iio: adc: Add docs for LTC2499 | expand

Commit Message

Ciprian Regus Sept. 1, 2022, 12:17 p.m. UTC
Set the iio device's name based on the chip used for the
LTC2499 only. The most common way for IIO clients to interact
with a device is to address it based on it's name. By using
the dev_name() function, the name will be set based on a
i2c_client's kobj name, which has the format i2c_instance-i2c_address
(1-0076 for example). This is not ideal, since it makes a
requirement for userspace to have knowledge about the hardware
connections of the device.

The name field is set to NULL for the LTC2497 and LTC2496, so
that the old name can kept as it is, since changing it will
result in an ABI breakage.

Signed-off-by: Ciprian Regus <ciprian.regus@analog.com>
---
changes in v2:
 - updated the patch title (LTC249x -> LTC2499), since the name change only
   affects the LTC2499.
 - updated the commit description to better explain what is being done.
 - only changed the iio_dev's name for the LTC2499.
 - added a comment to explain difference in naming.
 - added the const qualifier to the name field.
 drivers/iio/adc/ltc2496.c      |  1 +
 drivers/iio/adc/ltc2497-core.c | 10 +++++++++-
 drivers/iio/adc/ltc2497.h      |  1 +
 3 files changed, 11 insertions(+), 1 deletion(-)

Comments

Jonathan Cameron Sept. 4, 2022, 3:09 p.m. UTC | #1
On Thu, 1 Sep 2022 15:17:00 +0300
Ciprian Regus <ciprian.regus@analog.com> wrote:

> Set the iio device's name based on the chip used for the
> LTC2499 only. The most common way for IIO clients to interact
> with a device is to address it based on it's name. By using
> the dev_name() function, the name will be set based on a
> i2c_client's kobj name, which has the format i2c_instance-i2c_address
> (1-0076 for example). This is not ideal, since it makes a
> requirement for userspace to have knowledge about the hardware
> connections of the device.
> 
> The name field is set to NULL for the LTC2497 and LTC2496, so
> that the old name can kept as it is, since changing it will
> result in an ABI breakage.
> 
> Signed-off-by: Ciprian Regus <ciprian.regus@analog.com>
Other than the issue with the split between patches 4 and 5 that
the robot found this looks good to me.

Jonathan

> ---
> changes in v2:
>  - updated the patch title (LTC249x -> LTC2499), since the name change only
>    affects the LTC2499.
>  - updated the commit description to better explain what is being done.
>  - only changed the iio_dev's name for the LTC2499.
>  - added a comment to explain difference in naming.
>  - added the const qualifier to the name field.
>  drivers/iio/adc/ltc2496.c      |  1 +
>  drivers/iio/adc/ltc2497-core.c | 10 +++++++++-
>  drivers/iio/adc/ltc2497.h      |  1 +
>  3 files changed, 11 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/iio/adc/ltc2496.c b/drivers/iio/adc/ltc2496.c
> index bf89d5ae19af..2593fa4322eb 100644
> --- a/drivers/iio/adc/ltc2496.c
> +++ b/drivers/iio/adc/ltc2496.c
> @@ -89,6 +89,7 @@ static void ltc2496_remove(struct spi_device *spi)
>  
>  static const struct ltc2497_chip_info ltc2496_info = {
>  	.resolution = 16,
> +	.name = NULL,
>  };
>  
>  static const struct of_device_id ltc2496_of_match[] = {
> diff --git a/drivers/iio/adc/ltc2497-core.c b/drivers/iio/adc/ltc2497-core.c
> index b2752399402c..f52d37af4d1f 100644
> --- a/drivers/iio/adc/ltc2497-core.c
> +++ b/drivers/iio/adc/ltc2497-core.c
> @@ -169,7 +169,15 @@ int ltc2497core_probe(struct device *dev, struct iio_dev *indio_dev)
>  	struct ltc2497core_driverdata *ddata = iio_priv(indio_dev);
>  	int ret;
>  
> -	indio_dev->name = dev_name(dev);
> +	/*
> +	 * Keep using dev_name() for the iio_dev's name on some of the parts,
> +	 * since updating it would result in a ABI breakage.
> +	 */
> +	if (ddata->chip_info->name)
> +		indio_dev->name = ddata->chip_info->name;
> +	else
> +		indio_dev->name = dev_name(dev);
> +
>  	indio_dev->info = &ltc2497core_info;
>  	indio_dev->modes = INDIO_DIRECT_MODE;
>  	indio_dev->channels = ltc2497core_channel;
> diff --git a/drivers/iio/adc/ltc2497.h b/drivers/iio/adc/ltc2497.h
> index 95f6a5f4d4a6..fd3dfd491060 100644
> --- a/drivers/iio/adc/ltc2497.h
> +++ b/drivers/iio/adc/ltc2497.h
> @@ -12,6 +12,7 @@ enum ltc2497_chip_type {
>  
>  struct ltc2497_chip_info {
>  	u32 resolution;
> +	const char *name;
>  };
>  
>  struct ltc2497core_driverdata {
diff mbox series

Patch

diff --git a/drivers/iio/adc/ltc2496.c b/drivers/iio/adc/ltc2496.c
index bf89d5ae19af..2593fa4322eb 100644
--- a/drivers/iio/adc/ltc2496.c
+++ b/drivers/iio/adc/ltc2496.c
@@ -89,6 +89,7 @@  static void ltc2496_remove(struct spi_device *spi)
 
 static const struct ltc2497_chip_info ltc2496_info = {
 	.resolution = 16,
+	.name = NULL,
 };
 
 static const struct of_device_id ltc2496_of_match[] = {
diff --git a/drivers/iio/adc/ltc2497-core.c b/drivers/iio/adc/ltc2497-core.c
index b2752399402c..f52d37af4d1f 100644
--- a/drivers/iio/adc/ltc2497-core.c
+++ b/drivers/iio/adc/ltc2497-core.c
@@ -169,7 +169,15 @@  int ltc2497core_probe(struct device *dev, struct iio_dev *indio_dev)
 	struct ltc2497core_driverdata *ddata = iio_priv(indio_dev);
 	int ret;
 
-	indio_dev->name = dev_name(dev);
+	/*
+	 * Keep using dev_name() for the iio_dev's name on some of the parts,
+	 * since updating it would result in a ABI breakage.
+	 */
+	if (ddata->chip_info->name)
+		indio_dev->name = ddata->chip_info->name;
+	else
+		indio_dev->name = dev_name(dev);
+
 	indio_dev->info = &ltc2497core_info;
 	indio_dev->modes = INDIO_DIRECT_MODE;
 	indio_dev->channels = ltc2497core_channel;
diff --git a/drivers/iio/adc/ltc2497.h b/drivers/iio/adc/ltc2497.h
index 95f6a5f4d4a6..fd3dfd491060 100644
--- a/drivers/iio/adc/ltc2497.h
+++ b/drivers/iio/adc/ltc2497.h
@@ -12,6 +12,7 @@  enum ltc2497_chip_type {
 
 struct ltc2497_chip_info {
 	u32 resolution;
+	const char *name;
 };
 
 struct ltc2497core_driverdata {