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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 17 Nov 2020 09:52:52 +0200
Alexandru Ardelean <alexandru.ardelean@xxxxxxxxxx> 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@xxxxxxxxxx>
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_ */




[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux