Message ID | 20250220135429.8615-13-antoniu.miclaus@analog.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | Add support for AD4080 ADC | expand |
On 2/20/25 7:54 AM, Antoniu Miclaus wrote: > Add devicetree bindings for ad4080 family. > > Signed-off-by: Antoniu Miclaus <antoniu.miclaus@analog.com> > --- > .../bindings/iio/adc/adi,ad4080.yaml | 92 +++++++++++++++++++ > 1 file changed, 92 insertions(+) > create mode 100644 Documentation/devicetree/bindings/iio/adc/adi,ad4080.yaml > > diff --git a/Documentation/devicetree/bindings/iio/adc/adi,ad4080.yaml b/Documentation/devicetree/bindings/iio/adc/adi,ad4080.yaml > new file mode 100644 > index 000000000000..e0ea712b8457 > --- /dev/null > +++ b/Documentation/devicetree/bindings/iio/adc/adi,ad4080.yaml > @@ -0,0 +1,92 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +# Copyright 2025 Analog Devices Inc. > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/iio/adc/adi,ad4080.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Analog Devices AD4080 20-Bit, 40 MSPS, Differential SAR ADC > + > +maintainers: > + - Antoniu Miclaus <antoniu.miclaus@analog.com> > + > +description: | > + The AD4080 is a high speed, low noise, low distortion, 20-bit, Easy Drive, > + successive approximation register (SAR) analog-to-digital converter (ADC). > + Maintaining high performance (signal-to-noise and distortion (SINAD) ratio > + > 90 dBFS) at signal frequencies in excess of 1 MHz enables the AD4080 to > + service a wide variety of precision, wide bandwidth data acquisition > + applications. > + > + https://www.analog.com/media/en/technical-documentation/data-sheets/ad4080.pdf > + > +$ref: /schemas/spi/spi-peripheral-props.yaml# > + > +properties: > + compatible: > + enum: > + - adi,ad4080 > + > + reg: > + maxItems: 1 > + > + spi-max-frequency: > + maximum: 50000000 Since there are potentially two independent SPI busses on this chip (one for configuration, one for data) it might be a good idea to put in a description somewhere that these SPI properties are for the configuration SPI bus. > + > + clocks: > + maxItems: 1 > + > + clock-names: > + items: > + - const: adc-clk Clocks don't need a name if there is only one clock. But the description of clocks should say which pin you mean. Is the the CLK+/- pins or the CNV+/- pins? > + > + vdd33-supply: true > + > + vdd11-supply: true > + > + vddldo-supply: true > + > + iovdd-supply: true > + > + vrefin-supply: true I would expect we need a vendor boolean property to say if the DCO+/- pins are wired or not for the echoed clock. And what does the CNV trigger get wired to? We probably need a vendor boolean property to say if it is wired to something CMOS or LVDS. Plus maybe a pwms property or whatever makes sense for whatever kind of signal generator it is connected to. > + > + adi,num-lanes: > + description: > + Nmber of lanes on which the data is sent on the output (DA, DB pins). s/Nmber/Number/ > + $ref: /schemas/types.yaml#/definitions/uint32 > + enum: [1, 2] > + default: 1 > + Also, don't we need io-backends for the data interface? We can also add gpio-controller and #gpio-cells since this chips provides GPIOs. > +required: > + - compatible > + - reg > + - clocks Assuming clocks is CLK+/- pins, this should be optional since the pins are used for a different function in SPI mode. > + - clock-names > + - vdd33-supply > + - vdd11-supply > + - vddldo-supply > + - iovdd-supply > + - vrefin-supply The datasheet says things like, "If VDDLDO is connected to a voltage source, neither VDD11 nor IOVDD should be connected to any external voltage source.". So making all supplies required doesn't seem correct. > + > +additionalProperties: false > + > +examples: > + - | > + spi { > + #address-cells = <1>; > + #size-cells = <0>; > + > + adc@0 { > + compatible = "adi,ad4080"; > + reg = <0>; > + spi-max-frequency = <10000000>; > + vdd33-supply = <&vdd33>; > + vdd11-supply = <&vdd11>; > + vddldo-supply = <&vddldo>; > + iovdd-supply = <&iovdd>; > + vrefin-supply = <&vrefin>; > + clocks = <&adc_clk>; > + clock-names = "adc-clk"; > + }; > + }; > +...
On Thu, Feb 20, 2025 at 01:30:11PM -0600, David Lechner wrote: > On 2/20/25 7:54 AM, Antoniu Miclaus wrote: > > + > > + clocks: > > + maxItems: 1 > > + > > + clock-names: > > + items: > > + - const: adc-clk > > Clocks don't need a name if there is only one clock. And if they do need a name, putting "clk" in the name of a clock is pointless!
diff --git a/Documentation/devicetree/bindings/iio/adc/adi,ad4080.yaml b/Documentation/devicetree/bindings/iio/adc/adi,ad4080.yaml new file mode 100644 index 000000000000..e0ea712b8457 --- /dev/null +++ b/Documentation/devicetree/bindings/iio/adc/adi,ad4080.yaml @@ -0,0 +1,92 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +# Copyright 2025 Analog Devices Inc. +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/iio/adc/adi,ad4080.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Analog Devices AD4080 20-Bit, 40 MSPS, Differential SAR ADC + +maintainers: + - Antoniu Miclaus <antoniu.miclaus@analog.com> + +description: | + The AD4080 is a high speed, low noise, low distortion, 20-bit, Easy Drive, + successive approximation register (SAR) analog-to-digital converter (ADC). + Maintaining high performance (signal-to-noise and distortion (SINAD) ratio + > 90 dBFS) at signal frequencies in excess of 1 MHz enables the AD4080 to + service a wide variety of precision, wide bandwidth data acquisition + applications. + + https://www.analog.com/media/en/technical-documentation/data-sheets/ad4080.pdf + +$ref: /schemas/spi/spi-peripheral-props.yaml# + +properties: + compatible: + enum: + - adi,ad4080 + + reg: + maxItems: 1 + + spi-max-frequency: + maximum: 50000000 + + clocks: + maxItems: 1 + + clock-names: + items: + - const: adc-clk + + vdd33-supply: true + + vdd11-supply: true + + vddldo-supply: true + + iovdd-supply: true + + vrefin-supply: true + + adi,num-lanes: + description: + Nmber of lanes on which the data is sent on the output (DA, DB pins). + $ref: /schemas/types.yaml#/definitions/uint32 + enum: [1, 2] + default: 1 + +required: + - compatible + - reg + - clocks + - clock-names + - vdd33-supply + - vdd11-supply + - vddldo-supply + - iovdd-supply + - vrefin-supply + +additionalProperties: false + +examples: + - | + spi { + #address-cells = <1>; + #size-cells = <0>; + + adc@0 { + compatible = "adi,ad4080"; + reg = <0>; + spi-max-frequency = <10000000>; + vdd33-supply = <&vdd33>; + vdd11-supply = <&vdd11>; + vddldo-supply = <&vddldo>; + iovdd-supply = <&iovdd>; + vrefin-supply = <&vrefin>; + clocks = <&adc_clk>; + clock-names = "adc-clk"; + }; + }; +...
Add devicetree bindings for ad4080 family. Signed-off-by: Antoniu Miclaus <antoniu.miclaus@analog.com> --- .../bindings/iio/adc/adi,ad4080.yaml | 92 +++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 Documentation/devicetree/bindings/iio/adc/adi,ad4080.yaml