diff mbox series

[1/3] iio: adc: ad7887: convert dual-channel mode to DT/ACPI

Message ID 20201117075254.4861-1-alexandru.ardelean@analog.com
State New
Headers show
Series [1/3] iio: adc: ad7887: convert dual-channel mode to DT/ACPI | expand

Commit Message

Alexandru Ardelean Nov. 17, 2020, 7:52 a.m. UTC
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>
---
 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

Comments

Andy Shevchenko Nov. 17, 2020, 11:08 a.m. UTC | #1
On Tue, Nov 17, 2020 at 12:42 PM Jonathan Cameron
<Jonathan.Cameron@huawei.com> wrote:
>
> 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).

The idea as I understand it is that the 'present' can be run against
any type of property, while 'bool' is specifically for boolean (the
similarities is a detail of implementation).
Alexandru Ardelean Nov. 18, 2020, 12:52 p.m. UTC | #2
On Tue, Nov 17, 2020 at 1:10 PM Andy Shevchenko
<andy.shevchenko@gmail.com> wrote:
>

> On Tue, Nov 17, 2020 at 12:42 PM Jonathan Cameron

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

> >

> > 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).

>

> The idea as I understand it is that the 'present' can be run against

> any type of property, while 'bool' is specifically for boolean (the

> similarities is a detail of implementation).


Yeah, I'm also not sure which to use here.
I guess I got used to using device_property_present() a bit more.
They're both pretty used around other drivers.
I guess I'll leave it as is for now, unless other complaints.


>

> --

> With Best Regards,

> Andy Shevchenko
diff mbox series

Patch

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");
+	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_ */