RE: [PATCH v2 1/2] dt-bindings: iio: dac: add docs for ad8460

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




> -----Original Message-----
> From: Krzysztof Kozlowski <krzk@xxxxxxxxxx>
> Sent: Tuesday, July 30, 2024 2:15 PM
> To: Tinaco, Mariel <Mariel.Tinaco@xxxxxxxxxx>; linux-iio@xxxxxxxxxxxxxxx;
> devicetree@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; Jonathan Cameron
> <jic23@xxxxxxxxxx>; Lars-Peter Clausen <lars@xxxxxxxxxx>; Rob Herring
> <robh@xxxxxxxxxx>; Krzysztof Kozlowski <krzk+dt@xxxxxxxxxx>; Hennerich,
> Michael <Michael.Hennerich@xxxxxxxxxx>; Conor Dooley
> <conor+dt@xxxxxxxxxx>; Marcelo Schmitt <marcelo.schmitt1@xxxxxxxxx>;
> Dimitri Fedrau <dima.fedrau@xxxxxxxxx>; David Lechner
> <dlechner@xxxxxxxxxxxx>; Nuno Sá <noname.nuno@xxxxxxxxx>
> Subject: Re: [PATCH v2 1/2] dt-bindings: iio: dac: add docs for ad8460
> 
> [External]
> 
> On 30/07/2024 05:05, Mariel Tinaco wrote:
> > This adds the bindings documentation for the 14-bit
> > High Voltage, High Current, Waveform Generator
> > Digital-to-Analog converter.
> >
> > Signed-off-by: Mariel Tinaco <Mariel.Tinaco@xxxxxxxxxx>
> 
> > +
> > +  refio-1p2v-supply:
> > +    description: Drive voltage in the range of 1.2V maximum to as low as
> > +      low as 0.12V through the REF_IO pin to adjust full scale output span
> > +
> > +  clocks:
> 
> maxItems: 1
> and drop description (or use items: - description, but then do not
> repeat redundant parts)
> 

Simplified the description for this item

  refio-1p2v-supply:
    description: Reference voltage to adjust full scale output span
    maxItems: 1

Should I put, "maxItems: 1" in the other vrefs as well?

> > +    description: The clock for the DAC. This is the sync clock
> > +
> > +  adi,rset-ohms:
> > +    description: Specify value of external resistor connected to FS_ADJ pin
> > +      to establish internal HVDAC's reference current I_REF
> > +    default: 2000
> > +    minimum: 2000
> > +    maximum: 20000
> > +
> > +  adi,range-microvolt:
> > +    description: |
> > +      Voltage output range specified as <minimum, maximum>
> > +    oneOf:
> 
> Not an oneOf.
> 

You're right. I should have put all the possible values. I populated it with common
Values found in the datasheet

  adi,range-microvolt:
    description: Voltage output range specified as <minimum, maximum>
    oneOf:
      - items:
          - enum: [0, -10000000, -20000000, -30000000, -40000000, -55000000]
          - enum: [10000000, 20000000, 30000000, 40000000, 55000000]

> > +      - items:
> > +          - const: -40000000
> > +          - const: 40000000
> 
> Why do you need this property if this cannot be anything else? Drop.
> 
> > +
> > +  adi,range-microamp:
> > +    description: |
> 
> Do not need '|' unless you need to preserve formatting.
> 
> > +      Current output range specified as <minimum, maximum>
> > +    oneOf:
> > +      - items:
> > +          - const: 0
> > +          - const: 50000
> > +      - items:
> > +          - const: -50000
> > +          - const: 50000
> > +
> > +  adi,temp-max-millicelsius:
> > +    description: Overtemperature threshold
> > +    default: 50000
> > +    minimum: 20000
> > +    maximum: 150000
> > +
> > +  sdn-reset-gpios:
> 
> reset-gpios or shutdown-gpios or anything from gpio-consumer-common
> which is not deprecated.
> 

Lifted from gpio-consumer-common yaml. Mapped to corresponding pins

  wakeup-gpios:
    description: Corresponds to SDN_RESET pin. To exit shutdown
      or sleep mode, pulse SDN_RESET HIGH, then leave LOW.
    maxItems: 1

  reset-gpios:
    description: Manual Power On Reset (POR). Pull this GPIO pin
      LOW and then HIGH to reset all digital registers to default
    maxItems: 1

  shutdown-gpios:
    description: Corresponds to SDN_IO pin. Shutdown may be
      initiated by the user, by pulsing SDN_IO high. To exit shutdown,
      pulse SDN_IO low, then float.
    maxItems: 1

Replaced description based on the datasheet

> > +    description: GPIO spec for the SHUTDOWN RESET pin. As the line is active
> high,
> 
> Do not repeat the obvious or redundant parts. There is no point in
> saying that "GPIO spec is a GPIO spec for ...". It cannot be anything
> else than GPIO spec. Instead say something useful. It's confusing to
> have two reset pins, so explain what is the purpose of this pin.
> 
> > +      it should be marked GPIO_ACTIVE_HIGH.
> 
> Drop last part "it should be marked", because it is clearly incorrect.
> Different board designs can have it differently.
> 
> 
> > +    maxItems: 1
> > +
> > +  reset-gpios:
> > +    description: GPIO spec for the RESET pin. As the line is active low, it
> > +      should be marked GPIO_ACTIVE_LOW.
> 
> Again, marking it always as active low is not correct. It is enough to
> say that line is active low.
> 
> > +    maxItems: 1
> > +
> > +  sdn-io-gpios:
> > +    description: GPIO spec for the SHUTDOWN INPUT/OUTPUT pin. As the
> line is
> > +      active high, it should be marked GPIO_ACTIVE_HIGH.
> 
> What's the purpose?
> 
> > +    maxItems: 1
> > +
> > +required:
> > +  - compatible
> > +  - reg
> > +  - clocks
> > +
> > +allOf:
> > +  - $ref: /schemas/spi/spi-peripheral-props.yaml#
> > +
> > +additionalProperties: false
> > +
> > +examples:
> > +  - |
> > +    #include <dt-bindings/gpio/gpio.h>
> > +
> > +    spi {
> > +        #address-cells = <1>;
> > +        #size-cells = <0>;
> > +
> > +        dac@0 {
> > +            compatible = "adi,ad8460";
> > +            reg = <0>;
> > +            spi-max-frequency = <8000000>;
> > +            adi,rset-ohms = <2000>;
> > +            adi,range-microvolt = <(-40000000) 40000000>;
> > +            adi,range-microamp = <0 50000>;
> > +            adi,temp-max-millicelsius = <50000>;
> 
> Custom properties go to the end. See DTS coding style.
> 

Moved custom attributes in the end

examples:
  - |
    #include <dt-bindings/gpio/gpio.h>

    spi {
        #address-cells = <1>;
        #size-cells = <0>;

        dac@0 {
            compatible = "adi,ad8460";
            reg = <0>;
            spi-max-frequency = <8000000>;

            dmas = <&tx_dma 0>;
            dma-names = "tx";

            wakeup-gpios = <&gpio 86 GPIO_ACTIVE_HIGH>;
            reset-gpios = <&gpio 91 GPIO_ACTIVE_LOW>;
            shutdown-gpios = <&gpio 88 GPIO_ACTIVE_HIGH>;

            clocks = <&sync_ext_clk>;

            hvcc-supply = <&hvcc>;
            hvee-supply = <&hvee>;
            vcc-5v-supply = <&vcc_5>;
            vref-5v-supply = <&vref_5>;
            dvdd-3p3v-supply = <&dvdd_3_3>;
            avdd-3p3v-supply = <&avdd_3_3>;
            refio-1p2v-supply = <&refio_1_2>;

            adi,external-resistor-ohms = <2000>;
            adi,range-microvolt = <(-40000000) 40000000>;
            adi,range-microamp = <0 50000>;
            adi,max-millicelsius = <50000>;
        };
    };

> > +
> > +            dmas = <&tx_dma 0>;
> > +            dma-names = "tx";
> 
> 
> Best regards,
> Krzysztof





[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux