[PATCH] dt-bindings: iio: adc: add adi,ad7780.yaml binding

Renato Lui Geh renatogeh at gmail.com
Sat May 25 00:28:02 UTC 2019


Hi Jonathan, Alex,

Thanks for the review. Some comments inline.

Thanks,
Renato

On 05/20, Ardelean, Alexandru wrote:
>On Sun, 2019-05-19 at 12:32 +0100, Jonathan Cameron wrote:
>> [External]
>>
>>
>> On Sat, 18 May 2019 19:41:12 -0300
>> Renato Lui Geh <renatogeh at gmail.com> wrote:
>>
>> > This patch adds a YAML binding for the Analog Devices AD7780/1 and
>> > AD7170/1 analog-to-digital converters.
>> >
>> > Signed-off-by: Renato Lui Geh <renatogeh at gmail.com>
>>
>> One comment inline.  I'll also be needing an ack from Analog on this,
>> preferably Michael's.
>>
>> Thanks,
>>
>> Jonathan
>> > ---
>> >  .../bindings/iio/adc/adi,ad7780.txt           | 48 -----------
>> >  .../bindings/iio/adc/adi,ad7780.yaml          | 85 +++++++++++++++++++
>
>You should also update the MAINTAINERS file.
>Maybe in a following patch.
>It looks like there is not entry in there, so maybe you need to add a new
>one.
>
>Something like:
>
>
>ANALOG DEVICES INC AD7780 DRIVER
>M:      Michael Hennerich <Michael.Hennerich at analog.com>
>M:      Renato Lui Geh <renatogeh at gmail.com>
>L:      linux-iio at vger.kernel.org
>W:      http://ez.analog.com/community/linux-device-drivers
>S:      Supported
>F:      drivers/iio/adc/ad7780.c
>F:      Documentation/devicetree/bindings/iio/adc/adi,ad7780.yaml
>
>This should be after this block
>ANALOG DEVICES INC AD7768-1 DRIVER
>
>Note that I added you as a co-maintainer.
>If you want, you do not need to add that line.
>
>> >  2 files changed, 85 insertions(+), 48 deletions(-)
>> >  delete mode 100644
>> > Documentation/devicetree/bindings/iio/adc/adi,ad7780.txt
>> >  create mode 100644
>> > Documentation/devicetree/bindings/iio/adc/adi,ad7780.yaml
>> >
>> > diff --git a/Documentation/devicetree/bindings/iio/adc/adi,ad7780.txt
>> > b/Documentation/devicetree/bindings/iio/adc/adi,ad7780.txt
>> > deleted file mode 100644
>> > index 440e52555349..000000000000
>> > --- a/Documentation/devicetree/bindings/iio/adc/adi,ad7780.txt
>> > +++ /dev/null
>> > @@ -1,48 +0,0 @@
>> > -* Analog Devices AD7170/AD7171/AD7780/AD7781
>> > -
>> > -Data sheets:
>> > -
>> > -- AD7170:
>> > -     *
>> > https://www.analog.com/media/en/technical-documentation/data-sheets/AD7170.pdf
>> > -- AD7171:
>> > -     *
>> > https://www.analog.com/media/en/technical-documentation/data-sheets/AD7171.pdf
>> > -- AD7780:
>> > -     *
>> > https://www.analog.com/media/en/technical-documentation/data-sheets/ad7780.pdf
>> > -- AD7781:
>> > -     *
>> > https://www.analog.com/media/en/technical-documentation/data-sheets/AD7781.pdf
>> > -
>> > -Required properties:
>> > -
>> > -- compatible: should be one of
>> > -     * "adi,ad7170"
>> > -     * "adi,ad7171"
>> > -     * "adi,ad7780"
>> > -     * "adi,ad7781"
>> > -- reg: spi chip select number for the device
>> > -- vref-supply: the regulator supply for the ADC reference voltage
>> > -
>> > -Optional properties:
>> > -
>> > -- powerdown-gpios:  must be the device tree identifier of the PDRST
>> > pin. If
>> > -                 specified, it will be asserted during driver probe.
>> > As the
>> > -                 line is active high, it should be marked
>> > GPIO_ACTIVE_HIGH.
>> > -- adi,gain-gpios:   must be the device tree identifier of the GAIN
>> > pin. Only for
>> > -                 the ad778x chips. If specified, it will be asserted
>> > during
>> > -                 driver probe. As the line is active low, it should be
>> > marked
>> > -                 GPIO_ACTIVE_LOW.
>> > -- adi,filter-gpios: must be the device tree identifier of the FILTER
>> > pin. Only
>> > -                 for the ad778x chips. If specified, it will be
>> > asserted
>> > -                 during driver probe. As the line is active low, it
>> > should be
>> > -                 marked GPIO_ACTIVE_LOW.
>> > -
>> > -Example:
>> > -
>> > -adc at 0 {
>> > -     compatible =  "adi,ad7780";
>> > -     reg =         <0>;
>> > -     vref-supply = <&vdd_supply>
>> > -
>> > -     powerdown-gpios  = <&gpio 12 GPIO_ACTIVE_HIGH>;
>> > -     adi,gain-gpios   = <&gpio  5 GPIO_ACTIVE_LOW>;
>> > -     adi,filter-gpios = <&gpio 15 GPIO_ACTIVE_LOW>;
>> > -};
>> > diff --git a/Documentation/devicetree/bindings/iio/adc/adi,ad7780.yaml
>> > b/Documentation/devicetree/bindings/iio/adc/adi,ad7780.yaml
>> > new file mode 100644
>> > index 000000000000..931bc4f8ec04
>> > --- /dev/null
>> > +++ b/Documentation/devicetree/bindings/iio/adc/adi,ad7780.yaml
>> > @@ -0,0 +1,85 @@
>> > +# SPDX-License-Identifier: GPL-2.0
>> > +%YAML 1.2
>> > +---
>> > +$id: http://devicetree.org/schemas/iio/adc/adi,ad7780.yaml#
>> > +$schema: http://devicetree.org/meta-schemas/core.yaml#
>> > +
>> > +title: Analog Devices AD7170/AD7171/AD7780/AD7781 analog to digital
>> > converters
>> > +
>> > +maintainers:
>> > +  - Michael Hennerich <michael.hennerich at analog.com>
>> > +
>> > +description: |
>> > +  The ad7780 is a sigma-delta analog to digital converter. This driver
>> > provides
>> > +  reading voltage values and status bits from both the ad778x and
>> > ad717x series.
>> > +  Its interface also allows writing on the FILTER and GAIN GPIO pins
>> > on the
>> > +  ad778x.
>> > +
>> > +  Specifications on the converters can be found at:
>> > +    AD7170:
>> > +
>> > https://www.analog.com/media/en/technical-documentation/data-sheets/AD7170.pdf
>> > +    AD7171:
>> > +
>> > https://www.analog.com/media/en/technical-documentation/data-sheets/AD7171.pdf
>> > +    AD7780:
>> > +
>> > https://www.analog.com/media/en/technical-documentation/data-sheets/ad7780.pdf
>> > +    AD7781:
>> > +
>> > https://www.analog.com/media/en/technical-documentation/data-sheets/AD7781.pdf
>> > +
>> > +properties:
>> > +  compatible:
>> > +    enum:
>> > +      - adi,ad7170
>> > +      - adi,ad7171
>> > +      - adi,ad7780
>> > +      - adi,ad7781
>> > +
>> > +  reg:
>> > +    description:
>> > +      Chip select number for the device
>
>No need to add a description.
>This is pretty standard.
>
>> > +    maxItems: 1
>> > +
>> > +  vref-supply:
>> > +    description:
>> > +      The regulator supply for the ADC reference voltage
>> > +    maxItems: 1
>> > +
>
>As I see in the driver, it's not vref-supply, it's avdd-supply.

You're absolutely right. Shouldn't have mindlessly copied
from the txt, even though the txt's was also my fault.

By the way, a quick look at ad7170 and ad7780's datasheets
shows that the 7170 uses VDD, and the 7780, AVDD. Are they
equivalent?
>
>> > +  powerdown-gpios:
>> > +    description:
>> > +      Must be the device tree identifier of the PDRST pin. If
>> > +      specified, it will be asserted during driver probe. As the
>> > +      line is active high, it should be marked GPIO_ACTIVE_HIGH.
>> > +    maxItems: 1
>> > +
>> > +  adi,gain-gpios:
>> > +    description:
>> > +      Must be the device tree identifier of the GAIN pin. Only for
>> > +      the ad778x chips. If specified, it will be asserted during
>> > +      driver probe. As the line is active low, it should be marked
>> > +      GPIO_ACTIVE_LOW.
>> > +    maxItems: 1
>> > +
>> > +  adi,filter-gpios:
>> > +    description:
>> > +      Must be the device tree identifier of the FILTER pin. Only
>> > +      for the ad778x chips. If specified, it will be asserted
>> > +      during driver probe. As the line is active low, it should be
>> > +      marked GPIO_ACTIVE_LOW.
>> > +    maxItems: 1
>> > +
>> > +required:
>> > +  - compatible
>> > +  - reg
>> > +  - vref-supply
>>
>> Is that actually true?  I'd imagine it'll use a stub regulator if
>> it isn't supplied.
>
>Hmm, I also think this can be omitted as required.
>devm_regulator_get() is used.
>devm_regulator_get_exclusive() would be needed to make this required.

I see. So the difference between devm_regulator_get and
devm_regulator_get_optional is that the former uses a stub
when the requested reg isn't supplied, and the latter
doesn't?
>
>>
>> > +
>> > +examples:
>> > +  - |
>> > +    #include <dt-bindings/gpio/gpio.h>
>> > +    adc at 0 {
>
>The adc at 0 block should be included in a spi block.
>
>So, something like
>
>spi0 {
>     adc at 0 {
>            compatible =  "adi,ad7780";
>            reg =         <0>;
>            avdd-supply = <&vdd_supply>
>
>            powerdown-gpios  = <&gpio 12 GPIO_ACTIVE_HIGH>;
>            adi,gain-gpios   = <&gpio  5 GPIO_ACTIVE_LOW>;
>            adi,filter-gpios = <&gpio 15 GPIO_ACTIVE_LOW>;
>     };
>};
>
>I know this wasn't the case before, but it should be (from what I recall).
>
>> > +      compatible =  "adi,ad7780";
>> > +      reg = <0>;
>> > +      vref-supply = <&vdd_supply>;
>> > +
>> > +      powerdown-gpios  = <&gpio0 12 GPIO_ACTIVE_HIGH>;
>> > +      adi,gain-gpios   = <&gpio1  5 GPIO_ACTIVE_LOW>;
>> > +      adi,filter-gpios = <&gpio2 15 GPIO_ACTIVE_LOW>;
>
>Rest looks good.
>
>Thanks
>Alex
>
>> > +    };
>>
>>


More information about the devel mailing list