All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jonathan Cameron <jic23@kernel.org>
To: linux-iio@vger.kernel.org, devicetree@vger.kernel.org
Cc: Rob Herring <robh+dt@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
	Lars-Peter Clausen <lars@metafoo.de>,
	Michael Hennerich <Michael.Hennerich@analog.com>,
	Jonathan Cameron <Jonathan.Cameron@huawei.com>,
	Barry Song <baohua@kernel.org>
Subject: [PATCH 05/12] staging: iio: accel: adis16203: Simplify handling of calibbias
Date: Mon, 23 Jan 2023 21:17:51 +0000	[thread overview]
Message-ID: <20230123211758.563383-6-jic23@kernel.org> (raw)
In-Reply-To: <20230123211758.563383-1-jic23@kernel.org>

From: Jonathan Cameron <Jonathan.Cameron@huawei.com>

Dropping the indirection on address lookup as there was only one
address enables several other minor cleanups.

Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
---
 drivers/staging/iio/accel/adis16203.c | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/drivers/staging/iio/accel/adis16203.c b/drivers/staging/iio/accel/adis16203.c
index b59a003f3e26..67c0340d7097 100644
--- a/drivers/staging/iio/accel/adis16203.c
+++ b/drivers/staging/iio/accel/adis16203.c
@@ -5,6 +5,7 @@
  * Copyright 2010 Analog Devices Inc.
  */
 
+#include <linux/bitfield.h>
 #include <linux/device.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
@@ -57,6 +58,8 @@
 
 #define ADIS16203_ERROR_ACTIVE          BIT(14)
 
+#define ADIS16203_INCLI_NULL_MSK     GENMASK(13, 0)
+
 enum adis16203_scan {
 	 ADIS16203_SCAN_INCLI_X,
 	 ADIS16203_SCAN_SUPPLY,
@@ -66,10 +69,6 @@ enum adis16203_scan {
 
 #define DRIVER_NAME		"adis16203"
 
-static const u8 adis16203_addresses[] = {
-	[ADIS16203_SCAN_INCLI_X] = ADIS16203_INCL_NULL,
-};
-
 static int adis16203_write_raw(struct iio_dev *indio_dev,
 			       struct iio_chan_spec const *chan,
 			       int val,
@@ -77,10 +76,12 @@ static int adis16203_write_raw(struct iio_dev *indio_dev,
 			       long mask)
 {
 	struct adis *st = iio_priv(indio_dev);
-	/* currently only one writable parameter which keeps this simple */
-	u8 addr = adis16203_addresses[chan->scan_index];
 
-	return adis_write_reg_16(st, addr, val & 0x3FFF);
+	if (mask != IIO_CHAN_INFO_CALIBBIAS)
+		return -EINVAL;
+
+	return adis_write_reg_16(st, ADIS16203_INCL_NULL,
+				 FIELD_PREP(ADIS16203_INCLI_NULL_MSK, val));
 }
 
 static int adis16203_read_raw(struct iio_dev *indio_dev,
@@ -90,7 +91,7 @@ static int adis16203_read_raw(struct iio_dev *indio_dev,
 {
 	struct adis *st = iio_priv(indio_dev);
 	int ret;
-	u8 addr;
+
 	s16 val16;
 
 	switch (mask) {
@@ -123,8 +124,7 @@ static int adis16203_read_raw(struct iio_dev *indio_dev,
 		*val = 25000 / -470 - 1278; /* 25 C = 1278 */
 		return IIO_VAL_INT;
 	case IIO_CHAN_INFO_CALIBBIAS:
-		addr = adis16203_addresses[chan->scan_index];
-		ret = adis_read_reg_16(st, addr, &val16);
+		ret = adis_read_reg_16(st, ADIS16203_INCL_NULL, &val16);
 		if (ret)
 			return ret;
 		*val = sign_extend32(val16, 13);
-- 
2.39.1


  parent reply	other threads:[~2023-01-23 21:04 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-01-23 21:17 [PATCH 00/12] staging: iio: accel: adis16203 Inclinometer cleanup and graduation Jonathan Cameron
2023-01-23 21:17 ` [PATCH 01/12] staging: iio: accel: adis16203: More conventional header ordering Jonathan Cameron
2023-01-23 21:17 ` [PATCH 02/12] staging: iio: accel: adis16203: Drop excessive register comments Jonathan Cameron
2023-01-23 21:17 ` [PATCH 03/12] staging: iio: accel: adis16203: Rename incli channel registers Jonathan Cameron
2023-01-23 21:17 ` [PATCH 04/12] staging: iio: accel: adis16203: Drop the 180 degree offset channel Jonathan Cameron
2023-01-23 21:17 ` Jonathan Cameron [this message]
2023-01-23 21:17 ` [PATCH 06/12] staging: iio: accel: adis16203: Drop driver name define Jonathan Cameron
2023-01-23 21:17 ` [PATCH 07/12] staging: iio: accel: adis16203: Make units explicit in name of delay define Jonathan Cameron
2023-01-23 21:17 ` [PATCH 08/12] staging: iio: accel: adis16203: Trivial whitespace cleanup Jonathan Cameron
2023-01-23 21:17 ` [PATCH 09/12] staging: iio: accel: adis16203: Drop setting drvdata as nothing gets it Jonathan Cameron
2023-01-23 21:17 ` [PATCH 10/12] staging: iio: accel: adis16203: Trivial style cleanup Jonathan Cameron
2023-01-23 21:17 ` [PATCH 11/12] staging: iio: accel: adis16203: Move out of staging Jonathan Cameron
2023-01-24  9:44   ` Jonathan Cameron
2023-01-23 21:17 ` [PATCH 12/12] dt-bindings: iio: accel: Add ADIS16203 Inclinometer Jonathan Cameron
2023-01-24  1:22   ` Rob Herring
2023-01-24  8:39   ` Krzysztof Kozlowski
2023-01-24  9:43     ` Jonathan Cameron
2023-02-01  9:29       ` Linus Walleij

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=20230123211758.563383-6-jic23@kernel.org \
    --to=jic23@kernel.org \
    --cc=Jonathan.Cameron@huawei.com \
    --cc=Michael.Hennerich@analog.com \
    --cc=baohua@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=krzysztof.kozlowski+dt@linaro.org \
    --cc=lars@metafoo.de \
    --cc=linux-iio@vger.kernel.org \
    --cc=robh+dt@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.