Message ID | 20240523031909.19427-4-kimseer.paller@analog.com (mailing list archive) |
---|---|
State | Changes Requested |
Headers | show |
Series | Add driver for LTC2664 and LTC2672 | expand |
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
> -----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
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
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 --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>