* [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; 9+ 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] 9+ 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; 9+ 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] 9+ 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; 9+ 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] 9+ 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; 9+ messages in thread From: Ardelean, Alexandru @ 2018-09-17 7:33 UTC (permalink / raw) To: jic23@kernel.org Cc: lars@metafoo.de, knaack.h@gmx.de, linux-iio@vger.kernel.org, Hennerich, Michael, pmeerw@pmeerw.net 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] 9+ 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; 9+ messages in thread From: Jonathan Cameron @ 2018-09-17 8:30 UTC (permalink / raw) To: Ardelean, Alexandru, lars@metafoo.de Cc: jic23@kernel.org, knaack.h@gmx.de, linux-iio@vger.kernel.org, Hennerich, Michael, pmeerw@pmeerw.net 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] 9+ 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; 9+ messages in thread From: Ardelean, Alexandru @ 2018-09-17 9:01 UTC (permalink / raw) To: lars@metafoo.de, jonathan.cameron@huawei.com Cc: knaack.h@gmx.de, linux-iio@vger.kernel.org, jic23@kernel.org, Hennerich, Michael, pmeerw@pmeerw.net 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] 9+ 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; 9+ messages in thread From: Jonathan Cameron @ 2018-09-17 11:10 UTC (permalink / raw) To: Ardelean, Alexandru Cc: lars@metafoo.de, knaack.h@gmx.de, linux-iio@vger.kernel.org, jic23@kernel.org, Hennerich, Michael, pmeerw@pmeerw.net 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] 9+ 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; 9+ messages in thread From: Jonathan Cameron @ 2018-09-22 15:35 UTC (permalink / raw) To: Jonathan Cameron Cc: Ardelean, Alexandru, lars@metafoo.de, knaack.h@gmx.de, linux-iio@vger.kernel.org, Hennerich, Michael, pmeerw@pmeerw.net 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] 9+ 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; 9+ 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] 9+ messages in thread
end of thread, other threads:[~2018-09-22 21:29 UTC | newest] Thread overview: 9+ 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
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.