diff mbox series

[v2,15/17] dt-bindings:iio:adc:ad7280a: Add binding

Message ID 20211205202710.2847005-16-jic23@kernel.org (mailing list archive)
State Superseded
Headers show
Series iio:adc:ad7280a Cleanup and proposed staging graduation. | expand

Commit Message

Jonathan Cameron Dec. 5, 2021, 8:27 p.m. UTC
From: Jonathan Cameron <Jonathan.Cameron@huawei.com>

Add a binding for this Lithium Ion Battery monitoring chip/chain of chips
as it is now clean and ready to move out of staging.

Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Reviewed-by: Rob Herring <robh@kernel.org>
---
 .../bindings/iio/adc/adi,ad7280a.yaml         | 87 +++++++++++++++++++
 1 file changed, 87 insertions(+)

Comments

Marcelo Schmitt Dec. 18, 2021, 9:18 p.m. UTC | #1
Think it would be more intuitive to use the number of active channels as enum
elements for adi,temp-alert-last-chan and adi,voltage-alert-last-chan.
This, though, is just my personal opinion so 
Reviewed-by: Marcelo Schmitt <marcelo.schmitt1@gmail.com>

On 12/05, Jonathan Cameron wrote:
> From: Jonathan Cameron <Jonathan.Cameron@huawei.com>
> 
> Add a binding for this Lithium Ion Battery monitoring chip/chain of chips
> as it is now clean and ready to move out of staging.
> 
> Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
> Reviewed-by: Rob Herring <robh@kernel.org>
> ---
>  .../bindings/iio/adc/adi,ad7280a.yaml         | 87 +++++++++++++++++++
>  1 file changed, 87 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/iio/adc/adi,ad7280a.yaml b/Documentation/devicetree/bindings/iio/adc/adi,ad7280a.yaml
> new file mode 100644
> index 000000000000..77b8f67fe446
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/iio/adc/adi,ad7280a.yaml
> @@ -0,0 +1,87 @@
> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/iio/adc/adi,ad7280a.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Analog Devices AD7280a Lithium Ion Battery Monitoring System
> +
> +maintainers:
> +  - Michael Hennerich <michael.hennerich@analog.com>
> +  - Jonathan Cameron <jic23@kernel.org>
> +
> +description: |
> +  Bindings for the Analog Devices AD7280a Battery Monitoring System.
> +  Used in devices such as hybrid electric cars, battery backup and power tools.
> +  Multiple chips can be daisy chained and accessed via a single SPI interface.
> +  Data sheet found here:
> +    https://www.analog.com/media/en/technical-documentation/data-sheets/AD7280A.pdf
> +
> +properties:
> +  compatible:
> +    const: adi,ad7280a
> +
> +  reg:
> +    maxItems: 1
> +
> +  interrupts:
> +    description: IRQ line for the ADC
> +    maxItems: 1
> +
> +  spi-max-frequency: true
> +
> +  adi,temp-alert-last-chan:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description:
> +      Allows limiting of scope of which channels are considered for temperature
> +      alerts, typically because not all are wired to anything. Only applies to
> +      last device in the daisy chain.
> +    default: 5
> +    enum: [3, 4, 5]
> +
> +  adi,voltage-alert-last-chan:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description:
> +      Allows limiting of scope of which channels are considered for voltage
> +      alerts, typically because not all are wired to anything. Only applies to
> +      last device in the daisy chain.
> +    default: 5
> +    enum: [3, 4, 5]
> +
> +  adi,acquisition-time-ns:
> +    description:
> +      Additional time may be needed to charge the sampling capacitors depending
> +      on external writing.
> +    default: 400
> +    enum: [400, 800, 1200, 1600]
> +
> +  adi,thermistor-termination:
> +    type: boolean
> +    description:
> +      Enable the thermistor termination function.
> +
> +required:
> +  - compatible
> +  - reg
> +
> +additionalProperties: false
> +
> +examples:
> +  - |
> +    spi {
> +      #address-cells = <1>;
> +      #size-cells = <0>;
> +
> +      adc@0 {
> +        compatible = "adi,ad7280a";
> +        reg = <0>;
> +        spi-max-frequency = <700000>;
> +        interrupt-parent = <&gpio>;
> +        interrupts = <25 2>;
> +        adi,thermistor-termination;
> +        adi,acquisition-time-ns = <800>;
> +        adi,voltage-alert-last-chan = <5>;
> +        adi,temp-alert-last-chan = <5>;
> +      };
> +    };
> +...
> -- 
> 2.34.1
>
Jonathan Cameron Jan. 30, 2022, 8:29 p.m. UTC | #2
On Sat, 18 Dec 2021 18:18:12 -0300
Marcelo Schmitt <marcelo.schmitt1@gmail.com> wrote:

> Think it would be more intuitive to use the number of active channels as enum
> elements for adi,temp-alert-last-chan and adi,voltage-alert-last-chan.

Just to check I understand correctly, you mean active number of channels
across all devices, or just in the last device?

If all devices it would get tricky to handle because if set to a value
before the last device I'm not sure how we'd handle it.

Or do you mean just index in that device form 1, so when we disable
VIN5 we still have VIN0,1,2,3,4 so 5 devices?

The AUX version as per earlier patch is a real pain to describe. If
we do support it we'll probably just have to fall back to strings
or similar which isn't nice.

Jonathan

> This, though, is just my personal opinion so 
> Reviewed-by: Marcelo Schmitt <marcelo.schmitt1@gmail.com>
> 
> On 12/05, Jonathan Cameron wrote:
> > From: Jonathan Cameron <Jonathan.Cameron@huawei.com>
> > 
> > Add a binding for this Lithium Ion Battery monitoring chip/chain of chips
> > as it is now clean and ready to move out of staging.
> > 
> > Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
> > Reviewed-by: Rob Herring <robh@kernel.org>
> > ---
> >  .../bindings/iio/adc/adi,ad7280a.yaml         | 87 +++++++++++++++++++
> >  1 file changed, 87 insertions(+)
> > 
> > diff --git a/Documentation/devicetree/bindings/iio/adc/adi,ad7280a.yaml b/Documentation/devicetree/bindings/iio/adc/adi,ad7280a.yaml
> > new file mode 100644
> > index 000000000000..77b8f67fe446
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/iio/adc/adi,ad7280a.yaml
> > @@ -0,0 +1,87 @@
> > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> > +%YAML 1.2
> > +---
> > +$id: http://devicetree.org/schemas/iio/adc/adi,ad7280a.yaml#
> > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > +
> > +title: Analog Devices AD7280a Lithium Ion Battery Monitoring System
> > +
> > +maintainers:
> > +  - Michael Hennerich <michael.hennerich@analog.com>
> > +  - Jonathan Cameron <jic23@kernel.org>
> > +
> > +description: |
> > +  Bindings for the Analog Devices AD7280a Battery Monitoring System.
> > +  Used in devices such as hybrid electric cars, battery backup and power tools.
> > +  Multiple chips can be daisy chained and accessed via a single SPI interface.
> > +  Data sheet found here:
> > +    https://www.analog.com/media/en/technical-documentation/data-sheets/AD7280A.pdf
> > +
> > +properties:
> > +  compatible:
> > +    const: adi,ad7280a
> > +
> > +  reg:
> > +    maxItems: 1
> > +
> > +  interrupts:
> > +    description: IRQ line for the ADC
> > +    maxItems: 1
> > +
> > +  spi-max-frequency: true
> > +
> > +  adi,temp-alert-last-chan:
> > +    $ref: /schemas/types.yaml#/definitions/uint32
> > +    description:
> > +      Allows limiting of scope of which channels are considered for temperature
> > +      alerts, typically because not all are wired to anything. Only applies to
> > +      last device in the daisy chain.
> > +    default: 5
> > +    enum: [3, 4, 5]
> > +
> > +  adi,voltage-alert-last-chan:
> > +    $ref: /schemas/types.yaml#/definitions/uint32
> > +    description:
> > +      Allows limiting of scope of which channels are considered for voltage
> > +      alerts, typically because not all are wired to anything. Only applies to
> > +      last device in the daisy chain.
> > +    default: 5
> > +    enum: [3, 4, 5]
> > +
> > +  adi,acquisition-time-ns:
> > +    description:
> > +      Additional time may be needed to charge the sampling capacitors depending
> > +      on external writing.
> > +    default: 400
> > +    enum: [400, 800, 1200, 1600]
> > +
> > +  adi,thermistor-termination:
> > +    type: boolean
> > +    description:
> > +      Enable the thermistor termination function.
> > +
> > +required:
> > +  - compatible
> > +  - reg
> > +
> > +additionalProperties: false
> > +
> > +examples:
> > +  - |
> > +    spi {
> > +      #address-cells = <1>;
> > +      #size-cells = <0>;
> > +
> > +      adc@0 {
> > +        compatible = "adi,ad7280a";
> > +        reg = <0>;
> > +        spi-max-frequency = <700000>;
> > +        interrupt-parent = <&gpio>;
> > +        interrupts = <25 2>;
> > +        adi,thermistor-termination;
> > +        adi,acquisition-time-ns = <800>;
> > +        adi,voltage-alert-last-chan = <5>;
> > +        adi,temp-alert-last-chan = <5>;
> > +      };
> > +    };
> > +...
> > -- 
> > 2.34.1
> >
Marcelo Schmitt Feb. 6, 2022, 2:31 a.m. UTC | #3
On 01/30, Jonathan Cameron wrote:
> On Sat, 18 Dec 2021 18:18:12 -0300
> Marcelo Schmitt <marcelo.schmitt1@gmail.com> wrote:
> 
> > Think it would be more intuitive to use the number of active channels as enum
> > elements for adi,temp-alert-last-chan and adi,voltage-alert-last-chan.
> 
> Just to check I understand correctly, you mean active number of channels
> across all devices, or just in the last device?

I was thinking about the number of channels enabled for alert detection only in
the last device.
For voltage inputs, we would have 6, 5, or 4 channels enabled. So the possible
values for adi,voltage-alert-last-chan would be [4, 5, 6], default: 6.
For temperature inputs, things get a bit hairy.
* We may have all 6 AUX enabled.
* We may have 3 AUX enabled if D15:D14 = 01 in the control register. If so, we still may:
  + disable AUX5, or
  + disable AUX5 and AUX3
So the possibilities for adi,temp-alert-last-chan would be 1, 2, 3, or 6 AUX
channels enabled for alert detection.

> 
> If all devices it would get tricky to handle because if set to a value
> before the last device I'm not sure how we'd handle it.
> 
> Or do you mean just index in that device form 1, so when we disable
> VIN5 we still have VIN0,1,2,3,4 so 5 devices?

You mean the index of the last channel (of the last device) enabled to generate alerts?
For voltage inputs, I guess that would end up almost the same as for the number
of active channels. For temperature inputs, AUX6, AUX5, AUX3, or AUX1 would be
the last channels enabled to generate alerts in each of the above cases.
Taking just the indexes: 1, 3, 5, 6.
This seems harder to explain, though.

> 
> The AUX version as per earlier patch is a real pain to describe. If
> we do support it we'll probably just have to fall back to strings
> or similar which isn't nice.
> 
> Jonathan
> 
> > This, though, is just my personal opinion so 
> > Reviewed-by: Marcelo Schmitt <marcelo.schmitt1@gmail.com>
> > 
> > On 12/05, Jonathan Cameron wrote:
> > > From: Jonathan Cameron <Jonathan.Cameron@huawei.com>
> > > 
> > > Add a binding for this Lithium Ion Battery monitoring chip/chain of chips
> > > as it is now clean and ready to move out of staging.
> > > 
> > > Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
> > > Reviewed-by: Rob Herring <robh@kernel.org>
> > > ---
> > >  .../bindings/iio/adc/adi,ad7280a.yaml         | 87 +++++++++++++++++++
> > >  1 file changed, 87 insertions(+)
> > > 
> > > diff --git a/Documentation/devicetree/bindings/iio/adc/adi,ad7280a.yaml b/Documentation/devicetree/bindings/iio/adc/adi,ad7280a.yaml
> > > new file mode 100644
> > > index 000000000000..77b8f67fe446
> > > --- /dev/null
> > > +++ b/Documentation/devicetree/bindings/iio/adc/adi,ad7280a.yaml
> > > @@ -0,0 +1,87 @@
> > > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> > > +%YAML 1.2
> > > +---
> > > +$id: http://devicetree.org/schemas/iio/adc/adi,ad7280a.yaml#
> > > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > > +
> > > +title: Analog Devices AD7280a Lithium Ion Battery Monitoring System
> > > +
> > > +maintainers:
> > > +  - Michael Hennerich <michael.hennerich@analog.com>
> > > +  - Jonathan Cameron <jic23@kernel.org>
> > > +
> > > +description: |
> > > +  Bindings for the Analog Devices AD7280a Battery Monitoring System.
> > > +  Used in devices such as hybrid electric cars, battery backup and power tools.
> > > +  Multiple chips can be daisy chained and accessed via a single SPI interface.
> > > +  Data sheet found here:
> > > +    https://www.analog.com/media/en/technical-documentation/data-sheets/AD7280A.pdf
> > > +
> > > +properties:
> > > +  compatible:
> > > +    const: adi,ad7280a
> > > +
> > > +  reg:
> > > +    maxItems: 1
> > > +
> > > +  interrupts:
> > > +    description: IRQ line for the ADC
> > > +    maxItems: 1
> > > +
> > > +  spi-max-frequency: true
> > > +
> > > +  adi,temp-alert-last-chan:
> > > +    $ref: /schemas/types.yaml#/definitions/uint32
> > > +    description:
> > > +      Allows limiting of scope of which channels are considered for temperature
> > > +      alerts, typically because not all are wired to anything. Only applies to
> > > +      last device in the daisy chain.
> > > +    default: 5
> > > +    enum: [3, 4, 5]
> > > +
> > > +  adi,voltage-alert-last-chan:
> > > +    $ref: /schemas/types.yaml#/definitions/uint32
> > > +    description:
> > > +      Allows limiting of scope of which channels are considered for voltage
> > > +      alerts, typically because not all are wired to anything. Only applies to
> > > +      last device in the daisy chain.
> > > +    default: 5
> > > +    enum: [3, 4, 5]
> > > +
> > > +  adi,acquisition-time-ns:
> > > +    description:
> > > +      Additional time may be needed to charge the sampling capacitors depending
> > > +      on external writing.
> > > +    default: 400
> > > +    enum: [400, 800, 1200, 1600]
> > > +
> > > +  adi,thermistor-termination:
> > > +    type: boolean
> > > +    description:
> > > +      Enable the thermistor termination function.
> > > +
> > > +required:
> > > +  - compatible
> > > +  - reg
> > > +
> > > +additionalProperties: false
> > > +
> > > +examples:
> > > +  - |
> > > +    spi {
> > > +      #address-cells = <1>;
> > > +      #size-cells = <0>;
> > > +
> > > +      adc@0 {
> > > +        compatible = "adi,ad7280a";
> > > +        reg = <0>;
> > > +        spi-max-frequency = <700000>;
> > > +        interrupt-parent = <&gpio>;
> > > +        interrupts = <25 2>;
> > > +        adi,thermistor-termination;
> > > +        adi,acquisition-time-ns = <800>;
> > > +        adi,voltage-alert-last-chan = <5>;
> > > +        adi,temp-alert-last-chan = <5>;
> > > +      };
> > > +    };
> > > +...
> > > -- 
> > > 2.34.1
> > >   
>
Jonathan Cameron Feb. 6, 2022, 6:13 p.m. UTC | #4
On Sat, 5 Feb 2022 23:31:21 -0300
Marcelo Schmitt <marcelo.schmitt1@gmail.com> wrote:

> On 01/30, Jonathan Cameron wrote:
> > On Sat, 18 Dec 2021 18:18:12 -0300
> > Marcelo Schmitt <marcelo.schmitt1@gmail.com> wrote:
> >   
> > > Think it would be more intuitive to use the number of active channels as enum
> > > elements for adi,temp-alert-last-chan and adi,voltage-alert-last-chan.  
> > 
> > Just to check I understand correctly, you mean active number of channels
> > across all devices, or just in the last device?  
> 
> I was thinking about the number of channels enabled for alert detection only in
> the last device.
> For voltage inputs, we would have 6, 5, or 4 channels enabled. So the possible
> values for adi,voltage-alert-last-chan would be [4, 5, 6], default: 6.
> For temperature inputs, things get a bit hairy.
> * We may have all 6 AUX enabled.
> * We may have 3 AUX enabled if D15:D14 = 01 in the control register. If so, we still may:
>   + disable AUX5, or
>   + disable AUX5 and AUX3
> So the possibilities for adi,temp-alert-last-chan would be 1, 2, 3, or 6 AUX
> channels enabled for alert detection.

Glad I just dropped support for that ;)

For the voltage one I'm going to leave it as adi,voltage-alert-last-chan
because I'm not sure what naming would work if we changed it to number supported
because it feels like adi,voltage-alert-last-num-chan is weird and I don't want
complexity of adi,voltage-alert-num-chans as that would have to include the
channels on previous devices and if we ever support the 1,3,5 mode the two will couple
in a horrible fashion.

From a lazy point of view, if I don't touch this I can avoid bothering Rob again
as I feel like I can drop the temperature one without removing his RB, but
would have to ask him to take another look if we change the way the other one works.

So all in all, lets go with good enough for this one rather than looping around
trying to find perfect.

Thanks,

Jonathan

> 
> > 
> > If all devices it would get tricky to handle because if set to a value
> > before the last device I'm not sure how we'd handle it.
> > 
> > Or do you mean just index in that device form 1, so when we disable
> > VIN5 we still have VIN0,1,2,3,4 so 5 devices?  
> 
> You mean the index of the last channel (of the last device) enabled to generate alerts?
> For voltage inputs, I guess that would end up almost the same as for the number
> of active channels. For temperature inputs, AUX6, AUX5, AUX3, or AUX1 would be
> the last channels enabled to generate alerts in each of the above cases.
> Taking just the indexes: 1, 3, 5, 6.
> This seems harder to explain, though.
> 
> > 
> > The AUX version as per earlier patch is a real pain to describe. If
> > we do support it we'll probably just have to fall back to strings
> > or similar which isn't nice.
> > 
> > Jonathan
> >   
> > > This, though, is just my personal opinion so 
> > > Reviewed-by: Marcelo Schmitt <marcelo.schmitt1@gmail.com>
> > > 
> > > On 12/05, Jonathan Cameron wrote:  
> > > > From: Jonathan Cameron <Jonathan.Cameron@huawei.com>
> > > > 
> > > > Add a binding for this Lithium Ion Battery monitoring chip/chain of chips
> > > > as it is now clean and ready to move out of staging.
> > > > 
> > > > Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
> > > > Reviewed-by: Rob Herring <robh@kernel.org>
> > > > ---
> > > >  .../bindings/iio/adc/adi,ad7280a.yaml         | 87 +++++++++++++++++++
> > > >  1 file changed, 87 insertions(+)
> > > > 
> > > > diff --git a/Documentation/devicetree/bindings/iio/adc/adi,ad7280a.yaml b/Documentation/devicetree/bindings/iio/adc/adi,ad7280a.yaml
> > > > new file mode 100644
> > > > index 000000000000..77b8f67fe446
> > > > --- /dev/null
> > > > +++ b/Documentation/devicetree/bindings/iio/adc/adi,ad7280a.yaml
> > > > @@ -0,0 +1,87 @@
> > > > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> > > > +%YAML 1.2
> > > > +---
> > > > +$id: http://devicetree.org/schemas/iio/adc/adi,ad7280a.yaml#
> > > > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > > > +
> > > > +title: Analog Devices AD7280a Lithium Ion Battery Monitoring System
> > > > +
> > > > +maintainers:
> > > > +  - Michael Hennerich <michael.hennerich@analog.com>
> > > > +  - Jonathan Cameron <jic23@kernel.org>
> > > > +
> > > > +description: |
> > > > +  Bindings for the Analog Devices AD7280a Battery Monitoring System.
> > > > +  Used in devices such as hybrid electric cars, battery backup and power tools.
> > > > +  Multiple chips can be daisy chained and accessed via a single SPI interface.
> > > > +  Data sheet found here:
> > > > +    https://www.analog.com/media/en/technical-documentation/data-sheets/AD7280A.pdf
> > > > +
> > > > +properties:
> > > > +  compatible:
> > > > +    const: adi,ad7280a
> > > > +
> > > > +  reg:
> > > > +    maxItems: 1
> > > > +
> > > > +  interrupts:
> > > > +    description: IRQ line for the ADC
> > > > +    maxItems: 1
> > > > +
> > > > +  spi-max-frequency: true
> > > > +
> > > > +  adi,temp-alert-last-chan:
> > > > +    $ref: /schemas/types.yaml#/definitions/uint32
> > > > +    description:
> > > > +      Allows limiting of scope of which channels are considered for temperature
> > > > +      alerts, typically because not all are wired to anything. Only applies to
> > > > +      last device in the daisy chain.
> > > > +    default: 5
> > > > +    enum: [3, 4, 5]
> > > > +
> > > > +  adi,voltage-alert-last-chan:
> > > > +    $ref: /schemas/types.yaml#/definitions/uint32
> > > > +    description:
> > > > +      Allows limiting of scope of which channels are considered for voltage
> > > > +      alerts, typically because not all are wired to anything. Only applies to
> > > > +      last device in the daisy chain.
> > > > +    default: 5
> > > > +    enum: [3, 4, 5]
> > > > +
> > > > +  adi,acquisition-time-ns:
> > > > +    description:
> > > > +      Additional time may be needed to charge the sampling capacitors depending
> > > > +      on external writing.
> > > > +    default: 400
> > > > +    enum: [400, 800, 1200, 1600]
> > > > +
> > > > +  adi,thermistor-termination:
> > > > +    type: boolean
> > > > +    description:
> > > > +      Enable the thermistor termination function.
> > > > +
> > > > +required:
> > > > +  - compatible
> > > > +  - reg
> > > > +
> > > > +additionalProperties: false
> > > > +
> > > > +examples:
> > > > +  - |
> > > > +    spi {
> > > > +      #address-cells = <1>;
> > > > +      #size-cells = <0>;
> > > > +
> > > > +      adc@0 {
> > > > +        compatible = "adi,ad7280a";
> > > > +        reg = <0>;
> > > > +        spi-max-frequency = <700000>;
> > > > +        interrupt-parent = <&gpio>;
> > > > +        interrupts = <25 2>;
> > > > +        adi,thermistor-termination;
> > > > +        adi,acquisition-time-ns = <800>;
> > > > +        adi,voltage-alert-last-chan = <5>;
> > > > +        adi,temp-alert-last-chan = <5>;
> > > > +      };
> > > > +    };
> > > > +...
> > > > -- 
> > > > 2.34.1
> > > >     
> >
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/iio/adc/adi,ad7280a.yaml b/Documentation/devicetree/bindings/iio/adc/adi,ad7280a.yaml
new file mode 100644
index 000000000000..77b8f67fe446
--- /dev/null
+++ b/Documentation/devicetree/bindings/iio/adc/adi,ad7280a.yaml
@@ -0,0 +1,87 @@ 
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/iio/adc/adi,ad7280a.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Analog Devices AD7280a Lithium Ion Battery Monitoring System
+
+maintainers:
+  - Michael Hennerich <michael.hennerich@analog.com>
+  - Jonathan Cameron <jic23@kernel.org>
+
+description: |
+  Bindings for the Analog Devices AD7280a Battery Monitoring System.
+  Used in devices such as hybrid electric cars, battery backup and power tools.
+  Multiple chips can be daisy chained and accessed via a single SPI interface.
+  Data sheet found here:
+    https://www.analog.com/media/en/technical-documentation/data-sheets/AD7280A.pdf
+
+properties:
+  compatible:
+    const: adi,ad7280a
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    description: IRQ line for the ADC
+    maxItems: 1
+
+  spi-max-frequency: true
+
+  adi,temp-alert-last-chan:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      Allows limiting of scope of which channels are considered for temperature
+      alerts, typically because not all are wired to anything. Only applies to
+      last device in the daisy chain.
+    default: 5
+    enum: [3, 4, 5]
+
+  adi,voltage-alert-last-chan:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      Allows limiting of scope of which channels are considered for voltage
+      alerts, typically because not all are wired to anything. Only applies to
+      last device in the daisy chain.
+    default: 5
+    enum: [3, 4, 5]
+
+  adi,acquisition-time-ns:
+    description:
+      Additional time may be needed to charge the sampling capacitors depending
+      on external writing.
+    default: 400
+    enum: [400, 800, 1200, 1600]
+
+  adi,thermistor-termination:
+    type: boolean
+    description:
+      Enable the thermistor termination function.
+
+required:
+  - compatible
+  - reg
+
+additionalProperties: false
+
+examples:
+  - |
+    spi {
+      #address-cells = <1>;
+      #size-cells = <0>;
+
+      adc@0 {
+        compatible = "adi,ad7280a";
+        reg = <0>;
+        spi-max-frequency = <700000>;
+        interrupt-parent = <&gpio>;
+        interrupts = <25 2>;
+        adi,thermistor-termination;
+        adi,acquisition-time-ns = <800>;
+        adi,voltage-alert-last-chan = <5>;
+        adi,temp-alert-last-chan = <5>;
+      };
+    };
+...