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 |
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).
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 --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_ */
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