diff mbox series

[v4,4/5] dt-bindings: iio: dac: Add adi,ltc2672.yaml

Message ID 20240619064904.73832-5-kimseer.paller@analog.com (mailing list archive)
State Changes Requested
Headers show
Series Add driver for LTC2664 and LTC2672 | expand

Commit Message

Kim Seer Paller June 19, 2024, 6:49 a.m. UTC
Add documentation for ltc2672.

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,ltc2672.yaml         | 158 ++++++++++++++++++
 MAINTAINERS                                   |   1 +
 2 files changed, 159 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/iio/dac/adi,ltc2672.yaml

Comments

Conor Dooley June 19, 2024, 5:57 p.m. UTC | #1
On Wed, Jun 19, 2024 at 02:49:03PM +0800, Kim Seer Paller wrote:
> +patternProperties:
> +  "^channel@[0-4]$":
> +    type: object
> +    additionalProperties: false
> +
> +    properties:
> +      reg:
> +        description: The channel number representing the DAC output channel.
> +        maximum: 4
> +
> +      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-microamp:
> +        description: Specify the channel output full scale range.
> +        enum: [3125000, 6250000, 12500000, 25000000, 50000000, 100000000,
> +               200000000, 300000000]

IIO folks, is this sort of thing common/likely to exist on other DACs?
Jonathan Cameron June 23, 2024, 1:43 p.m. UTC | #2
On Wed, 19 Jun 2024 18:57:59 +0100
Conor Dooley <conor@kernel.org> wrote:

> On Wed, Jun 19, 2024 at 02:49:03PM +0800, Kim Seer Paller wrote:
> > +patternProperties:
> > +  "^channel@[0-4]$":
> > +    type: object
> > +    additionalProperties: false
> > +
> > +    properties:
> > +      reg:
> > +        description: The channel number representing the DAC output channel.
> > +        maximum: 4
> > +
> > +      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-microamp:
> > +        description: Specify the channel output full scale range.
> > +        enum: [3125000, 6250000, 12500000, 25000000, 50000000, 100000000,
> > +               200000000, 300000000]  
> 
> IIO folks, is this sort of thing common/likely to exist on other DACs?

Fair point. It is probably time to conclude this is at least moderately common
and generalize it - which will need a dac.yaml similar to the one we have for
ADCs in adc/adc.yaml.  That will need to make this a per channel node
property (same as the adc ones).
 
I'd also expect it to always take 2 values. In many cases the first will be 0
but that is fine.

Jonathan
Conor Dooley June 23, 2024, 2:03 p.m. UTC | #3
On Sun, Jun 23, 2024 at 02:43:39PM +0100, Jonathan Cameron wrote:
> On Wed, 19 Jun 2024 18:57:59 +0100
> Conor Dooley <conor@kernel.org> wrote:
> 
> > On Wed, Jun 19, 2024 at 02:49:03PM +0800, Kim Seer Paller wrote:
> > > +patternProperties:
> > > +  "^channel@[0-4]$":
> > > +    type: object
> > > +    additionalProperties: false
> > > +
> > > +    properties:
> > > +      reg:
> > > +        description: The channel number representing the DAC output channel.
> > > +        maximum: 4
> > > +
> > > +      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-microamp:
> > > +        description: Specify the channel output full scale range.
> > > +        enum: [3125000, 6250000, 12500000, 25000000, 50000000, 100000000,
> > > +               200000000, 300000000]  
> > 
> > IIO folks, is this sort of thing common/likely to exist on other DACs?
> 
> Fair point. It is probably time to conclude this is at least moderately common
> and generalize it - which will need a dac.yaml similar to the one we have for
> ADCs in adc/adc.yaml.  That will need to make this a per channel node
> property (same as the adc ones).

Looks like it is already per channel node?

> I'd also expect it to always take 2 values. In many cases the first will be 0
> but that is fine.

What would that first value represent?
Jonathan Cameron June 23, 2024, 4:20 p.m. UTC | #4
On Sun, 23 Jun 2024 15:03:47 +0100
Conor Dooley <conor@kernel.org> wrote:

> On Sun, Jun 23, 2024 at 02:43:39PM +0100, Jonathan Cameron wrote:
> > On Wed, 19 Jun 2024 18:57:59 +0100
> > Conor Dooley <conor@kernel.org> wrote:
> >   
> > > On Wed, Jun 19, 2024 at 02:49:03PM +0800, Kim Seer Paller wrote:  
> > > > +patternProperties:
> > > > +  "^channel@[0-4]$":
> > > > +    type: object
> > > > +    additionalProperties: false
> > > > +
> > > > +    properties:
> > > > +      reg:
> > > > +        description: The channel number representing the DAC output channel.
> > > > +        maximum: 4
> > > > +
> > > > +      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-microamp:
> > > > +        description: Specify the channel output full scale range.
> > > > +        enum: [3125000, 6250000, 12500000, 25000000, 50000000, 100000000,
> > > > +               200000000, 300000000]    
> > > 
> > > IIO folks, is this sort of thing common/likely to exist on other DACs?  
> > 
> > Fair point. It is probably time to conclude this is at least moderately common
> > and generalize it - which will need a dac.yaml similar to the one we have for
> > ADCs in adc/adc.yaml.  That will need to make this a per channel node
> > property (same as the adc ones).  
> 
> Looks like it is already per channel node?

Absolutely - but that is a bit fiddlier to do in a generic file so I just
meant make sure to enforce that in a similar fashion to adc.yaml.
> 
> > I'd also expect it to always take 2 values. In many cases the first will be 0
> > but that is fine.  
> 
> What would that first value represent?
Hmm. For voltage equivalent they are often not zero based so it would be the
negative. I have no idea if there are current dacs that act as both sources and sinks...
So maybe voltage one which should be done in this series as well needs to be 2 value
and current variant maybe not.

Jonathan
Kim Seer Paller June 24, 2024, 3:26 p.m. UTC | #5
> -----Original Message-----
> From: Jonathan Cameron <jic23@kernel.org>
> Sent: Sunday, June 23, 2024 9:44 PM
> To: Conor Dooley <conor@kernel.org>
> Cc: Paller, Kim Seer <KimSeer.Paller@analog.com>; linux-
> kernel@vger.kernel.org; linux-iio@vger.kernel.org; devicetree@vger.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 v4 4/5] dt-bindings: iio: dac: Add adi,ltc2672.yaml
> 
> [External]
> 
> On Wed, 19 Jun 2024 18:57:59 +0100
> Conor Dooley <conor@kernel.org> wrote:
> 
> > On Wed, Jun 19, 2024 at 02:49:03PM +0800, Kim Seer Paller wrote:
> > > +patternProperties:
> > > +  "^channel@[0-4]$":
> > > +    type: object
> > > +    additionalProperties: false
> > > +
> > > +    properties:
> > > +      reg:
> > > +        description: The channel number representing the DAC output
> channel.
> > > +        maximum: 4
> > > +
> > > +      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-microamp:
> > > +        description: Specify the channel output full scale range.
> > > +        enum: [3125000, 6250000, 12500000, 25000000, 50000000,
> 100000000,
> > > +               200000000, 300000000]
> >
> > IIO folks, is this sort of thing common/likely to exist on other DACs?
> 
> Fair point. It is probably time to conclude this is at least moderately common
> and generalize it - which will need a dac.yaml similar to the one we have for
> ADCs in adc/adc.yaml.  That will need to make this a per channel node property
> (same as the adc ones).

Should I proceed with generalizing common DAC properties in this series and does
this mean somehow removing these common properties from existing DAC bindings?

> 
> I'd also expect it to always take 2 values. In many cases the first will be 0 but
> that is fine.
> 
> Jonathan
Conor Dooley June 24, 2024, 5 p.m. UTC | #6
On Mon, Jun 24, 2024 at 03:26:26PM +0000, Paller, Kim Seer wrote:
> 
> 
> > -----Original Message-----
> > From: Jonathan Cameron <jic23@kernel.org>
> > Sent: Sunday, June 23, 2024 9:44 PM
> > To: Conor Dooley <conor@kernel.org>
> > Cc: Paller, Kim Seer <KimSeer.Paller@analog.com>; linux-
> > kernel@vger.kernel.org; linux-iio@vger.kernel.org; devicetree@vger.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 v4 4/5] dt-bindings: iio: dac: Add adi,ltc2672.yaml
> > 
> > [External]
> > 
> > On Wed, 19 Jun 2024 18:57:59 +0100
> > Conor Dooley <conor@kernel.org> wrote:
> > 
> > > On Wed, Jun 19, 2024 at 02:49:03PM +0800, Kim Seer Paller wrote:
> > > > +patternProperties:
> > > > +  "^channel@[0-4]$":
> > > > +    type: object
> > > > +    additionalProperties: false
> > > > +
> > > > +    properties:
> > > > +      reg:
> > > > +        description: The channel number representing the DAC output
> > channel.
> > > > +        maximum: 4
> > > > +
> > > > +      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-microamp:
> > > > +        description: Specify the channel output full scale range.
> > > > +        enum: [3125000, 6250000, 12500000, 25000000, 50000000,
> > 100000000,
> > > > +               200000000, 300000000]
> > >
> > > IIO folks, is this sort of thing common/likely to exist on other DACs?
> > 
> > Fair point. It is probably time to conclude this is at least moderately common
> > and generalize it - which will need a dac.yaml similar to the one we have for
> > ADCs in adc/adc.yaml.  That will need to make this a per channel node property
> > (same as the adc ones).
> 
> Should I proceed with generalizing common DAC properties in this series and does

I think so, yes.

> this mean somehow removing these common properties from existing DAC bindings?

I think that that one is up to Jonathan.

> > I'd also expect it to always take 2 values. In many cases the first will be 0 but
> > that is fine.
> > 
> > Jonathan
>
Jonathan Cameron June 24, 2024, 5:37 p.m. UTC | #7
On Mon, 24 Jun 2024 18:00:24 +0100
Conor Dooley <conor@kernel.org> wrote:

> On Mon, Jun 24, 2024 at 03:26:26PM +0000, Paller, Kim Seer wrote:
> > 
> >   
> > > -----Original Message-----
> > > From: Jonathan Cameron <jic23@kernel.org>
> > > Sent: Sunday, June 23, 2024 9:44 PM
> > > To: Conor Dooley <conor@kernel.org>
> > > Cc: Paller, Kim Seer <KimSeer.Paller@analog.com>; linux-
> > > kernel@vger.kernel.org; linux-iio@vger.kernel.org; devicetree@vger.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 v4 4/5] dt-bindings: iio: dac: Add adi,ltc2672.yaml
> > > 
> > > [External]
> > > 
> > > On Wed, 19 Jun 2024 18:57:59 +0100
> > > Conor Dooley <conor@kernel.org> wrote:
> > >   
> > > > On Wed, Jun 19, 2024 at 02:49:03PM +0800, Kim Seer Paller wrote:  
> > > > > +patternProperties:
> > > > > +  "^channel@[0-4]$":
> > > > > +    type: object
> > > > > +    additionalProperties: false
> > > > > +
> > > > > +    properties:
> > > > > +      reg:
> > > > > +        description: The channel number representing the DAC output  
> > > channel.  
> > > > > +        maximum: 4
> > > > > +
> > > > > +      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-microamp:
> > > > > +        description: Specify the channel output full scale range.
> > > > > +        enum: [3125000, 6250000, 12500000, 25000000, 50000000,  
> > > 100000000,  
> > > > > +               200000000, 300000000]  
> > > >
> > > > IIO folks, is this sort of thing common/likely to exist on other DACs?  
> > > 
> > > Fair point. It is probably time to conclude this is at least moderately common
> > > and generalize it - which will need a dac.yaml similar to the one we have for
> > > ADCs in adc/adc.yaml.  That will need to make this a per channel node property
> > > (same as the adc ones).  
> > 
> > Should I proceed with generalizing common DAC properties in this series and does  
> 
> I think so, yes.

Yes, that would great.

> 
> > this mean somehow removing these common properties from existing DAC bindings?  
> 
> I think that that one is up to Jonathan.

We can deprecate them.  At somepoint we can remove them form the documented bindings
but we will need to keep them in drivers forever (which won't be costly in this case).

Jonathan

> 
> > > I'd also expect it to always take 2 values. In many cases the first will be 0 but
> > > that is fine.
> > > 
> > > Jonathan  
> >   
>
Kim Seer Paller June 25, 2024, 3:51 p.m. UTC | #8
> -----Original Message-----
> From: Jonathan Cameron <Jonathan.Cameron@Huawei.com>
> Sent: Tuesday, June 25, 2024 1:38 AM
> To: Conor Dooley <conor@kernel.org>
> Cc: Paller, Kim Seer <KimSeer.Paller@analog.com>; Jonathan Cameron
> <jic23@kernel.org>; linux-kernel@vger.kernel.org; linux-iio@vger.kernel.org;
> devicetree@vger.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 v4 4/5] dt-bindings: iio: dac: Add adi,ltc2672.yaml
> 
> [External]
> 
> On Mon, 24 Jun 2024 18:00:24 +0100
> Conor Dooley <conor@kernel.org> wrote:
> 
> > On Mon, Jun 24, 2024 at 03:26:26PM +0000, Paller, Kim Seer wrote:
> > >
> > >
> > > > -----Original Message-----
> > > > From: Jonathan Cameron <jic23@kernel.org>
> > > > Sent: Sunday, June 23, 2024 9:44 PM
> > > > To: Conor Dooley <conor@kernel.org>
> > > > Cc: Paller, Kim Seer <KimSeer.Paller@analog.com>; linux-
> > > > kernel@vger.kernel.org; linux-iio@vger.kernel.org;
> devicetree@vger.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 v4 4/5] dt-bindings: iio: dac: Add adi,ltc2672.yaml
> > > >
> > > > [External]
> > > >
> > > > On Wed, 19 Jun 2024 18:57:59 +0100
> > > > Conor Dooley <conor@kernel.org> wrote:
> > > >
> > > > > On Wed, Jun 19, 2024 at 02:49:03PM +0800, Kim Seer Paller wrote:
> > > > > > +patternProperties:
> > > > > > +  "^channel@[0-4]$":
> > > > > > +    type: object
> > > > > > +    additionalProperties: false
> > > > > > +
> > > > > > +    properties:
> > > > > > +      reg:
> > > > > > +        description: The channel number representing the DAC output
> > > > channel.
> > > > > > +        maximum: 4
> > > > > > +
> > > > > > +      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-microamp:
> > > > > > +        description: Specify the channel output full scale range.
> > > > > > +        enum: [3125000, 6250000, 12500000, 25000000, 50000000,
> > > > 100000000,
> > > > > > +               200000000, 300000000]
> > > > >
> > > > > IIO folks, is this sort of thing common/likely to exist on other DACs?
> > > >
> > > > Fair point. It is probably time to conclude this is at least moderately
> common
> > > > and generalize it - which will need a dac.yaml similar to the one we have
> for
> > > > ADCs in adc/adc.yaml.  That will need to make this a per channel node
> property
> > > > (same as the adc ones).
> > >
> > > Should I proceed with generalizing common DAC properties in this series
> and does
> >
> > I think so, yes.
> 
> Yes, that would great.

I was wondering who would be the designated maintainer for new dac.yaml?

> >
> > > this mean somehow removing these common properties from existing DAC
> bindings?
> >
> > I think that that one is up to Jonathan.
> 
> We can deprecate them.  At somepoint we can remove them form the
> documented bindings
> but we will need to keep them in drivers forever (which won't be costly in this
> case).
> 
> Jonathan
> 
> >
> > > > I'd also expect it to always take 2 values. In many cases the first will be 0
> but
> > > > that is fine.
> > > >
> > > > Jonathan
> > >
> >
Conor Dooley June 25, 2024, 4:20 p.m. UTC | #9
On Tue, Jun 25, 2024 at 03:51:27PM +0000, Paller, Kim Seer wrote:
> 
> 
> > From: Jonathan Cameron <Jonathan.Cameron@Huawei.com>

> > On Mon, 24 Jun 2024 18:00:24 +0100
> > Conor Dooley <conor@kernel.org> wrote:
> > 
> > > On Mon, Jun 24, 2024 at 03:26:26PM +0000, Paller, Kim Seer wrote:
> > > >
> > > >
> > > > > From: Jonathan Cameron <jic23@kernel.org>

> > > > > Subject: Re: [PATCH v4 4/5] dt-bindings: iio: dac: Add adi,ltc2672.yaml
> > > > >
> > > > >
> > > > > On Wed, 19 Jun 2024 18:57:59 +0100
> > > > > Conor Dooley <conor@kernel.org> wrote:
> > > > >
> > > > > > On Wed, Jun 19, 2024 at 02:49:03PM +0800, Kim Seer Paller wrote:
> > > > > > > +patternProperties:
> > > > > > > +  "^channel@[0-4]$":
> > > > > > > +    type: object
> > > > > > > +    additionalProperties: false
> > > > > > > +
> > > > > > > +    properties:
> > > > > > > +      reg:
> > > > > > > +        description: The channel number representing the DAC output
> > > > > channel.
> > > > > > > +        maximum: 4
> > > > > > > +
> > > > > > > +      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-microamp:
> > > > > > > +        description: Specify the channel output full scale range.
> > > > > > > +        enum: [3125000, 6250000, 12500000, 25000000, 50000000,
> > > > > 100000000,
> > > > > > > +               200000000, 300000000]
> > > > > >
> > > > > > IIO folks, is this sort of thing common/likely to exist on other DACs?
> > > > >
> > > > > Fair point. It is probably time to conclude this is at least moderately
> > common
> > > > > and generalize it - which will need a dac.yaml similar to the one we have
> > for
> > > > > ADCs in adc/adc.yaml.  That will need to make this a per channel node
> > property
> > > > > (same as the adc ones).
> > > >
> > > > Should I proceed with generalizing common DAC properties in this series
> > and does
> > >
> > > I think so, yes.
> > 
> > Yes, that would great.
> 
> I was wondering who would be the designated maintainer for new dac.yaml?

I'd suggest Jonathan!

> > > > this mean somehow removing these common properties from existing DAC
> > bindings?
> > >
> > > I think that that one is up to Jonathan.
> > 
> > We can deprecate them.  At somepoint we can remove them form the
> > documented bindings
> > but we will need to keep them in drivers forever (which won't be costly in this
> > case).

Right. Anything where the name _would change_ needs to be deprecated and
kept forever. I was thinking more about properties that are defined in
multiple locations with the same name, e.g. if "output-range-microvolts"
existed in 6 different bindings.

Thanks,
Conor.
Jonathan Cameron June 28, 2024, 7:02 p.m. UTC | #10
On Tue, 25 Jun 2024 17:20:48 +0100
Conor Dooley <conor@kernel.org> wrote:

> On Tue, Jun 25, 2024 at 03:51:27PM +0000, Paller, Kim Seer wrote:
> > 
> >   
> > > From: Jonathan Cameron <Jonathan.Cameron@Huawei.com>  
> 
> > > On Mon, 24 Jun 2024 18:00:24 +0100
> > > Conor Dooley <conor@kernel.org> wrote:
> > >   
> > > > On Mon, Jun 24, 2024 at 03:26:26PM +0000, Paller, Kim Seer wrote:  
> > > > >
> > > > >  
> > > > > > From: Jonathan Cameron <jic23@kernel.org>  
> 
> > > > > > Subject: Re: [PATCH v4 4/5] dt-bindings: iio: dac: Add adi,ltc2672.yaml
> > > > > >
> > > > > >
> > > > > > On Wed, 19 Jun 2024 18:57:59 +0100
> > > > > > Conor Dooley <conor@kernel.org> wrote:
> > > > > >  
> > > > > > > On Wed, Jun 19, 2024 at 02:49:03PM +0800, Kim Seer Paller wrote:  
> > > > > > > > +patternProperties:
> > > > > > > > +  "^channel@[0-4]$":
> > > > > > > > +    type: object
> > > > > > > > +    additionalProperties: false
> > > > > > > > +
> > > > > > > > +    properties:
> > > > > > > > +      reg:
> > > > > > > > +        description: The channel number representing the DAC output  
> > > > > > channel.  
> > > > > > > > +        maximum: 4
> > > > > > > > +
> > > > > > > > +      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-microamp:
> > > > > > > > +        description: Specify the channel output full scale range.
> > > > > > > > +        enum: [3125000, 6250000, 12500000, 25000000, 50000000,  
> > > > > > 100000000,  
> > > > > > > > +               200000000, 300000000]  
> > > > > > >
> > > > > > > IIO folks, is this sort of thing common/likely to exist on other DACs?  
> > > > > >
> > > > > > Fair point. It is probably time to conclude this is at least moderately  
> > > common  
> > > > > > and generalize it - which will need a dac.yaml similar to the one we have  
> > > for  
> > > > > > ADCs in adc/adc.yaml.  That will need to make this a per channel node  
> > > property  
> > > > > > (same as the adc ones).  
> > > > >
> > > > > Should I proceed with generalizing common DAC properties in this series  
> > > and does  
> > > >
> > > > I think so, yes.  
> > > 
> > > Yes, that would great.  
> > 
> > I was wondering who would be the designated maintainer for new dac.yaml?  
> 
> I'd suggest Jonathan!

Sure.  Though if anyone else wants to maintain this one they'd be welcome :)

> 
> > > > > this mean somehow removing these common properties from existing DAC  
> > > bindings?  
> > > >
> > > > I think that that one is up to Jonathan.  
> > > 
> > > We can deprecate them.  At somepoint we can remove them form the
> > > documented bindings
> > > but we will need to keep them in drivers forever (which won't be costly in this
> > > case).  
> 
> Right. Anything where the name _would change_ needs to be deprecated and
> kept forever. I was thinking more about properties that are defined in
> multiple locations with the same name, e.g. if "output-range-microvolts"
> existed in 6 different bindings.
> 
> Thanks,
> Conor.
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/iio/dac/adi,ltc2672.yaml b/Documentation/devicetree/bindings/iio/dac/adi,ltc2672.yaml
new file mode 100644
index 000000000000..0ccf53fb22cc
--- /dev/null
+++ b/Documentation/devicetree/bindings/iio/dac/adi,ltc2672.yaml
@@ -0,0 +1,158 @@ 
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/iio/dac/adi,ltc2672.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Analog Devices LTC2672 DAC
+
+maintainers:
+  - Michael Hennerich <michael.hennerich@analog.com>
+  - Kim Seer Paller <kimseer.paller@analog.com>
+
+description: |
+  Analog Devices LTC2672 5 channel, 12-/16-Bit, 300mA DAC
+  https://www.analog.com/media/en/technical-documentation/data-sheets/ltc2672.pdf
+
+properties:
+  compatible:
+    enum:
+      - adi,ltc2672
+
+  reg:
+    maxItems: 1
+
+  spi-max-frequency:
+    maximum: 50000000
+
+  vcc-supply:
+    description: Analog Supply Voltage Input.
+
+  v-neg-supply:
+    description: Negative Supply Voltage Input.
+
+  vdd0-supply:
+    description: Positive Supply Voltage Input for DAC OUT0.
+
+  vdd1-supply:
+    description: Positive Supply Voltage Input for DAC OUT1.
+
+  vdd2-supply:
+    description: Positive Supply Voltage Input for DAC OUT2.
+
+  vdd3-supply:
+    description: Positive Supply Voltage Input for DAC OUT3.
+
+  vdd4-supply:
+    description: Positive Supply Voltage Input for DAC OUT4.
+
+  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.
+
+  reset-gpios:
+    description:
+      Active Low Asynchronous Clear Input. A logic low at this level triggered
+      input clears the device to the default reset code and output range, which
+      is zero-scale with the outputs off. The control registers are cleared to
+      zero.
+    maxItems: 1
+
+  adi,rfsadj-ohms:
+    description:
+      If FSADJ is tied to VCC, an internal RFSADJ (20 kΩ) is selected, which
+      results in nominal output ranges. When an external resistor of 19 kΩ to
+      41 kΩ can be used instead by connecting the resistor between FSADJ and GND
+      it controls the scaling of the ranges, and the internal resistor is
+      automatically disconnected.
+    minimum: 19000
+    maximum: 41000
+    default: 20000
+
+  io-channels:
+    description:
+      ADC channel to monitor voltages and currents at the MUX pin.
+    maxItems: 1
+
+  '#address-cells':
+    const: 1
+
+  '#size-cells':
+    const: 0
+
+patternProperties:
+  "^channel@[0-4]$":
+    type: object
+    additionalProperties: false
+
+    properties:
+      reg:
+        description: The channel number representing the DAC output channel.
+        maximum: 4
+
+      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-microamp:
+        description: Specify the channel output full scale range.
+        enum: [3125000, 6250000, 12500000, 25000000, 50000000, 100000000,
+               200000000, 300000000]
+
+    required:
+      - reg
+      - adi,output-range-microamp
+
+required:
+  - compatible
+  - reg
+  - spi-max-frequency
+  - vcc-supply
+  - iovcc-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,ltc2672";
+            reg = <0>;
+            spi-max-frequency = <10000000>;
+
+            vcc-supply = <&vcc>;
+            iovcc-supply = <&vcc>;
+            ref-supply = <&vref>;
+            v-neg-supply = <&vneg>;
+
+            io-channels = <&adc 0>;
+
+            #address-cells = <1>;
+            #size-cells = <0>;
+            channel@0 {
+                    reg = <0>;
+                    adi,toggle-mode;
+                    adi,output-range-microamp = <3125000>;
+            };
+
+            channel@1 {
+                    reg = <1>;
+                    adi,output-range-microamp = <6250000>;
+            };
+        };
+    };
+...
diff --git a/MAINTAINERS b/MAINTAINERS
index 849800d9cbf7..f4a5b5bc8ccc 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -13081,6 +13081,7 @@  L:	linux-iio@vger.kernel.org
 S:	Supported
 W:	https://ez.analog.com/linux-software-drivers
 F:	Documentation/devicetree/bindings/iio/dac/adi,ltc2664.yaml
+F:	Documentation/devicetree/bindings/iio/dac/adi,ltc2672.yaml
 
 LTC2688 IIO DAC DRIVER
 M:	Nuno Sá <nuno.sa@analog.com>