lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date:   Mon, 2 Oct 2023 20:56:07 +0100
From:   Conor Dooley <conor@...nel.org>
To:     "Miclaus, Antoniu" <Antoniu.Miclaus@...log.com>
Cc:     Jean Delvare <jdelvare@...e.com>,
        Guenter Roeck <linux@...ck-us.net>,
        Rob Herring <robh+dt@...nel.org>,
        Krzysztof Kozlowski <krzysztof.kozlowski+dt@...aro.org>,
        Conor Dooley <conor+dt@...nel.org>,
        Jonathan Corbet <corbet@....net>,
        "linux-hwmon@...r.kernel.org" <linux-hwmon@...r.kernel.org>,
        "devicetree@...r.kernel.org" <devicetree@...r.kernel.org>,
        "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
        "linux-doc@...r.kernel.org" <linux-doc@...r.kernel.org>
Subject: Re: [PATCH v2 1/2] dt-bindings: hwmon: ltc2991: add bindings

On Mon, Oct 02, 2023 at 01:46:53PM +0000, Miclaus, Antoniu wrote:
> 
> 
> --
> Antoniu Miclăuş
> 
> > -----Original Message-----
> > From: Conor Dooley <conor@...nel.org>
> > Sent: Monday, October 2, 2023 4:01 PM
> > To: Miclaus, Antoniu <Antoniu.Miclaus@...log.com>
> > Cc: Jean Delvare <jdelvare@...e.com>; Guenter Roeck <linux@...ck-
> > us.net>; Rob Herring <robh+dt@...nel.org>; Krzysztof Kozlowski
> > <krzysztof.kozlowski+dt@...aro.org>; Conor Dooley
> > <conor+dt@...nel.org>; Jonathan Corbet <corbet@....net>; linux-
> > hwmon@...r.kernel.org; devicetree@...r.kernel.org; linux-
> > kernel@...r.kernel.org; linux-doc@...r.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@...log.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@...log.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
> > >

Download attachment "signature.asc" of type "application/pgp-signature" (229 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ