2019-06-25 08:13:25

by Mircea Caprioru

[permalink] [raw]
Subject: [PATCH V4 1/5] iio: adc: ad7124: Remove input number limitation

The driver limits the user to use only 4/8 differential inputs, but this
device has the option to use pseudo-differential channels. This will
increase the number of channels to be equal with the number of inputs so 8
channels for ad7124-4 and 16 for ad7124-8.

This patch removes the check between channel nodes and num_inputs value.

Signed-off-by: Mircea Caprioru <[email protected]>
---

Changelog v2:
- nothing changed here

Changelog v3:
- nothing changed here

Changelog v4:
- nothing changed here

drivers/iio/adc/ad7124.c | 7 -------
1 file changed, 7 deletions(-)

diff --git a/drivers/iio/adc/ad7124.c b/drivers/iio/adc/ad7124.c
index 659ef37d5fe8..810234db9c0d 100644
--- a/drivers/iio/adc/ad7124.c
+++ b/drivers/iio/adc/ad7124.c
@@ -462,13 +462,6 @@ static int ad7124_of_parse_channel_config(struct iio_dev *indio_dev,
if (ret)
goto err;

- if (ain[0] >= st->chip_info->num_inputs ||
- ain[1] >= st->chip_info->num_inputs) {
- dev_err(indio_dev->dev.parent,
- "Input pin number out of range.\n");
- ret = -EINVAL;
- goto err;
- }
st->channel_config[channel].ain = AD7124_CHANNEL_AINP(ain[0]) |
AD7124_CHANNEL_AINM(ain[1]);
st->channel_config[channel].bipolar =
--
2.17.1


2019-06-25 08:13:29

by Mircea Caprioru

[permalink] [raw]
Subject: [PATCH V4 5/5] dt-bindings: iio: adc: Add buffered input property

This patch adds the buffered mode device tree property for positive and
negative inputs. Each option can be enabled independently.

In buffered mode, the input channel feeds into a high impedance input stage
of the buffer amplifier. Therefore, the input can tolerate significant
source impedances and is tailored for direct connection to external
resistive type sensors such as strain gages or RTDs.

Signed-off-by: Mircea Caprioru <[email protected]>
---

Changelog v3:
- added this separate commit for adi,buffered-positive and negative
properties

Changelog v4:
- nothing changed here

.../devicetree/bindings/iio/adc/adi,ad7124.yaml | 11 +++++++++++
1 file changed, 11 insertions(+)

diff --git a/Documentation/devicetree/bindings/iio/adc/adi,ad7124.yaml b/Documentation/devicetree/bindings/iio/adc/adi,ad7124.yaml
index 1b3d84d08609..cf494a08b837 100644
--- a/Documentation/devicetree/bindings/iio/adc/adi,ad7124.yaml
+++ b/Documentation/devicetree/bindings/iio/adc/adi,ad7124.yaml
@@ -100,6 +100,14 @@ patternProperties:
description: see Documentation/devicetree/bindings/iio/adc/adc.txt
type: boolean

+ adi,buffered-positive:
+ description: Enable buffered mode for positive input.
+ type: boolean
+
+ adi,buffered-negative:
+ description: Enable buffered mode for negative input.
+ type: boolean
+
required:
- reg
- diff-channels
@@ -123,6 +131,7 @@ examples:
reg = <0>;
diff-channels = <0 1>;
adi,reference-select = <0>;
+ adi,buffered-positive;
};

channel@1 {
@@ -130,6 +139,8 @@ examples:
bipolar;
diff-channels = <2 3>;
adi,reference-select = <0>;
+ adi,buffered-positive;
+ adi,buffered-negative;
};

channel@2 {
--
2.17.1

2019-06-25 08:14:42

by Mircea Caprioru

[permalink] [raw]
Subject: [PATCH V4 4/5] dt-bindings: iio: adc: Convert ad7124 documentation to YAML

Convert AD7124 bindings documentation to YAML format.

Signed-off-by: Mircea Caprioru <[email protected]>
---

Changelog v2:
- modified SPDX license to GPL-2.0 OR BSD-2-Clause
- added regex for a range from 0 to 15
- added minimum and maximum constraints for reg property
- set type and range of values for adi,reference-select property
- used items for diff-channels property
- set bipolar, adi,buffered-positive and negative to type: boolean

Changelog v3:
- moved adi,buffered-positive and negative properties to own commit

Changelog v4:
- removed old txt dt-binding

.../bindings/iio/adc/adi,ad7124.txt | 75 ---------
.../bindings/iio/adc/adi,ad7124.yaml | 144 ++++++++++++++++++
2 files changed, 144 insertions(+), 75 deletions(-)
delete mode 100644 Documentation/devicetree/bindings/iio/adc/adi,ad7124.txt
create mode 100644 Documentation/devicetree/bindings/iio/adc/adi,ad7124.yaml

diff --git a/Documentation/devicetree/bindings/iio/adc/adi,ad7124.txt b/Documentation/devicetree/bindings/iio/adc/adi,ad7124.txt
deleted file mode 100644
index 416273dce569..000000000000
--- a/Documentation/devicetree/bindings/iio/adc/adi,ad7124.txt
+++ /dev/null
@@ -1,75 +0,0 @@
-Analog Devices AD7124 ADC device driver
-
-Required properties for the AD7124:
- - compatible: Must be one of "adi,ad7124-4" or "adi,ad7124-8"
- - reg: SPI chip select number for the device
- - spi-max-frequency: Max SPI frequency to use
- see: Documentation/devicetree/bindings/spi/spi-bus.txt
- - clocks: phandle to the master clock (mclk)
- see: Documentation/devicetree/bindings/clock/clock-bindings.txt
- - clock-names: Must be "mclk".
- - interrupts: IRQ line for the ADC
- see: Documentation/devicetree/bindings/interrupt-controller/interrupts.txt
-
- Required properties:
- * #address-cells: Must be 1.
- * #size-cells: Must be 0.
-
- Subnode(s) represent the external channels which are connected to the ADC.
- Each subnode represents one channel and has the following properties:
- Required properties:
- * reg: The channel number. It can have up to 4 channels on ad7124-4
- and 8 channels on ad7124-8, numbered from 0 to 15.
- * diff-channels: see: Documentation/devicetree/bindings/iio/adc/adc.txt
-
- Optional properties:
- * bipolar: see: Documentation/devicetree/bindings/iio/adc/adc.txt
- * adi,reference-select: Select the reference source to use when
- converting on the the specific channel. Valid values are:
- 0: REFIN1(+)/REFIN1(−).
- 1: REFIN2(+)/REFIN2(−).
- 3: AVDD
- If this field is left empty, internal reference is selected.
-
-Optional properties:
- - refin1-supply: refin1 supply can be used as reference for conversion.
- - refin2-supply: refin2 supply can be used as reference for conversion.
- - avdd-supply: avdd supply can be used as reference for conversion.
-
-Example:
- adc@0 {
- compatible = "adi,ad7124-4";
- reg = <0>;
- spi-max-frequency = <5000000>;
- interrupts = <25 2>;
- interrupt-parent = <&gpio>;
- refin1-supply = <&adc_vref>;
- clocks = <&ad7124_mclk>;
- clock-names = "mclk";
-
- #address-cells = <1>;
- #size-cells = <0>;
-
- channel@0 {
- reg = <0>;
- diff-channels = <0 1>;
- adi,reference-select = <0>;
- };
-
- channel@1 {
- reg = <1>;
- bipolar;
- diff-channels = <2 3>;
- adi,reference-select = <0>;
- };
-
- channel@2 {
- reg = <2>;
- diff-channels = <4 5>;
- };
-
- channel@3 {
- reg = <3>;
- diff-channels = <6 7>;
- };
- };
diff --git a/Documentation/devicetree/bindings/iio/adc/adi,ad7124.yaml b/Documentation/devicetree/bindings/iio/adc/adi,ad7124.yaml
new file mode 100644
index 000000000000..1b3d84d08609
--- /dev/null
+++ b/Documentation/devicetree/bindings/iio/adc/adi,ad7124.yaml
@@ -0,0 +1,144 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+# Copyright 2019 Analog Devices Inc.
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/bindings/iio/adc/adi,ad7124.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Analog Devices AD7124 ADC device driver
+
+maintainers:
+ - Stefan Popa <[email protected]>
+
+description: |
+ Bindings for the Analog Devices AD7124 ADC device. Datasheet can be
+ found here:
+ https://www.analog.com/media/en/technical-documentation/data-sheets/AD7124-8.pdf
+
+properties:
+ compatible:
+ enum:
+ - adi,ad7124-4
+ - adi,ad7124-8
+
+ reg:
+ description: SPI chip select number for the device
+ maxItems: 1
+
+ clocks:
+ maxItems: 1
+ description: phandle to the master clock (mclk)
+
+ clock-names:
+ items:
+ - const: mclk
+
+ interrupts:
+ description: IRQ line for the ADC
+ maxItems: 1
+
+ '#address-cells':
+ const: 1
+
+ '#size-cells':
+ const: 0
+
+ refin1-supply:
+ description: refin1 supply can be used as reference for conversion.
+ maxItems: 1
+
+ refin2-supply:
+ description: refin2 supply can be used as reference for conversion.
+ maxItems: 1
+
+ avdd-supply:
+ description: avdd supply can be used as reference for conversion.
+ maxItems: 1
+
+required:
+ - compatible
+ - reg
+ - clocks
+ - clock-names
+ - interrupts
+
+patternProperties:
+ "^channel@([0-9]|1[0-5])$":
+ type: object
+ description: |
+ Represents the external channels which are connected to the ADC.
+ See Documentation/devicetree/bindings/iio/adc/adc.txt.
+
+ properties:
+ reg:
+ description: |
+ The channel number. It can have up to 8 channels on ad7124-4
+ and 16 channels on ad7124-8, numbered from 0 to 15.
+ items:
+ minimum: 0
+ maximum: 15
+
+ adi,reference-select:
+ description: |
+ Select the reference source to use when converting on
+ the specific channel. Valid values are:
+ 0: REFIN1(+)/REFIN1(−).
+ 1: REFIN2(+)/REFIN2(−).
+ 3: AVDD
+ If this field is left empty, internal reference is selected.
+ allOf:
+ - $ref: /schemas/types.yaml#/definitions/uint32
+ - enum: [0, 1, 3]
+
+ diff-channels:
+ description: see Documentation/devicetree/bindings/iio/adc/adc.txt
+ items:
+ minimum: 0
+ maximum: 15
+
+ bipolar:
+ description: see Documentation/devicetree/bindings/iio/adc/adc.txt
+ type: boolean
+
+ required:
+ - reg
+ - diff-channels
+
+examples:
+ - |
+ adc@0 {
+ compatible = "adi,ad7124-4";
+ reg = <0>;
+ spi-max-frequency = <5000000>;
+ interrupts = <25 2>;
+ interrupt-parent = <&gpio>;
+ refin1-supply = <&adc_vref>;
+ clocks = <&ad7124_mclk>;
+ clock-names = "mclk";
+
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ channel@0 {
+ reg = <0>;
+ diff-channels = <0 1>;
+ adi,reference-select = <0>;
+ };
+
+ channel@1 {
+ reg = <1>;
+ bipolar;
+ diff-channels = <2 3>;
+ adi,reference-select = <0>;
+ };
+
+ channel@2 {
+ reg = <2>;
+ diff-channels = <4 5>;
+ };
+
+ channel@3 {
+ reg = <3>;
+ diff-channels = <6 7>;
+ };
+ };
--
2.17.1

2019-06-26 14:45:46

by Rob Herring

[permalink] [raw]
Subject: Re: [PATCH V4 5/5] dt-bindings: iio: adc: Add buffered input property

On Tue, Jun 25, 2019 at 2:12 AM Mircea Caprioru
<[email protected]> wrote:
>
> This patch adds the buffered mode device tree property for positive and
> negative inputs. Each option can be enabled independently.
>
> In buffered mode, the input channel feeds into a high impedance input stage
> of the buffer amplifier. Therefore, the input can tolerate significant
> source impedances and is tailored for direct connection to external
> resistive type sensors such as strain gages or RTDs.
>
> Signed-off-by: Mircea Caprioru <[email protected]>
> ---
>
> Changelog v3:
> - added this separate commit for adi,buffered-positive and negative
> properties
>
> Changelog v4:
> - nothing changed here
>
> .../devicetree/bindings/iio/adc/adi,ad7124.yaml | 11 +++++++++++
> 1 file changed, 11 insertions(+)

Reviewed-by: Rob Herring <[email protected]>

2019-06-26 14:46:04

by Rob Herring

[permalink] [raw]
Subject: Re: [PATCH V4 4/5] dt-bindings: iio: adc: Convert ad7124 documentation to YAML

On Tue, Jun 25, 2019 at 2:12 AM Mircea Caprioru
<[email protected]> wrote:
>
> Convert AD7124 bindings documentation to YAML format.
>
> Signed-off-by: Mircea Caprioru <[email protected]>
> ---
>
> Changelog v2:
> - modified SPDX license to GPL-2.0 OR BSD-2-Clause
> - added regex for a range from 0 to 15
> - added minimum and maximum constraints for reg property
> - set type and range of values for adi,reference-select property
> - used items for diff-channels property
> - set bipolar, adi,buffered-positive and negative to type: boolean
>
> Changelog v3:
> - moved adi,buffered-positive and negative properties to own commit
>
> Changelog v4:
> - removed old txt dt-binding
>
> .../bindings/iio/adc/adi,ad7124.txt | 75 ---------
> .../bindings/iio/adc/adi,ad7124.yaml | 144 ++++++++++++++++++
> 2 files changed, 144 insertions(+), 75 deletions(-)
> delete mode 100644 Documentation/devicetree/bindings/iio/adc/adi,ad7124.txt
> create mode 100644 Documentation/devicetree/bindings/iio/adc/adi,ad7124.yaml

Reviewed-by: Rob Herring <[email protected]>

2019-06-26 19:23:30

by Jonathan Cameron

[permalink] [raw]
Subject: Re: [PATCH V4 1/5] iio: adc: ad7124: Remove input number limitation

On Tue, 25 Jun 2019 11:11:24 +0300
Mircea Caprioru <[email protected]> wrote:

> The driver limits the user to use only 4/8 differential inputs, but this
> device has the option to use pseudo-differential channels. This will
> increase the number of channels to be equal with the number of inputs so 8
> channels for ad7124-4 and 16 for ad7124-8.
>
> This patch removes the check between channel nodes and num_inputs value.
>
> Signed-off-by: Mircea Caprioru <[email protected]>
Applied to the togreg branch of iio.git and pushed out as testing for
the autobuilders to play with it.

Thanks,

Jonathan

> ---
>
> Changelog v2:
> - nothing changed here
>
> Changelog v3:
> - nothing changed here
>
> Changelog v4:
> - nothing changed here
>
> drivers/iio/adc/ad7124.c | 7 -------
> 1 file changed, 7 deletions(-)
>
> diff --git a/drivers/iio/adc/ad7124.c b/drivers/iio/adc/ad7124.c
> index 659ef37d5fe8..810234db9c0d 100644
> --- a/drivers/iio/adc/ad7124.c
> +++ b/drivers/iio/adc/ad7124.c
> @@ -462,13 +462,6 @@ static int ad7124_of_parse_channel_config(struct iio_dev *indio_dev,
> if (ret)
> goto err;
>
> - if (ain[0] >= st->chip_info->num_inputs ||
> - ain[1] >= st->chip_info->num_inputs) {
> - dev_err(indio_dev->dev.parent,
> - "Input pin number out of range.\n");
> - ret = -EINVAL;
> - goto err;
> - }
> st->channel_config[channel].ain = AD7124_CHANNEL_AINP(ain[0]) |
> AD7124_CHANNEL_AINM(ain[1]);
> st->channel_config[channel].bipolar =

2019-06-26 19:35:15

by Jonathan Cameron

[permalink] [raw]
Subject: Re: [PATCH V4 5/5] dt-bindings: iio: adc: Add buffered input property

On Wed, 26 Jun 2019 08:45:01 -0600
Rob Herring <[email protected]> wrote:

> On Tue, Jun 25, 2019 at 2:12 AM Mircea Caprioru
> <[email protected]> wrote:
> >
> > This patch adds the buffered mode device tree property for positive and
> > negative inputs. Each option can be enabled independently.
> >
> > In buffered mode, the input channel feeds into a high impedance input stage
> > of the buffer amplifier. Therefore, the input can tolerate significant
> > source impedances and is tailored for direct connection to external
> > resistive type sensors such as strain gages or RTDs.
> >
> > Signed-off-by: Mircea Caprioru <[email protected]>
> > ---
> >
> > Changelog v3:
> > - added this separate commit for adi,buffered-positive and negative
> > properties
> >
> > Changelog v4:
> > - nothing changed here
> >
> > .../devicetree/bindings/iio/adc/adi,ad7124.yaml | 11 +++++++++++
> > 1 file changed, 11 insertions(+)
>
> Reviewed-by: Rob Herring <[email protected]>

Applied to the togreg branch of iio.git and pushed out as testing.

thanks,

Jonathan

2019-06-26 19:36:55

by Jonathan Cameron

[permalink] [raw]
Subject: Re: [PATCH V4 4/5] dt-bindings: iio: adc: Convert ad7124 documentation to YAML

On Wed, 26 Jun 2019 08:44:36 -0600
Rob Herring <[email protected]> wrote:

> On Tue, Jun 25, 2019 at 2:12 AM Mircea Caprioru
> <[email protected]> wrote:
> >
> > Convert AD7124 bindings documentation to YAML format.
> >
> > Signed-off-by: Mircea Caprioru <[email protected]>
> > ---
> >
> > Changelog v2:
> > - modified SPDX license to GPL-2.0 OR BSD-2-Clause
> > - added regex for a range from 0 to 15
> > - added minimum and maximum constraints for reg property
> > - set type and range of values for adi,reference-select property
> > - used items for diff-channels property
> > - set bipolar, adi,buffered-positive and negative to type: boolean
> >
> > Changelog v3:
> > - moved adi,buffered-positive and negative properties to own commit
> >
> > Changelog v4:
> > - removed old txt dt-binding
> >
> > .../bindings/iio/adc/adi,ad7124.txt | 75 ---------
> > .../bindings/iio/adc/adi,ad7124.yaml | 144 ++++++++++++++++++
> > 2 files changed, 144 insertions(+), 75 deletions(-)
> > delete mode 100644 Documentation/devicetree/bindings/iio/adc/adi,ad7124.txt
> > create mode 100644 Documentation/devicetree/bindings/iio/adc/adi,ad7124.yaml
>
> Reviewed-by: Rob Herring <[email protected]>
Something a bit odd happened when trying to apply this, so I ended up doing
it rather manually.

error: cannot convert from y to UTF-8
fatal: could not parse patch

Anyhow, I think it's fine now, but would welcome any suggestion on what causes
that one? Patch was perfectly happy with it.

Jonathan


2019-06-26 19:57:58

by Rob Herring

[permalink] [raw]
Subject: Re: [PATCH V4 4/5] dt-bindings: iio: adc: Convert ad7124 documentation to YAML

On Wed, Jun 26, 2019 at 1:34 PM Jonathan Cameron <[email protected]> wrote:
>
> On Wed, 26 Jun 2019 08:44:36 -0600
> Rob Herring <[email protected]> wrote:
>
> > On Tue, Jun 25, 2019 at 2:12 AM Mircea Caprioru
> > <[email protected]> wrote:
> > >
> > > Convert AD7124 bindings documentation to YAML format.
> > >
> > > Signed-off-by: Mircea Caprioru <[email protected]>
> > > ---
> > >
> > > Changelog v2:
> > > - modified SPDX license to GPL-2.0 OR BSD-2-Clause
> > > - added regex for a range from 0 to 15
> > > - added minimum and maximum constraints for reg property
> > > - set type and range of values for adi,reference-select property
> > > - used items for diff-channels property
> > > - set bipolar, adi,buffered-positive and negative to type: boolean
> > >
> > > Changelog v3:
> > > - moved adi,buffered-positive and negative properties to own commit
> > >
> > > Changelog v4:
> > > - removed old txt dt-binding
> > >
> > > .../bindings/iio/adc/adi,ad7124.txt | 75 ---------
> > > .../bindings/iio/adc/adi,ad7124.yaml | 144 ++++++++++++++++++
> > > 2 files changed, 144 insertions(+), 75 deletions(-)
> > > delete mode 100644 Documentation/devicetree/bindings/iio/adc/adi,ad7124.txt
> > > create mode 100644 Documentation/devicetree/bindings/iio/adc/adi,ad7124.yaml
> >
> > Reviewed-by: Rob Herring <[email protected]>
> Something a bit odd happened when trying to apply this, so I ended up doing
> it rather manually.
>
> error: cannot convert from y to UTF-8
> fatal: could not parse patch
>
> Anyhow, I think it's fine now, but would welcome any suggestion on what causes
> that one? Patch was perfectly happy with it.

Looks like an error in the mail header:

Content-Type: text/plain; charset="y"

Rob