From: Jonathan Cameron <Jonathan.Cameron@Huawei.com>
To: Alexandru Ardelean <alexandru.ardelean@analog.com>
Cc: <linux-iio@vger.kernel.org>, <devicetree@vger.kernel.org>,
<linux-kernel@vger.kernel.org>, <jic23@kernel.org>,
<robh+dt@kernel.org>
Subject: Re: [PATCH 1/3] iio: adc: ad7887: convert dual-channel mode to DT/ACPI
Date: Tue, 17 Nov 2020 10:41:26 +0000 [thread overview]
Message-ID: <20201117104126.00000516@Huawei.com> (raw)
In-Reply-To: <20201117075254.4861-1-alexandru.ardelean@analog.com>
On Tue, 17 Nov 2020 09:52:52 +0200
Alexandru Ardelean <alexandru.ardelean@analog.com> wrote:
> This change converts the configuration of the dual-channel mode from the
> old platform-data, to the device_property_present() function, which
> supports both device-tree and ACPI configuration setups.
>
> With this change the old platform_data include of the driver can be
> removed.
>
> Signed-off-by: Alexandru Ardelean <alexandru.ardelean@analog.com>
Hi Alex,
I'm a bit in too minds about device_property_present()
vs device_property_read_bool() which are the same thing under the hood.
Not sure which one conveys the correct semantics here.
I don't feel strongly enough about it though to do more than raise
eyebrows (i.e. not blocking this series).
Jonathan
> ---
> drivers/iio/adc/ad7887.c | 10 +++++-----
> include/linux/platform_data/ad7887.h | 21 ---------------------
> 2 files changed, 5 insertions(+), 26 deletions(-)
> delete mode 100644 include/linux/platform_data/ad7887.h
>
> diff --git a/drivers/iio/adc/ad7887.c b/drivers/iio/adc/ad7887.c
> index 4f6f0e0e03ee..06f684c053a0 100644
> --- a/drivers/iio/adc/ad7887.c
> +++ b/drivers/iio/adc/ad7887.c
> @@ -23,8 +23,6 @@
> #include <linux/iio/trigger_consumer.h>
> #include <linux/iio/triggered_buffer.h>
>
> -#include <linux/platform_data/ad7887.h>
> -
> #define AD7887_REF_DIS BIT(5) /* on-chip reference disable */
> #define AD7887_DUAL BIT(4) /* dual-channel mode */
> #define AD7887_CH_AIN1 BIT(3) /* convert on channel 1, DUAL=1 */
> @@ -241,9 +239,9 @@ static void ad7887_reg_disable(void *data)
>
> static int ad7887_probe(struct spi_device *spi)
> {
> - struct ad7887_platform_data *pdata = spi->dev.platform_data;
> struct ad7887_state *st;
> struct iio_dev *indio_dev;
> + bool dual_mode;
> uint8_t mode;
> int ret;
>
> @@ -286,7 +284,9 @@ static int ad7887_probe(struct spi_device *spi)
> mode = AD7887_PM_MODE4;
> if (!st->reg)
> mode |= AD7887_REF_DIS;
> - if (pdata && pdata->en_dual)
> +
> + dual_mode = device_property_present(&spi->dev, "adi,dual-channel-mode");
It ends up as the same thing internally but sort of feels like
device_property_read_bool() might be a better fit?
I assume device_property_present() will return true for say
adi,dual-channel-mode = <3>;
whereas in my head device_property_read_bool should at very least
print a warning on that (it doesn't :)
> + if (dual_mode)
> mode |= AD7887_DUAL;
>
> st->tx_cmd_buf[0] = AD7887_CH_AIN0 | mode;
> @@ -298,7 +298,7 @@ static int ad7887_probe(struct spi_device *spi)
> spi_message_init(&st->msg[AD7887_CH0]);
> spi_message_add_tail(&st->xfer[0], &st->msg[AD7887_CH0]);
>
> - if (pdata && pdata->en_dual) {
> + if (dual_mode) {
> st->tx_cmd_buf[2] = AD7887_CH_AIN1 | mode;
>
> st->xfer[1].rx_buf = &st->data[0];
> diff --git a/include/linux/platform_data/ad7887.h b/include/linux/platform_data/ad7887.h
> deleted file mode 100644
> index 9b4dca6ae70b..000000000000
> --- a/include/linux/platform_data/ad7887.h
> +++ /dev/null
> @@ -1,21 +0,0 @@
> -/* SPDX-License-Identifier: GPL-2.0-or-later */
> -/*
> - * AD7887 SPI ADC driver
> - *
> - * Copyright 2010 Analog Devices Inc.
> - */
> -#ifndef IIO_ADC_AD7887_H_
> -#define IIO_ADC_AD7887_H_
> -
> -/**
> - * struct ad7887_platform_data - AD7887 ADC driver platform data
> - * @en_dual: Whether to use dual channel mode. If set to true AIN1 becomes the
> - * second input channel, and Vref is internally connected to Vdd. If set to
> - * false the device is used in single channel mode and AIN1/Vref is used as
> - * VREF input.
> - */
> -struct ad7887_platform_data {
> - bool en_dual;
> -};
> -
> -#endif /* IIO_ADC_AD7887_H_ */
next prev parent reply other threads:[~2020-11-17 10:41 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-11-17 7:52 [PATCH 1/3] iio: adc: ad7887: convert dual-channel mode to DT/ACPI Alexandru Ardelean
2020-11-17 7:52 ` [PATCH 2/3] iio: adc: ad7887: convert driver to full DT probing Alexandru Ardelean
2020-11-17 11:01 ` Jonathan Cameron
2020-11-17 11:04 ` Jonathan Cameron
2020-11-17 15:03 ` Alexandru Ardelean
2020-11-17 16:02 ` Jonathan Cameron
2020-11-18 12:59 ` Alexandru Ardelean
2020-11-18 16:06 ` Jonathan Cameron
2020-11-17 11:05 ` Andy Shevchenko
2020-11-17 7:52 ` [PATCH 3/3] dt-bindings: adc: ad7887: add binding doc for AD7887 Alexandru Ardelean
2020-11-17 11:03 ` Jonathan Cameron
2020-11-17 10:41 ` Jonathan Cameron [this message]
2020-11-17 11:08 ` [PATCH 1/3] iio: adc: ad7887: convert dual-channel mode to DT/ACPI Andy Shevchenko
2020-11-18 12:52 ` Alexandru Ardelean
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=20201117104126.00000516@Huawei.com \
--to=jonathan.cameron@huawei.com \
--cc=alexandru.ardelean@analog.com \
--cc=devicetree@vger.kernel.org \
--cc=jic23@kernel.org \
--cc=linux-iio@vger.kernel.org \
--cc=linux-kernel@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.