diff mbox series

[v2,3/5] dt-bindings: iio: dac: Add adi,ltc2664.yaml

Message ID 20240523031909.19427-4-kimseer.paller@analog.com
State Changes Requested
Headers show
Series Add driver for LTC2664 and LTC2672 | expand

Checks

Context Check Description
robh/checkpatch success
robh/patch-applied success
robh/dtbs-check warning build log
robh/dt-meta-schema success

Commit Message

Paller, Kim Seer May 23, 2024, 3:19 a.m. UTC
Add documentation for ltc2664.

Co-developed-by: Michael Hennerich <michael.hennerich@analog.com>
Signed-off-by: Michael Hennerich <michael.hennerich@analog.com>
Signed-off-by: Kim Seer Paller <kimseer.paller@analog.com>
---
 .../bindings/iio/dac/adi,ltc2664.yaml         | 167 ++++++++++++++++++
 MAINTAINERS                                   |   1 +
 2 files changed, 168 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/iio/dac/adi,ltc2664.yaml

Comments

Krzysztof Kozlowski May 23, 2024, 6:39 a.m. UTC | #1
On 23/05/2024 05:19, Kim Seer Paller wrote:
> Add documentation for ltc2664.
> 


> +
> +  ref-supply:
> +    description:
> +      Reference Input/Output. The voltage at the REF pin sets the full-scale
> +      range of all channels. If not provided the internal reference is used and
> +      also provided on the VREF pin.
> +
> +  clr-gpios:
> +    description:
> +      Active-low Asynchronous Clear Input. A logic low at this level-triggered
> +      input clears the part to the reset code and range determined by the
> +      hardwired option chosen using the MSPAN pins. The control registers are
> +      cleared to zero.

So this is a reset gpio?

> +    maxItems: 1
> +
> +  adi,manual-span-operation-config:
> +    description:
> +      This property must mimic the MSPAN pin configurations. By tying the MSPAN
> +      pins (MSP2, MSP1 and MSP0) to GND and/or VCC, any output range can be
> +      hardware-configured with different mid-scale or zero-scale reset options.
> +      The hardware configuration is latched during power on reset for proper
> +      operation.
> +        0 - MPS2=GND, MPS1=GND, MSP0=GND
> +        1 - MPS2=GND, MPS1=GND, MSP0=VCC
> +        2 - MPS2=GND, MPS1=VCC, MSP0=GND
> +        3 - MPS2=GND, MPS1=VCC, MSP0=VCC
> +        4 - MPS2=VCC, MPS1=GND, MSP0=GND
> +        5 - MPS2=VCC, MPS1=GND, MSP0=VCC
> +        6 - MPS2=VCC, MPS1=VCC, MSP0=GND
> +        7 - MPS2=VCC, MPS1=VCC, MSP0=VCC (enables SoftSpan feature)
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    enum: [0, 1, 2, 3, 4, 5, 6, 7]
> +    default: 7
> +
> +  io-channels:
> +    description:
> +      Analog multiplexer output. VOUT0-VOUT3, MUXIN0-MUXIN3, REFLO, REF, V+, V-,

That's not output but input.

> +      and a temperature monitor output can be internally routed to the MUXOUT pin.

Needs maxItems

> +
> +  '#address-cells':
> +    const: 1
> +
> +  '#size-cells':
> +    const: 0
> +


Best regards,
Krzysztof
Paller, Kim Seer May 24, 2024, 6:28 a.m. UTC | #2
> -----Original Message-----
> From: Krzysztof Kozlowski <krzk@kernel.org>
> Sent: Thursday, May 23, 2024 2:40 PM
> To: Paller, Kim Seer <KimSeer.Paller@analog.com>; linux-
> kernel@vger.kernel.org; linux-iio@vger.kernel.org; devicetree@vger.kernel.org
> Cc: Jonathan Cameron <jic23@kernel.org>; David Lechner
> <dlechner@baylibre.com>; Lars-Peter Clausen <lars@metafoo.de>; Liam
> Girdwood <lgirdwood@gmail.com>; Mark Brown <broonie@kernel.org>;
> Dimitri Fedrau <dima.fedrau@gmail.com>; Krzysztof Kozlowski
> <krzk+dt@kernel.org>; Rob Herring <robh@kernel.org>; Conor Dooley
> <conor+dt@kernel.org>; Hennerich, Michael
> <Michael.Hennerich@analog.com>; Nuno Sá <noname.nuno@gmail.com>
> Subject: Re: [PATCH v2 3/5] dt-bindings: iio: dac: Add adi,ltc2664.yaml
> 
> [External]
> 
> On 23/05/2024 05:19, Kim Seer Paller wrote:
> > Add documentation for ltc2664.
> >
> 
> 
> > +
> > +  ref-supply:
> > +    description:
> > +      Reference Input/Output. The voltage at the REF pin sets the full-scale
> > +      range of all channels. If not provided the internal reference is used and
> > +      also provided on the VREF pin.
> > +
> > +  clr-gpios:
> > +    description:
> > +      Active-low Asynchronous Clear Input. A logic low at this level-triggered
> > +      input clears the part to the reset code and range determined by the
> > +      hardwired option chosen using the MSPAN pins. The control registers are
> > +      cleared to zero.
> 
> So this is a reset gpio?

Yes, this is a reset gpio.

Kim

> 
> > +    maxItems: 1
> > +
> > +  adi,manual-span-operation-config:
> > +    description:
> > +      This property must mimic the MSPAN pin configurations. By tying the
> MSPAN
> > +      pins (MSP2, MSP1 and MSP0) to GND and/or VCC, any output range can
> be
> > +      hardware-configured with different mid-scale or zero-scale reset options.
> > +      The hardware configuration is latched during power on reset for proper
> > +      operation.
> > +        0 - MPS2=GND, MPS1=GND, MSP0=GND
> > +        1 - MPS2=GND, MPS1=GND, MSP0=VCC
> > +        2 - MPS2=GND, MPS1=VCC, MSP0=GND
> > +        3 - MPS2=GND, MPS1=VCC, MSP0=VCC
> > +        4 - MPS2=VCC, MPS1=GND, MSP0=GND
> > +        5 - MPS2=VCC, MPS1=GND, MSP0=VCC
> > +        6 - MPS2=VCC, MPS1=VCC, MSP0=GND
> > +        7 - MPS2=VCC, MPS1=VCC, MSP0=VCC (enables SoftSpan feature)
> > +    $ref: /schemas/types.yaml#/definitions/uint32
> > +    enum: [0, 1, 2, 3, 4, 5, 6, 7]
> > +    default: 7
> > +
> > +  io-channels:
> > +    description:
> > +      Analog multiplexer output. VOUT0-VOUT3, MUXIN0-MUXIN3, REFLO,
> REF, V+, V-,
> 
> That's not output but input.
> 
> > +      and a temperature monitor output can be internally routed to the
> MUXOUT pin.
> 
> Needs maxItems
> 
> > +
> > +  '#address-cells':
> > +    const: 1
> > +
> > +  '#size-cells':
> > +    const: 0
> > +
> 
> 
> Best regards,
> Krzysztof
Krzysztof Kozlowski May 25, 2024, 4:49 p.m. UTC | #3
On 24/05/2024 08:28, Paller, Kim Seer wrote:
> 
>> -----Original Message-----
>> From: Krzysztof Kozlowski <krzk@kernel.org>
>> Sent: Thursday, May 23, 2024 2:40 PM
>> To: Paller, Kim Seer <KimSeer.Paller@analog.com>; linux-
>> kernel@vger.kernel.org; linux-iio@vger.kernel.org; devicetree@vger.kernel.org
>> Cc: Jonathan Cameron <jic23@kernel.org>; David Lechner
>> <dlechner@baylibre.com>; Lars-Peter Clausen <lars@metafoo.de>; Liam
>> Girdwood <lgirdwood@gmail.com>; Mark Brown <broonie@kernel.org>;
>> Dimitri Fedrau <dima.fedrau@gmail.com>; Krzysztof Kozlowski
>> <krzk+dt@kernel.org>; Rob Herring <robh@kernel.org>; Conor Dooley
>> <conor+dt@kernel.org>; Hennerich, Michael
>> <Michael.Hennerich@analog.com>; Nuno Sá <noname.nuno@gmail.com>
>> Subject: Re: [PATCH v2 3/5] dt-bindings: iio: dac: Add adi,ltc2664.yaml
>>
>> [External]
>>
>> On 23/05/2024 05:19, Kim Seer Paller wrote:
>>> Add documentation for ltc2664.
>>>
>>
>>
>>> +
>>> +  ref-supply:
>>> +    description:
>>> +      Reference Input/Output. The voltage at the REF pin sets the full-scale
>>> +      range of all channels. If not provided the internal reference is used and
>>> +      also provided on the VREF pin.
>>> +
>>> +  clr-gpios:
>>> +    description:
>>> +      Active-low Asynchronous Clear Input. A logic low at this level-triggered
>>> +      input clears the part to the reset code and range determined by the
>>> +      hardwired option chosen using the MSPAN pins. The control registers are
>>> +      cleared to zero.
>>
>> So this is a reset gpio?
> 
> Yes, this is a reset gpio.

Then call it that - reset-gpios (see gpio-consumer-common).

Best regards,
Krzysztof
Jonathan Cameron May 25, 2024, 5:17 p.m. UTC | #4
A few comments inline.

> +  adi,manual-span-operation-config:
> +    description:
> +      This property must mimic the MSPAN pin configurations. By tying the MSPAN
> +      pins (MSP2, MSP1 and MSP0) to GND and/or VCC, any output range can be
> +      hardware-configured with different mid-scale or zero-scale reset options.
> +      The hardware configuration is latched during power on reset for proper
> +      operation.
> +        0 - MPS2=GND, MPS1=GND, MSP0=GND
> +        1 - MPS2=GND, MPS1=GND, MSP0=VCC
> +        2 - MPS2=GND, MPS1=VCC, MSP0=GND
> +        3 - MPS2=GND, MPS1=VCC, MSP0=VCC
> +        4 - MPS2=VCC, MPS1=GND, MSP0=GND
> +        5 - MPS2=VCC, MPS1=GND, MSP0=VCC
> +        6 - MPS2=VCC, MPS1=VCC, MSP0=GND
> +        7 - MPS2=VCC, MPS1=VCC, MSP0=VCC (enables SoftSpan feature)
Could you add to the description to say what results of the entries are
(like you have done for 7)
e.g.
          0 - MSP2=GND, MPS1=GND, MSP0=GND (+-10V, reset to 0V)
at least I think that's what reset to mid scale means.

This seems like a reasonable level of information to convey here.

I was going to suggest making this a 3 value array, but that would
make ti hard to add such docs, so perhaps what you have here
is the right approach.


> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    enum: [0, 1, 2, 3, 4, 5, 6, 7]
> +    default: 7
> +
> +  io-channels:
> +    description:
> +      Analog multiplexer output. VOUT0-VOUT3, MUXIN0-MUXIN3, REFLO, REF, V+, V-,
> +      and a temperature monitor output can be internally routed to the MUXOUT pin.
> +
That's a little confusing.   What you are specifying here is the ADC
channels that is connected to. This description sort of suggests it's about
what is routed there.
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/iio/dac/adi,ltc2664.yaml b/Documentation/devicetree/bindings/iio/dac/adi,ltc2664.yaml
new file mode 100644
index 000000000000..517a96808ee0
--- /dev/null
+++ b/Documentation/devicetree/bindings/iio/dac/adi,ltc2664.yaml
@@ -0,0 +1,167 @@ 
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/iio/dac/adi,ltc2664.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Analog Devices LTC2664 DAC
+
+maintainers:
+  - Michael Hennerich <michael.hennerich@analog.com>
+  - Kim Seer Paller <kimseer.paller@analog.com>
+
+description: |
+  Analog Devices LTC2664 4 channel, 16 bit, +-10V DAC
+  https://www.analog.com/media/en/technical-documentation/data-sheets/2664fa.pdf
+
+properties:
+  compatible:
+    enum:
+      - adi,ltc2664
+
+  reg:
+    maxItems: 1
+
+  spi-max-frequency:
+    maximum: 50000000
+
+  vcc-supply:
+    description: Analog Supply Voltage Input.
+
+  v-pos-supply:
+    description: Positive Supply Voltage Input.
+
+  v-neg-supply:
+    description: Negative Supply Voltage Input.
+
+  iovcc-supply:
+    description: Digital Input/Output Supply Voltage.
+
+  ref-supply:
+    description:
+      Reference Input/Output. The voltage at the REF pin sets the full-scale
+      range of all channels. If not provided the internal reference is used and
+      also provided on the VREF pin.
+
+  clr-gpios:
+    description:
+      Active-low Asynchronous Clear Input. A logic low at this level-triggered
+      input clears the part to the reset code and range determined by the
+      hardwired option chosen using the MSPAN pins. The control registers are
+      cleared to zero.
+    maxItems: 1
+
+  adi,manual-span-operation-config:
+    description:
+      This property must mimic the MSPAN pin configurations. By tying the MSPAN
+      pins (MSP2, MSP1 and MSP0) to GND and/or VCC, any output range can be
+      hardware-configured with different mid-scale or zero-scale reset options.
+      The hardware configuration is latched during power on reset for proper
+      operation.
+        0 - MPS2=GND, MPS1=GND, MSP0=GND
+        1 - MPS2=GND, MPS1=GND, MSP0=VCC
+        2 - MPS2=GND, MPS1=VCC, MSP0=GND
+        3 - MPS2=GND, MPS1=VCC, MSP0=VCC
+        4 - MPS2=VCC, MPS1=GND, MSP0=GND
+        5 - MPS2=VCC, MPS1=GND, MSP0=VCC
+        6 - MPS2=VCC, MPS1=VCC, MSP0=GND
+        7 - MPS2=VCC, MPS1=VCC, MSP0=VCC (enables SoftSpan feature)
+    $ref: /schemas/types.yaml#/definitions/uint32
+    enum: [0, 1, 2, 3, 4, 5, 6, 7]
+    default: 7
+
+  io-channels:
+    description:
+      Analog multiplexer output. VOUT0-VOUT3, MUXIN0-MUXIN3, REFLO, REF, V+, V-,
+      and a temperature monitor output can be internally routed to the MUXOUT pin.
+
+  '#address-cells':
+    const: 1
+
+  '#size-cells':
+    const: 0
+
+patternProperties:
+  "^channel@[0-3]$":
+    type: object
+    additionalProperties: false
+
+    properties:
+      reg:
+        description: The channel number representing the DAC output channel.
+        maximum: 3
+
+      adi,toggle-mode:
+        description:
+          Set the channel as a toggle enabled channel. Toggle operation enables
+          fast switching of a DAC output between two different DAC codes without
+          any SPI transaction.
+        type: boolean
+
+      adi,output-range-microvolt:
+        description: Specify the channel output full scale range.
+        oneOf:
+          - items:
+              - const: 0
+              - enum: [5000000, 10000000]
+          - items:
+              - const: -5000000
+              - const: 5000000
+          - items:
+              - const: -10000000
+              - const: 10000000
+          - items:
+              - const: -2500000
+              - const: 2500000
+
+    required:
+      - reg
+      - adi,output-range-microvolt
+
+required:
+  - compatible
+  - reg
+  - spi-max-frequency
+  - vcc-supply
+  - iovcc-supply
+  - v-pos-supply
+  - v-neg-supply
+
+allOf:
+  - $ref: /schemas/spi/spi-peripheral-props.yaml#
+
+additionalProperties: false
+
+examples:
+  - |
+    spi {
+        #address-cells = <1>;
+        #size-cells = <0>;
+        dac@0 {
+            compatible = "adi,ltc2664";
+            reg = <0>;
+            spi-max-frequency = <10000000>;
+
+            vcc-supply = <&vcc>;
+            iovcc-supply = <&vcc>;
+            ref-supply = <&vref>;
+            v-pos-supply = <&vpos>;
+            v-neg-supply = <&vneg>;
+
+            io-channels = <&adc 0>;
+
+            #address-cells = <1>;
+            #size-cells = <0>;
+            channel@0 {
+                    reg = <0>;
+                    adi,toggle-mode;
+                    adi,output-range-microvolt = <(-10000000) 10000000>;
+            };
+
+            channel@1 {
+                    reg = <1>;
+                    adi,output-range-microvolt = <0 10000000>;
+            };
+        };
+    };
+...
diff --git a/MAINTAINERS b/MAINTAINERS
index b3be54c09159..7becbdf7d1df 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -12857,6 +12857,7 @@  L:	linux-iio@vger.kernel.org
 S:	Supported
 W:	https://ez.analog.com/linux-software-drivers
 F:	Documentation/ABI/testing/sysfs-bus-iio-dac
+F:	Documentation/devicetree/bindings/iio/dac/adi,ltc2664.yaml
 
 LTC2688 IIO DAC DRIVER
 M:	Nuno Sá <nuno.sa@analog.com>