Message ID | 20221104172343.617690-2-ciprian.regus@analog.com (mailing list archive) |
---|---|
State | Changes Requested |
Headers | show |
Series | Add support for the AD5754 DAC | expand |
On 04/11/2022 13:23, Ciprian Regus wrote: > Add devicetree bindings documentation for the AD5754 DAC driver. > > Signed-off-by: Ciprian Regus <ciprian.regus@analog.com> Thank you for your patch. There is something to discuss/improve. > + > + '#size-cells': > + const: 0 > + > +patternProperties: > + "^channel@([0-3])$": > + type: object > + description: Configurations for the DAC channels additionalProperties: false (on this level of indentation) > + > + properties: > + reg: > + description: Channel number > + maxItems: 1 > + > + adi,output-range-microvolt: > + description: | > + Voltage range of a channel as <minimum, maximum>. > + oneOf: > + - items: > + - const: 0 > + - enum: [5000000, 10000000, 10800000] > + - items: > + - const: -5000000 > + - const: 5000000 > + - items: > + - const: -10000000 > + - const: 10000000 > + - items: > + - const: -10800000 > + - const: 10800000 > + > + required: > + - reg > + - adi,output-range-microvolt > + > +allOf: > + - $ref: /schemas/spi/spi-peripheral-props.yaml# > + > + - if: > + properties: > + compatible: > + contains: > + enum: > + - adi,ad5722 > + - adi,ad5732 > + - adi,ad5752 > + - adi,ad5722r > + - adi,ad5732r > + - adi,ad5752r > + then: > + patternProperties: > + "^channel@([0-3])$": > + type: object > + properties: > + reg: > + description: Channel number > + enum: [0, 1] > + > + - if: > + properties: > + compatible: > + contains: > + enum: > + - adi,ad5724 > + - adi,ad5734 > + - adi,ad5754 > + - adi,ad5724r > + - adi,ad5734r > + - adi,ad5754r > + then: > + patternProperties: > + "^channel@([0-3])$": > + type: object > + properties: > + reg: > + description: Channel number > + enum: [0, 1, 2, 3] > + > +required: > + - compatible > + - reg > + - spi-max-frequency > + - spi-cpol > + > +unevaluatedProperties: false > + > +examples: > + - | > + #include <dt-bindings/gpio/gpio.h> > + > + spi { > + status = "okay"; Drop status Best regards, Krzysztof
On Fri, 4 Nov 2022 19:23:42 +0200 Ciprian Regus <ciprian.regus@analog.com> wrote: > Add devicetree bindings documentation for the AD5754 DAC driver. > > Signed-off-by: Ciprian Regus <ciprian.regus@analog.com> Hi Ciprian, To add to Krzysztof's detailed review, a request for a bit more variation in the example. > --- > changes in v2: > - dropped "device driver" from the title. > - added the vendor prefix to the 'output-range-microvolt' property. > - fixed example indentation (4 spaces). > .../bindings/iio/dac/adi,ad5754.yaml | 182 ++++++++++++++++++ > 1 file changed, 182 insertions(+) > create mode 100644 Documentation/devicetree/bindings/iio/dac/adi,ad5754.yaml > > diff --git a/Documentation/devicetree/bindings/iio/dac/adi,ad5754.yaml b/Documentation/devicetree/bindings/iio/dac/adi,ad5754.yaml > new file mode 100644 > index 000000000000..4c9c5ba90931 ... > +patternProperties: > + "^channel@([0-3])$": > + type: object > + description: Configurations for the DAC channels > + > + properties: > + reg: > + description: Channel number > + maxItems: 1 > + > + adi,output-range-microvolt: > + description: | > + Voltage range of a channel as <minimum, maximum>. > + oneOf: > + - items: > + - const: 0 > + - enum: [5000000, 10000000, 10800000] > + - items: > + - const: -5000000 > + - const: 5000000 > + - items: > + - const: -10000000 > + - const: 10000000 > + - items: > + - const: -10800000 > + - const: 10800000 > + > + required: > + - reg > + - adi,output-range-microvolt > + ... > +examples: > + - | > + #include <dt-bindings/gpio/gpio.h> > + > + spi { > + status = "okay"; > + > + #address-cells = <1>; > + #size-cells = <0>; > + > + dac@0 { > + compatible = "adi,ad5754r"; > + reg = <0>; > + spi-max-frequency = <1000000>; > + spi-cpol; > + > + clr-gpios = <&gpio 25 GPIO_ACTIVE_LOW>; > + > + #address-cells = <1>; > + #size-cells = <0>; > + > + channel@0 { > + reg = <0>; > + adi,output-range-microvolt = <0 5000000>; > + }; > + channel@1 { > + reg = <1>; > + adi,output-range-microvolt = <0 5000000>; Nice to have rather than necessary, but maybe the example could include a few different options from those available for this property? > + }; > + channel@2 { > + reg = <2>; > + adi,output-range-microvolt = <0 5000000>; > + }; > + channel@3 { > + reg = <3>; > + adi,output-range-microvolt = <0 5000000>; > + }; > + }; > + };
diff --git a/Documentation/devicetree/bindings/iio/dac/adi,ad5754.yaml b/Documentation/devicetree/bindings/iio/dac/adi,ad5754.yaml new file mode 100644 index 000000000000..4c9c5ba90931 --- /dev/null +++ b/Documentation/devicetree/bindings/iio/dac/adi,ad5754.yaml @@ -0,0 +1,182 @@ +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/iio/dac/adi,ad5754.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Analog Devices AD5754 DAC + +maintainers: + - Ciprian Regus <ciprian.regus@analog.com> + +description: | + Bindings for the AD5754 and other chip variants digital-to-analog + converters. + + https://www.analog.com/media/en/technical-documentation/data-sheets/AD5724_5734_5754.pdf + https://www.analog.com/media/en/technical-documentation/data-sheets/ad5722_5732_5752.pdf + https://www.analog.com/media/en/technical-documentation/data-sheets/ad5724r_5734r_5754r.pdf + https://www.analog.com/media/en/technical-documentation/data-sheets/AD5722R_5732R_5752R.pdf + +properties: + compatible: + enum: + - adi,ad5722 + - adi,ad5732 + - adi,ad5752 + - adi,ad5724 + - adi,ad5734 + - adi,ad5754 + - adi,ad5722r + - adi,ad5732r + - adi,ad5752r + - adi,ad5724r + - adi,ad5734r + - adi,ad5754r + + reg: + maxItems: 1 + + spi-max-frequency: + maximum: 30000000 + + spi-cpol: true + + vref-supply: + description: + The regulator to use as an external reference. If this is not provided, + the internal reference will be used for chips that have this feature. + The external reference must be 2.5V. + + clr-gpios: + description: DAC output clear GPIO (CLR pin). If specified, it will be set + to high during probe, thus allowing the DAC output to be updated. + maxItems: 1 + + '#address-cells': + const: 1 + + '#size-cells': + const: 0 + +patternProperties: + "^channel@([0-3])$": + type: object + description: Configurations for the DAC channels + + properties: + reg: + description: Channel number + maxItems: 1 + + adi,output-range-microvolt: + description: | + Voltage range of a channel as <minimum, maximum>. + oneOf: + - items: + - const: 0 + - enum: [5000000, 10000000, 10800000] + - items: + - const: -5000000 + - const: 5000000 + - items: + - const: -10000000 + - const: 10000000 + - items: + - const: -10800000 + - const: 10800000 + + required: + - reg + - adi,output-range-microvolt + +allOf: + - $ref: /schemas/spi/spi-peripheral-props.yaml# + + - if: + properties: + compatible: + contains: + enum: + - adi,ad5722 + - adi,ad5732 + - adi,ad5752 + - adi,ad5722r + - adi,ad5732r + - adi,ad5752r + then: + patternProperties: + "^channel@([0-3])$": + type: object + properties: + reg: + description: Channel number + enum: [0, 1] + + - if: + properties: + compatible: + contains: + enum: + - adi,ad5724 + - adi,ad5734 + - adi,ad5754 + - adi,ad5724r + - adi,ad5734r + - adi,ad5754r + then: + patternProperties: + "^channel@([0-3])$": + type: object + properties: + reg: + description: Channel number + enum: [0, 1, 2, 3] + +required: + - compatible + - reg + - spi-max-frequency + - spi-cpol + +unevaluatedProperties: false + +examples: + - | + #include <dt-bindings/gpio/gpio.h> + + spi { + status = "okay"; + + #address-cells = <1>; + #size-cells = <0>; + + dac@0 { + compatible = "adi,ad5754r"; + reg = <0>; + spi-max-frequency = <1000000>; + spi-cpol; + + clr-gpios = <&gpio 25 GPIO_ACTIVE_LOW>; + + #address-cells = <1>; + #size-cells = <0>; + + channel@0 { + reg = <0>; + adi,output-range-microvolt = <0 5000000>; + }; + channel@1 { + reg = <1>; + adi,output-range-microvolt = <0 5000000>; + }; + channel@2 { + reg = <2>; + adi,output-range-microvolt = <0 5000000>; + }; + channel@3 { + reg = <3>; + adi,output-range-microvolt = <0 5000000>; + }; + }; + };
Add devicetree bindings documentation for the AD5754 DAC driver. Signed-off-by: Ciprian Regus <ciprian.regus@analog.com> --- changes in v2: - dropped "device driver" from the title. - added the vendor prefix to the 'output-range-microvolt' property. - fixed example indentation (4 spaces). .../bindings/iio/dac/adi,ad5754.yaml | 182 ++++++++++++++++++ 1 file changed, 182 insertions(+) create mode 100644 Documentation/devicetree/bindings/iio/dac/adi,ad5754.yaml