Message ID | 9992a318aec777b9b7788bb40d976aa89e5963fe.1558219042.git.renatogeh@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | dt-bindings: iio: adc: add adi,ad7780.yaml binding | expand |
On Sat, 18 May 2019 19:41:12 -0300 Renato Lui Geh <renatogeh@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@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 +++++++++++++++++++ > 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@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@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 > + maxItems: 1 > + > + vref-supply: > + description: > + The regulator supply for the ADC reference voltage > + maxItems: 1 > + > + 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. > + > +examples: > + - | > + #include <dt-bindings/gpio/gpio.h> > + adc@0 { > + 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>; > + };
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@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@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@analog.com> M: Renato Lui Geh <renatogeh@gmail.com> L: linux-iio@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@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@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. > > + 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. > > > + > > +examples: > > + - | > > + #include <dt-bindings/gpio/gpio.h> > > + adc@0 { The adc@0 block should be included in a spi block. So, something like spi0 { adc@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 > > + }; > >
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@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@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@analog.com> >M: Renato Lui Geh <renatogeh@gmail.com> >L: linux-iio@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@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@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@0 { > >The adc@0 block should be included in a spi block. > >So, something like > >spi0 { > adc@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 > >> > + }; >> >>
On Fri, 24 May 2019 21:28:02 -0300 Renato Lui Geh <renatogeh@gmail.com> wrote: > 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@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@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@analog.com> > >M: Renato Lui Geh <renatogeh@gmail.com> > >L: linux-iio@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@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@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? Correct. If you 'require' a regulator you actually have to use the optional form and then check if you got one. Otherwise you get a stub and only find out later that you can't read it's current value. Jonathan > > > >> > >> > + > >> > +examples: > >> > + - | > >> > + #include <dt-bindings/gpio/gpio.h> > >> > + adc@0 { > > > >The adc@0 block should be included in a spi block. > > > >So, something like > > > >spi0 { > > adc@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 > > > >> > + }; > >> > >>
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@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@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 + maxItems: 1 + + vref-supply: + description: + The regulator supply for the ADC reference voltage + maxItems: 1 + + 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 + +examples: + - | + #include <dt-bindings/gpio/gpio.h> + adc@0 { + 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>; + };
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@gmail.com> --- .../bindings/iio/adc/adi,ad7780.txt | 48 ----------- .../bindings/iio/adc/adi,ad7780.yaml | 85 +++++++++++++++++++ 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