Re: [PATCH v2 2/2] dt-bindings: iio: adc: Add DT docs for AD7292

From: Marcelo Schmitt
Date: Sat Oct 19 2019 - 11:07:18 EST


Hi Rob

Thanks for the review.

I'm having some trouble with the DTC.
I installed the DT tool from https://github.com/robherring/dt-schema.
Running make -k dt_binding_check goes through all the checks (CHKDT), producing
the .example.dts files but then gives errors like:

DTC Documentation/devicetree/bindings/arm/calxeda.example.dt.yaml
FATAL ERROR: Unknown output format "yaml"
make[1]: *** [scripts/Makefile.lib:314: Documentation/devicetree/bindings/arm/calxeda.example.dt.yaml] Error 1
make[1]: *** Deleting file 'Documentation/devicetree/bindings/arm/calxeda.example.dt.yaml'

My pip3 installation has:
jsonschema jsonschema-3.1.2.dev6+g0d827f3
rfc3987 1.3.8

$HOME/.local/bin is listed in my shell's PATH variable.

I was trying to follow the documentation at:
Documentation/devicetree/writing-schema.rst

Are there any other DTC dependencies that I am missing?

On 10/17, Rob Herring wrote:
> On Tue, Oct 15, 2019 at 11:52:23PM -0300, Marcelo Schmitt wrote:
> > Add a device tree binding doc for AD7292 monitor and control system.
> >
> > Signed-off-by: Marcelo Schmitt <marcelo.schmitt1@xxxxxxxxx>
> > ---
> > .../bindings/iio/adc/adi,ad7292.yaml | 107 ++++++++++++++++++
> > MAINTAINERS | 1 +
> > 2 files changed, 108 insertions(+)
> > create mode 100644 Documentation/devicetree/bindings/iio/adc/adi,ad7292.yaml
> >
> > diff --git a/Documentation/devicetree/bindings/iio/adc/adi,ad7292.yaml b/Documentation/devicetree/bindings/iio/adc/adi,ad7292.yaml
> > new file mode 100644
> > index 000000000000..40028332d9e2
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/iio/adc/adi,ad7292.yaml
> > @@ -0,0 +1,107 @@
> > +# SPDX-License-Identifier: GPL-2.0
> > +%YAML 1.2
> > +---
> > +$id: http://devicetree.org/schemas/iio/adc/adi,ad7292.yaml#
> > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > +
> > +title: Analog Devices AD7292 10-Bit Monitor and Control System
> > +
> > +maintainers:
> > + - Marcelo Schmitt <marcelo.schmitt1@xxxxxxxxx>
> > +
> > +description: |
> > + Analog Devices AD7292 10-Bit Monitor and Control System with ADC, DACs,
> > + Temperature Sensor, and GPIOs
> > +
> > + Specifications about the part can be found at:
> > + https://www.analog.com/media/en/technical-documentation/data-sheets/ad7292.pdf
> > +
> > +properties:
> > + compatible:
> > + enum:
> > + - adi,ad7292
> > +
> > + reg:
> > + maxItems: 1
> > +
> > + vref-supply:
> > + description: |
> > + The regulator supply for ADC and DAC reference voltage.
> > + maxItems: 1
>
> Not necessary, regulator supplies are always 1 item, so drop maxItems.
>
> > +
> > + spi-cpha:
> > + description: |
> > + See Documentation/devicetree/bindings/spi/spi-controller.yaml
> > + maxItems: 1
>
> This is just wrong because spi-cpha is a boolean. Just 'spi-cpha: true'
> is sufficient. If this device needs this property, then it should
> probably be required.
>
> > +
> > + '#address-cells':
> > + const: 1
> > +
> > + '#size-cells':
> > + const: 0
> > +
> > +required:
> > + - compatible
> > + - reg
> > +
> > +patternProperties:
> > + "^channel@[0-7]$":
> > + 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 numbered from 0 to 7.
> > + maxItems: 1
> > +
> > + diff-channels:
> > + description: see Documentation/devicetree/bindings/iio/adc/adc.txt
> > + maxItems: 1
> > +
> > + required:
> > + - reg
> > +
> > +examples:
> > + - |
> > + spi {
> > + #address-cells = <1>;
> > + #size-cells = <0>;
> > +
> > + ad7292: ad7292@0 {
>
> adc@0
>
> > + compatible = "adi,ad7292";
> > + reg = <0>;
> > +
> > + #address-cells = <1>;
> > + #size-cells = <0>;
> > +
> > + spi-max-frequency = <25000000>;
> > + vref-supply = <&adc_vref>;
> > + spi-cpha;
> > +
> > + channel@0 {
> > + reg = <0>;
> > + diff-channels = <0 1>;
> > + };
> > + channel@2 {
> > + reg = <2>;
> > + };
> > + channel@3 {
> > + reg = <3>;
> > + };
> > + channel@4 {
> > + reg = <4>;
> > + };
> > + channel@5 {
> > + reg = <5>;
> > + };
> > + channel@6 {
> > + reg = <6>;
> > + };
> > + channel@7 {
> > + reg = <7>;
> > + };
> > + };
> > + }
>
> Missing ';'. Make sure this builds with 'make -k dt_binding_check'. The
> '-k' is due to some other breakage ATM.
>
> Rob