public inbox for devicetree@vger.kernel.org
 help / color / mirror / Atom feed
From: Ciprian Regus <ciprian.regus@analog.com>
To: <jic23@kernel.org>, <linux-iio@vger.kernel.org>,
	<devicetree@vger.kernel.org>, <linux-kernel@vger.kernel.org>
Cc: Ciprian Regus <ciprian.regus@analog.com>
Subject: [PATCH 5/5] drivers: iio: adc: Rename the LTC2499 iio device
Date: Fri, 16 Sep 2022 17:09:22 +0300	[thread overview]
Message-ID: <20220916140922.2506248-6-ciprian.regus@analog.com> (raw)
In-Reply-To: <20220916140922.2506248-1-ciprian.regus@analog.com>

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 v3:
  - moved the chip info name field setting in this patch.
 drivers/iio/adc/ltc2496.c      |  1 +
 drivers/iio/adc/ltc2497-core.c | 10 +++++++++-
 drivers/iio/adc/ltc2497.c      |  2 ++
 drivers/iio/adc/ltc2497.h      |  1 +
 4 files changed, 13 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.c b/drivers/iio/adc/ltc2497.c
index 36248423a7a6..ea76436adaf3 100644
--- a/drivers/iio/adc/ltc2497.c
+++ b/drivers/iio/adc/ltc2497.c
@@ -126,9 +126,11 @@ static int ltc2497_remove(struct i2c_client *client)
 static const struct ltc2497_chip_info ltc2497_info[] = {
 	[TYPE_LTC2497] = {
 		.resolution = 16,
+		.name = NULL,
 	},
 	[TYPE_LTC2499] = {
 		.resolution = 24,
+		.name = "ltc2499",
 	},
 };
 
diff --git a/drivers/iio/adc/ltc2497.h b/drivers/iio/adc/ltc2497.h
index 71957fc7e1ba..e023de0d88c4 100644
--- a/drivers/iio/adc/ltc2497.h
+++ b/drivers/iio/adc/ltc2497.h
@@ -6,6 +6,7 @@
 
 struct ltc2497_chip_info {
 	u32 resolution;
+	const char *name;
 };
 
 struct ltc2497core_driverdata {
-- 
2.30.2


  parent reply	other threads:[~2022-09-16 14:12 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-09-16 14:09 [PATCH 0/5] Add support for LTC2499 ADC Ciprian Regus
2022-09-16 14:09 ` [PATCH 1/5] Remove duplicate matching entry Ciprian Regus
2022-09-16 14:09 ` [PATCH 2/5] dt-bindings: iio: adc: Add docs for LTC2499 Ciprian Regus
2022-09-16 14:09 ` [PATCH 3/5] Add MAINTAINERS entries for LTC2497 and LTC2496 Ciprian Regus
2022-09-16 14:09 ` [PATCH 4/5] drivers: iio: adc: LTC2499 support Ciprian Regus
2022-09-18 14:30   ` Jonathan Cameron
2022-09-16 14:09 ` Ciprian Regus [this message]
2022-09-18 14:33 ` [PATCH 0/5] Add support for LTC2499 ADC Jonathan Cameron

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220916140922.2506248-6-ciprian.regus@analog.com \
    --to=ciprian.regus@analog.com \
    --cc=devicetree@vger.kernel.org \
    --cc=jic23@kernel.org \
    --cc=linux-iio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox