Message ID | 10678612efbbd97bb47a31f4a062607cf35b03f9.1719351923.git.marcelo.schmitt@analog.com (mailing list archive) |
---|---|
State | Changes Requested |
Headers | show |
Series | Add support for AD4000 series of ADCs | expand |
On Tue, Jun 25, 2024 at 06:55:03PM -0300, Marcelo Schmitt wrote: > Add device tree documentation for AD4000 series of ADC devices. > > Signed-off-by: Marcelo Schmitt <marcelo.schmitt@analog.com> > --- > .../bindings/iio/adc/adi,ad4000.yaml | 190 ++++++++++++++++++ > MAINTAINERS | 7 + > 2 files changed, 197 insertions(+) > create mode 100644 Documentation/devicetree/bindings/iio/adc/adi,ad4000.yaml > > diff --git a/Documentation/devicetree/bindings/iio/adc/adi,ad4000.yaml b/Documentation/devicetree/bindings/iio/adc/adi,ad4000.yaml > new file mode 100644 > index 000000000000..76035dff5474 > --- /dev/null > +++ b/Documentation/devicetree/bindings/iio/adc/adi,ad4000.yaml > @@ -0,0 +1,190 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/iio/adc/adi,ad4000.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Analog Devices AD4000 and similar Analog to Digital Converters > + > +maintainers: > + - Marcelo Schmitt <marcelo.schmitt@analog.com> > + > +description: | > + Analog Devices AD4000 family of Analog to Digital Converters with SPI support. > + Specifications can be found at: > + https://www.analog.com/media/en/technical-documentation/data-sheets/ad4000-4004-4008.pdf > + https://www.analog.com/media/en/technical-documentation/data-sheets/ad4001-4005.pdf > + https://www.analog.com/media/en/technical-documentation/data-sheets/ad4002-4006-4010.pdf > + https://www.analog.com/media/en/technical-documentation/data-sheets/ad4003-4007-4011.pdf > + https://www.analog.com/media/en/technical-documentation/data-sheets/ad4020-4021-4022.pdf > + https://www.analog.com/media/en/technical-documentation/data-sheets/adaq4001.pdf > + https://www.analog.com/media/en/technical-documentation/data-sheets/adaq4003.pdf > + > +$ref: /schemas/spi/spi-peripheral-props.yaml# > + > +properties: > + compatible: > + oneOf: > + - const: adi,ad4000 > + - items: > + - enum: > + - adi,ad4004 > + - adi,ad4008 > + - const: adi,ad4000 > + - const: adi,ad4001 > + - items: > + - enum: > + - adi,ad4005 > + - const: adi,ad4001 > + - const: adi,ad4002 > + - items: > + - enum: > + - adi,ad4006 > + - adi,ad4010 > + - const: adi,ad4002 > + - const: adi,ad4003 > + - items: > + - enum: > + - adi,ad4007 > + - adi,ad4011 > + - const: adi,ad4003 > + - const: adi,ad4020 > + - items: > + - enum: > + - adi,ad4021 > + - adi,ad4022 > + - const: adi,ad4020 > + - const: adi,adaq4001 > + - const: adi,adaq4003 I think some blank lines, maybe like the above, would go a long way with this list of compatibles. > + > + reg: > + maxItems: 1 > + > + spi-max-frequency: > + maximum: 102040816 # for VIO > 2.7 V, 81300813 for VIO > 1.7 V > + > + adi,sdi-pin: > + $ref: /schemas/types.yaml#/definitions/string > + enum: [ high, low, cs ] enum: [ high, low, cs, sdi ] default: sdi I'd do this, so that the default is documented in the binding, not in the description text. Otherwise, this looks good to me.
On 06/26, Conor Dooley wrote: > On Tue, Jun 25, 2024 at 06:55:03PM -0300, Marcelo Schmitt wrote: > > Add device tree documentation for AD4000 series of ADC devices. > > > > Signed-off-by: Marcelo Schmitt <marcelo.schmitt@analog.com> > > --- > > .../bindings/iio/adc/adi,ad4000.yaml | 190 ++++++++++++++++++ > > MAINTAINERS | 7 + ... > > +properties: > > + compatible: > > + oneOf: > > + - const: adi,ad4000 > > + - items: > > + - enum: > > + - adi,ad4004 > > + - adi,ad4008 > > + - const: adi,ad4000 > > > + - const: adi,ad4001 > > + - items: > > + - enum: > > + - adi,ad4005 > > + - const: adi,ad4001 > > > + - const: adi,ad4002 > > + - items: > > + - enum: > > + - adi,ad4006 > > + - adi,ad4010 > > + - const: adi,ad4002 > > > + - const: adi,ad4003 > > + - items: > > + - enum: > > + - adi,ad4007 > > + - adi,ad4011 > > + - const: adi,ad4003 > > > + - const: adi,ad4020 > > + - items: > > + - enum: > > + - adi,ad4021 > > + - adi,ad4022 > > + - const: adi,ad4020 > > > + - const: adi,adaq4001 > > > + - const: adi,adaq4003 > > I think some blank lines, maybe like the above, would go a long way with > this list of compatibles. > > > + > > + reg: > > + maxItems: 1 > > + > > + spi-max-frequency: > > + maximum: 102040816 # for VIO > 2.7 V, 81300813 for VIO > 1.7 V > > + > > + adi,sdi-pin: > > + $ref: /schemas/types.yaml#/definitions/string > > + enum: [ high, low, cs ] > > enum: [ high, low, cs, sdi ] > default: sdi > > I'd do this, so that the default is documented in the binding, not in > the description text. > > Otherwise, this looks good to me. Ack, will do. Thanks
On Wed, Jun 26, 2024 at 10:34:24AM -0300, Marcelo Schmitt wrote: > On 06/26, Conor Dooley wrote: > > On Tue, Jun 25, 2024 at 06:55:03PM -0300, Marcelo Schmitt wrote: > > > Add device tree documentation for AD4000 series of ADC devices. > > > > > > Signed-off-by: Marcelo Schmitt <marcelo.schmitt@analog.com> > > > --- > > > .../bindings/iio/adc/adi,ad4000.yaml | 190 ++++++++++++++++++ > > > MAINTAINERS | 7 + > ... > > > +properties: > > > + compatible: > > > + oneOf: > > > + - const: adi,ad4000 > > > + - items: > > > + - enum: > > > + - adi,ad4004 > > > + - adi,ad4008 > > > + - const: adi,ad4000 > > > > > + - const: adi,ad4001 > > > + - items: > > > + - enum: > > > + - adi,ad4005 > > > + - const: adi,ad4001 > > > > > + - const: adi,ad4002 > > > + - items: > > > + - enum: > > > + - adi,ad4006 > > > + - adi,ad4010 > > > + - const: adi,ad4002 > > > > > + - const: adi,ad4003 > > > + - items: > > > + - enum: > > > + - adi,ad4007 > > > + - adi,ad4011 > > > + - const: adi,ad4003 > > > > > + - const: adi,ad4020 > > > + - items: > > > + - enum: > > > + - adi,ad4021 > > > + - adi,ad4022 > > > + - const: adi,ad4020 > > > > > + - const: adi,adaq4001 > > > > > + - const: adi,adaq4003 > > > > I think some blank lines, maybe like the above, would go a long way with > > this list of compatibles. > > > > > + > > > + reg: > > > + maxItems: 1 > > > + > > > + spi-max-frequency: > > > + maximum: 102040816 # for VIO > 2.7 V, 81300813 for VIO > 1.7 V > > > + > > > + adi,sdi-pin: > > > + $ref: /schemas/types.yaml#/definitions/string > > > + enum: [ high, low, cs ] > > > > enum: [ high, low, cs, sdi ] > > default: sdi > > > > I'd do this, so that the default is documented in the binding, not in > > the description text. > > > > Otherwise, this looks good to me. > > Ack, will do. With those, Reviewed-by: Conor Dooley <conor.dooley@microchip.com> Thanks, Conor.
diff --git a/Documentation/devicetree/bindings/iio/adc/adi,ad4000.yaml b/Documentation/devicetree/bindings/iio/adc/adi,ad4000.yaml new file mode 100644 index 000000000000..76035dff5474 --- /dev/null +++ b/Documentation/devicetree/bindings/iio/adc/adi,ad4000.yaml @@ -0,0 +1,190 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/iio/adc/adi,ad4000.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Analog Devices AD4000 and similar Analog to Digital Converters + +maintainers: + - Marcelo Schmitt <marcelo.schmitt@analog.com> + +description: | + Analog Devices AD4000 family of Analog to Digital Converters with SPI support. + Specifications can be found at: + https://www.analog.com/media/en/technical-documentation/data-sheets/ad4000-4004-4008.pdf + https://www.analog.com/media/en/technical-documentation/data-sheets/ad4001-4005.pdf + https://www.analog.com/media/en/technical-documentation/data-sheets/ad4002-4006-4010.pdf + https://www.analog.com/media/en/technical-documentation/data-sheets/ad4003-4007-4011.pdf + https://www.analog.com/media/en/technical-documentation/data-sheets/ad4020-4021-4022.pdf + https://www.analog.com/media/en/technical-documentation/data-sheets/adaq4001.pdf + https://www.analog.com/media/en/technical-documentation/data-sheets/adaq4003.pdf + +$ref: /schemas/spi/spi-peripheral-props.yaml# + +properties: + compatible: + oneOf: + - const: adi,ad4000 + - items: + - enum: + - adi,ad4004 + - adi,ad4008 + - const: adi,ad4000 + - const: adi,ad4001 + - items: + - enum: + - adi,ad4005 + - const: adi,ad4001 + - const: adi,ad4002 + - items: + - enum: + - adi,ad4006 + - adi,ad4010 + - const: adi,ad4002 + - const: adi,ad4003 + - items: + - enum: + - adi,ad4007 + - adi,ad4011 + - const: adi,ad4003 + - const: adi,ad4020 + - items: + - enum: + - adi,ad4021 + - adi,ad4022 + - const: adi,ad4020 + - const: adi,adaq4001 + - const: adi,adaq4003 + + reg: + maxItems: 1 + + spi-max-frequency: + maximum: 102040816 # for VIO > 2.7 V, 81300813 for VIO > 1.7 V + + adi,sdi-pin: + $ref: /schemas/types.yaml#/definitions/string + enum: [ high, low, cs ] + description: + Describes how the ADC SDI pin is wired. When this property is omitted, + ADC SDI is connected to host SDO. "high" indicates that the ADC SDI pin + is hard-wired to logic high (VIO). "low" indicates that it is hard-wired + low (GND). "cs" indicates that the ADC SDI pin is connected to the host + CS line. + + '#daisy-chained-devices': true + + vdd-supply: + description: A 1.8V supply that powers the chip (VDD). + + vio-supply: + description: + A 1.8V to 5.5V supply for the digital inputs and outputs (VIO). + + ref-supply: + description: + A 2.5 to 5V supply for the external reference voltage (REF). + + cnv-gpios: + description: + When provided, this property indicates the GPIO that is connected to the + CNV pin. + maxItems: 1 + + adi,high-z-input: + type: boolean + description: + High-Z mode allows the amplifier and RC filter in front of the ADC to be + chosen based on the signal bandwidth of interest, rather than the settling + requirements of the switched capacitor SAR ADC inputs. + + adi,gain-milli: + description: | + The hardware gain applied to the ADC input (in milli units). + The gain provided by the ADC input scaler is defined by the hardware + connections between chip pins OUT+, R1K-, R1K1-, R1K+, R1K1+, and OUT-. + If not present, default to 1000 (no actual gain applied). + $ref: /schemas/types.yaml#/definitions/uint16 + enum: [454, 909, 1000, 1900] + default: 1000 + + interrupts: + description: + The SDO pin can also function as a busy indicator. This node should be + connected to an interrupt that is triggered when the SDO line goes low + while the SDI line is high and the CNV line is low ("3-wire" mode) or the + SDI line is low and the CNV line is high ("4-wire" mode); or when the SDO + line goes high while the SDI and CNV lines are high (chain mode), + maxItems: 1 + +required: + - compatible + - reg + - vdd-supply + - vio-supply + - ref-supply + +allOf: + # The configuration register can only be accessed if SDI is connected to MOSI + - if: + required: + - adi,sdi-pin + then: + properties: + adi,high-z-input: false + # chain mode has lower SCLK max rate + - if: + required: + - '#daisy-chained-devices' + then: + properties: + spi-max-frequency: + maximum: 50000000 # for VIO > 2.7 V, 40000000 for VIO > 1.7 V + # Gain property only applies to ADAQ devices + - if: + properties: + compatible: + not: + contains: + enum: + - adi,adaq4001 + - adi,adaq4003 + then: + properties: + adi,gain-milli: false + +unevaluatedProperties: false + +examples: + - | + #include <dt-bindings/gpio/gpio.h> + spi { + #address-cells = <1>; + #size-cells = <0>; + adc@0 { + compatible = "adi,ad4020"; + reg = <0>; + spi-max-frequency = <71000000>; + vdd-supply = <&supply_1_8V>; + vio-supply = <&supply_1_8V>; + ref-supply = <&supply_5V>; + adi,sdi-pin = "cs"; + cnv-gpios = <&gpio0 88 GPIO_ACTIVE_HIGH>; + }; + }; + - | + spi { + #address-cells = <1>; + #size-cells = <0>; + adc@0 { + compatible = "adi,adaq4003"; + reg = <0>; + spi-max-frequency = <80000000>; + vdd-supply = <&supply_1_8V>; + vio-supply = <&supply_1_8V>; + ref-supply = <&supply_5V>; + adi,high-z-input; + adi,gain-milli = /bits/ 16 <454>; + }; + }; diff --git a/MAINTAINERS b/MAINTAINERS index 9517093d889d..9aa6531f7cf2 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -1199,6 +1199,13 @@ W: https://ez.analog.com/linux-software-drivers F: Documentation/devicetree/bindings/iio/dac/adi,ad3552r.yaml F: drivers/iio/dac/ad3552r.c +ANALOG DEVICES INC AD4000 DRIVER +M: Marcelo Schmitt <marcelo.schmitt@analog.com> +L: linux-iio@vger.kernel.org +S: Supported +W: https://ez.analog.com/linux-software-drivers +F: Documentation/devicetree/bindings/iio/adc/adi,ad4000.yaml + ANALOG DEVICES INC AD4130 DRIVER M: Cosmin Tanislav <cosmin.tanislav@analog.com> L: linux-iio@vger.kernel.org
Add device tree documentation for AD4000 series of ADC devices. Signed-off-by: Marcelo Schmitt <marcelo.schmitt@analog.com> --- .../bindings/iio/adc/adi,ad4000.yaml | 190 ++++++++++++++++++ MAINTAINERS | 7 + 2 files changed, 197 insertions(+) create mode 100644 Documentation/devicetree/bindings/iio/adc/adi,ad4000.yaml