Message ID | 20210424170346.526242-3-jic23@kernel.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | iio:adc:ad7476: Regulator support and binding doc | expand |
On Sat, 24 Apr 2021 18:03:46 +0100 Jonathan Cameron <jic23@kernel.org> wrote: > From: Jonathan Cameron <Jonathan.Cameron@huawei.com> Let's just pretend that it says ad7476 in the patch title (I'll fix it whilst applying). Oops. Jonathan > > This binding covers class of simple SPI ADCs which only provide > data output - they don't have MOSI pin. > > The only real variation between them is over how many supplies they > use and which one is used for the reference. > > Michael listed as maintainer for this one as it is his driver and > falls under the catch all MAINTAINERS entry for ADI devices. > > Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> > Cc: Michael Hennerich <michael.hennerich@analog.com> > Reviewed-by: Rob Herring <robh@kernel.org> > --- > .../bindings/iio/adc/adi,ad7476.yaml | 174 ++++++++++++++++++ > 1 file changed, 174 insertions(+) > > diff --git a/Documentation/devicetree/bindings/iio/adc/adi,ad7476.yaml b/Documentation/devicetree/bindings/iio/adc/adi,ad7476.yaml > new file mode 100644 > index 000000000000..cf711082ad7d > --- /dev/null > +++ b/Documentation/devicetree/bindings/iio/adc/adi,ad7476.yaml > @@ -0,0 +1,174 @@ > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) > +# Copyright 2019 Analog Devices Inc. > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/iio/adc/adi,ad7476.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: AD7476 and similar simple SPI ADCs from multiple manufacturers. > + > +maintainers: > + - Michael Hennerich <michael.hennerich@analog.com> > + > +description: | > + A lot of simple SPI ADCs have very straight forward interfaces. > + They typically don't provide a MOSI pin, simply reading out data > + on MISO when the clock toggles. > + > +properties: > + compatible: > + enum: > + - adi,ad7091 > + - adi,ad7091r > + - adi,ad7273 > + - adi,ad7274 > + - adi,ad7276 > + - adi,ad7277 > + - adi,ad7278 > + - adi,ad7466 > + - adi,ad7467 > + - adi,ad7468 > + - adi,ad7475 > + - adi,ad7476 > + - adi,ad7476a > + - adi,ad7477 > + - adi,ad7477a > + - adi,ad7478 > + - adi,ad7478a > + - adi,ad7495 > + - adi,ad7910 > + - adi,ad7920 > + - adi,ad7940 > + - ti,adc081s > + - ti,adc101s > + - ti,adc121s > + - ti,ads7866 > + - ti,ads7867 > + - ti,ads7868 > + - lltc,ltc2314-14 > + > + reg: > + maxItems: 1 > + > + vcc-supply: > + description: > + Main powersupply voltage for the chips, sometimes referred to as VDD on > + datasheets. If there is no separate vref-supply, then this is needed > + to establish channel scaling. > + > + vdrive-supply: > + description: > + Some devices have separate supply for their digital control side. > + > + vref-supply: > + description: > + Some devices have a specific reference voltage supplied on a different pin > + to the other supplies. Needed to be able to establish channel scaling > + unless there is also an internal reference available (e.g. ad7091r) > + > + spi-max-frequency: true > + > + adi,conversion-start-gpios: > + description: A GPIO used to trigger the start of a conversion > + maxItems: 1 > + > +required: > + - compatible > + - reg > + > +additionalProperties: false > + > +allOf: > + # Devices where reference is vcc > + - if: > + properties: > + compatible: > + contains: > + enum: > + - adi,ad7091 > + - adi,ad7276 > + - adi,ad7277 > + - adi,ad7278 > + - adi,ad7466 > + - adi,ad7467 > + - adi,ad7468 > + - adi,ad7940 > + - ti,adc081s > + - ti,adc101s > + - ti,adc121s > + - ti,ads7866 > + - ti,ads7868 > + required: > + - vcc-supply > + # Devices with a vref > + - if: > + properties: > + compatible: > + contains: > + enum: > + - adi,ad7091r > + - adi,ad7273 > + - adi,ad7274 > + - adi,ad7475 > + - lltc,ltc2314-14 > + then: > + properties: > + vref-supply: true > + else: > + properties: > + vref-supply: false > + # Devices with a vref where it is not optional > + - if: > + properties: > + compatible: > + contains: > + enum: > + - adi,ad7273 > + - adi,ad7274 > + - adi,ad7475 > + - lltc,ltc2314-14 > + then: > + required: > + - vref-supply > + - if: > + properties: > + compatible: > + contains: > + enum: > + - adi,ad7475 > + - adi,ad7495 > + then: > + properties: > + vdrive-supply: true > + else: > + properties: > + vdrive-supply: false > + - if: > + properties: > + compatible: > + contains: > + enum: > + - adi,ad7091 > + - adi,ad7091r > + then: > + properties: > + adi,conversion-start-gpios: true > + else: > + properties: > + adi,conversion-start-gpios: false > + > +examples: > + - | > + spi { > + #address-cells = <1>; > + #size-cells = <0>; > + > + adc@0 { > + compatible = "adi,ad7091r"; > + reg = <0>; > + spi-max-frequency = <5000000>; > + vcc-supply = <&adc_vcc>; > + vref-supply = <&adc_vref>; > + }; > + }; > +...
diff --git a/Documentation/devicetree/bindings/iio/adc/adi,ad7476.yaml b/Documentation/devicetree/bindings/iio/adc/adi,ad7476.yaml new file mode 100644 index 000000000000..cf711082ad7d --- /dev/null +++ b/Documentation/devicetree/bindings/iio/adc/adi,ad7476.yaml @@ -0,0 +1,174 @@ +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) +# Copyright 2019 Analog Devices Inc. +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/iio/adc/adi,ad7476.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: AD7476 and similar simple SPI ADCs from multiple manufacturers. + +maintainers: + - Michael Hennerich <michael.hennerich@analog.com> + +description: | + A lot of simple SPI ADCs have very straight forward interfaces. + They typically don't provide a MOSI pin, simply reading out data + on MISO when the clock toggles. + +properties: + compatible: + enum: + - adi,ad7091 + - adi,ad7091r + - adi,ad7273 + - adi,ad7274 + - adi,ad7276 + - adi,ad7277 + - adi,ad7278 + - adi,ad7466 + - adi,ad7467 + - adi,ad7468 + - adi,ad7475 + - adi,ad7476 + - adi,ad7476a + - adi,ad7477 + - adi,ad7477a + - adi,ad7478 + - adi,ad7478a + - adi,ad7495 + - adi,ad7910 + - adi,ad7920 + - adi,ad7940 + - ti,adc081s + - ti,adc101s + - ti,adc121s + - ti,ads7866 + - ti,ads7867 + - ti,ads7868 + - lltc,ltc2314-14 + + reg: + maxItems: 1 + + vcc-supply: + description: + Main powersupply voltage for the chips, sometimes referred to as VDD on + datasheets. If there is no separate vref-supply, then this is needed + to establish channel scaling. + + vdrive-supply: + description: + Some devices have separate supply for their digital control side. + + vref-supply: + description: + Some devices have a specific reference voltage supplied on a different pin + to the other supplies. Needed to be able to establish channel scaling + unless there is also an internal reference available (e.g. ad7091r) + + spi-max-frequency: true + + adi,conversion-start-gpios: + description: A GPIO used to trigger the start of a conversion + maxItems: 1 + +required: + - compatible + - reg + +additionalProperties: false + +allOf: + # Devices where reference is vcc + - if: + properties: + compatible: + contains: + enum: + - adi,ad7091 + - adi,ad7276 + - adi,ad7277 + - adi,ad7278 + - adi,ad7466 + - adi,ad7467 + - adi,ad7468 + - adi,ad7940 + - ti,adc081s + - ti,adc101s + - ti,adc121s + - ti,ads7866 + - ti,ads7868 + required: + - vcc-supply + # Devices with a vref + - if: + properties: + compatible: + contains: + enum: + - adi,ad7091r + - adi,ad7273 + - adi,ad7274 + - adi,ad7475 + - lltc,ltc2314-14 + then: + properties: + vref-supply: true + else: + properties: + vref-supply: false + # Devices with a vref where it is not optional + - if: + properties: + compatible: + contains: + enum: + - adi,ad7273 + - adi,ad7274 + - adi,ad7475 + - lltc,ltc2314-14 + then: + required: + - vref-supply + - if: + properties: + compatible: + contains: + enum: + - adi,ad7475 + - adi,ad7495 + then: + properties: + vdrive-supply: true + else: + properties: + vdrive-supply: false + - if: + properties: + compatible: + contains: + enum: + - adi,ad7091 + - adi,ad7091r + then: + properties: + adi,conversion-start-gpios: true + else: + properties: + adi,conversion-start-gpios: false + +examples: + - | + spi { + #address-cells = <1>; + #size-cells = <0>; + + adc@0 { + compatible = "adi,ad7091r"; + reg = <0>; + spi-max-frequency = <5000000>; + vcc-supply = <&adc_vcc>; + vref-supply = <&adc_vref>; + }; + }; +...