All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/2] staging:iio:ad7606: Remove incorrect kernel doc annotations
@ 2018-09-13 11:02 Alexandru Ardelean
  2018-09-13 11:02 ` [PATCH 2/2] staging:iio:ad7606: Add support for the ad7605-4 Alexandru Ardelean
  2018-09-16 11:19 ` [PATCH 1/2] staging:iio:ad7606: Remove incorrect kernel doc annotations Jonathan Cameron
  0 siblings, 2 replies; 11+ messages in thread
From: Alexandru Ardelean @ 2018-09-13 11:02 UTC (permalink / raw)
  To: linux-iio, Michael.Hennerich, lars, jic23
  Cc: knaack.h, pmeerw, Alexandru Ardelean

The ad7606_chip_info struct does not have the lock & name fields. Remove
the kernel documentation annotations for it.

Signed-off-by: Alexandru Ardelean <alexandru.ardelean@analog.com>
---
 drivers/staging/iio/adc/ad7606.h | 2 --
 1 file changed, 2 deletions(-)

diff --git a/drivers/staging/iio/adc/ad7606.h b/drivers/staging/iio/adc/ad7606.h
index 24c2a85f5c5a..57f11b46bc69 100644
--- a/drivers/staging/iio/adc/ad7606.h
+++ b/drivers/staging/iio/adc/ad7606.h
@@ -11,10 +11,8 @@
 
 /**
  * struct ad7606_chip_info - chip specific information
- * @name:		identification string for chip
  * @channels:		channel specification
  * @num_channels:	number of channels
- * @lock		protect sensor state
  */
 
 struct ad7606_chip_info {
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH 2/2] staging:iio:ad7606: Add support for the ad7605-4
  2018-09-13 11:02 [PATCH 1/2] staging:iio:ad7606: Remove incorrect kernel doc annotations Alexandru Ardelean
@ 2018-09-13 11:02 ` Alexandru Ardelean
  2018-09-16 11:22   ` Jonathan Cameron
  2018-09-16 11:19 ` [PATCH 1/2] staging:iio:ad7606: Remove incorrect kernel doc annotations Jonathan Cameron
  1 sibling, 1 reply; 11+ messages in thread
From: Alexandru Ardelean @ 2018-09-13 11:02 UTC (permalink / raw)
  To: linux-iio, Michael.Hennerich, lars, jic23
  Cc: knaack.h, pmeerw, Alexandru Ardelean

Add support for the AD7605-4 to the AD7606 driver. The AD7605-4 is mostly
interface compatible to the AD7606-6 with the only difference being not
having support for oversampling.

Signed-off-by: Alexandru Ardelean <alexandru.ardelean@analog.com>
---
 drivers/staging/iio/adc/Kconfig      |  2 +-
 drivers/staging/iio/adc/ad7606.c     | 33 +++++++++++++++++++++++-----
 drivers/staging/iio/adc/ad7606.h     |  3 +++
 drivers/staging/iio/adc/ad7606_par.c |  3 +++
 drivers/staging/iio/adc/ad7606_spi.c |  1 +
 5 files changed, 36 insertions(+), 6 deletions(-)

diff --git a/drivers/staging/iio/adc/Kconfig b/drivers/staging/iio/adc/Kconfig
index e17efb03bac0..9d3062a07460 100644
--- a/drivers/staging/iio/adc/Kconfig
+++ b/drivers/staging/iio/adc/Kconfig
@@ -11,7 +11,7 @@ config AD7606
 	select IIO_TRIGGERED_BUFFER
 	help
 	  Say yes here to build support for Analog Devices:
-	  ad7606, ad7606-6, ad7606-4 analog to digital converters (ADC).
+	  ad7605-4, ad7606, ad7606-6, ad7606-4 analog to digital converters (ADC).
 
 	  To compile this driver as a module, choose M here: the
 	  module will be called ad7606.
diff --git a/drivers/staging/iio/adc/ad7606.c b/drivers/staging/iio/adc/ad7606.c
index 793de92f27ed..06d65196bedb 100644
--- a/drivers/staging/iio/adc/ad7606.c
+++ b/drivers/staging/iio/adc/ad7606.c
@@ -275,7 +275,7 @@ static const struct attribute_group ad7606_attribute_group_range = {
 	.attrs = ad7606_attributes_range,
 };
 
-#define AD7606_CHANNEL(num)					\
+#define AD760X_CHANNEL(num, mask)				\
 	{							\
 		.type = IIO_VOLTAGE,				\
 		.indexed = 1,					\
@@ -283,8 +283,7 @@ static const struct attribute_group ad7606_attribute_group_range = {
 		.address = num,					\
 		.info_mask_separate = BIT(IIO_CHAN_INFO_RAW),	\
 		.info_mask_shared_by_type = BIT(IIO_CHAN_INFO_SCALE),\
-		.info_mask_shared_by_all =			\
-			BIT(IIO_CHAN_INFO_OVERSAMPLING_RATIO),	\
+		.info_mask_shared_by_all = mask,		\
 		.scan_index = num,				\
 		.scan_type = {					\
 			.sign = 's',				\
@@ -294,6 +293,20 @@ static const struct attribute_group ad7606_attribute_group_range = {
 		},						\
 	}
 
+#define AD7605_CHANNEL(num)	\
+	AD760X_CHANNEL(num, 0)
+
+#define AD7606_CHANNEL(num)	\
+	AD760X_CHANNEL(num, BIT(IIO_CHAN_INFO_OVERSAMPLING_RATIO))
+
+static const struct iio_chan_spec ad7605_channels[] = {
+	IIO_CHAN_SOFT_TIMESTAMP(4),
+	AD7605_CHANNEL(0),
+	AD7605_CHANNEL(1),
+	AD7605_CHANNEL(2),
+	AD7605_CHANNEL(3),
+};
+
 static const struct iio_chan_spec ad7606_channels[] = {
 	IIO_CHAN_SOFT_TIMESTAMP(8),
 	AD7606_CHANNEL(0),
@@ -310,17 +323,24 @@ static const struct ad7606_chip_info ad7606_chip_info_tbl[] = {
 	/*
 	 * More devices added in future
 	 */
+	[ID_AD7605_4] = {
+		.channels = ad7605_channels,
+		.num_channels = 5,
+	},
 	[ID_AD7606_8] = {
 		.channels = ad7606_channels,
 		.num_channels = 9,
+		.has_oversampling = true,
 	},
 	[ID_AD7606_6] = {
 		.channels = ad7606_channels,
 		.num_channels = 7,
+		.has_oversampling = true,
 	},
 	[ID_AD7606_4] = {
 		.channels = ad7606_channels,
 		.num_channels = 5,
+		.has_oversampling = true,
 	},
 };
 
@@ -351,6 +371,9 @@ static int ad7606_request_gpios(struct ad7606_state *st)
 	if (IS_ERR(st->gpio_frstdata))
 		return PTR_ERR(st->gpio_frstdata);
 
+	if (!st->chip_info->has_oversampling)
+		return 0;
+
 	st->gpio_os = devm_gpiod_get_array_optional(dev, "oversampling-ratio",
 			GPIOD_OUT_LOW);
 	return PTR_ERR_OR_ZERO(st->gpio_os);
@@ -429,12 +452,12 @@ int ad7606_probe(struct device *dev, int irq, void __iomem *base_address,
 		return ret;
 	}
 
+	st->chip_info = &ad7606_chip_info_tbl[id];
+
 	ret = ad7606_request_gpios(st);
 	if (ret)
 		goto error_disable_reg;
 
-	st->chip_info = &ad7606_chip_info_tbl[id];
-
 	indio_dev->dev.parent = dev;
 	if (st->gpio_os) {
 		if (st->gpio_range)
diff --git a/drivers/staging/iio/adc/ad7606.h b/drivers/staging/iio/adc/ad7606.h
index 57f11b46bc69..f422296354c9 100644
--- a/drivers/staging/iio/adc/ad7606.h
+++ b/drivers/staging/iio/adc/ad7606.h
@@ -13,11 +13,13 @@
  * struct ad7606_chip_info - chip specific information
  * @channels:		channel specification
  * @num_channels:	number of channels
+ * @has_oversampling:   whether the device has oversampling support
  */
 
 struct ad7606_chip_info {
 	const struct iio_chan_spec	*channels;
 	unsigned int			num_channels;
+	bool				has_oversampling;
 };
 
 /**
@@ -87,6 +89,7 @@ int ad7606_probe(struct device *dev, int irq, void __iomem *base_address,
 int ad7606_remove(struct device *dev, int irq);
 
 enum ad7606_supported_device_ids {
+	ID_AD7605_4,
 	ID_AD7606_8,
 	ID_AD7606_6,
 	ID_AD7606_4
diff --git a/drivers/staging/iio/adc/ad7606_par.c b/drivers/staging/iio/adc/ad7606_par.c
index 956e38774767..8bd86e727b02 100644
--- a/drivers/staging/iio/adc/ad7606_par.c
+++ b/drivers/staging/iio/adc/ad7606_par.c
@@ -79,6 +79,9 @@ static int ad7606_par_remove(struct platform_device *pdev)
 
 static const struct platform_device_id ad7606_driver_ids[] = {
 	{
+		.name		= "ad7605-4",
+		.driver_data	= ID_AD7605_4,
+	}, {
 		.name		= "ad7606-8",
 		.driver_data	= ID_AD7606_8,
 	}, {
diff --git a/drivers/staging/iio/adc/ad7606_spi.c b/drivers/staging/iio/adc/ad7606_spi.c
index ffd9d0626ec2..b76ca5a8c059 100644
--- a/drivers/staging/iio/adc/ad7606_spi.c
+++ b/drivers/staging/iio/adc/ad7606_spi.c
@@ -55,6 +55,7 @@ static int ad7606_spi_remove(struct spi_device *spi)
 }
 
 static const struct spi_device_id ad7606_id[] = {
+	{"ad7605-4", ID_AD7605_4},
 	{"ad7606-8", ID_AD7606_8},
 	{"ad7606-6", ID_AD7606_6},
 	{"ad7606-4", ID_AD7606_4},
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: [PATCH 1/2] staging:iio:ad7606: Remove incorrect kernel doc annotations
  2018-09-13 11:02 [PATCH 1/2] staging:iio:ad7606: Remove incorrect kernel doc annotations Alexandru Ardelean
  2018-09-13 11:02 ` [PATCH 2/2] staging:iio:ad7606: Add support for the ad7605-4 Alexandru Ardelean
@ 2018-09-16 11:19 ` Jonathan Cameron
  1 sibling, 0 replies; 11+ messages in thread
From: Jonathan Cameron @ 2018-09-16 11:19 UTC (permalink / raw)
  To: Alexandru Ardelean; +Cc: linux-iio, Michael.Hennerich, lars, knaack.h, pmeerw

On Thu, 13 Sep 2018 14:02:11 +0300
Alexandru Ardelean <alexandru.ardelean@analog.com> wrote:

> The ad7606_chip_info struct does not have the lock & name fields. Remove
> the kernel documentation annotations for it.
> 
> Signed-off-by: Alexandru Ardelean <alexandru.ardelean@analog.com>
Applied to the togreg branch of iio.git and pushed out as testing
for the autobuilders to play with it.

Thanks,

Jonathan

> ---
>  drivers/staging/iio/adc/ad7606.h | 2 --
>  1 file changed, 2 deletions(-)
> 
> diff --git a/drivers/staging/iio/adc/ad7606.h b/drivers/staging/iio/adc/ad7606.h
> index 24c2a85f5c5a..57f11b46bc69 100644
> --- a/drivers/staging/iio/adc/ad7606.h
> +++ b/drivers/staging/iio/adc/ad7606.h
> @@ -11,10 +11,8 @@
>  
>  /**
>   * struct ad7606_chip_info - chip specific information
> - * @name:		identification string for chip
>   * @channels:		channel specification
>   * @num_channels:	number of channels
> - * @lock		protect sensor state
>   */
>  
>  struct ad7606_chip_info {

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH 2/2] staging:iio:ad7606: Add support for the ad7605-4
  2018-09-13 11:02 ` [PATCH 2/2] staging:iio:ad7606: Add support for the ad7605-4 Alexandru Ardelean
@ 2018-09-16 11:22   ` Jonathan Cameron
  2018-09-17  7:33     ` Ardelean, Alexandru
  0 siblings, 1 reply; 11+ messages in thread
From: Jonathan Cameron @ 2018-09-16 11:22 UTC (permalink / raw)
  To: Alexandru Ardelean; +Cc: linux-iio, Michael.Hennerich, lars, knaack.h, pmeerw

On Thu, 13 Sep 2018 14:02:12 +0300
Alexandru Ardelean <alexandru.ardelean@analog.com> wrote:

> Add support for the AD7605-4 to the AD7606 driver. The AD7605-4 is mostly
> interface compatible to the AD7606-6 with the only difference being not
> having support for oversampling.
> 
> Signed-off-by: Alexandru Ardelean <alexandru.ardelean@analog.com>
I am guessing this might clash with the devm change from earlier in the
day so I'm not going to apply it (too much risk of a bug sneaking in).

Please resend the remaining patches in for this driver as a series so
ordering is obvious etc.

Otherwise this one looks good to me.

Thanks,

Jonathan
> ---
>  drivers/staging/iio/adc/Kconfig      |  2 +-
>  drivers/staging/iio/adc/ad7606.c     | 33 +++++++++++++++++++++++-----
>  drivers/staging/iio/adc/ad7606.h     |  3 +++
>  drivers/staging/iio/adc/ad7606_par.c |  3 +++
>  drivers/staging/iio/adc/ad7606_spi.c |  1 +
>  5 files changed, 36 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/staging/iio/adc/Kconfig b/drivers/staging/iio/adc/Kconfig
> index e17efb03bac0..9d3062a07460 100644
> --- a/drivers/staging/iio/adc/Kconfig
> +++ b/drivers/staging/iio/adc/Kconfig
> @@ -11,7 +11,7 @@ config AD7606
>  	select IIO_TRIGGERED_BUFFER
>  	help
>  	  Say yes here to build support for Analog Devices:
> -	  ad7606, ad7606-6, ad7606-4 analog to digital converters (ADC).
> +	  ad7605-4, ad7606, ad7606-6, ad7606-4 analog to digital converters (ADC).
>  
>  	  To compile this driver as a module, choose M here: the
>  	  module will be called ad7606.
> diff --git a/drivers/staging/iio/adc/ad7606.c b/drivers/staging/iio/adc/ad7606.c
> index 793de92f27ed..06d65196bedb 100644
> --- a/drivers/staging/iio/adc/ad7606.c
> +++ b/drivers/staging/iio/adc/ad7606.c
> @@ -275,7 +275,7 @@ static const struct attribute_group ad7606_attribute_group_range = {
>  	.attrs = ad7606_attributes_range,
>  };
>  
> -#define AD7606_CHANNEL(num)					\
> +#define AD760X_CHANNEL(num, mask)				\
>  	{							\
>  		.type = IIO_VOLTAGE,				\
>  		.indexed = 1,					\
> @@ -283,8 +283,7 @@ static const struct attribute_group ad7606_attribute_group_range = {
>  		.address = num,					\
>  		.info_mask_separate = BIT(IIO_CHAN_INFO_RAW),	\
>  		.info_mask_shared_by_type = BIT(IIO_CHAN_INFO_SCALE),\
> -		.info_mask_shared_by_all =			\
> -			BIT(IIO_CHAN_INFO_OVERSAMPLING_RATIO),	\
> +		.info_mask_shared_by_all = mask,		\
>  		.scan_index = num,				\
>  		.scan_type = {					\
>  			.sign = 's',				\
> @@ -294,6 +293,20 @@ static const struct attribute_group ad7606_attribute_group_range = {
>  		},						\
>  	}
>  
> +#define AD7605_CHANNEL(num)	\
> +	AD760X_CHANNEL(num, 0)
> +
> +#define AD7606_CHANNEL(num)	\
> +	AD760X_CHANNEL(num, BIT(IIO_CHAN_INFO_OVERSAMPLING_RATIO))
> +
> +static const struct iio_chan_spec ad7605_channels[] = {
> +	IIO_CHAN_SOFT_TIMESTAMP(4),
> +	AD7605_CHANNEL(0),
> +	AD7605_CHANNEL(1),
> +	AD7605_CHANNEL(2),
> +	AD7605_CHANNEL(3),
> +};
> +
>  static const struct iio_chan_spec ad7606_channels[] = {
>  	IIO_CHAN_SOFT_TIMESTAMP(8),
>  	AD7606_CHANNEL(0),
> @@ -310,17 +323,24 @@ static const struct ad7606_chip_info ad7606_chip_info_tbl[] = {
>  	/*
>  	 * More devices added in future
>  	 */
> +	[ID_AD7605_4] = {
> +		.channels = ad7605_channels,
> +		.num_channels = 5,
> +	},
>  	[ID_AD7606_8] = {
>  		.channels = ad7606_channels,
>  		.num_channels = 9,
> +		.has_oversampling = true,
>  	},
>  	[ID_AD7606_6] = {
>  		.channels = ad7606_channels,
>  		.num_channels = 7,
> +		.has_oversampling = true,
>  	},
>  	[ID_AD7606_4] = {
>  		.channels = ad7606_channels,
>  		.num_channels = 5,
> +		.has_oversampling = true,
>  	},
>  };
>  
> @@ -351,6 +371,9 @@ static int ad7606_request_gpios(struct ad7606_state *st)
>  	if (IS_ERR(st->gpio_frstdata))
>  		return PTR_ERR(st->gpio_frstdata);
>  
> +	if (!st->chip_info->has_oversampling)
> +		return 0;
> +
>  	st->gpio_os = devm_gpiod_get_array_optional(dev, "oversampling-ratio",
>  			GPIOD_OUT_LOW);
>  	return PTR_ERR_OR_ZERO(st->gpio_os);
> @@ -429,12 +452,12 @@ int ad7606_probe(struct device *dev, int irq, void __iomem *base_address,
>  		return ret;
>  	}
>  
> +	st->chip_info = &ad7606_chip_info_tbl[id];
> +
>  	ret = ad7606_request_gpios(st);
>  	if (ret)
>  		goto error_disable_reg;
>  
> -	st->chip_info = &ad7606_chip_info_tbl[id];
> -
>  	indio_dev->dev.parent = dev;
>  	if (st->gpio_os) {
>  		if (st->gpio_range)
> diff --git a/drivers/staging/iio/adc/ad7606.h b/drivers/staging/iio/adc/ad7606.h
> index 57f11b46bc69..f422296354c9 100644
> --- a/drivers/staging/iio/adc/ad7606.h
> +++ b/drivers/staging/iio/adc/ad7606.h
> @@ -13,11 +13,13 @@
>   * struct ad7606_chip_info - chip specific information
>   * @channels:		channel specification
>   * @num_channels:	number of channels
> + * @has_oversampling:   whether the device has oversampling support
>   */
>  
>  struct ad7606_chip_info {
>  	const struct iio_chan_spec	*channels;
>  	unsigned int			num_channels;
> +	bool				has_oversampling;
>  };
>  
>  /**
> @@ -87,6 +89,7 @@ int ad7606_probe(struct device *dev, int irq, void __iomem *base_address,
>  int ad7606_remove(struct device *dev, int irq);
>  
>  enum ad7606_supported_device_ids {
> +	ID_AD7605_4,
>  	ID_AD7606_8,
>  	ID_AD7606_6,
>  	ID_AD7606_4
> diff --git a/drivers/staging/iio/adc/ad7606_par.c b/drivers/staging/iio/adc/ad7606_par.c
> index 956e38774767..8bd86e727b02 100644
> --- a/drivers/staging/iio/adc/ad7606_par.c
> +++ b/drivers/staging/iio/adc/ad7606_par.c
> @@ -79,6 +79,9 @@ static int ad7606_par_remove(struct platform_device *pdev)
>  
>  static const struct platform_device_id ad7606_driver_ids[] = {
>  	{
> +		.name		= "ad7605-4",
> +		.driver_data	= ID_AD7605_4,
> +	}, {
>  		.name		= "ad7606-8",
>  		.driver_data	= ID_AD7606_8,
>  	}, {
> diff --git a/drivers/staging/iio/adc/ad7606_spi.c b/drivers/staging/iio/adc/ad7606_spi.c
> index ffd9d0626ec2..b76ca5a8c059 100644
> --- a/drivers/staging/iio/adc/ad7606_spi.c
> +++ b/drivers/staging/iio/adc/ad7606_spi.c
> @@ -55,6 +55,7 @@ static int ad7606_spi_remove(struct spi_device *spi)
>  }
>  
>  static const struct spi_device_id ad7606_id[] = {
> +	{"ad7605-4", ID_AD7605_4},
>  	{"ad7606-8", ID_AD7606_8},
>  	{"ad7606-6", ID_AD7606_6},
>  	{"ad7606-4", ID_AD7606_4},

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH 2/2] staging:iio:ad7606: Add support for the ad7605-4
  2018-09-16 11:22   ` Jonathan Cameron
@ 2018-09-17  7:33     ` Ardelean, Alexandru
  2018-09-17  8:30       ` Jonathan Cameron
  0 siblings, 1 reply; 11+ messages in thread
From: Ardelean, Alexandru @ 2018-09-17  7:33 UTC (permalink / raw)
  To: jic23; +Cc: lars, knaack.h, linux-iio, Hennerich, Michael, pmeerw

T24gU3VuLCAyMDE4LTA5LTE2IGF0IDEyOjIyICswMTAwLCBKb25hdGhhbiBDYW1lcm9uIHdyb3Rl
Og0KPiBPbiBUaHUsIDEzIFNlcCAyMDE4IDE0OjAyOjEyICswMzAwDQo+IEFsZXhhbmRydSBBcmRl
bGVhbiA8YWxleGFuZHJ1LmFyZGVsZWFuQGFuYWxvZy5jb20+IHdyb3RlOg0KPiANCj4gPiBBZGQg
c3VwcG9ydCBmb3IgdGhlIEFENzYwNS00IHRvIHRoZSBBRDc2MDYgZHJpdmVyLiBUaGUgQUQ3NjA1
LTQgaXMNCj4gPiBtb3N0bHkNCj4gPiBpbnRlcmZhY2UgY29tcGF0aWJsZSB0byB0aGUgQUQ3NjA2
LTYgd2l0aCB0aGUgb25seSBkaWZmZXJlbmNlIGJlaW5nIG5vdA0KPiA+IGhhdmluZyBzdXBwb3J0
IGZvciBvdmVyc2FtcGxpbmcuDQo+ID4gDQo+ID4gU2lnbmVkLW9mZi1ieTogQWxleGFuZHJ1IEFy
ZGVsZWFuIDxhbGV4YW5kcnUuYXJkZWxlYW5AYW5hbG9nLmNvbT4NCj4gDQo+IEkgYW0gZ3Vlc3Np
bmcgdGhpcyBtaWdodCBjbGFzaCB3aXRoIHRoZSBkZXZtIGNoYW5nZSBmcm9tIGVhcmxpZXIgaW4g
dGhlDQo+IGRheSBzbyBJJ20gbm90IGdvaW5nIHRvIGFwcGx5IGl0ICh0b28gbXVjaCByaXNrIG9m
IGEgYnVnIHNuZWFraW5nIGluKS4NCj4gDQo+IFBsZWFzZSByZXNlbmQgdGhlIHJlbWFpbmluZyBw
YXRjaGVzIGluIGZvciB0aGlzIGRyaXZlciBhcyBhIHNlcmllcyBzbw0KPiBvcmRlcmluZyBpcyBv
YnZpb3VzIGV0Yy4NCg0KSG1tLCB0aGUgcGF0Y2ggZG9lc24ndCBjbGFzaCwgYnV0IEkgd2lsbCBz
ZW5kIHRoZW0gYXMgYSBzZXJpZXMuDQoNCj4gDQo+IE90aGVyd2lzZSB0aGlzIG9uZSBsb29rcyBn
b29kIHRvIG1lLg0KPiANCj4gVGhhbmtzLA0KPiANCj4gSm9uYXRoYW4NCg0KVGhhbmtzDQpBbGV4
DQoNCj4gPiAtLS0NCj4gPiAgZHJpdmVycy9zdGFnaW5nL2lpby9hZGMvS2NvbmZpZyAgICAgIHwg
IDIgKy0NCj4gPiAgZHJpdmVycy9zdGFnaW5nL2lpby9hZGMvYWQ3NjA2LmMgICAgIHwgMzMgKysr
KysrKysrKysrKysrKysrKysrKystLS0tLQ0KPiA+ICBkcml2ZXJzL3N0YWdpbmcvaWlvL2FkYy9h
ZDc2MDYuaCAgICAgfCAgMyArKysNCj4gPiAgZHJpdmVycy9zdGFnaW5nL2lpby9hZGMvYWQ3NjA2
X3Bhci5jIHwgIDMgKysrDQo+ID4gIGRyaXZlcnMvc3RhZ2luZy9paW8vYWRjL2FkNzYwNl9zcGku
YyB8ICAxICsNCj4gPiAgNSBmaWxlcyBjaGFuZ2VkLCAzNiBpbnNlcnRpb25zKCspLCA2IGRlbGV0
aW9ucygtKQ0KPiA+IA0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3N0YWdpbmcvaWlvL2FkYy9L
Y29uZmlnDQo+ID4gYi9kcml2ZXJzL3N0YWdpbmcvaWlvL2FkYy9LY29uZmlnDQo+ID4gaW5kZXgg
ZTE3ZWZiMDNiYWMwLi45ZDMwNjJhMDc0NjAgMTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9zdGFn
aW5nL2lpby9hZGMvS2NvbmZpZw0KPiA+ICsrKyBiL2RyaXZlcnMvc3RhZ2luZy9paW8vYWRjL0tj
b25maWcNCj4gPiBAQCAtMTEsNyArMTEsNyBAQCBjb25maWcgQUQ3NjA2DQo+ID4gIAlzZWxlY3Qg
SUlPX1RSSUdHRVJFRF9CVUZGRVINCj4gPiAgCWhlbHANCj4gPiAgCSAgU2F5IHllcyBoZXJlIHRv
IGJ1aWxkIHN1cHBvcnQgZm9yIEFuYWxvZyBEZXZpY2VzOg0KPiA+IC0JICBhZDc2MDYsIGFkNzYw
Ni02LCBhZDc2MDYtNCBhbmFsb2cgdG8gZGlnaXRhbCBjb252ZXJ0ZXJzDQo+ID4gKEFEQykuDQo+
ID4gKwkgIGFkNzYwNS00LCBhZDc2MDYsIGFkNzYwNi02LCBhZDc2MDYtNCBhbmFsb2cgdG8gZGln
aXRhbA0KPiA+IGNvbnZlcnRlcnMgKEFEQykuDQo+ID4gIA0KPiA+ICAJICBUbyBjb21waWxlIHRo
aXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlOiB0aGUNCj4gPiAgCSAgbW9kdWxl
IHdpbGwgYmUgY2FsbGVkIGFkNzYwNi4NCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5n
L2lpby9hZGMvYWQ3NjA2LmMNCj4gPiBiL2RyaXZlcnMvc3RhZ2luZy9paW8vYWRjL2FkNzYwNi5j
DQo+ID4gaW5kZXggNzkzZGU5MmYyN2VkLi4wNmQ2NTE5NmJlZGIgMTAwNjQ0DQo+ID4gLS0tIGEv
ZHJpdmVycy9zdGFnaW5nL2lpby9hZGMvYWQ3NjA2LmMNCj4gPiArKysgYi9kcml2ZXJzL3N0YWdp
bmcvaWlvL2FkYy9hZDc2MDYuYw0KPiA+IEBAIC0yNzUsNyArMjc1LDcgQEAgc3RhdGljIGNvbnN0
IHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXANCj4gPiBhZDc2MDZfYXR0cmlidXRlX2dyb3VwX3Jhbmdl
ID0gew0KPiA+ICAJLmF0dHJzID0gYWQ3NjA2X2F0dHJpYnV0ZXNfcmFuZ2UsDQo+ID4gIH07DQo+
ID4gIA0KPiA+IC0jZGVmaW5lIEFENzYwNl9DSEFOTkVMKG51bSkJCQkJCVwNCj4gPiArI2RlZmlu
ZSBBRDc2MFhfQ0hBTk5FTChudW0sIG1hc2spCQkJCVwNCj4gPiAgCXsJCQkJCQkJXA0KPiA+ICAJ
CS50eXBlID0gSUlPX1ZPTFRBR0UsCQkJCVwNCj4gPiAgCQkuaW5kZXhlZCA9IDEsCQkJCQlcDQo+
ID4gQEAgLTI4Myw4ICsyODMsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGF0dHJpYnV0ZV9ncm91
cA0KPiA+IGFkNzYwNl9hdHRyaWJ1dGVfZ3JvdXBfcmFuZ2UgPSB7DQo+ID4gIAkJLmFkZHJlc3Mg
PSBudW0sCQkJCQkNCj4gPiBcDQo+ID4gIAkJLmluZm9fbWFza19zZXBhcmF0ZSA9IEJJVChJSU9f
Q0hBTl9JTkZPX1JBVyksCVwNCj4gPiAgCQkuaW5mb19tYXNrX3NoYXJlZF9ieV90eXBlID0gQklU
KElJT19DSEFOX0lORk9fU0NBTEUpLFwNCj4gPiAtCQkuaW5mb19tYXNrX3NoYXJlZF9ieV9hbGwg
PQkJCVwNCj4gPiAtCQkJQklUKElJT19DSEFOX0lORk9fT1ZFUlNBTVBMSU5HX1JBVElPKSwJDQo+
ID4gXA0KPiA+ICsJCS5pbmZvX21hc2tfc2hhcmVkX2J5X2FsbCA9IG1hc2ssCQlcDQo+ID4gIAkJ
LnNjYW5faW5kZXggPSBudW0sCQkJCVwNCj4gPiAgCQkuc2Nhbl90eXBlID0gewkJCQkJDQo+ID4g
XA0KPiA+ICAJCQkuc2lnbiA9ICdzJywJCQkJXA0KPiA+IEBAIC0yOTQsNiArMjkzLDIwIEBAIHN0
YXRpYyBjb25zdCBzdHJ1Y3QgYXR0cmlidXRlX2dyb3VwDQo+ID4gYWQ3NjA2X2F0dHJpYnV0ZV9n
cm91cF9yYW5nZSA9IHsNCj4gPiAgCQl9LAkJCQkJCVwNCj4gPiAgCX0NCj4gPiAgDQo+ID4gKyNk
ZWZpbmUgQUQ3NjA1X0NIQU5ORUwobnVtKQlcDQo+ID4gKwlBRDc2MFhfQ0hBTk5FTChudW0sIDAp
DQo+ID4gKw0KPiA+ICsjZGVmaW5lIEFENzYwNl9DSEFOTkVMKG51bSkJXA0KPiA+ICsJQUQ3NjBY
X0NIQU5ORUwobnVtLCBCSVQoSUlPX0NIQU5fSU5GT19PVkVSU0FNUExJTkdfUkFUSU8pKQ0KPiA+
ICsNCj4gPiArc3RhdGljIGNvbnN0IHN0cnVjdCBpaW9fY2hhbl9zcGVjIGFkNzYwNV9jaGFubmVs
c1tdID0gew0KPiA+ICsJSUlPX0NIQU5fU09GVF9USU1FU1RBTVAoNCksDQo+ID4gKwlBRDc2MDVf
Q0hBTk5FTCgwKSwNCj4gPiArCUFENzYwNV9DSEFOTkVMKDEpLA0KPiA+ICsJQUQ3NjA1X0NIQU5O
RUwoMiksDQo+ID4gKwlBRDc2MDVfQ0hBTk5FTCgzKSwNCj4gPiArfTsNCj4gPiArDQo+ID4gIHN0
YXRpYyBjb25zdCBzdHJ1Y3QgaWlvX2NoYW5fc3BlYyBhZDc2MDZfY2hhbm5lbHNbXSA9IHsNCj4g
PiAgCUlJT19DSEFOX1NPRlRfVElNRVNUQU1QKDgpLA0KPiA+ICAJQUQ3NjA2X0NIQU5ORUwoMCks
DQo+ID4gQEAgLTMxMCwxNyArMzIzLDI0IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYWQ3NjA2X2No
aXBfaW5mbw0KPiA+IGFkNzYwNl9jaGlwX2luZm9fdGJsW10gPSB7DQo+ID4gIAkvKg0KPiA+ICAJ
ICogTW9yZSBkZXZpY2VzIGFkZGVkIGluIGZ1dHVyZQ0KPiA+ICAJICovDQo+ID4gKwlbSURfQUQ3
NjA1XzRdID0gew0KPiA+ICsJCS5jaGFubmVscyA9IGFkNzYwNV9jaGFubmVscywNCj4gPiArCQku
bnVtX2NoYW5uZWxzID0gNSwNCj4gPiArCX0sDQo+ID4gIAlbSURfQUQ3NjA2XzhdID0gew0KPiA+
ICAJCS5jaGFubmVscyA9IGFkNzYwNl9jaGFubmVscywNCj4gPiAgCQkubnVtX2NoYW5uZWxzID0g
OSwNCj4gPiArCQkuaGFzX292ZXJzYW1wbGluZyA9IHRydWUsDQo+ID4gIAl9LA0KPiA+ICAJW0lE
X0FENzYwNl82XSA9IHsNCj4gPiAgCQkuY2hhbm5lbHMgPSBhZDc2MDZfY2hhbm5lbHMsDQo+ID4g
IAkJLm51bV9jaGFubmVscyA9IDcsDQo+ID4gKwkJLmhhc19vdmVyc2FtcGxpbmcgPSB0cnVlLA0K
PiA+ICAJfSwNCj4gPiAgCVtJRF9BRDc2MDZfNF0gPSB7DQo+ID4gIAkJLmNoYW5uZWxzID0gYWQ3
NjA2X2NoYW5uZWxzLA0KPiA+ICAJCS5udW1fY2hhbm5lbHMgPSA1LA0KPiA+ICsJCS5oYXNfb3Zl
cnNhbXBsaW5nID0gdHJ1ZSwNCj4gPiAgCX0sDQo+ID4gIH07DQo+ID4gIA0KPiA+IEBAIC0zNTEs
NiArMzcxLDkgQEAgc3RhdGljIGludCBhZDc2MDZfcmVxdWVzdF9ncGlvcyhzdHJ1Y3QgYWQ3NjA2
X3N0YXRlDQo+ID4gKnN0KQ0KPiA+ICAJaWYgKElTX0VSUihzdC0+Z3Bpb19mcnN0ZGF0YSkpDQo+
ID4gIAkJcmV0dXJuIFBUUl9FUlIoc3QtPmdwaW9fZnJzdGRhdGEpOw0KPiA+ICANCj4gPiArCWlm
ICghc3QtPmNoaXBfaW5mby0+aGFzX292ZXJzYW1wbGluZykNCj4gPiArCQlyZXR1cm4gMDsNCj4g
PiArDQo+ID4gIAlzdC0+Z3Bpb19vcyA9IGRldm1fZ3Bpb2RfZ2V0X2FycmF5X29wdGlvbmFsKGRl
diwNCj4gPiAib3ZlcnNhbXBsaW5nLXJhdGlvIiwNCj4gPiAgCQkJR1BJT0RfT1VUX0xPVyk7DQo+
ID4gIAlyZXR1cm4gUFRSX0VSUl9PUl9aRVJPKHN0LT5ncGlvX29zKTsNCj4gPiBAQCAtNDI5LDEy
ICs0NTIsMTIgQEAgaW50IGFkNzYwNl9wcm9iZShzdHJ1Y3QgZGV2aWNlICpkZXYsIGludCBpcnEs
DQo+ID4gdm9pZCBfX2lvbWVtICpiYXNlX2FkZHJlc3MsDQo+ID4gIAkJcmV0dXJuIHJldDsNCj4g
PiAgCX0NCj4gPiAgDQo+ID4gKwlzdC0+Y2hpcF9pbmZvID0gJmFkNzYwNl9jaGlwX2luZm9fdGJs
W2lkXTsNCj4gPiArDQo+ID4gIAlyZXQgPSBhZDc2MDZfcmVxdWVzdF9ncGlvcyhzdCk7DQo+ID4g
IAlpZiAocmV0KQ0KPiA+ICAJCWdvdG8gZXJyb3JfZGlzYWJsZV9yZWc7DQo+ID4gIA0KPiA+IC0J
c3QtPmNoaXBfaW5mbyA9ICZhZDc2MDZfY2hpcF9pbmZvX3RibFtpZF07DQo+ID4gLQ0KPiA+ICAJ
aW5kaW9fZGV2LT5kZXYucGFyZW50ID0gZGV2Ow0KPiA+ICAJaWYgKHN0LT5ncGlvX29zKSB7DQo+
ID4gIAkJaWYgKHN0LT5ncGlvX3JhbmdlKQ0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3N0YWdp
bmcvaWlvL2FkYy9hZDc2MDYuaA0KPiA+IGIvZHJpdmVycy9zdGFnaW5nL2lpby9hZGMvYWQ3NjA2
LmgNCj4gPiBpbmRleCA1N2YxMWI0NmJjNjkuLmY0MjIyOTYzNTRjOSAxMDA2NDQNCj4gPiAtLS0g
YS9kcml2ZXJzL3N0YWdpbmcvaWlvL2FkYy9hZDc2MDYuaA0KPiA+ICsrKyBiL2RyaXZlcnMvc3Rh
Z2luZy9paW8vYWRjL2FkNzYwNi5oDQo+ID4gQEAgLTEzLDExICsxMywxMyBAQA0KPiA+ICAgKiBz
dHJ1Y3QgYWQ3NjA2X2NoaXBfaW5mbyAtIGNoaXAgc3BlY2lmaWMgaW5mb3JtYXRpb24NCj4gPiAg
ICogQGNoYW5uZWxzOgkJY2hhbm5lbCBzcGVjaWZpY2F0aW9uDQo+ID4gICAqIEBudW1fY2hhbm5l
bHM6CW51bWJlciBvZiBjaGFubmVscw0KPiA+ICsgKiBAaGFzX292ZXJzYW1wbGluZzogICB3aGV0
aGVyIHRoZSBkZXZpY2UgaGFzIG92ZXJzYW1wbGluZyBzdXBwb3J0DQo+ID4gICAqLw0KPiA+ICAN
Cj4gPiAgc3RydWN0IGFkNzYwNl9jaGlwX2luZm8gew0KPiA+ICAJY29uc3Qgc3RydWN0IGlpb19j
aGFuX3NwZWMJKmNoYW5uZWxzOw0KPiA+ICAJdW5zaWduZWQgaW50CQkJbnVtX2NoYW5uZWxzOw0K
PiA+ICsJYm9vbAkJCQloYXNfb3ZlcnNhbXBsaW5nOw0KPiA+ICB9Ow0KPiA+ICANCj4gPiAgLyoq
DQo+ID4gQEAgLTg3LDYgKzg5LDcgQEAgaW50IGFkNzYwNl9wcm9iZShzdHJ1Y3QgZGV2aWNlICpk
ZXYsIGludCBpcnEsIHZvaWQNCj4gPiBfX2lvbWVtICpiYXNlX2FkZHJlc3MsDQo+ID4gIGludCBh
ZDc2MDZfcmVtb3ZlKHN0cnVjdCBkZXZpY2UgKmRldiwgaW50IGlycSk7DQo+ID4gIA0KPiA+ICBl
bnVtIGFkNzYwNl9zdXBwb3J0ZWRfZGV2aWNlX2lkcyB7DQo+ID4gKwlJRF9BRDc2MDVfNCwNCj4g
PiAgCUlEX0FENzYwNl84LA0KPiA+ICAJSURfQUQ3NjA2XzYsDQo+ID4gIAlJRF9BRDc2MDZfNA0K
PiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3N0YWdpbmcvaWlvL2FkYy9hZDc2MDZfcGFyLmMNCj4g
PiBiL2RyaXZlcnMvc3RhZ2luZy9paW8vYWRjL2FkNzYwNl9wYXIuYw0KPiA+IGluZGV4IDk1NmUz
ODc3NDc2Ny4uOGJkODZlNzI3YjAyIDEwMDY0NA0KPiA+IC0tLSBhL2RyaXZlcnMvc3RhZ2luZy9p
aW8vYWRjL2FkNzYwNl9wYXIuYw0KPiA+ICsrKyBiL2RyaXZlcnMvc3RhZ2luZy9paW8vYWRjL2Fk
NzYwNl9wYXIuYw0KPiA+IEBAIC03OSw2ICs3OSw5IEBAIHN0YXRpYyBpbnQgYWQ3NjA2X3Bhcl9y
ZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZQ0KPiA+ICpwZGV2KQ0KPiA+ICANCj4gPiAgc3Rh
dGljIGNvbnN0IHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2VfaWQgYWQ3NjA2X2RyaXZlcl9pZHNbXSA9
IHsNCj4gPiAgCXsNCj4gPiArCQkubmFtZQkJPSAiYWQ3NjA1LTQiLA0KPiA+ICsJCS5kcml2ZXJf
ZGF0YQk9IElEX0FENzYwNV80LA0KPiA+ICsJfSwgew0KPiA+ICAJCS5uYW1lCQk9ICJhZDc2MDYt
OCIsDQo+ID4gIAkJLmRyaXZlcl9kYXRhCT0gSURfQUQ3NjA2XzgsDQo+ID4gIAl9LCB7DQo+ID4g
ZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3RhZ2luZy9paW8vYWRjL2FkNzYwNl9zcGkuYw0KPiA+IGIv
ZHJpdmVycy9zdGFnaW5nL2lpby9hZGMvYWQ3NjA2X3NwaS5jDQo+ID4gaW5kZXggZmZkOWQwNjI2
ZWMyLi5iNzZjYTVhOGMwNTkgMTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9zdGFnaW5nL2lpby9h
ZGMvYWQ3NjA2X3NwaS5jDQo+ID4gKysrIGIvZHJpdmVycy9zdGFnaW5nL2lpby9hZGMvYWQ3NjA2
X3NwaS5jDQo+ID4gQEAgLTU1LDYgKzU1LDcgQEAgc3RhdGljIGludCBhZDc2MDZfc3BpX3JlbW92
ZShzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKQ0KPiA+ICB9DQo+ID4gIA0KPiA+ICBzdGF0aWMgY29u
c3Qgc3RydWN0IHNwaV9kZXZpY2VfaWQgYWQ3NjA2X2lkW10gPSB7DQo+ID4gKwl7ImFkNzYwNS00
IiwgSURfQUQ3NjA1XzR9LA0KPiA+ICAJeyJhZDc2MDYtOCIsIElEX0FENzYwNl84fSwNCj4gPiAg
CXsiYWQ3NjA2LTYiLCBJRF9BRDc2MDZfNn0sDQo+ID4gIAl7ImFkNzYwNi00IiwgSURfQUQ3NjA2
XzR9LA0KPiANCj4g

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH 2/2] staging:iio:ad7606: Add support for the ad7605-4
  2018-09-17  7:33     ` Ardelean, Alexandru
@ 2018-09-17  8:30       ` Jonathan Cameron
  2018-09-17  9:01         ` Ardelean, Alexandru
  0 siblings, 1 reply; 11+ messages in thread
From: Jonathan Cameron @ 2018-09-17  8:30 UTC (permalink / raw)
  To: Ardelean, Alexandru, lars
  Cc: jic23, knaack.h, linux-iio, Hennerich, Michael, pmeerw

On Mon, 17 Sep 2018 07:33:13 +0000
"Ardelean, Alexandru" <alexandru.Ardelean@analog.com> wrote:

> On Sun, 2018-09-16 at 12:22 +0100, Jonathan Cameron wrote:
> > On Thu, 13 Sep 2018 14:02:12 +0300
> > Alexandru Ardelean <alexandru.ardelean@analog.com> wrote:
> >   
> > > Add support for the AD7605-4 to the AD7606 driver. The AD7605-4 is
> > > mostly
> > > interface compatible to the AD7606-6 with the only difference being not
> > > having support for oversampling.
> > > 
> > > Signed-off-by: Alexandru Ardelean <alexandru.ardelean@analog.com>  
> > 
> > I am guessing this might clash with the devm change from earlier in the
> > day so I'm not going to apply it (too much risk of a bug sneaking in).
> > 
> > Please resend the remaining patches in for this driver as a series so
> > ordering is obvious etc.  
> 
> Hmm, the patch doesn't clash, but I will send them as a series.

I was being lazy and didn't actually check ;) Relied on false intuition.

Thanks,

Jonathan

> 
> > 
> > Otherwise this one looks good to me.
> > 
> > Thanks,
> > 
> > Jonathan  
> 
> Thanks
> Alex
> 
> > > ---
> > >  drivers/staging/iio/adc/Kconfig      |  2 +-
> > >  drivers/staging/iio/adc/ad7606.c     | 33 +++++++++++++++++++++++-----
> > >  drivers/staging/iio/adc/ad7606.h     |  3 +++
> > >  drivers/staging/iio/adc/ad7606_par.c |  3 +++
> > >  drivers/staging/iio/adc/ad7606_spi.c |  1 +
> > >  5 files changed, 36 insertions(+), 6 deletions(-)
> > > 
> > > diff --git a/drivers/staging/iio/adc/Kconfig
> > > b/drivers/staging/iio/adc/Kconfig
> > > index e17efb03bac0..9d3062a07460 100644
> > > --- a/drivers/staging/iio/adc/Kconfig
> > > +++ b/drivers/staging/iio/adc/Kconfig
> > > @@ -11,7 +11,7 @@ config AD7606
> > >  	select IIO_TRIGGERED_BUFFER
> > >  	help
> > >  	  Say yes here to build support for Analog Devices:
> > > -	  ad7606, ad7606-6, ad7606-4 analog to digital converters
> > > (ADC).
> > > +	  ad7605-4, ad7606, ad7606-6, ad7606-4 analog to digital
> > > converters (ADC).
> > >  
> > >  	  To compile this driver as a module, choose M here: the
> > >  	  module will be called ad7606.
> > > diff --git a/drivers/staging/iio/adc/ad7606.c
> > > b/drivers/staging/iio/adc/ad7606.c
> > > index 793de92f27ed..06d65196bedb 100644
> > > --- a/drivers/staging/iio/adc/ad7606.c
> > > +++ b/drivers/staging/iio/adc/ad7606.c
> > > @@ -275,7 +275,7 @@ static const struct attribute_group
> > > ad7606_attribute_group_range = {
> > >  	.attrs = ad7606_attributes_range,
> > >  };
> > >  
> > > -#define AD7606_CHANNEL(num)					\
> > > +#define AD760X_CHANNEL(num, mask)				\
> > >  	{							\
> > >  		.type = IIO_VOLTAGE,				\
> > >  		.indexed = 1,					\
> > > @@ -283,8 +283,7 @@ static const struct attribute_group
> > > ad7606_attribute_group_range = {
> > >  		.address = num,					
> > > \
> > >  		.info_mask_separate = BIT(IIO_CHAN_INFO_RAW),	\
> > >  		.info_mask_shared_by_type = BIT(IIO_CHAN_INFO_SCALE),\
> > > -		.info_mask_shared_by_all =			\
> > > -			BIT(IIO_CHAN_INFO_OVERSAMPLING_RATIO),	
> > > \
> > > +		.info_mask_shared_by_all = mask,		\
> > >  		.scan_index = num,				\
> > >  		.scan_type = {					
> > > \
> > >  			.sign = 's',				\
> > > @@ -294,6 +293,20 @@ static const struct attribute_group
> > > ad7606_attribute_group_range = {
> > >  		},						\
> > >  	}
> > >  
> > > +#define AD7605_CHANNEL(num)	\
> > > +	AD760X_CHANNEL(num, 0)
> > > +
> > > +#define AD7606_CHANNEL(num)	\
> > > +	AD760X_CHANNEL(num, BIT(IIO_CHAN_INFO_OVERSAMPLING_RATIO))
> > > +
> > > +static const struct iio_chan_spec ad7605_channels[] = {
> > > +	IIO_CHAN_SOFT_TIMESTAMP(4),
> > > +	AD7605_CHANNEL(0),
> > > +	AD7605_CHANNEL(1),
> > > +	AD7605_CHANNEL(2),
> > > +	AD7605_CHANNEL(3),
> > > +};
> > > +
> > >  static const struct iio_chan_spec ad7606_channels[] = {
> > >  	IIO_CHAN_SOFT_TIMESTAMP(8),
> > >  	AD7606_CHANNEL(0),
> > > @@ -310,17 +323,24 @@ static const struct ad7606_chip_info
> > > ad7606_chip_info_tbl[] = {
> > >  	/*
> > >  	 * More devices added in future
> > >  	 */
> > > +	[ID_AD7605_4] = {
> > > +		.channels = ad7605_channels,
> > > +		.num_channels = 5,
> > > +	},
> > >  	[ID_AD7606_8] = {
> > >  		.channels = ad7606_channels,
> > >  		.num_channels = 9,
> > > +		.has_oversampling = true,
> > >  	},
> > >  	[ID_AD7606_6] = {
> > >  		.channels = ad7606_channels,
> > >  		.num_channels = 7,
> > > +		.has_oversampling = true,
> > >  	},
> > >  	[ID_AD7606_4] = {
> > >  		.channels = ad7606_channels,
> > >  		.num_channels = 5,
> > > +		.has_oversampling = true,
> > >  	},
> > >  };
> > >  
> > > @@ -351,6 +371,9 @@ static int ad7606_request_gpios(struct ad7606_state
> > > *st)
> > >  	if (IS_ERR(st->gpio_frstdata))
> > >  		return PTR_ERR(st->gpio_frstdata);
> > >  
> > > +	if (!st->chip_info->has_oversampling)
> > > +		return 0;
> > > +
> > >  	st->gpio_os = devm_gpiod_get_array_optional(dev,
> > > "oversampling-ratio",
> > >  			GPIOD_OUT_LOW);
> > >  	return PTR_ERR_OR_ZERO(st->gpio_os);
> > > @@ -429,12 +452,12 @@ int ad7606_probe(struct device *dev, int irq,
> > > void __iomem *base_address,
> > >  		return ret;
> > >  	}
> > >  
> > > +	st->chip_info = &ad7606_chip_info_tbl[id];
> > > +
> > >  	ret = ad7606_request_gpios(st);
> > >  	if (ret)
> > >  		goto error_disable_reg;
> > >  
> > > -	st->chip_info = &ad7606_chip_info_tbl[id];
> > > -
> > >  	indio_dev->dev.parent = dev;
> > >  	if (st->gpio_os) {
> > >  		if (st->gpio_range)
> > > diff --git a/drivers/staging/iio/adc/ad7606.h
> > > b/drivers/staging/iio/adc/ad7606.h
> > > index 57f11b46bc69..f422296354c9 100644
> > > --- a/drivers/staging/iio/adc/ad7606.h
> > > +++ b/drivers/staging/iio/adc/ad7606.h
> > > @@ -13,11 +13,13 @@
> > >   * struct ad7606_chip_info - chip specific information
> > >   * @channels:		channel specification
> > >   * @num_channels:	number of channels
> > > + * @has_oversampling:   whether the device has oversampling support
> > >   */
> > >  
> > >  struct ad7606_chip_info {
> > >  	const struct iio_chan_spec	*channels;
> > >  	unsigned int			num_channels;
> > > +	bool				has_oversampling;
> > >  };
> > >  
> > >  /**
> > > @@ -87,6 +89,7 @@ int ad7606_probe(struct device *dev, int irq, void
> > > __iomem *base_address,
> > >  int ad7606_remove(struct device *dev, int irq);
> > >  
> > >  enum ad7606_supported_device_ids {
> > > +	ID_AD7605_4,
> > >  	ID_AD7606_8,
> > >  	ID_AD7606_6,
> > >  	ID_AD7606_4
> > > diff --git a/drivers/staging/iio/adc/ad7606_par.c
> > > b/drivers/staging/iio/adc/ad7606_par.c
> > > index 956e38774767..8bd86e727b02 100644
> > > --- a/drivers/staging/iio/adc/ad7606_par.c
> > > +++ b/drivers/staging/iio/adc/ad7606_par.c
> > > @@ -79,6 +79,9 @@ static int ad7606_par_remove(struct platform_device
> > > *pdev)
> > >  
> > >  static const struct platform_device_id ad7606_driver_ids[] = {
> > >  	{
> > > +		.name		= "ad7605-4",
> > > +		.driver_data	= ID_AD7605_4,
> > > +	}, {
> > >  		.name		= "ad7606-8",
> > >  		.driver_data	= ID_AD7606_8,
> > >  	}, {
> > > diff --git a/drivers/staging/iio/adc/ad7606_spi.c
> > > b/drivers/staging/iio/adc/ad7606_spi.c
> > > index ffd9d0626ec2..b76ca5a8c059 100644
> > > --- a/drivers/staging/iio/adc/ad7606_spi.c
> > > +++ b/drivers/staging/iio/adc/ad7606_spi.c
> > > @@ -55,6 +55,7 @@ static int ad7606_spi_remove(struct spi_device *spi)
> > >  }
> > >  
> > >  static const struct spi_device_id ad7606_id[] = {
> > > +	{"ad7605-4", ID_AD7605_4},
> > >  	{"ad7606-8", ID_AD7606_8},
> > >  	{"ad7606-6", ID_AD7606_6},
> > >  	{"ad7606-4", ID_AD7606_4},  
> > 
> >  

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH 2/2] staging:iio:ad7606: Add support for the ad7605-4
  2018-09-17  8:30       ` Jonathan Cameron
@ 2018-09-17  9:01         ` Ardelean, Alexandru
  2018-09-17 11:10           ` Jonathan Cameron
  0 siblings, 1 reply; 11+ messages in thread
From: Ardelean, Alexandru @ 2018-09-17  9:01 UTC (permalink / raw)
  To: lars, jonathan.cameron
  Cc: knaack.h, linux-iio, jic23, Hennerich, Michael, pmeerw

T24gTW9uLCAyMDE4LTA5LTE3IGF0IDA5OjMwICswMTAwLCBKb25hdGhhbiBDYW1lcm9uIHdyb3Rl
Og0KPiBPbiBNb24sIDE3IFNlcCAyMDE4IDA3OjMzOjEzICswMDAwDQo+ICJBcmRlbGVhbiwgQWxl
eGFuZHJ1IiA8YWxleGFuZHJ1LkFyZGVsZWFuQGFuYWxvZy5jb20+IHdyb3RlOg0KPiANCj4gPiBP
biBTdW4sIDIwMTgtMDktMTYgYXQgMTI6MjIgKzAxMDAsIEpvbmF0aGFuIENhbWVyb24gd3JvdGU6
DQo+ID4gPiBPbiBUaHUsIDEzIFNlcCAyMDE4IDE0OjAyOjEyICswMzAwDQo+ID4gPiBBbGV4YW5k
cnUgQXJkZWxlYW4gPGFsZXhhbmRydS5hcmRlbGVhbkBhbmFsb2cuY29tPiB3cm90ZToNCj4gPiA+
ICAgDQo+ID4gPiA+IEFkZCBzdXBwb3J0IGZvciB0aGUgQUQ3NjA1LTQgdG8gdGhlIEFENzYwNiBk
cml2ZXIuIFRoZSBBRDc2MDUtNCBpcw0KPiA+ID4gPiBtb3N0bHkNCj4gPiA+ID4gaW50ZXJmYWNl
IGNvbXBhdGlibGUgdG8gdGhlIEFENzYwNi02IHdpdGggdGhlIG9ubHkgZGlmZmVyZW5jZSBiZWlu
Zw0KPiA+ID4gPiBub3QNCj4gPiA+ID4gaGF2aW5nIHN1cHBvcnQgZm9yIG92ZXJzYW1wbGluZy4N
Cj4gPiA+ID4gDQo+ID4gPiA+IFNpZ25lZC1vZmYtYnk6IEFsZXhhbmRydSBBcmRlbGVhbiA8YWxl
eGFuZHJ1LmFyZGVsZWFuQGFuYWxvZy5jb20+ICANCj4gPiA+IA0KPiA+ID4gSSBhbSBndWVzc2lu
ZyB0aGlzIG1pZ2h0IGNsYXNoIHdpdGggdGhlIGRldm0gY2hhbmdlIGZyb20gZWFybGllciBpbg0K
PiA+ID4gdGhlDQo+ID4gPiBkYXkgc28gSSdtIG5vdCBnb2luZyB0byBhcHBseSBpdCAodG9vIG11
Y2ggcmlzayBvZiBhIGJ1ZyBzbmVha2luZw0KPiA+ID4gaW4pLg0KPiA+ID4gDQo+ID4gPiBQbGVh
c2UgcmVzZW5kIHRoZSByZW1haW5pbmcgcGF0Y2hlcyBpbiBmb3IgdGhpcyBkcml2ZXIgYXMgYSBz
ZXJpZXMgc28NCj4gPiA+IG9yZGVyaW5nIGlzIG9idmlvdXMgZXRjLiAgDQo+ID4gDQo+ID4gSG1t
LCB0aGUgcGF0Y2ggZG9lc24ndCBjbGFzaCwgYnV0IEkgd2lsbCBzZW5kIHRoZW0gYXMgYSBzZXJp
ZXMuDQo+IA0KPiBJIHdhcyBiZWluZyBsYXp5IGFuZCBkaWRuJ3QgYWN0dWFsbHkgY2hlY2sgOykg
UmVsaWVkIG9uIGZhbHNlIGludHVpdGlvbi4NCj4gDQoNClRoZW4sIGRvIEkgc2VuZCBhIFYyIG9y
IGlzIHRoaXMgcGF0Y2ggZmluZSBhcy1pcyA/DQpJIG9ubHkgaGF2ZSBhIHNpbmdsZSBwYXRjaCB0
byBWMiwgYW5kIHRoZW4gSSB0aGluayB3ZSBjb3VsZCBkaXNjdXNzIG1vdmluZw0KdGhpcyBvdXQg
b2Ygc3RhZ2luZywgb3Igd2hhdCB5b3UgY29uc2lkZXIgaXMgc3RpbGwgbmVlZGVkIFtmb3IgdGhp
c10gdG8gZG8NCnRoZSBtb3ZlLg0KTmF0dXJhbGx5LCBJJ2xsIHByZXBhcmUgYSBEVCBiaW5kaW5n
IGRvYyBpbiB0aGUgbW92aW5nLW91dC1vZi1zdGFnaW5nDQpzZXJpZXMuDQoNClRoYW5rcw0KQWxl
eA0KDQo+IFRoYW5rcywNCj4gDQo+IEpvbmF0aGFuDQo+IA0KPiA+IA0KPiA+ID4gDQo+ID4gPiBP
dGhlcndpc2UgdGhpcyBvbmUgbG9va3MgZ29vZCB0byBtZS4NCj4gPiA+IA0KPiA+ID4gVGhhbmtz
LA0KPiA+ID4gDQo+ID4gPiBKb25hdGhhbiAgDQo+ID4gDQo+ID4gVGhhbmtzDQo+ID4gQWxleA0K
PiA+IA0KPiA+ID4gPiAtLS0NCj4gPiA+ID4gIGRyaXZlcnMvc3RhZ2luZy9paW8vYWRjL0tjb25m
aWcgICAgICB8ICAyICstDQo+ID4gPiA+ICBkcml2ZXJzL3N0YWdpbmcvaWlvL2FkYy9hZDc2MDYu
YyAgICAgfCAzMyArKysrKysrKysrKysrKysrKysrKysrKy0NCj4gPiA+ID4gLS0tLQ0KPiA+ID4g
PiAgZHJpdmVycy9zdGFnaW5nL2lpby9hZGMvYWQ3NjA2LmggICAgIHwgIDMgKysrDQo+ID4gPiA+
ICBkcml2ZXJzL3N0YWdpbmcvaWlvL2FkYy9hZDc2MDZfcGFyLmMgfCAgMyArKysNCj4gPiA+ID4g
IGRyaXZlcnMvc3RhZ2luZy9paW8vYWRjL2FkNzYwNl9zcGkuYyB8ICAxICsNCj4gPiA+ID4gIDUg
ZmlsZXMgY2hhbmdlZCwgMzYgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkNCj4gPiA+ID4g
DQo+ID4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3N0YWdpbmcvaWlvL2FkYy9LY29uZmlnDQo+
ID4gPiA+IGIvZHJpdmVycy9zdGFnaW5nL2lpby9hZGMvS2NvbmZpZw0KPiA+ID4gPiBpbmRleCBl
MTdlZmIwM2JhYzAuLjlkMzA2MmEwNzQ2MCAxMDA2NDQNCj4gPiA+ID4gLS0tIGEvZHJpdmVycy9z
dGFnaW5nL2lpby9hZGMvS2NvbmZpZw0KPiA+ID4gPiArKysgYi9kcml2ZXJzL3N0YWdpbmcvaWlv
L2FkYy9LY29uZmlnDQo+ID4gPiA+IEBAIC0xMSw3ICsxMSw3IEBAIGNvbmZpZyBBRDc2MDYNCj4g
PiA+ID4gIAlzZWxlY3QgSUlPX1RSSUdHRVJFRF9CVUZGRVINCj4gPiA+ID4gIAloZWxwDQo+ID4g
PiA+ICAJICBTYXkgeWVzIGhlcmUgdG8gYnVpbGQgc3VwcG9ydCBmb3IgQW5hbG9nIERldmljZXM6
DQo+ID4gPiA+IC0JICBhZDc2MDYsIGFkNzYwNi02LCBhZDc2MDYtNCBhbmFsb2cgdG8gZGlnaXRh
bCBjb252ZXJ0ZXJzDQo+ID4gPiA+IChBREMpLg0KPiA+ID4gPiArCSAgYWQ3NjA1LTQsIGFkNzYw
NiwgYWQ3NjA2LTYsIGFkNzYwNi00IGFuYWxvZyB0byBkaWdpdGFsDQo+ID4gPiA+IGNvbnZlcnRl
cnMgKEFEQykuDQo+ID4gPiA+ICANCj4gPiA+ID4gIAkgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIg
YXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmU6IHRoZQ0KPiA+ID4gPiAgCSAgbW9kdWxlIHdpbGwg
YmUgY2FsbGVkIGFkNzYwNi4NCj4gPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3RhZ2luZy9p
aW8vYWRjL2FkNzYwNi5jDQo+ID4gPiA+IGIvZHJpdmVycy9zdGFnaW5nL2lpby9hZGMvYWQ3NjA2
LmMNCj4gPiA+ID4gaW5kZXggNzkzZGU5MmYyN2VkLi4wNmQ2NTE5NmJlZGIgMTAwNjQ0DQo+ID4g
PiA+IC0tLSBhL2RyaXZlcnMvc3RhZ2luZy9paW8vYWRjL2FkNzYwNi5jDQo+ID4gPiA+ICsrKyBi
L2RyaXZlcnMvc3RhZ2luZy9paW8vYWRjL2FkNzYwNi5jDQo+ID4gPiA+IEBAIC0yNzUsNyArMjc1
LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXANCj4gPiA+ID4gYWQ3NjA2
X2F0dHJpYnV0ZV9ncm91cF9yYW5nZSA9IHsNCj4gPiA+ID4gIAkuYXR0cnMgPSBhZDc2MDZfYXR0
cmlidXRlc19yYW5nZSwNCj4gPiA+ID4gIH07DQo+ID4gPiA+ICANCj4gPiA+ID4gLSNkZWZpbmUg
QUQ3NjA2X0NIQU5ORUwobnVtKQkJCQkJDQo+ID4gPiA+IFwNCj4gPiA+ID4gKyNkZWZpbmUgQUQ3
NjBYX0NIQU5ORUwobnVtLCBtYXNrKQkJCQlcDQo+ID4gPiA+ICAJewkJCQkJCQlcDQo+ID4gPiA+
ICAJCS50eXBlID0gSUlPX1ZPTFRBR0UsCQkJCQ0KPiA+ID4gPiBcDQo+ID4gPiA+ICAJCS5pbmRl
eGVkID0gMSwJCQkJCQ0KPiA+ID4gPiBcDQo+ID4gPiA+IEBAIC0yODMsOCArMjgzLDcgQEAgc3Rh
dGljIGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXANCj4gPiA+ID4gYWQ3NjA2X2F0dHJpYnV0
ZV9ncm91cF9yYW5nZSA9IHsNCj4gPiA+ID4gIAkJLmFkZHJlc3MgPSBudW0sCQkJCQkNCj4gPiA+
ID4gXA0KPiA+ID4gPiAgCQkuaW5mb19tYXNrX3NlcGFyYXRlID0gQklUKElJT19DSEFOX0lORk9f
UkFXKSwJDQo+ID4gPiA+IFwNCj4gPiA+ID4gIAkJLmluZm9fbWFza19zaGFyZWRfYnlfdHlwZSA9
DQo+ID4gPiA+IEJJVChJSU9fQ0hBTl9JTkZPX1NDQUxFKSxcDQo+ID4gPiA+IC0JCS5pbmZvX21h
c2tfc2hhcmVkX2J5X2FsbCA9CQkJDQo+ID4gPiA+IFwNCj4gPiA+ID4gLQkJCUJJVChJSU9fQ0hB
Tl9JTkZPX09WRVJTQU1QTElOR19SQVRJTyksCQ0KPiA+ID4gPiBcDQo+ID4gPiA+ICsJCS5pbmZv
X21hc2tfc2hhcmVkX2J5X2FsbCA9IG1hc2ssCQlcDQo+ID4gPiA+ICAJCS5zY2FuX2luZGV4ID0g
bnVtLAkJCQkNCj4gPiA+ID4gXA0KPiA+ID4gPiAgCQkuc2Nhbl90eXBlID0gewkJCQkJDQo+ID4g
PiA+IFwNCj4gPiA+ID4gIAkJCS5zaWduID0gJ3MnLAkJCQkNCj4gPiA+ID4gXA0KPiA+ID4gPiBA
QCAtMjk0LDYgKzI5MywyMCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGF0dHJpYnV0ZV9ncm91cA0K
PiA+ID4gPiBhZDc2MDZfYXR0cmlidXRlX2dyb3VwX3JhbmdlID0gew0KPiA+ID4gPiAgCQl9LAkJ
CQkJCQ0KPiA+ID4gPiBcDQo+ID4gPiA+ICAJfQ0KPiA+ID4gPiAgDQo+ID4gPiA+ICsjZGVmaW5l
IEFENzYwNV9DSEFOTkVMKG51bSkJXA0KPiA+ID4gPiArCUFENzYwWF9DSEFOTkVMKG51bSwgMCkN
Cj4gPiA+ID4gKw0KPiA+ID4gPiArI2RlZmluZSBBRDc2MDZfQ0hBTk5FTChudW0pCVwNCj4gPiA+
ID4gKwlBRDc2MFhfQ0hBTk5FTChudW0sIEJJVChJSU9fQ0hBTl9JTkZPX09WRVJTQU1QTElOR19S
QVRJTykpDQo+ID4gPiA+ICsNCj4gPiA+ID4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaWlvX2NoYW5f
c3BlYyBhZDc2MDVfY2hhbm5lbHNbXSA9IHsNCj4gPiA+ID4gKwlJSU9fQ0hBTl9TT0ZUX1RJTUVT
VEFNUCg0KSwNCj4gPiA+ID4gKwlBRDc2MDVfQ0hBTk5FTCgwKSwNCj4gPiA+ID4gKwlBRDc2MDVf
Q0hBTk5FTCgxKSwNCj4gPiA+ID4gKwlBRDc2MDVfQ0hBTk5FTCgyKSwNCj4gPiA+ID4gKwlBRDc2
MDVfQ0hBTk5FTCgzKSwNCj4gPiA+ID4gK307DQo+ID4gPiA+ICsNCj4gPiA+ID4gIHN0YXRpYyBj
b25zdCBzdHJ1Y3QgaWlvX2NoYW5fc3BlYyBhZDc2MDZfY2hhbm5lbHNbXSA9IHsNCj4gPiA+ID4g
IAlJSU9fQ0hBTl9TT0ZUX1RJTUVTVEFNUCg4KSwNCj4gPiA+ID4gIAlBRDc2MDZfQ0hBTk5FTCgw
KSwNCj4gPiA+ID4gQEAgLTMxMCwxNyArMzIzLDI0IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYWQ3
NjA2X2NoaXBfaW5mbw0KPiA+ID4gPiBhZDc2MDZfY2hpcF9pbmZvX3RibFtdID0gew0KPiA+ID4g
PiAgCS8qDQo+ID4gPiA+ICAJICogTW9yZSBkZXZpY2VzIGFkZGVkIGluIGZ1dHVyZQ0KPiA+ID4g
PiAgCSAqLw0KPiA+ID4gPiArCVtJRF9BRDc2MDVfNF0gPSB7DQo+ID4gPiA+ICsJCS5jaGFubmVs
cyA9IGFkNzYwNV9jaGFubmVscywNCj4gPiA+ID4gKwkJLm51bV9jaGFubmVscyA9IDUsDQo+ID4g
PiA+ICsJfSwNCj4gPiA+ID4gIAlbSURfQUQ3NjA2XzhdID0gew0KPiA+ID4gPiAgCQkuY2hhbm5l
bHMgPSBhZDc2MDZfY2hhbm5lbHMsDQo+ID4gPiA+ICAJCS5udW1fY2hhbm5lbHMgPSA5LA0KPiA+
ID4gPiArCQkuaGFzX292ZXJzYW1wbGluZyA9IHRydWUsDQo+ID4gPiA+ICAJfSwNCj4gPiA+ID4g
IAlbSURfQUQ3NjA2XzZdID0gew0KPiA+ID4gPiAgCQkuY2hhbm5lbHMgPSBhZDc2MDZfY2hhbm5l
bHMsDQo+ID4gPiA+ICAJCS5udW1fY2hhbm5lbHMgPSA3LA0KPiA+ID4gPiArCQkuaGFzX292ZXJz
YW1wbGluZyA9IHRydWUsDQo+ID4gPiA+ICAJfSwNCj4gPiA+ID4gIAlbSURfQUQ3NjA2XzRdID0g
ew0KPiA+ID4gPiAgCQkuY2hhbm5lbHMgPSBhZDc2MDZfY2hhbm5lbHMsDQo+ID4gPiA+ICAJCS5u
dW1fY2hhbm5lbHMgPSA1LA0KPiA+ID4gPiArCQkuaGFzX292ZXJzYW1wbGluZyA9IHRydWUsDQo+
ID4gPiA+ICAJfSwNCj4gPiA+ID4gIH07DQo+ID4gPiA+ICANCj4gPiA+ID4gQEAgLTM1MSw2ICsz
NzEsOSBAQCBzdGF0aWMgaW50IGFkNzYwNl9yZXF1ZXN0X2dwaW9zKHN0cnVjdA0KPiA+ID4gPiBh
ZDc2MDZfc3RhdGUNCj4gPiA+ID4gKnN0KQ0KPiA+ID4gPiAgCWlmIChJU19FUlIoc3QtPmdwaW9f
ZnJzdGRhdGEpKQ0KPiA+ID4gPiAgCQlyZXR1cm4gUFRSX0VSUihzdC0+Z3Bpb19mcnN0ZGF0YSk7
DQo+ID4gPiA+ICANCj4gPiA+ID4gKwlpZiAoIXN0LT5jaGlwX2luZm8tPmhhc19vdmVyc2FtcGxp
bmcpDQo+ID4gPiA+ICsJCXJldHVybiAwOw0KPiA+ID4gPiArDQo+ID4gPiA+ICAJc3QtPmdwaW9f
b3MgPSBkZXZtX2dwaW9kX2dldF9hcnJheV9vcHRpb25hbChkZXYsDQo+ID4gPiA+ICJvdmVyc2Ft
cGxpbmctcmF0aW8iLA0KPiA+ID4gPiAgCQkJR1BJT0RfT1VUX0xPVyk7DQo+ID4gPiA+ICAJcmV0
dXJuIFBUUl9FUlJfT1JfWkVSTyhzdC0+Z3Bpb19vcyk7DQo+ID4gPiA+IEBAIC00MjksMTIgKzQ1
MiwxMiBAQCBpbnQgYWQ3NjA2X3Byb2JlKHN0cnVjdCBkZXZpY2UgKmRldiwgaW50IGlycSwNCj4g
PiA+ID4gdm9pZCBfX2lvbWVtICpiYXNlX2FkZHJlc3MsDQo+ID4gPiA+ICAJCXJldHVybiByZXQ7
DQo+ID4gPiA+ICAJfQ0KPiA+ID4gPiAgDQo+ID4gPiA+ICsJc3QtPmNoaXBfaW5mbyA9ICZhZDc2
MDZfY2hpcF9pbmZvX3RibFtpZF07DQo+ID4gPiA+ICsNCj4gPiA+ID4gIAlyZXQgPSBhZDc2MDZf
cmVxdWVzdF9ncGlvcyhzdCk7DQo+ID4gPiA+ICAJaWYgKHJldCkNCj4gPiA+ID4gIAkJZ290byBl
cnJvcl9kaXNhYmxlX3JlZzsNCj4gPiA+ID4gIA0KPiA+ID4gPiAtCXN0LT5jaGlwX2luZm8gPSAm
YWQ3NjA2X2NoaXBfaW5mb190YmxbaWRdOw0KPiA+ID4gPiAtDQo+ID4gPiA+ICAJaW5kaW9fZGV2
LT5kZXYucGFyZW50ID0gZGV2Ow0KPiA+ID4gPiAgCWlmIChzdC0+Z3Bpb19vcykgew0KPiA+ID4g
PiAgCQlpZiAoc3QtPmdwaW9fcmFuZ2UpDQo+ID4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3N0
YWdpbmcvaWlvL2FkYy9hZDc2MDYuaA0KPiA+ID4gPiBiL2RyaXZlcnMvc3RhZ2luZy9paW8vYWRj
L2FkNzYwNi5oDQo+ID4gPiA+IGluZGV4IDU3ZjExYjQ2YmM2OS4uZjQyMjI5NjM1NGM5IDEwMDY0
NA0KPiA+ID4gPiAtLS0gYS9kcml2ZXJzL3N0YWdpbmcvaWlvL2FkYy9hZDc2MDYuaA0KPiA+ID4g
PiArKysgYi9kcml2ZXJzL3N0YWdpbmcvaWlvL2FkYy9hZDc2MDYuaA0KPiA+ID4gPiBAQCAtMTMs
MTEgKzEzLDEzIEBADQo+ID4gPiA+ICAgKiBzdHJ1Y3QgYWQ3NjA2X2NoaXBfaW5mbyAtIGNoaXAg
c3BlY2lmaWMgaW5mb3JtYXRpb24NCj4gPiA+ID4gICAqIEBjaGFubmVsczoJCWNoYW5uZWwgc3Bl
Y2lmaWNhdGlvbg0KPiA+ID4gPiAgICogQG51bV9jaGFubmVsczoJbnVtYmVyIG9mIGNoYW5uZWxz
DQo+ID4gPiA+ICsgKiBAaGFzX292ZXJzYW1wbGluZzogICB3aGV0aGVyIHRoZSBkZXZpY2UgaGFz
IG92ZXJzYW1wbGluZw0KPiA+ID4gPiBzdXBwb3J0DQo+ID4gPiA+ICAgKi8NCj4gPiA+ID4gIA0K
PiA+ID4gPiAgc3RydWN0IGFkNzYwNl9jaGlwX2luZm8gew0KPiA+ID4gPiAgCWNvbnN0IHN0cnVj
dCBpaW9fY2hhbl9zcGVjCSpjaGFubmVsczsNCj4gPiA+ID4gIAl1bnNpZ25lZCBpbnQJCQludW1f
Y2hhbm5lbHM7DQo+ID4gPiA+ICsJYm9vbAkJCQloYXNfb3ZlcnNhbXBsaW5nOw0KPiA+ID4gPiAg
fTsNCj4gPiA+ID4gIA0KPiA+ID4gPiAgLyoqDQo+ID4gPiA+IEBAIC04Nyw2ICs4OSw3IEBAIGlu
dCBhZDc2MDZfcHJvYmUoc3RydWN0IGRldmljZSAqZGV2LCBpbnQgaXJxLA0KPiA+ID4gPiB2b2lk
DQo+ID4gPiA+IF9faW9tZW0gKmJhc2VfYWRkcmVzcywNCj4gPiA+ID4gIGludCBhZDc2MDZfcmVt
b3ZlKHN0cnVjdCBkZXZpY2UgKmRldiwgaW50IGlycSk7DQo+ID4gPiA+ICANCj4gPiA+ID4gIGVu
dW0gYWQ3NjA2X3N1cHBvcnRlZF9kZXZpY2VfaWRzIHsNCj4gPiA+ID4gKwlJRF9BRDc2MDVfNCwN
Cj4gPiA+ID4gIAlJRF9BRDc2MDZfOCwNCj4gPiA+ID4gIAlJRF9BRDc2MDZfNiwNCj4gPiA+ID4g
IAlJRF9BRDc2MDZfNA0KPiA+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5nL2lpby9h
ZGMvYWQ3NjA2X3Bhci5jDQo+ID4gPiA+IGIvZHJpdmVycy9zdGFnaW5nL2lpby9hZGMvYWQ3NjA2
X3Bhci5jDQo+ID4gPiA+IGluZGV4IDk1NmUzODc3NDc2Ny4uOGJkODZlNzI3YjAyIDEwMDY0NA0K
PiA+ID4gPiAtLS0gYS9kcml2ZXJzL3N0YWdpbmcvaWlvL2FkYy9hZDc2MDZfcGFyLmMNCj4gPiA+
ID4gKysrIGIvZHJpdmVycy9zdGFnaW5nL2lpby9hZGMvYWQ3NjA2X3Bhci5jDQo+ID4gPiA+IEBA
IC03OSw2ICs3OSw5IEBAIHN0YXRpYyBpbnQgYWQ3NjA2X3Bhcl9yZW1vdmUoc3RydWN0DQo+ID4g
PiA+IHBsYXRmb3JtX2RldmljZQ0KPiA+ID4gPiAqcGRldikNCj4gPiA+ID4gIA0KPiA+ID4gPiAg
c3RhdGljIGNvbnN0IHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2VfaWQgYWQ3NjA2X2RyaXZlcl9pZHNb
XSA9IHsNCj4gPiA+ID4gIAl7DQo+ID4gPiA+ICsJCS5uYW1lCQk9ICJhZDc2MDUtNCIsDQo+ID4g
PiA+ICsJCS5kcml2ZXJfZGF0YQk9IElEX0FENzYwNV80LA0KPiA+ID4gPiArCX0sIHsNCj4gPiA+
ID4gIAkJLm5hbWUJCT0gImFkNzYwNi04IiwNCj4gPiA+ID4gIAkJLmRyaXZlcl9kYXRhCT0gSURf
QUQ3NjA2XzgsDQo+ID4gPiA+ICAJfSwgew0KPiA+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9z
dGFnaW5nL2lpby9hZGMvYWQ3NjA2X3NwaS5jDQo+ID4gPiA+IGIvZHJpdmVycy9zdGFnaW5nL2lp
by9hZGMvYWQ3NjA2X3NwaS5jDQo+ID4gPiA+IGluZGV4IGZmZDlkMDYyNmVjMi4uYjc2Y2E1YThj
MDU5IDEwMDY0NA0KPiA+ID4gPiAtLS0gYS9kcml2ZXJzL3N0YWdpbmcvaWlvL2FkYy9hZDc2MDZf
c3BpLmMNCj4gPiA+ID4gKysrIGIvZHJpdmVycy9zdGFnaW5nL2lpby9hZGMvYWQ3NjA2X3NwaS5j
DQo+ID4gPiA+IEBAIC01NSw2ICs1NSw3IEBAIHN0YXRpYyBpbnQgYWQ3NjA2X3NwaV9yZW1vdmUo
c3RydWN0IHNwaV9kZXZpY2UNCj4gPiA+ID4gKnNwaSkNCj4gPiA+ID4gIH0NCj4gPiA+ID4gIA0K
PiA+ID4gPiAgc3RhdGljIGNvbnN0IHN0cnVjdCBzcGlfZGV2aWNlX2lkIGFkNzYwNl9pZFtdID0g
ew0KPiA+ID4gPiArCXsiYWQ3NjA1LTQiLCBJRF9BRDc2MDVfNH0sDQo+ID4gPiA+ICAJeyJhZDc2
MDYtOCIsIElEX0FENzYwNl84fSwNCj4gPiA+ID4gIAl7ImFkNzYwNi02IiwgSURfQUQ3NjA2XzZ9
LA0KPiA+ID4gPiAgCXsiYWQ3NjA2LTQiLCBJRF9BRDc2MDZfNH0sICANCj4gPiA+IA0KPiA+ID4g
IA0KPiANCj4gDQo+IA==

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH 2/2] staging:iio:ad7606: Add support for the ad7605-4
  2018-09-17  9:01         ` Ardelean, Alexandru
@ 2018-09-17 11:10           ` Jonathan Cameron
  2018-09-22 15:35             ` Jonathan Cameron
  0 siblings, 1 reply; 11+ messages in thread
From: Jonathan Cameron @ 2018-09-17 11:10 UTC (permalink / raw)
  To: Ardelean, Alexandru
  Cc: lars, knaack.h, linux-iio, jic23, Hennerich, Michael, pmeerw

On Mon, 17 Sep 2018 09:01:53 +0000
"Ardelean, Alexandru" <alexandru.Ardelean@analog.com> wrote:

> On Mon, 2018-09-17 at 09:30 +0100, Jonathan Cameron wrote:
> > On Mon, 17 Sep 2018 07:33:13 +0000
> > "Ardelean, Alexandru" <alexandru.Ardelean@analog.com> wrote:
> >   
> > > On Sun, 2018-09-16 at 12:22 +0100, Jonathan Cameron wrote:  
> > > > On Thu, 13 Sep 2018 14:02:12 +0300
> > > > Alexandru Ardelean <alexandru.ardelean@analog.com> wrote:
> > > >     
> > > > > Add support for the AD7605-4 to the AD7606 driver. The AD7605-4 is
> > > > > mostly
> > > > > interface compatible to the AD7606-6 with the only difference being
> > > > > not
> > > > > having support for oversampling.
> > > > > 
> > > > > Signed-off-by: Alexandru Ardelean <alexandru.ardelean@analog.com>    
> > > > 
> > > > I am guessing this might clash with the devm change from earlier in
> > > > the
> > > > day so I'm not going to apply it (too much risk of a bug sneaking
> > > > in).
> > > > 
> > > > Please resend the remaining patches in for this driver as a series so
> > > > ordering is obvious etc.    
> > > 
> > > Hmm, the patch doesn't clash, but I will send them as a series.  
> > 
> > I was being lazy and didn't actually check ;) Relied on false intuition.
> >   
> 
> Then, do I send a V2 or is this patch fine as-is ?
> I only have a single patch to V2, and then I think we could discuss moving
> this out of staging, or what you consider is still needed [for this] to do
> the move.
> Naturally, I'll prepare a DT binding doc in the moving-out-of-staging
> series.

I'll pick it up from here - though may be a few days before I get to it
(on wrong computer at the moment).

I've not looked at the whole driver for a while.  The easiest way to get
feedback in general might be to do a series making the move (with move
detection disabled so we see the whole code).  That gives an opportunity
for everyone to take a detailed look at the driver on list and comment on
it in a coherent way.  This is how I tend to do a review for a move out
of staging anyway as it is the same treatment as a new driver gets and
we should be consistent across the two.

Thanks,

Jonathan
> 
> Thanks
> Alex
> 
> > Thanks,
> > 
> > Jonathan
> >   
> > >   
> > > > 
> > > > Otherwise this one looks good to me.
> > > > 
> > > > Thanks,
> > > > 
> > > > Jonathan    
> > > 
> > > Thanks
> > > Alex
> > >   
> > > > > ---
> > > > >  drivers/staging/iio/adc/Kconfig      |  2 +-
> > > > >  drivers/staging/iio/adc/ad7606.c     | 33 +++++++++++++++++++++++-
> > > > > ----
> > > > >  drivers/staging/iio/adc/ad7606.h     |  3 +++
> > > > >  drivers/staging/iio/adc/ad7606_par.c |  3 +++
> > > > >  drivers/staging/iio/adc/ad7606_spi.c |  1 +
> > > > >  5 files changed, 36 insertions(+), 6 deletions(-)
> > > > > 
> > > > > diff --git a/drivers/staging/iio/adc/Kconfig
> > > > > b/drivers/staging/iio/adc/Kconfig
> > > > > index e17efb03bac0..9d3062a07460 100644
> > > > > --- a/drivers/staging/iio/adc/Kconfig
> > > > > +++ b/drivers/staging/iio/adc/Kconfig
> > > > > @@ -11,7 +11,7 @@ config AD7606
> > > > >  	select IIO_TRIGGERED_BUFFER
> > > > >  	help
> > > > >  	  Say yes here to build support for Analog Devices:
> > > > > -	  ad7606, ad7606-6, ad7606-4 analog to digital converters
> > > > > (ADC).
> > > > > +	  ad7605-4, ad7606, ad7606-6, ad7606-4 analog to digital
> > > > > converters (ADC).
> > > > >  
> > > > >  	  To compile this driver as a module, choose M here: the
> > > > >  	  module will be called ad7606.
> > > > > diff --git a/drivers/staging/iio/adc/ad7606.c
> > > > > b/drivers/staging/iio/adc/ad7606.c
> > > > > index 793de92f27ed..06d65196bedb 100644
> > > > > --- a/drivers/staging/iio/adc/ad7606.c
> > > > > +++ b/drivers/staging/iio/adc/ad7606.c
> > > > > @@ -275,7 +275,7 @@ static const struct attribute_group
> > > > > ad7606_attribute_group_range = {
> > > > >  	.attrs = ad7606_attributes_range,
> > > > >  };
> > > > >  
> > > > > -#define AD7606_CHANNEL(num)					
> > > > > \
> > > > > +#define AD760X_CHANNEL(num, mask)				\
> > > > >  	{							\
> > > > >  		.type = IIO_VOLTAGE,				
> > > > > \
> > > > >  		.indexed = 1,					
> > > > > \
> > > > > @@ -283,8 +283,7 @@ static const struct attribute_group
> > > > > ad7606_attribute_group_range = {
> > > > >  		.address = num,					
> > > > > \
> > > > >  		.info_mask_separate = BIT(IIO_CHAN_INFO_RAW),	
> > > > > \
> > > > >  		.info_mask_shared_by_type =
> > > > > BIT(IIO_CHAN_INFO_SCALE),\
> > > > > -		.info_mask_shared_by_all =			
> > > > > \
> > > > > -			BIT(IIO_CHAN_INFO_OVERSAMPLING_RATIO),	
> > > > > \
> > > > > +		.info_mask_shared_by_all = mask,		\
> > > > >  		.scan_index = num,				
> > > > > \
> > > > >  		.scan_type = {					
> > > > > \
> > > > >  			.sign = 's',				
> > > > > \
> > > > > @@ -294,6 +293,20 @@ static const struct attribute_group
> > > > > ad7606_attribute_group_range = {
> > > > >  		},						
> > > > > \
> > > > >  	}
> > > > >  
> > > > > +#define AD7605_CHANNEL(num)	\
> > > > > +	AD760X_CHANNEL(num, 0)
> > > > > +
> > > > > +#define AD7606_CHANNEL(num)	\
> > > > > +	AD760X_CHANNEL(num, BIT(IIO_CHAN_INFO_OVERSAMPLING_RATIO))
> > > > > +
> > > > > +static const struct iio_chan_spec ad7605_channels[] = {
> > > > > +	IIO_CHAN_SOFT_TIMESTAMP(4),
> > > > > +	AD7605_CHANNEL(0),
> > > > > +	AD7605_CHANNEL(1),
> > > > > +	AD7605_CHANNEL(2),
> > > > > +	AD7605_CHANNEL(3),
> > > > > +};
> > > > > +
> > > > >  static const struct iio_chan_spec ad7606_channels[] = {
> > > > >  	IIO_CHAN_SOFT_TIMESTAMP(8),
> > > > >  	AD7606_CHANNEL(0),
> > > > > @@ -310,17 +323,24 @@ static const struct ad7606_chip_info
> > > > > ad7606_chip_info_tbl[] = {
> > > > >  	/*
> > > > >  	 * More devices added in future
> > > > >  	 */
> > > > > +	[ID_AD7605_4] = {
> > > > > +		.channels = ad7605_channels,
> > > > > +		.num_channels = 5,
> > > > > +	},
> > > > >  	[ID_AD7606_8] = {
> > > > >  		.channels = ad7606_channels,
> > > > >  		.num_channels = 9,
> > > > > +		.has_oversampling = true,
> > > > >  	},
> > > > >  	[ID_AD7606_6] = {
> > > > >  		.channels = ad7606_channels,
> > > > >  		.num_channels = 7,
> > > > > +		.has_oversampling = true,
> > > > >  	},
> > > > >  	[ID_AD7606_4] = {
> > > > >  		.channels = ad7606_channels,
> > > > >  		.num_channels = 5,
> > > > > +		.has_oversampling = true,
> > > > >  	},
> > > > >  };
> > > > >  
> > > > > @@ -351,6 +371,9 @@ static int ad7606_request_gpios(struct
> > > > > ad7606_state
> > > > > *st)
> > > > >  	if (IS_ERR(st->gpio_frstdata))
> > > > >  		return PTR_ERR(st->gpio_frstdata);
> > > > >  
> > > > > +	if (!st->chip_info->has_oversampling)
> > > > > +		return 0;
> > > > > +
> > > > >  	st->gpio_os = devm_gpiod_get_array_optional(dev,
> > > > > "oversampling-ratio",
> > > > >  			GPIOD_OUT_LOW);
> > > > >  	return PTR_ERR_OR_ZERO(st->gpio_os);
> > > > > @@ -429,12 +452,12 @@ int ad7606_probe(struct device *dev, int irq,
> > > > > void __iomem *base_address,
> > > > >  		return ret;
> > > > >  	}
> > > > >  
> > > > > +	st->chip_info = &ad7606_chip_info_tbl[id];
> > > > > +
> > > > >  	ret = ad7606_request_gpios(st);
> > > > >  	if (ret)
> > > > >  		goto error_disable_reg;
> > > > >  
> > > > > -	st->chip_info = &ad7606_chip_info_tbl[id];
> > > > > -
> > > > >  	indio_dev->dev.parent = dev;
> > > > >  	if (st->gpio_os) {
> > > > >  		if (st->gpio_range)
> > > > > diff --git a/drivers/staging/iio/adc/ad7606.h
> > > > > b/drivers/staging/iio/adc/ad7606.h
> > > > > index 57f11b46bc69..f422296354c9 100644
> > > > > --- a/drivers/staging/iio/adc/ad7606.h
> > > > > +++ b/drivers/staging/iio/adc/ad7606.h
> > > > > @@ -13,11 +13,13 @@
> > > > >   * struct ad7606_chip_info - chip specific information
> > > > >   * @channels:		channel specification
> > > > >   * @num_channels:	number of channels
> > > > > + * @has_oversampling:   whether the device has oversampling
> > > > > support
> > > > >   */
> > > > >  
> > > > >  struct ad7606_chip_info {
> > > > >  	const struct iio_chan_spec	*channels;
> > > > >  	unsigned int			num_channels;
> > > > > +	bool				has_oversampling;
> > > > >  };
> > > > >  
> > > > >  /**
> > > > > @@ -87,6 +89,7 @@ int ad7606_probe(struct device *dev, int irq,
> > > > > void
> > > > > __iomem *base_address,
> > > > >  int ad7606_remove(struct device *dev, int irq);
> > > > >  
> > > > >  enum ad7606_supported_device_ids {
> > > > > +	ID_AD7605_4,
> > > > >  	ID_AD7606_8,
> > > > >  	ID_AD7606_6,
> > > > >  	ID_AD7606_4
> > > > > diff --git a/drivers/staging/iio/adc/ad7606_par.c
> > > > > b/drivers/staging/iio/adc/ad7606_par.c
> > > > > index 956e38774767..8bd86e727b02 100644
> > > > > --- a/drivers/staging/iio/adc/ad7606_par.c
> > > > > +++ b/drivers/staging/iio/adc/ad7606_par.c
> > > > > @@ -79,6 +79,9 @@ static int ad7606_par_remove(struct
> > > > > platform_device
> > > > > *pdev)
> > > > >  
> > > > >  static const struct platform_device_id ad7606_driver_ids[] = {
> > > > >  	{
> > > > > +		.name		= "ad7605-4",
> > > > > +		.driver_data	= ID_AD7605_4,
> > > > > +	}, {
> > > > >  		.name		= "ad7606-8",
> > > > >  		.driver_data	= ID_AD7606_8,
> > > > >  	}, {
> > > > > diff --git a/drivers/staging/iio/adc/ad7606_spi.c
> > > > > b/drivers/staging/iio/adc/ad7606_spi.c
> > > > > index ffd9d0626ec2..b76ca5a8c059 100644
> > > > > --- a/drivers/staging/iio/adc/ad7606_spi.c
> > > > > +++ b/drivers/staging/iio/adc/ad7606_spi.c
> > > > > @@ -55,6 +55,7 @@ static int ad7606_spi_remove(struct spi_device
> > > > > *spi)
> > > > >  }
> > > > >  
> > > > >  static const struct spi_device_id ad7606_id[] = {
> > > > > +	{"ad7605-4", ID_AD7605_4},
> > > > >  	{"ad7606-8", ID_AD7606_8},
> > > > >  	{"ad7606-6", ID_AD7606_6},
> > > > >  	{"ad7606-4", ID_AD7606_4},    
> > > > 
> > > >    
> > 
> > 
> >  

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH 2/2] staging:iio:ad7606: Add support for the ad7605-4
  2018-09-17 11:10           ` Jonathan Cameron
@ 2018-09-22 15:35             ` Jonathan Cameron
  0 siblings, 0 replies; 11+ messages in thread
From: Jonathan Cameron @ 2018-09-22 15:35 UTC (permalink / raw)
  To: Jonathan Cameron
  Cc: Ardelean, Alexandru, lars, knaack.h, linux-iio, Hennerich,
	Michael, pmeerw

On Mon, 17 Sep 2018 12:10:58 +0100
Jonathan Cameron <jonathan.cameron@huawei.com> wrote:

> On Mon, 17 Sep 2018 09:01:53 +0000
> "Ardelean, Alexandru" <alexandru.Ardelean@analog.com> wrote:
> 
> > On Mon, 2018-09-17 at 09:30 +0100, Jonathan Cameron wrote:  
> > > On Mon, 17 Sep 2018 07:33:13 +0000
> > > "Ardelean, Alexandru" <alexandru.Ardelean@analog.com> wrote:
> > >     
> > > > On Sun, 2018-09-16 at 12:22 +0100, Jonathan Cameron wrote:    
> > > > > On Thu, 13 Sep 2018 14:02:12 +0300
> > > > > Alexandru Ardelean <alexandru.ardelean@analog.com> wrote:
> > > > >       
> > > > > > Add support for the AD7605-4 to the AD7606 driver. The AD7605-4 is
> > > > > > mostly
> > > > > > interface compatible to the AD7606-6 with the only difference being
> > > > > > not
> > > > > > having support for oversampling.
> > > > > > 
> > > > > > Signed-off-by: Alexandru Ardelean <alexandru.ardelean@analog.com>      
> > > > > 
> > > > > I am guessing this might clash with the devm change from earlier in
> > > > > the
> > > > > day so I'm not going to apply it (too much risk of a bug sneaking
> > > > > in).
> > > > > 
> > > > > Please resend the remaining patches in for this driver as a series so
> > > > > ordering is obvious etc.      
> > > > 
> > > > Hmm, the patch doesn't clash, but I will send them as a series.    
> > > 
> > > I was being lazy and didn't actually check ;) Relied on false intuition.
> > >     
> > 
> > Then, do I send a V2 or is this patch fine as-is ?
> > I only have a single patch to V2, and then I think we could discuss moving
> > this out of staging, or what you consider is still needed [for this] to do
> > the move.
> > Naturally, I'll prepare a DT binding doc in the moving-out-of-staging
> > series.  
> 
> I'll pick it up from here - though may be a few days before I get to it
> (on wrong computer at the moment).
Applied to the togreg branch of iio.git and pushed out as testing for
the autobuilders to play with it.

Thanks,

Jonathan
> 
> I've not looked at the whole driver for a while.  The easiest way to get
> feedback in general might be to do a series making the move (with move
> detection disabled so we see the whole code).  That gives an opportunity
> for everyone to take a detailed look at the driver on list and comment on
> it in a coherent way.  This is how I tend to do a review for a move out
> of staging anyway as it is the same treatment as a new driver gets and
> we should be consistent across the two.
> 
> Thanks,
> 
> Jonathan
> > 
> > Thanks
> > Alex
> >   
> > > Thanks,
> > > 
> > > Jonathan
> > >     
> > > >     
> > > > > 
> > > > > Otherwise this one looks good to me.
> > > > > 
> > > > > Thanks,
> > > > > 
> > > > > Jonathan      
> > > > 
> > > > Thanks
> > > > Alex
> > > >     
> > > > > > ---
> > > > > >  drivers/staging/iio/adc/Kconfig      |  2 +-
> > > > > >  drivers/staging/iio/adc/ad7606.c     | 33 +++++++++++++++++++++++-
> > > > > > ----
> > > > > >  drivers/staging/iio/adc/ad7606.h     |  3 +++
> > > > > >  drivers/staging/iio/adc/ad7606_par.c |  3 +++
> > > > > >  drivers/staging/iio/adc/ad7606_spi.c |  1 +
> > > > > >  5 files changed, 36 insertions(+), 6 deletions(-)
> > > > > > 
> > > > > > diff --git a/drivers/staging/iio/adc/Kconfig
> > > > > > b/drivers/staging/iio/adc/Kconfig
> > > > > > index e17efb03bac0..9d3062a07460 100644
> > > > > > --- a/drivers/staging/iio/adc/Kconfig
> > > > > > +++ b/drivers/staging/iio/adc/Kconfig
> > > > > > @@ -11,7 +11,7 @@ config AD7606
> > > > > >  	select IIO_TRIGGERED_BUFFER
> > > > > >  	help
> > > > > >  	  Say yes here to build support for Analog Devices:
> > > > > > -	  ad7606, ad7606-6, ad7606-4 analog to digital converters
> > > > > > (ADC).
> > > > > > +	  ad7605-4, ad7606, ad7606-6, ad7606-4 analog to digital
> > > > > > converters (ADC).
> > > > > >  
> > > > > >  	  To compile this driver as a module, choose M here: the
> > > > > >  	  module will be called ad7606.
> > > > > > diff --git a/drivers/staging/iio/adc/ad7606.c
> > > > > > b/drivers/staging/iio/adc/ad7606.c
> > > > > > index 793de92f27ed..06d65196bedb 100644
> > > > > > --- a/drivers/staging/iio/adc/ad7606.c
> > > > > > +++ b/drivers/staging/iio/adc/ad7606.c
> > > > > > @@ -275,7 +275,7 @@ static const struct attribute_group
> > > > > > ad7606_attribute_group_range = {
> > > > > >  	.attrs = ad7606_attributes_range,
> > > > > >  };
> > > > > >  
> > > > > > -#define AD7606_CHANNEL(num)					
> > > > > > \
> > > > > > +#define AD760X_CHANNEL(num, mask)				\
> > > > > >  	{							\
> > > > > >  		.type = IIO_VOLTAGE,				
> > > > > > \
> > > > > >  		.indexed = 1,					
> > > > > > \
> > > > > > @@ -283,8 +283,7 @@ static const struct attribute_group
> > > > > > ad7606_attribute_group_range = {
> > > > > >  		.address = num,					
> > > > > > \
> > > > > >  		.info_mask_separate = BIT(IIO_CHAN_INFO_RAW),	
> > > > > > \
> > > > > >  		.info_mask_shared_by_type =
> > > > > > BIT(IIO_CHAN_INFO_SCALE),\
> > > > > > -		.info_mask_shared_by_all =			
> > > > > > \
> > > > > > -			BIT(IIO_CHAN_INFO_OVERSAMPLING_RATIO),	
> > > > > > \
> > > > > > +		.info_mask_shared_by_all = mask,		\
> > > > > >  		.scan_index = num,				
> > > > > > \
> > > > > >  		.scan_type = {					
> > > > > > \
> > > > > >  			.sign = 's',				
> > > > > > \
> > > > > > @@ -294,6 +293,20 @@ static const struct attribute_group
> > > > > > ad7606_attribute_group_range = {
> > > > > >  		},						
> > > > > > \
> > > > > >  	}
> > > > > >  
> > > > > > +#define AD7605_CHANNEL(num)	\
> > > > > > +	AD760X_CHANNEL(num, 0)
> > > > > > +
> > > > > > +#define AD7606_CHANNEL(num)	\
> > > > > > +	AD760X_CHANNEL(num, BIT(IIO_CHAN_INFO_OVERSAMPLING_RATIO))
> > > > > > +
> > > > > > +static const struct iio_chan_spec ad7605_channels[] = {
> > > > > > +	IIO_CHAN_SOFT_TIMESTAMP(4),
> > > > > > +	AD7605_CHANNEL(0),
> > > > > > +	AD7605_CHANNEL(1),
> > > > > > +	AD7605_CHANNEL(2),
> > > > > > +	AD7605_CHANNEL(3),
> > > > > > +};
> > > > > > +
> > > > > >  static const struct iio_chan_spec ad7606_channels[] = {
> > > > > >  	IIO_CHAN_SOFT_TIMESTAMP(8),
> > > > > >  	AD7606_CHANNEL(0),
> > > > > > @@ -310,17 +323,24 @@ static const struct ad7606_chip_info
> > > > > > ad7606_chip_info_tbl[] = {
> > > > > >  	/*
> > > > > >  	 * More devices added in future
> > > > > >  	 */
> > > > > > +	[ID_AD7605_4] = {
> > > > > > +		.channels = ad7605_channels,
> > > > > > +		.num_channels = 5,
> > > > > > +	},
> > > > > >  	[ID_AD7606_8] = {
> > > > > >  		.channels = ad7606_channels,
> > > > > >  		.num_channels = 9,
> > > > > > +		.has_oversampling = true,
> > > > > >  	},
> > > > > >  	[ID_AD7606_6] = {
> > > > > >  		.channels = ad7606_channels,
> > > > > >  		.num_channels = 7,
> > > > > > +		.has_oversampling = true,
> > > > > >  	},
> > > > > >  	[ID_AD7606_4] = {
> > > > > >  		.channels = ad7606_channels,
> > > > > >  		.num_channels = 5,
> > > > > > +		.has_oversampling = true,
> > > > > >  	},
> > > > > >  };
> > > > > >  
> > > > > > @@ -351,6 +371,9 @@ static int ad7606_request_gpios(struct
> > > > > > ad7606_state
> > > > > > *st)
> > > > > >  	if (IS_ERR(st->gpio_frstdata))
> > > > > >  		return PTR_ERR(st->gpio_frstdata);
> > > > > >  
> > > > > > +	if (!st->chip_info->has_oversampling)
> > > > > > +		return 0;
> > > > > > +
> > > > > >  	st->gpio_os = devm_gpiod_get_array_optional(dev,
> > > > > > "oversampling-ratio",
> > > > > >  			GPIOD_OUT_LOW);
> > > > > >  	return PTR_ERR_OR_ZERO(st->gpio_os);
> > > > > > @@ -429,12 +452,12 @@ int ad7606_probe(struct device *dev, int irq,
> > > > > > void __iomem *base_address,
> > > > > >  		return ret;
> > > > > >  	}
> > > > > >  
> > > > > > +	st->chip_info = &ad7606_chip_info_tbl[id];
> > > > > > +
> > > > > >  	ret = ad7606_request_gpios(st);
> > > > > >  	if (ret)
> > > > > >  		goto error_disable_reg;
> > > > > >  
> > > > > > -	st->chip_info = &ad7606_chip_info_tbl[id];
> > > > > > -
> > > > > >  	indio_dev->dev.parent = dev;
> > > > > >  	if (st->gpio_os) {
> > > > > >  		if (st->gpio_range)
> > > > > > diff --git a/drivers/staging/iio/adc/ad7606.h
> > > > > > b/drivers/staging/iio/adc/ad7606.h
> > > > > > index 57f11b46bc69..f422296354c9 100644
> > > > > > --- a/drivers/staging/iio/adc/ad7606.h
> > > > > > +++ b/drivers/staging/iio/adc/ad7606.h
> > > > > > @@ -13,11 +13,13 @@
> > > > > >   * struct ad7606_chip_info - chip specific information
> > > > > >   * @channels:		channel specification
> > > > > >   * @num_channels:	number of channels
> > > > > > + * @has_oversampling:   whether the device has oversampling
> > > > > > support
> > > > > >   */
> > > > > >  
> > > > > >  struct ad7606_chip_info {
> > > > > >  	const struct iio_chan_spec	*channels;
> > > > > >  	unsigned int			num_channels;
> > > > > > +	bool				has_oversampling;
> > > > > >  };
> > > > > >  
> > > > > >  /**
> > > > > > @@ -87,6 +89,7 @@ int ad7606_probe(struct device *dev, int irq,
> > > > > > void
> > > > > > __iomem *base_address,
> > > > > >  int ad7606_remove(struct device *dev, int irq);
> > > > > >  
> > > > > >  enum ad7606_supported_device_ids {
> > > > > > +	ID_AD7605_4,
> > > > > >  	ID_AD7606_8,
> > > > > >  	ID_AD7606_6,
> > > > > >  	ID_AD7606_4
> > > > > > diff --git a/drivers/staging/iio/adc/ad7606_par.c
> > > > > > b/drivers/staging/iio/adc/ad7606_par.c
> > > > > > index 956e38774767..8bd86e727b02 100644
> > > > > > --- a/drivers/staging/iio/adc/ad7606_par.c
> > > > > > +++ b/drivers/staging/iio/adc/ad7606_par.c
> > > > > > @@ -79,6 +79,9 @@ static int ad7606_par_remove(struct
> > > > > > platform_device
> > > > > > *pdev)
> > > > > >  
> > > > > >  static const struct platform_device_id ad7606_driver_ids[] = {
> > > > > >  	{
> > > > > > +		.name		= "ad7605-4",
> > > > > > +		.driver_data	= ID_AD7605_4,
> > > > > > +	}, {
> > > > > >  		.name		= "ad7606-8",
> > > > > >  		.driver_data	= ID_AD7606_8,
> > > > > >  	}, {
> > > > > > diff --git a/drivers/staging/iio/adc/ad7606_spi.c
> > > > > > b/drivers/staging/iio/adc/ad7606_spi.c
> > > > > > index ffd9d0626ec2..b76ca5a8c059 100644
> > > > > > --- a/drivers/staging/iio/adc/ad7606_spi.c
> > > > > > +++ b/drivers/staging/iio/adc/ad7606_spi.c
> > > > > > @@ -55,6 +55,7 @@ static int ad7606_spi_remove(struct spi_device
> > > > > > *spi)
> > > > > >  }
> > > > > >  
> > > > > >  static const struct spi_device_id ad7606_id[] = {
> > > > > > +	{"ad7605-4", ID_AD7605_4},
> > > > > >  	{"ad7606-8", ID_AD7606_8},
> > > > > >  	{"ad7606-6", ID_AD7606_6},
> > > > > >  	{"ad7606-4", ID_AD7606_4},      
> > > > > 
> > > > >      
> > > 
> > > 
> > >    
> 
> 

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH 2/2] staging:iio:ad7606: Add support for the ad7605-4
  2018-09-10 16:16 ` [PATCH 2/2] staging:iio:ad7606: Add support for the ad7605-4 Lars-Peter Clausen
@ 2018-09-11  7:15   ` Ardelean, Alexandru
  0 siblings, 0 replies; 11+ messages in thread
From: Ardelean, Alexandru @ 2018-09-11  7:15 UTC (permalink / raw)
  To: lars, jic23; +Cc: knaack.h, pmeerw, Hennerich, Michael, linux-iio

T24gTW9uLCAyMDE4LTA5LTEwIGF0IDE4OjE2ICswMjAwLCBMYXJzLVBldGVyIENsYXVzZW4gd3Jv
dGU6DQo+IEFkZCBzdXBwb3J0IGZvciB0aGUgQUQ3NjA1LTQgdG8gdGhlIEFENzYwNiBkcml2ZXIu
IFRoZSBBRDc2MDUtNCBpcyBtb3N0bHkNCj4gaW50ZXJmYWNlIGNvbXBhdGlibGUgdG8gdGhlIEFE
NzYwNi02IHdpdGggdGhlIG9ubHkgZGlmZmVyZW5jZSBiZWluZyBub3QNCj4gaGF2aW5nIHN1cHBv
cnQgZm9yIG92ZXJzYW1wbGluZy4NCj4gDQoNCkhleSwNCg0KQSBmZXcgbm90ZXMuDQoNCj4gU2ln
bmVkLW9mZi1ieTogTGFycy1QZXRlciBDbGF1c2VuIDxsYXJzQG1ldGFmb28uZGU+DQo+IC0tLQ0K
PiAgZHJpdmVycy9zdGFnaW5nL2lpby9hZGMvS2NvbmZpZyAgICAgIHwgIDIgKy0NCj4gIGRyaXZl
cnMvc3RhZ2luZy9paW8vYWRjL2FkNzYwNi5jICAgICB8IDEwICsrKysrKysrKysNCj4gIGRyaXZl
cnMvc3RhZ2luZy9paW8vYWRjL2FkNzYwNi5oICAgICB8ICAzICsrKw0KPiAgZHJpdmVycy9zdGFn
aW5nL2lpby9hZGMvYWQ3NjA2X3Bhci5jIHwgIDMgKysrDQo+ICBkcml2ZXJzL3N0YWdpbmcvaWlv
L2FkYy9hZDc2MDZfc3BpLmMgfCAgMSArDQo+ICA1IGZpbGVzIGNoYW5nZWQsIDE4IGluc2VydGlv
bnMoKyksIDEgZGVsZXRpb24oLSkNCj4gDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3N0YWdpbmcv
aWlvL2FkYy9LY29uZmlnDQo+IGIvZHJpdmVycy9zdGFnaW5nL2lpby9hZGMvS2NvbmZpZw0KPiBp
bmRleCBlMTdlZmIwM2JhYzAuLjlkMzA2MmEwNzQ2MCAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9z
dGFnaW5nL2lpby9hZGMvS2NvbmZpZw0KPiArKysgYi9kcml2ZXJzL3N0YWdpbmcvaWlvL2FkYy9L
Y29uZmlnDQo+IEBAIC0xMSw3ICsxMSw3IEBAIGNvbmZpZyBBRDc2MDYNCj4gIAlzZWxlY3QgSUlP
X1RSSUdHRVJFRF9CVUZGRVINCj4gIAloZWxwDQo+ICAJICBTYXkgeWVzIGhlcmUgdG8gYnVpbGQg
c3VwcG9ydCBmb3IgQW5hbG9nIERldmljZXM6DQo+IC0JICBhZDc2MDYsIGFkNzYwNi02LCBhZDc2
MDYtNCBhbmFsb2cgdG8gZGlnaXRhbCBjb252ZXJ0ZXJzIChBREMpLg0KPiArCSAgYWQ3NjA1LTQs
IGFkNzYwNiwgYWQ3NjA2LTYsIGFkNzYwNi00IGFuYWxvZyB0byBkaWdpdGFsDQo+IGNvbnZlcnRl
cnMgKEFEQykuDQo+ICANCj4gIAkgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUs
IGNob29zZSBNIGhlcmU6IHRoZQ0KPiAgCSAgbW9kdWxlIHdpbGwgYmUgY2FsbGVkIGFkNzYwNi4N
Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3RhZ2luZy9paW8vYWRjL2FkNzYwNi5jDQo+IGIvZHJp
dmVycy9zdGFnaW5nL2lpby9hZGMvYWQ3NjA2LmMNCj4gaW5kZXggYzVmZTMwMDMwNzViLi40NGE0
NzU3Yjg4Y2QgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvc3RhZ2luZy9paW8vYWRjL2FkNzYwNi5j
DQo+ICsrKyBiL2RyaXZlcnMvc3RhZ2luZy9paW8vYWRjL2FkNzYwNi5jDQo+IEBAIC0zMDgsMTcg
KzMwOCwyNCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGFkNzYwNl9jaGlwX2luZm8NCj4gYWQ3NjA2
X2NoaXBfaW5mb190YmxbXSA9IHsNCj4gIAkvKg0KPiAgCSAqIE1vcmUgZGV2aWNlcyBhZGRlZCBp
biBmdXR1cmUNCj4gIAkgKi8NCj4gKwlbSURfQUQ3NjA1XzRdID0gew0KPiArCQkuY2hhbm5lbHMg
PSBhZDc2MDZfY2hhbm5lbHMsDQo+ICsJCS5udW1fY2hhbm5lbHMgPSA1LA0KPiArCX0sDQo+ICAJ
W0lEX0FENzYwNl84XSA9IHsNCj4gIAkJLmNoYW5uZWxzID0gYWQ3NjA2X2NoYW5uZWxzLA0KPiAg
CQkubnVtX2NoYW5uZWxzID0gOSwNCj4gKwkJLmhhc19vdmVyc2FtcGxpbmcgPSB0cnVlLA0KPiAg
CX0sDQo+ICAJW0lEX0FENzYwNl82XSA9IHsNCj4gIAkJLmNoYW5uZWxzID0gYWQ3NjA2X2NoYW5u
ZWxzLA0KPiAgCQkubnVtX2NoYW5uZWxzID0gNywNCj4gKwkJLmhhc19vdmVyc2FtcGxpbmcgPSB0
cnVlLA0KPiAgCX0sDQo+ICAJW0lEX0FENzYwNl80XSA9IHsNCj4gIAkJLmNoYW5uZWxzID0gYWQ3
NjA2X2NoYW5uZWxzLA0KPiAgCQkubnVtX2NoYW5uZWxzID0gNSwNCj4gKwkJLmhhc19vdmVyc2Ft
cGxpbmcgPSB0cnVlLA0KDQpUaGUgc3lzZnMgZW50cnkgZm9yIG92ZXJzYW1wbGluZyB3b3VsZCBz
dGlsbCBzaG93IHVwIGZvciB0aGlzLg0KVGhlIElJT19DSEFOX0lORk9fT1ZFUlNBTVBMSU5HX1JB
VElPIGJpdCBuZWVkcyB0byBiZSByZW1vdmVkIGZyb20gdGhlDQpgaW5mb19tYXNrX3NoYXJlZF9i
eV9hbGxgIGZpZWxkLg0KSXQgZG9lc24ndCBodXJ0IHRvIGxlYXZlIGl0LCBqdXN0IGNhdXNlcyBz
b21lIHNtYWxsIGNvbmZ1c2lvbnMgYWJvdXQNCm92ZXJzYW1wbGluZyB3aGVuIGxvb2tpbmcgYXQg
dGhlIGRldmljZSBmcm9tIHN5c2ZzLg0KDQo+ICAJfSwNCj4gIH07DQo+ICANCj4gQEAgLTM0OSw2
ICszNTYsOSBAQCBzdGF0aWMgaW50IGFkNzYwNl9yZXF1ZXN0X2dwaW9zKHN0cnVjdCBhZDc2MDZf
c3RhdGUNCj4gKnN0KQ0KPiAgCWlmIChJU19FUlIoc3QtPmdwaW9fZnJzdGRhdGEpKQ0KPiAgCQly
ZXR1cm4gUFRSX0VSUihzdC0+Z3Bpb19mcnN0ZGF0YSk7DQo+ICANCj4gKwlpZiAoIXN0LT5jaGlw
X2luZm8tPmhhc19vdmVyc2FtcGxpbmcpDQo+ICsJCXJldHVybiAwOw0KPiArDQoNCkkgdGhpbmsg
dGhpcyBuZWVkcyBhbiBleHRyYSBwYXRjaC9jaGFuZ2UuDQpBdCB0aGlzIHBvaW50IGluIHRpbWUg
YHN0LT5jaGlwX2luZm9gIGlzIE5VTEwsIHNvIHRoZSBhc3NpZ25tZW50IGhhcyB0byBiZQ0KbW92
ZWQgYmVmb3JlIGFkNzYwNl9yZXF1ZXN0X2dwaW9zKCkgaXMgY2FsbGVkLg0KDQoNCj4gIAlzdC0+
Z3Bpb19vcyA9IGRldm1fZ3Bpb2RfZ2V0X2FycmF5X29wdGlvbmFsKGRldiwgIm92ZXJzYW1wbGlu
Zy0NCj4gcmF0aW8iLA0KPiAgCQkJR1BJT0RfT1VUX0xPVyk7DQo+ICAJcmV0dXJuIFBUUl9FUlJf
T1JfWkVSTyhzdC0+Z3Bpb19vcyk7DQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3N0YWdpbmcvaWlv
L2FkYy9hZDc2MDYuaA0KPiBiL2RyaXZlcnMvc3RhZ2luZy9paW8vYWRjL2FkNzYwNi5oDQo+IGlu
ZGV4IGZiNTZmNDc5ZTJmMS4uMmE4YmM5ZTg3NDQ5IDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL3N0
YWdpbmcvaWlvL2FkYy9hZDc2MDYuaA0KPiArKysgYi9kcml2ZXJzL3N0YWdpbmcvaWlvL2FkYy9h
ZDc2MDYuaA0KPiBAQCAtMTQsMTEgKzE0LDEzIEBADQo+ICAgKiBAbmFtZToJCWlkZW50aWZpY2F0
aW9uIHN0cmluZyBmb3IgY2hpcA0KPiAgICogQGNoYW5uZWxzOgkJY2hhbm5lbCBzcGVjaWZpY2F0
aW9uDQo+ICAgKiBAbnVtX2NoYW5uZWxzOgludW1iZXIgb2YgY2hhbm5lbHMNCj4gKyAqIEBoYXNf
b3ZlcnNhbXBsaW5nOgl3aGV0aGVyIHRoZSBkZXZpY2UgaGFzIG92ZXJzYW1wbGluZyBzdXBwb3J0
DQo+ICAgKi8NCj4gIA0KPiAgc3RydWN0IGFkNzYwNl9jaGlwX2luZm8gew0KPiAgCWNvbnN0IHN0
cnVjdCBpaW9fY2hhbl9zcGVjCSpjaGFubmVsczsNCj4gIAl1bnNpZ25lZCBpbnQJCQludW1fY2hh
bm5lbHM7DQo+ICsJYm9vbAkJCQloYXNfb3ZlcnNhbXBsaW5nOw0KPiAgfTsNCj4gIA0KPiAgLyoq
DQo+IEBAIC02NSw2ICs2Nyw3IEBAIGludCBhZDc2MDZfcHJvYmUoc3RydWN0IGRldmljZSAqZGV2
LCBpbnQgaXJxLCB2b2lkDQo+IF9faW9tZW0gKmJhc2VfYWRkcmVzcywNCj4gIGludCBhZDc2MDZf
cmVtb3ZlKHN0cnVjdCBkZXZpY2UgKmRldiwgaW50IGlycSk7DQo+ICANCj4gIGVudW0gYWQ3NjA2
X3N1cHBvcnRlZF9kZXZpY2VfaWRzIHsNCj4gKwlJRF9BRDc2MDVfNCwNCj4gIAlJRF9BRDc2MDZf
OCwNCj4gIAlJRF9BRDc2MDZfNiwNCj4gIAlJRF9BRDc2MDZfNA0KPiBkaWZmIC0tZ2l0IGEvZHJp
dmVycy9zdGFnaW5nL2lpby9hZGMvYWQ3NjA2X3Bhci5jDQo+IGIvZHJpdmVycy9zdGFnaW5nL2lp
by9hZGMvYWQ3NjA2X3Bhci5jDQo+IGluZGV4IDk1NmUzODc3NDc2Ny4uOGJkODZlNzI3YjAyIDEw
MDY0NA0KPiAtLS0gYS9kcml2ZXJzL3N0YWdpbmcvaWlvL2FkYy9hZDc2MDZfcGFyLmMNCj4gKysr
IGIvZHJpdmVycy9zdGFnaW5nL2lpby9hZGMvYWQ3NjA2X3Bhci5jDQo+IEBAIC03OSw2ICs3OSw5
IEBAIHN0YXRpYyBpbnQgYWQ3NjA2X3Bhcl9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZQ0K
PiAqcGRldikNCj4gIA0KPiAgc3RhdGljIGNvbnN0IHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2VfaWQg
YWQ3NjA2X2RyaXZlcl9pZHNbXSA9IHsNCj4gIAl7DQo+ICsJCS5uYW1lCQk9ICJhZDc2MDUtNCIs
DQo+ICsJCS5kcml2ZXJfZGF0YQk9IElEX0FENzYwNV80LA0KPiArCX0sIHsNCj4gIAkJLm5hbWUJ
CT0gImFkNzYwNi04IiwNCj4gIAkJLmRyaXZlcl9kYXRhCT0gSURfQUQ3NjA2XzgsDQo+ICAJfSwg
ew0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5nL2lpby9hZGMvYWQ3NjA2X3NwaS5jDQo+
IGIvZHJpdmVycy9zdGFnaW5nL2lpby9hZGMvYWQ3NjA2X3NwaS5jDQo+IGluZGV4IGZmZDlkMDYy
NmVjMi4uYjc2Y2E1YThjMDU5IDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL3N0YWdpbmcvaWlvL2Fk
Yy9hZDc2MDZfc3BpLmMNCj4gKysrIGIvZHJpdmVycy9zdGFnaW5nL2lpby9hZGMvYWQ3NjA2X3Nw
aS5jDQo+IEBAIC01NSw2ICs1NSw3IEBAIHN0YXRpYyBpbnQgYWQ3NjA2X3NwaV9yZW1vdmUoc3Ry
dWN0IHNwaV9kZXZpY2UgKnNwaSkNCj4gIH0NCj4gIA0KPiAgc3RhdGljIGNvbnN0IHN0cnVjdCBz
cGlfZGV2aWNlX2lkIGFkNzYwNl9pZFtdID0gew0KPiArCXsiYWQ3NjA1LTQiLCBJRF9BRDc2MDVf
NH0sDQo+ICAJeyJhZDc2MDYtOCIsIElEX0FENzYwNl84fSwNCj4gIAl7ImFkNzYwNi02IiwgSURf
QUQ3NjA2XzZ9LA0KPiAgCXsiYWQ3NjA2LTQiLCBJRF9BRDc2MDZfNH0s

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [PATCH 2/2] staging:iio:ad7606: Add support for the ad7605-4
  2018-09-10 16:16 [PATCH 1/2] staging:iio:ad7606: Remove incorrect kernel doc annotation Lars-Peter Clausen
@ 2018-09-10 16:16 ` Lars-Peter Clausen
  2018-09-11  7:15   ` Ardelean, Alexandru
  0 siblings, 1 reply; 11+ messages in thread
From: Lars-Peter Clausen @ 2018-09-10 16:16 UTC (permalink / raw)
  To: Jonathan Cameron
  Cc: Hartmut Knaack, Peter Meerwald-Stadler, Michael Hennerich,
	linux-iio, Lars-Peter Clausen

Add support for the AD7605-4 to the AD7606 driver. The AD7605-4 is mostly
interface compatible to the AD7606-6 with the only difference being not
having support for oversampling.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
---
 drivers/staging/iio/adc/Kconfig      |  2 +-
 drivers/staging/iio/adc/ad7606.c     | 10 ++++++++++
 drivers/staging/iio/adc/ad7606.h     |  3 +++
 drivers/staging/iio/adc/ad7606_par.c |  3 +++
 drivers/staging/iio/adc/ad7606_spi.c |  1 +
 5 files changed, 18 insertions(+), 1 deletion(-)

diff --git a/drivers/staging/iio/adc/Kconfig b/drivers/staging/iio/adc/Kconfig
index e17efb03bac0..9d3062a07460 100644
--- a/drivers/staging/iio/adc/Kconfig
+++ b/drivers/staging/iio/adc/Kconfig
@@ -11,7 +11,7 @@ config AD7606
 	select IIO_TRIGGERED_BUFFER
 	help
 	  Say yes here to build support for Analog Devices:
-	  ad7606, ad7606-6, ad7606-4 analog to digital converters (ADC).
+	  ad7605-4, ad7606, ad7606-6, ad7606-4 analog to digital converters (ADC).
 
 	  To compile this driver as a module, choose M here: the
 	  module will be called ad7606.
diff --git a/drivers/staging/iio/adc/ad7606.c b/drivers/staging/iio/adc/ad7606.c
index c5fe3003075b..44a4757b88cd 100644
--- a/drivers/staging/iio/adc/ad7606.c
+++ b/drivers/staging/iio/adc/ad7606.c
@@ -308,17 +308,24 @@ static const struct ad7606_chip_info ad7606_chip_info_tbl[] = {
 	/*
 	 * More devices added in future
 	 */
+	[ID_AD7605_4] = {
+		.channels = ad7606_channels,
+		.num_channels = 5,
+	},
 	[ID_AD7606_8] = {
 		.channels = ad7606_channels,
 		.num_channels = 9,
+		.has_oversampling = true,
 	},
 	[ID_AD7606_6] = {
 		.channels = ad7606_channels,
 		.num_channels = 7,
+		.has_oversampling = true,
 	},
 	[ID_AD7606_4] = {
 		.channels = ad7606_channels,
 		.num_channels = 5,
+		.has_oversampling = true,
 	},
 };
 
@@ -349,6 +356,9 @@ static int ad7606_request_gpios(struct ad7606_state *st)
 	if (IS_ERR(st->gpio_frstdata))
 		return PTR_ERR(st->gpio_frstdata);
 
+	if (!st->chip_info->has_oversampling)
+		return 0;
+
 	st->gpio_os = devm_gpiod_get_array_optional(dev, "oversampling-ratio",
 			GPIOD_OUT_LOW);
 	return PTR_ERR_OR_ZERO(st->gpio_os);
diff --git a/drivers/staging/iio/adc/ad7606.h b/drivers/staging/iio/adc/ad7606.h
index fb56f479e2f1..2a8bc9e87449 100644
--- a/drivers/staging/iio/adc/ad7606.h
+++ b/drivers/staging/iio/adc/ad7606.h
@@ -14,11 +14,13 @@
  * @name:		identification string for chip
  * @channels:		channel specification
  * @num_channels:	number of channels
+ * @has_oversampling:	whether the device has oversampling support
  */
 
 struct ad7606_chip_info {
 	const struct iio_chan_spec	*channels;
 	unsigned int			num_channels;
+	bool				has_oversampling;
 };
 
 /**
@@ -65,6 +67,7 @@ int ad7606_probe(struct device *dev, int irq, void __iomem *base_address,
 int ad7606_remove(struct device *dev, int irq);
 
 enum ad7606_supported_device_ids {
+	ID_AD7605_4,
 	ID_AD7606_8,
 	ID_AD7606_6,
 	ID_AD7606_4
diff --git a/drivers/staging/iio/adc/ad7606_par.c b/drivers/staging/iio/adc/ad7606_par.c
index 956e38774767..8bd86e727b02 100644
--- a/drivers/staging/iio/adc/ad7606_par.c
+++ b/drivers/staging/iio/adc/ad7606_par.c
@@ -79,6 +79,9 @@ static int ad7606_par_remove(struct platform_device *pdev)
 
 static const struct platform_device_id ad7606_driver_ids[] = {
 	{
+		.name		= "ad7605-4",
+		.driver_data	= ID_AD7605_4,
+	}, {
 		.name		= "ad7606-8",
 		.driver_data	= ID_AD7606_8,
 	}, {
diff --git a/drivers/staging/iio/adc/ad7606_spi.c b/drivers/staging/iio/adc/ad7606_spi.c
index ffd9d0626ec2..b76ca5a8c059 100644
--- a/drivers/staging/iio/adc/ad7606_spi.c
+++ b/drivers/staging/iio/adc/ad7606_spi.c
@@ -55,6 +55,7 @@ static int ad7606_spi_remove(struct spi_device *spi)
 }
 
 static const struct spi_device_id ad7606_id[] = {
+	{"ad7605-4", ID_AD7605_4},
 	{"ad7606-8", ID_AD7606_8},
 	{"ad7606-6", ID_AD7606_6},
 	{"ad7606-4", ID_AD7606_4},
-- 
2.11.0

^ permalink raw reply related	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2018-09-22 21:29 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-09-13 11:02 [PATCH 1/2] staging:iio:ad7606: Remove incorrect kernel doc annotations Alexandru Ardelean
2018-09-13 11:02 ` [PATCH 2/2] staging:iio:ad7606: Add support for the ad7605-4 Alexandru Ardelean
2018-09-16 11:22   ` Jonathan Cameron
2018-09-17  7:33     ` Ardelean, Alexandru
2018-09-17  8:30       ` Jonathan Cameron
2018-09-17  9:01         ` Ardelean, Alexandru
2018-09-17 11:10           ` Jonathan Cameron
2018-09-22 15:35             ` Jonathan Cameron
2018-09-16 11:19 ` [PATCH 1/2] staging:iio:ad7606: Remove incorrect kernel doc annotations Jonathan Cameron
  -- strict thread matches above, loose matches on Subject: below --
2018-09-10 16:16 [PATCH 1/2] staging:iio:ad7606: Remove incorrect kernel doc annotation Lars-Peter Clausen
2018-09-10 16:16 ` [PATCH 2/2] staging:iio:ad7606: Add support for the ad7605-4 Lars-Peter Clausen
2018-09-11  7:15   ` Ardelean, Alexandru

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.