diff mbox series

[v2,1/2] dt-bindings: hwmon: ltc2991: add bindings

Message ID 20231002101835.39624-1-antoniu.miclaus@analog.com (mailing list archive)
State Superseded
Headers show
Series [v2,1/2] dt-bindings: hwmon: ltc2991: add bindings | expand

Commit Message

Antoniu Miclaus Oct. 2, 2023, 10:18 a.m. UTC
Add dt-bindings for ltc2991 octal i2c voltage, current and temperature
monitor.

Signed-off-by: Antoniu Miclaus <antoniu.miclaus@analog.com>
---
changes in v2:
 - make compatible const type
 - remove `|` where not necessary
 - switch to micro-ohms for the shunt resistor property
 - add vendor prefix for temperature-enable
 .../bindings/hwmon/adi,ltc2991.yaml           | 114 ++++++++++++++++++
 1 file changed, 114 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/hwmon/adi,ltc2991.yaml

Comments

Conor Dooley Oct. 2, 2023, 1 p.m. UTC | #1
Hey,

On Mon, Oct 02, 2023 at 01:18:14PM +0300, Antoniu Miclaus wrote:
> Add dt-bindings for ltc2991 octal i2c voltage, current and temperature
> monitor.
> 
> Signed-off-by: Antoniu Miclaus <antoniu.miclaus@analog.com>
> ---
> changes in v2:
>  - make compatible const type
>  - remove `|` where not necessary
>  - switch to micro-ohms for the shunt resistor property
>  - add vendor prefix for temperature-enable

Thanks for the updates...

>  .../bindings/hwmon/adi,ltc2991.yaml           | 114 ++++++++++++++++++
>  1 file changed, 114 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/hwmon/adi,ltc2991.yaml
> 
> diff --git a/Documentation/devicetree/bindings/hwmon/adi,ltc2991.yaml b/Documentation/devicetree/bindings/hwmon/adi,ltc2991.yaml
> new file mode 100644
> index 000000000000..3811ea07a04f
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/hwmon/adi,ltc2991.yaml
> @@ -0,0 +1,114 @@
> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +
> +$id: http://devicetree.org/schemas/hwmon/adi,ltc2991.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Analog Devices LTC2991 Octal I2C Voltage, Current and Temperature Monitor
> +
> +maintainers:
> +  - Antoniu Miclaus <antoniu.miclaus@analog.com>
> +
> +description: |
> +  The LTC2991 is used to monitor system temperatures, voltages and currents.
> +  Through the I2C serial interface, the eight monitors can individually measure
> +  supply voltages and can be paired for differential measurements of current
> +  sense resistors or temperature sensing transistors.
> +
> +  Datasheet:
> +    https://www.analog.com/en/products/ltc2991.html
> +
> +properties:
> +  compatible:
> +    const: adi,ltc2991
> +
> +  reg:
> +    maxItems: 1
> +
> +  '#address-cells':
> +    const: 1
> +
> +  '#size-cells':
> +    const: 0
> +
> +  vcc-supply: true
> +
> +patternProperties:
> +  "^channel@[0-3]$":
> +    type: object
> +    description:
> +      Represents the differential/temperature channels.
> +
> +    properties:
> +      reg:
> +        description:
> +          The channel number. LTC2991 can monitor 4 currents/temperatures.
> +        items:
> +          minimum: 0
> +          maximum: 3
> +
> +      shunt-resistor-micro-ohms:
> +        description:
> +          The value of curent sense resistor in miliohms. Enables differential
> +          input pair.
> +
> +      adi,temperature-enable:
> +        description:
> +          Enables temperature readings for a input pair.
> +        type: boolean

...but I did not see an answer to my question on v1:
	TBH, this seems like it is used just to control software behaviour.
	Why would you want to actually disable this in DT?
In other words, is there something in that hardware that precludes
measuring temperature for channels that do not contain this property?

Thanks,
Conor.

> +
> +required:
> +  - compatible
> +  - reg
> +  - vcc-supply
> +
> +additionalProperties: false
> +
> +examples:
> +  - |
> +    i2c {
> +        #address-cells = <1>;
> +        #size-cells = <0>;
> +
> +        hwmon@48 {
> +            compatible = "adi,ltc2991";
> +            reg = <0x48>;
> +            vcc-supply = <&vcc>;
> +        };
> +    };
> +  - |
> +    i2c {
> +        #address-cells = <1>;
> +        #size-cells = <0>;
> +
> +        hwmon@48 {
> +            #address-cells = <1>;
> +            #size-cells = <0>;
> +
> +            compatible = "adi,ltc2991";
> +            reg = <0x48>;
> +            vcc-supply = <&vcc>;
> +
> +            channel@0 {
> +                    reg = <0x0>;
> +                    shunt-resistor-micro-ohms = <100000>;
> +            };
> +
> +            channel@1 {
> +                    reg = <0x1>;
> +                    shunt-resistor-micro-ohms = <100000>;
> +            };
> +
> +            channel@2 {
> +                    reg = <0x2>;
> +                    temperature-enable;
> +            };
> +
> +            channel@3 {
> +                    reg = <0x3>;
> +                    temperature-enable;
> +            };
> +        };
> +    };
> +...
> -- 
> 2.42.0
>
Antoniu Miclaus Oct. 2, 2023, 1:46 p.m. UTC | #2
--
Antoniu Miclăuş

> -----Original Message-----
> From: Conor Dooley <conor@kernel.org>
> Sent: Monday, October 2, 2023 4:01 PM
> To: Miclaus, Antoniu <Antoniu.Miclaus@analog.com>
> Cc: Jean Delvare <jdelvare@suse.com>; Guenter Roeck <linux@roeck-
> us.net>; Rob Herring <robh+dt@kernel.org>; Krzysztof Kozlowski
> <krzysztof.kozlowski+dt@linaro.org>; Conor Dooley
> <conor+dt@kernel.org>; Jonathan Corbet <corbet@lwn.net>; linux-
> hwmon@vger.kernel.org; devicetree@vger.kernel.org; linux-
> kernel@vger.kernel.org; linux-doc@vger.kernel.org
> Subject: Re: [PATCH v2 1/2] dt-bindings: hwmon: ltc2991: add bindings
> 
> [External]
> 
> Hey,
> 
> On Mon, Oct 02, 2023 at 01:18:14PM +0300, Antoniu Miclaus wrote:
> > Add dt-bindings for ltc2991 octal i2c voltage, current and temperature
> > monitor.
> >
> > Signed-off-by: Antoniu Miclaus <antoniu.miclaus@analog.com>
> > ---
> > changes in v2:
> >  - make compatible const type
> >  - remove `|` where not necessary
> >  - switch to micro-ohms for the shunt resistor property
> >  - add vendor prefix for temperature-enable
> 
> Thanks for the updates...
> 
> >  .../bindings/hwmon/adi,ltc2991.yaml           | 114 ++++++++++++++++++
> >  1 file changed, 114 insertions(+)
> >  create mode 100644
> Documentation/devicetree/bindings/hwmon/adi,ltc2991.yaml
> >
> > diff --git a/Documentation/devicetree/bindings/hwmon/adi,ltc2991.yaml
> b/Documentation/devicetree/bindings/hwmon/adi,ltc2991.yaml
> > new file mode 100644
> > index 000000000000..3811ea07a04f
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/hwmon/adi,ltc2991.yaml
> > @@ -0,0 +1,114 @@
> > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> > +%YAML 1.2
> > +---
> > +
> > +$id: http://devicetree.org/schemas/hwmon/adi,ltc2991.yaml#
> > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > +
> > +title: Analog Devices LTC2991 Octal I2C Voltage, Current and Temperature
> Monitor
> > +
> > +maintainers:
> > +  - Antoniu Miclaus <antoniu.miclaus@analog.com>
> > +
> > +description: |
> > +  The LTC2991 is used to monitor system temperatures, voltages and
> currents.
> > +  Through the I2C serial interface, the eight monitors can individually
> measure
> > +  supply voltages and can be paired for differential measurements of
> current
> > +  sense resistors or temperature sensing transistors.
> > +
> > +  Datasheet:
> > +    https://www.analog.com/en/products/ltc2991.html
> > +
> > +properties:
> > +  compatible:
> > +    const: adi,ltc2991
> > +
> > +  reg:
> > +    maxItems: 1
> > +
> > +  '#address-cells':
> > +    const: 1
> > +
> > +  '#size-cells':
> > +    const: 0
> > +
> > +  vcc-supply: true
> > +
> > +patternProperties:
> > +  "^channel@[0-3]$":
> > +    type: object
> > +    description:
> > +      Represents the differential/temperature channels.
> > +
> > +    properties:
> > +      reg:
> > +        description:
> > +          The channel number. LTC2991 can monitor 4 currents/temperatures.
> > +        items:
> > +          minimum: 0
> > +          maximum: 3
> > +
> > +      shunt-resistor-micro-ohms:
> > +        description:
> > +          The value of curent sense resistor in miliohms. Enables differential
> > +          input pair.
> > +
> > +      adi,temperature-enable:
> > +        description:
> > +          Enables temperature readings for a input pair.
> > +        type: boolean
> 
> ...but I did not see an answer to my question on v1:
> 	TBH, this seems like it is used just to control software behaviour.
> 	Why would you want to actually disable this in DT?
> In other words, is there something in that hardware that precludes
> measuring temperature for channels that do not contain this property?
> 
> Thanks,
> Conor.
> 
Sorry for missing that. I took in consideration this approach based on the pin functions
described in the datasheet (page 8 of 32). For example the V1 pin of the part can support
3 different configurations: "V1 (Pin 1): First Monitor Input. This pin can be configured
as a single-ended input (0V to 4.9V) or the positive inputfor a differential or remote diode
temperature measurement (in combination with V2)."
Moreover, looking at the multiple typical applications examples at the end of the datasheet
there is a specific adjacent hardware circuit connected to this part for the temperature
measurements configurations.

Thank you,
Antoniu
> > +
> > +required:
> > +  - compatible
> > +  - reg
> > +  - vcc-supply
> > +
> > +additionalProperties: false
> > +
> > +examples:
> > +  - |
> > +    i2c {
> > +        #address-cells = <1>;
> > +        #size-cells = <0>;
> > +
> > +        hwmon@48 {
> > +            compatible = "adi,ltc2991";
> > +            reg = <0x48>;
> > +            vcc-supply = <&vcc>;
> > +        };
> > +    };
> > +  - |
> > +    i2c {
> > +        #address-cells = <1>;
> > +        #size-cells = <0>;
> > +
> > +        hwmon@48 {
> > +            #address-cells = <1>;
> > +            #size-cells = <0>;
> > +
> > +            compatible = "adi,ltc2991";
> > +            reg = <0x48>;
> > +            vcc-supply = <&vcc>;
> > +
> > +            channel@0 {
> > +                    reg = <0x0>;
> > +                    shunt-resistor-micro-ohms = <100000>;
> > +            };
> > +
> > +            channel@1 {
> > +                    reg = <0x1>;
> > +                    shunt-resistor-micro-ohms = <100000>;
> > +            };
> > +
> > +            channel@2 {
> > +                    reg = <0x2>;
> > +                    temperature-enable;
> > +            };
> > +
> > +            channel@3 {
> > +                    reg = <0x3>;
> > +                    temperature-enable;
> > +            };
> > +        };
> > +    };
> > +...
> > --
> > 2.42.0
> >
Rob Herring (Arm) Oct. 2, 2023, 7:38 p.m. UTC | #3
On Mon, Oct 02, 2023 at 01:46:53PM +0000, Miclaus, Antoniu wrote:
> 
> 
> --
> Antoniu Miclăuş
> 
> > -----Original Message-----
> > From: Conor Dooley <conor@kernel.org>
> > Sent: Monday, October 2, 2023 4:01 PM
> > To: Miclaus, Antoniu <Antoniu.Miclaus@analog.com>
> > Cc: Jean Delvare <jdelvare@suse.com>; Guenter Roeck <linux@roeck-
> > us.net>; Rob Herring <robh+dt@kernel.org>; Krzysztof Kozlowski
> > <krzysztof.kozlowski+dt@linaro.org>; Conor Dooley
> > <conor+dt@kernel.org>; Jonathan Corbet <corbet@lwn.net>; linux-
> > hwmon@vger.kernel.org; devicetree@vger.kernel.org; linux-
> > kernel@vger.kernel.org; linux-doc@vger.kernel.org
> > Subject: Re: [PATCH v2 1/2] dt-bindings: hwmon: ltc2991: add bindings
> > 
> > [External]
> > 
> > Hey,
> > 
> > On Mon, Oct 02, 2023 at 01:18:14PM +0300, Antoniu Miclaus wrote:
> > > Add dt-bindings for ltc2991 octal i2c voltage, current and temperature
> > > monitor.
> > >
> > > Signed-off-by: Antoniu Miclaus <antoniu.miclaus@analog.com>
> > > ---
> > > changes in v2:
> > >  - make compatible const type
> > >  - remove `|` where not necessary
> > >  - switch to micro-ohms for the shunt resistor property
> > >  - add vendor prefix for temperature-enable
> > 
> > Thanks for the updates...
> > 
> > >  .../bindings/hwmon/adi,ltc2991.yaml           | 114 ++++++++++++++++++
> > >  1 file changed, 114 insertions(+)
> > >  create mode 100644
> > Documentation/devicetree/bindings/hwmon/adi,ltc2991.yaml
> > >
> > > diff --git a/Documentation/devicetree/bindings/hwmon/adi,ltc2991.yaml
> > b/Documentation/devicetree/bindings/hwmon/adi,ltc2991.yaml
> > > new file mode 100644
> > > index 000000000000..3811ea07a04f
> > > --- /dev/null
> > > +++ b/Documentation/devicetree/bindings/hwmon/adi,ltc2991.yaml
> > > @@ -0,0 +1,114 @@
> > > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> > > +%YAML 1.2
> > > +---
> > > +
> > > +$id: http://devicetree.org/schemas/hwmon/adi,ltc2991.yaml#
> > > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > > +
> > > +title: Analog Devices LTC2991 Octal I2C Voltage, Current and Temperature
> > Monitor
> > > +
> > > +maintainers:
> > > +  - Antoniu Miclaus <antoniu.miclaus@analog.com>
> > > +
> > > +description: |
> > > +  The LTC2991 is used to monitor system temperatures, voltages and
> > currents.
> > > +  Through the I2C serial interface, the eight monitors can individually
> > measure
> > > +  supply voltages and can be paired for differential measurements of
> > current
> > > +  sense resistors or temperature sensing transistors.
> > > +
> > > +  Datasheet:
> > > +    https://www.analog.com/en/products/ltc2991.html
> > > +
> > > +properties:
> > > +  compatible:
> > > +    const: adi,ltc2991
> > > +
> > > +  reg:
> > > +    maxItems: 1
> > > +
> > > +  '#address-cells':
> > > +    const: 1
> > > +
> > > +  '#size-cells':
> > > +    const: 0
> > > +
> > > +  vcc-supply: true
> > > +
> > > +patternProperties:
> > > +  "^channel@[0-3]$":
> > > +    type: object
> > > +    description:
> > > +      Represents the differential/temperature channels.
> > > +
> > > +    properties:
> > > +      reg:
> > > +        description:
> > > +          The channel number. LTC2991 can monitor 4 currents/temperatures.
> > > +        items:
> > > +          minimum: 0
> > > +          maximum: 3
> > > +
> > > +      shunt-resistor-micro-ohms:
> > > +        description:
> > > +          The value of curent sense resistor in miliohms. Enables differential
> > > +          input pair.
> > > +
> > > +      adi,temperature-enable:
> > > +        description:
> > > +          Enables temperature readings for a input pair.
> > > +        type: boolean
> > 
> > ...but I did not see an answer to my question on v1:
> > 	TBH, this seems like it is used just to control software behaviour.
> > 	Why would you want to actually disable this in DT?
> > In other words, is there something in that hardware that precludes
> > measuring temperature for channels that do not contain this property?
> > 
> > Thanks,
> > Conor.
> > 
> Sorry for missing that. I took in consideration this approach based on the pin functions
> described in the datasheet (page 8 of 32). For example the V1 pin of the part can support
> 3 different configurations: "V1 (Pin 1): First Monitor Input. This pin can be configured
> as a single-ended input (0V to 4.9V) or the positive inputfor a differential or remote diode
> temperature measurement (in combination with V2)."
> Moreover, looking at the multiple typical applications examples at the end of the datasheet
> there is a specific adjacent hardware circuit connected to this part for the temperature
> measurements configurations.

Makes sense. Please expand the description with some of this detail so 
the purpose is clear. The description should answer when do I set this 
property or not.

Rob
Conor Dooley Oct. 2, 2023, 7:56 p.m. UTC | #4
On Mon, Oct 02, 2023 at 01:46:53PM +0000, Miclaus, Antoniu wrote:
> 
> 
> --
> Antoniu Miclăuş
> 
> > -----Original Message-----
> > From: Conor Dooley <conor@kernel.org>
> > Sent: Monday, October 2, 2023 4:01 PM
> > To: Miclaus, Antoniu <Antoniu.Miclaus@analog.com>
> > Cc: Jean Delvare <jdelvare@suse.com>; Guenter Roeck <linux@roeck-
> > us.net>; Rob Herring <robh+dt@kernel.org>; Krzysztof Kozlowski
> > <krzysztof.kozlowski+dt@linaro.org>; Conor Dooley
> > <conor+dt@kernel.org>; Jonathan Corbet <corbet@lwn.net>; linux-
> > hwmon@vger.kernel.org; devicetree@vger.kernel.org; linux-
> > kernel@vger.kernel.org; linux-doc@vger.kernel.org
> > Subject: Re: [PATCH v2 1/2] dt-bindings: hwmon: ltc2991: add bindings
> > 
> > [External]
> > 
> > Hey,
> > 
> > On Mon, Oct 02, 2023 at 01:18:14PM +0300, Antoniu Miclaus wrote:
> > > Add dt-bindings for ltc2991 octal i2c voltage, current and temperature
> > > monitor.
> > >
> > > Signed-off-by: Antoniu Miclaus <antoniu.miclaus@analog.com>
> > > ---
> > > changes in v2:
> > >  - make compatible const type
> > >  - remove `|` where not necessary
> > >  - switch to micro-ohms for the shunt resistor property
> > >  - add vendor prefix for temperature-enable
> > 
> > Thanks for the updates...
> > 
> > >  .../bindings/hwmon/adi,ltc2991.yaml           | 114 ++++++++++++++++++
> > >  1 file changed, 114 insertions(+)
> > >  create mode 100644
> > Documentation/devicetree/bindings/hwmon/adi,ltc2991.yaml
> > >
> > > diff --git a/Documentation/devicetree/bindings/hwmon/adi,ltc2991.yaml
> > b/Documentation/devicetree/bindings/hwmon/adi,ltc2991.yaml
> > > new file mode 100644
> > > index 000000000000..3811ea07a04f
> > > --- /dev/null
> > > +++ b/Documentation/devicetree/bindings/hwmon/adi,ltc2991.yaml
> > > @@ -0,0 +1,114 @@
> > > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> > > +%YAML 1.2
> > > +---
> > > +
> > > +$id: http://devicetree.org/schemas/hwmon/adi,ltc2991.yaml#
> > > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > > +
> > > +title: Analog Devices LTC2991 Octal I2C Voltage, Current and Temperature
> > Monitor
> > > +
> > > +maintainers:
> > > +  - Antoniu Miclaus <antoniu.miclaus@analog.com>
> > > +
> > > +description: |
> > > +  The LTC2991 is used to monitor system temperatures, voltages and
> > currents.
> > > +  Through the I2C serial interface, the eight monitors can individually
> > measure
> > > +  supply voltages and can be paired for differential measurements of
> > current
> > > +  sense resistors or temperature sensing transistors.
> > > +
> > > +  Datasheet:
> > > +    https://www.analog.com/en/products/ltc2991.html
> > > +
> > > +properties:
> > > +  compatible:
> > > +    const: adi,ltc2991
> > > +
> > > +  reg:
> > > +    maxItems: 1
> > > +
> > > +  '#address-cells':
> > > +    const: 1
> > > +
> > > +  '#size-cells':
> > > +    const: 0
> > > +
> > > +  vcc-supply: true
> > > +
> > > +patternProperties:
> > > +  "^channel@[0-3]$":
> > > +    type: object
> > > +    description:
> > > +      Represents the differential/temperature channels.

Missing "additionalProperties: false". Once added, it finds that you
didn't update the child nodes to account for the addition of the vendor
prefix.

> > > +
> > > +    properties:
> > > +      reg:
> > > +        description:
> > > +          The channel number. LTC2991 can monitor 4 currents/temperatures.
> > > +        items:
> > > +          minimum: 0
> > > +          maximum: 3

Should reg not be required here?

> > > +
> > > +      shunt-resistor-micro-ohms:
> > > +        description:
> > > +          The value of curent sense resistor in miliohms. Enables differential
> > > +          input pair.
> > > +
> > > +      adi,temperature-enable:
> > > +        description:
> > > +          Enables temperature readings for a input pair.
> > > +        type: boolean
> > 
> > ...but I did not see an answer to my question on v1:
> > 	TBH, this seems like it is used just to control software behaviour.
> > 	Why would you want to actually disable this in DT?
> > In other words, is there something in that hardware that precludes
> > measuring temperature for channels that do not contain this property?
> > 
> > Thanks,
> > Conor.
> > 
> Sorry for missing that. I took in consideration this approach based on the pin functions
> described in the datasheet (page 8 of 32). For example the V1 pin of the part can support
> 3 different configurations: "V1 (Pin 1): First Monitor Input. This pin can be configured
> as a single-ended input (0V to 4.9V) or the positive inputfor a differential or remote diode
> temperature measurement (in combination with V2)."
> Moreover, looking at the multiple typical applications examples at the end of the datasheet
> there is a specific adjacent hardware circuit connected to this part for the temperature
> measurements configurations.

Okay. That seems fair to me, thanks for the explanation. From your
description here it sounds like the pins between which differential
measurements are made are fixed in hardware. Is that correct?

One final question - from your description here it sounds like
shunt-resistor-micro-ohms & adi,temperature-enable are mutually
exclusive? If they are indeed mutually exclusive, you can fold in
something like the below.
diff --git a/Documentation/devicetree/bindings/hwmon/adi,ltc2991.yaml b/Documentation/devicetree/bindings/hwmon/adi,ltc2991.yaml
index 3811ea07a04f..8b1bbbfe7948 100644
--- a/Documentation/devicetree/bindings/hwmon/adi,ltc2991.yaml
+++ b/Documentation/devicetree/bindings/hwmon/adi,ltc2991.yaml
@@ -39,6 +39,7 @@ patternProperties:
     type: object
     description:
       Represents the differential/temperature channels.
+    additionalProperties: false
 
     properties:
       reg:
@@ -58,6 +59,17 @@ patternProperties:
           Enables temperature readings for a input pair.
         type: boolean
 
+    required:
+      - reg
+
+    allOf:
+      - if:
+          required:
+            - shunt-resistor-micro-ohms
+        then:
+          properties:
+            adi,temperature-enable: false
+
 required:
   - compatible
   - reg

Cheers,
Conor.

> 
> Thank you,
> Antoniu
> > > +
> > > +required:
> > > +  - compatible
> > > +  - reg
> > > +  - vcc-supply
> > > +
> > > +additionalProperties: false
> > > +
> > > +examples:
> > > +  - |
> > > +    i2c {
> > > +        #address-cells = <1>;
> > > +        #size-cells = <0>;
> > > +
> > > +        hwmon@48 {
> > > +            compatible = "adi,ltc2991";
> > > +            reg = <0x48>;
> > > +            vcc-supply = <&vcc>;
> > > +        };
> > > +    };
> > > +  - |
> > > +    i2c {
> > > +        #address-cells = <1>;
> > > +        #size-cells = <0>;
> > > +
> > > +        hwmon@48 {
> > > +            #address-cells = <1>;
> > > +            #size-cells = <0>;
> > > +
> > > +            compatible = "adi,ltc2991";
> > > +            reg = <0x48>;
> > > +            vcc-supply = <&vcc>;
> > > +
> > > +            channel@0 {
> > > +                    reg = <0x0>;
> > > +                    shunt-resistor-micro-ohms = <100000>;
> > > +            };
> > > +
> > > +            channel@1 {
> > > +                    reg = <0x1>;
> > > +                    shunt-resistor-micro-ohms = <100000>;
> > > +            };
> > > +
> > > +            channel@2 {
> > > +                    reg = <0x2>;
> > > +                    temperature-enable;
> > > +            };
> > > +
> > > +            channel@3 {
> > > +                    reg = <0x3>;
> > > +                    temperature-enable;
> > > +            };
> > > +        };
> > > +    };
> > > +...
> > > --
> > > 2.42.0
> > >
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/hwmon/adi,ltc2991.yaml b/Documentation/devicetree/bindings/hwmon/adi,ltc2991.yaml
new file mode 100644
index 000000000000..3811ea07a04f
--- /dev/null
+++ b/Documentation/devicetree/bindings/hwmon/adi,ltc2991.yaml
@@ -0,0 +1,114 @@ 
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+
+$id: http://devicetree.org/schemas/hwmon/adi,ltc2991.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Analog Devices LTC2991 Octal I2C Voltage, Current and Temperature Monitor
+
+maintainers:
+  - Antoniu Miclaus <antoniu.miclaus@analog.com>
+
+description: |
+  The LTC2991 is used to monitor system temperatures, voltages and currents.
+  Through the I2C serial interface, the eight monitors can individually measure
+  supply voltages and can be paired for differential measurements of current
+  sense resistors or temperature sensing transistors.
+
+  Datasheet:
+    https://www.analog.com/en/products/ltc2991.html
+
+properties:
+  compatible:
+    const: adi,ltc2991
+
+  reg:
+    maxItems: 1
+
+  '#address-cells':
+    const: 1
+
+  '#size-cells':
+    const: 0
+
+  vcc-supply: true
+
+patternProperties:
+  "^channel@[0-3]$":
+    type: object
+    description:
+      Represents the differential/temperature channels.
+
+    properties:
+      reg:
+        description:
+          The channel number. LTC2991 can monitor 4 currents/temperatures.
+        items:
+          minimum: 0
+          maximum: 3
+
+      shunt-resistor-micro-ohms:
+        description:
+          The value of curent sense resistor in miliohms. Enables differential
+          input pair.
+
+      adi,temperature-enable:
+        description:
+          Enables temperature readings for a input pair.
+        type: boolean
+
+required:
+  - compatible
+  - reg
+  - vcc-supply
+
+additionalProperties: false
+
+examples:
+  - |
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        hwmon@48 {
+            compatible = "adi,ltc2991";
+            reg = <0x48>;
+            vcc-supply = <&vcc>;
+        };
+    };
+  - |
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        hwmon@48 {
+            #address-cells = <1>;
+            #size-cells = <0>;
+
+            compatible = "adi,ltc2991";
+            reg = <0x48>;
+            vcc-supply = <&vcc>;
+
+            channel@0 {
+                    reg = <0x0>;
+                    shunt-resistor-micro-ohms = <100000>;
+            };
+
+            channel@1 {
+                    reg = <0x1>;
+                    shunt-resistor-micro-ohms = <100000>;
+            };
+
+            channel@2 {
+                    reg = <0x2>;
+                    temperature-enable;
+            };
+
+            channel@3 {
+                    reg = <0x3>;
+                    temperature-enable;
+            };
+        };
+    };
+...