From: Guenter Roeck <linux@roeck-us.net>
To: Rob Herring <robh@kernel.org>
Cc: Krzysztof Adamski <krzysztof.adamski@nokia.com>,
Jean Delvare <jdelvare@suse.com>,
Linux HWMON List <linux-hwmon@vger.kernel.org>,
devicetree@vger.kernel.org, Oskar Senft <osk@google.com>
Subject: Re: [PATCH 8/8] dt-bindings: hwmon: allow specifying channels for tmp421
Date: Thu, 23 Sep 2021 17:29:51 -0700 [thread overview]
Message-ID: <20210924002951.GA3027924@roeck-us.net> (raw)
In-Reply-To: <CAL_Jsq+NXuF+F7OE3vyEbTUj6sxyMHVWHXbCuPPoFaKjpyZREQ@mail.gmail.com>
On Thu, Sep 23, 2021 at 10:30:59AM -0500, Rob Herring wrote:
> On Tue, Sep 21, 2021 at 3:52 PM Guenter Roeck <linux@roeck-us.net> wrote:
> >
> > On Tue, Sep 21, 2021 at 02:06:18PM -0500, Rob Herring wrote:
> > > On Tue, Sep 21, 2021 at 7:58 AM Guenter Roeck <linux@roeck-us.net> wrote:
> > > >
> > > > On Mon, Sep 20, 2021 at 05:24:09PM -0500, Rob Herring wrote:
> > > > > On Tue, Sep 07, 2021 at 03:46:14PM +0200, Krzysztof Adamski wrote:
> > > > > > Add binding description for the per temperature channel configuration
> > > > > > like labels and n-factor.
> > > > > >
> > > > > > Signed-off-by: Krzysztof Adamski <krzysztof.adamski@nokia.com>
> > > > > > ---
> > > > > > .../devicetree/bindings/hwmon/tmp421.yaml | 66 +++++++++++++++++++
> > > > > > 1 file changed, 66 insertions(+)
> > > > >
> > > > > I'd keep this separate...
> > > > >
> > > > > >
> > > > > > diff --git a/Documentation/devicetree/bindings/hwmon/tmp421.yaml b/Documentation/devicetree/bindings/hwmon/tmp421.yaml
> > > > > > index 53940e146ee6..56085fdf1b57 100644
> > > > > > --- a/Documentation/devicetree/bindings/hwmon/tmp421.yaml
> > > > > > +++ b/Documentation/devicetree/bindings/hwmon/tmp421.yaml
> > > > > > @@ -24,12 +24,49 @@ properties:
> > > > > > reg:
> > > > > > maxItems: 1
> > > > > >
> > > > > > + '#address-cells':
> > > > > > + const: 1
> > > > > > +
> > > > > > + '#size-cells':
> > > > > > + const: 0
> > > > > > +
> > > > > > required:
> > > > > > - compatible
> > > > > > - reg
> > > > > >
> > > > > > additionalProperties: false
> > > > > >
> > > > > > +patternProperties:
> > > > > > + "^input@([0-4])$":
> > > > > > + type: object
> > > > > > + description: |
> > > > > > + Represents channels of the device and their specific configuration.
> > > > > > +
> > > > > > + properties:
> > > > > > + reg:
> > > > > > + description: |
> > > > > > + The channel number. 0 is local channel, 1-4 are remote channels
> > > > > > + items:
> > > > > > + minimum: 0
> > > > > > + maximum: 4
> > > > > > +
> > > > > > + label:
> > > > > > + description: |
> > > > > > + A descriptive name for this channel, like "ambient" or "psu".
> > > > > > +
> > > > > > + n-factor:
> > > > >
> > > > > ti,n-factor
> > > >
> > > > n-factor isn't just supported by TI sensors, though it isn't always called
> > > > n-factor. Maxim (eg MAX6581) uses the term "ideality factor", though they
> > > > also refer to the factor as "N" in the datasheet.
> > > >
> > > > So question is if we make this ti,n-factor and maxim,n-factor, or if we make
> > > > it generic and define some kind of generic units. Thoughts ? My personal
> > > > preference would be a generic definition, but is not a strong preference.
> > >
> > > generic if the units are generic. Though if the register value is
> > > opaque to s/w, then maybe register value is fine.
> > >
> > > > In regard to units, the n-factor is, as the name says, a factor. Default
> > > > value is 1.008. The value range for MAX6581 is 0.999 to 1.030. For TMP421
> > > > it is 0.706542 to 1.747977. So the scondary question is if the value
> > > > written should be the register value (as proposed here) or the absolute
> > > > factor (eg in micro-units).
> > >
> > > A range, but the register value can only be 0 or 1?
> > >
> > No, register values are 0x0 .. 0x1f for MAX6581, and 0x0 .. 0xff for TMP421.
>
> Okay, then the schema below is wrong.
>
> > > > > Needs a type reference too.
> > > > >
> > > > > > + description: |
> > > > > > + The value (two's complement) to be programmed in the channel specific N correction register.
> > > > > > + For remote channels only.
> > > > > > + items:
> > > > > > + minimum: 0
> > > > > > + maximum: 1
> > > > > > +
> > > > > > + required:
> > > > > > + - reg
> > > > > > +
> > > > > > + additionalProperties: false
> > > > > > +
> > > > > > examples:
> > > > > > - |
> > > > > > i2c {
> > > > > > @@ -41,3 +78,32 @@ examples:
> > > > > > reg = <0x4c>;
> > > > > > };
> > > > > > };
> > > > > > + - |
> > > > > > + i2c {
> > > > > > + #address-cells = <1>;
> > > > > > + #size-cells = <0>;
> > > > > > +
> > > > > > + sensor@4c {
> > > > > > + compatible = "ti,tmp422";
> > > > > > + reg = <0x4c>;
> > > > > > + #address-cells = <1>;
> > > > > > + #size-cells = <0>;
> > > > > > +
> > > > > > + input@0 {
> > > > > > + reg = <0x0>;
> > > > > > + n-factor = <0x1>;
> > > > > > + label = "local";
> > > > > > + };
> > > >
> > > > In the context or other sensors, question here is if we can make the
> > > > bindings generic. We have been discussing this for NCT7802Y. The main
> > > > question for me is how to handle different sensor types. TMP421 is
> > > > easy because it only has one type of sensors, but there are other
> > > > devices which also have, for example, voltage and/or current sensors.
> > > > NCT7802 is an example for that. We just had a set of bindings for that
> > > > chip proposed at
> > > > https://patchwork.kernel.org/project/linux-hwmon/patch/20210921004627.2786132-1-osk@google.com/
> > > >
> > > > Would it be possible to determine a generic scheme that works for all
> > > > chips ? I can see two problems:
> > > > - How to express sensor types. The NCT7802 submission proposes another level
> > > > of indirection, ie
> > > >
> > > > temperature-sensors {
> > > > > > +
> > > > > > + input@1 {
> > > > > > + reg = <0x1>;
> > > > > > + n-factor = <0x0>;
> > > > > > + label = "somelabel";
> > > > > > + };
> > > > > > +
> > > > > > + input@2 {
> > > > > > + reg = <0x2>;
> > > > > > + status = "disabled";
> > > > > > + };
> > > > > > + };
> > > > > > + };
> > > > };
> > >
> > > I think the function should be within the node. Otherwise, the
> > > addressing becomes weird (e.g. input@3 is under current-sensors or
> > > something) with seemingly separate address spaces.
> > >
> >
> > Sorry, can you translate that for a DT non-expert ? Or, in other words,
> > how would / should one express a chip with sets of, say, current-sensors,
> > voltage sensors, and temperature sensors. Each would have a different
> > number of channels and different parameters.
>
> If each kind of sensor is a different number space (e.g. 0-2), then
> how you have it with 2 levels of nodes is appropriate. If you only
> have one set of channel or input numbers, then they should all have
> the same parent node. So is it current sensors 0,1,2 and temperature
> sensors 0,1,2, or just input channels 0,1,2,3,4,5?
>
Each sensor type has its own number space.
> > > > The second question is how to express sensor index. One option is the solution
> > > > suggested here, ie to use reg=<> as sensor index. The second is the solution
> > > > suggested in the 7802 bindings, where the (chip specific) name is used as
> > > > sensor index.
> > > >
> > > > + temperature-sensors {
> > > > + ltd {
> > > > + status = "disabled";
> > > > + };
> > > > +
> > > > + rtd1 {
> > > > + status = "okay";
> > > > + type = <4> /* thermistor */;
> > >
> > > 'type' is a bit generic. We don't want the same property name to
> > > possibly have multiple definitions.
> > >
> > How about sensor-type ?
>
> Sure. And you are going to define a common set of type numbers?
>
I guess we would have to.
Guenter
next prev parent reply other threads:[~2021-09-24 0:29 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-09-07 13:41 [PATCH 0/8] Add per channel properies support in tmp421 Krzysztof Adamski
2021-09-07 13:42 ` [PATCH 1/8] dt-bindings: hwmon: add missing tmp421 binding Krzysztof Adamski
2021-09-20 22:21 ` Rob Herring
2021-09-07 13:42 ` [PATCH 2/8] hwmon: (tmp421) introduce MAX_CHANNELS define Krzysztof Adamski
2021-09-07 13:43 ` [PATCH 3/8] hwmon: (tmp421) introduce a channel struct Krzysztof Adamski
2021-09-07 13:43 ` [PATCH 4/8] hwmon: (tmp421) add support for defining labels from DT Krzysztof Adamski
2021-09-07 15:46 ` Guenter Roeck
2021-09-07 17:49 ` Krzysztof Adamski
2021-09-07 17:55 ` Guenter Roeck
2021-09-07 18:08 ` Krzysztof Adamski
2021-09-07 18:28 ` kernel test robot
2021-09-09 17:29 ` kernel test robot
2021-09-09 17:29 ` [RFC PATCH] hwmon: tmp421_probe_child_from_dt() can be static kernel test robot
2021-09-07 13:43 ` [PATCH 5/8] hwmon: (tmp421) support disabling channels from DT Krzysztof Adamski
2021-09-07 15:33 ` Guenter Roeck
2021-09-07 13:45 ` [PATCH 6/8] hwmon: (tmp421) support specifying n-factor via DT Krzysztof Adamski
2021-09-07 15:42 ` Guenter Roeck
2021-09-07 13:46 ` [PATCH 7/8] hwmon: (tmp421) really disable channels Krzysztof Adamski
2021-09-07 15:37 ` Guenter Roeck
2021-09-07 19:52 ` kernel test robot
2021-09-09 20:40 ` kernel test robot
2021-09-09 20:40 ` [RFC PATCH] hwmon: tmp421_disable_channels() can be static kernel test robot
2021-09-07 13:46 ` [PATCH 8/8] dt-bindings: hwmon: allow specifying channels for tmp421 Krzysztof Adamski
2021-09-07 15:46 ` Guenter Roeck
2021-09-07 18:04 ` Krzysztof Adamski
2021-09-20 22:24 ` Rob Herring
2021-09-21 12:58 ` Guenter Roeck
2021-09-21 19:06 ` Rob Herring
2021-09-21 20:52 ` Guenter Roeck
2021-09-21 21:21 ` Oskar Senft
2021-09-21 22:03 ` Oskar Senft
2021-09-23 15:30 ` Rob Herring
2021-09-24 0:29 ` Guenter Roeck [this message]
2021-09-24 7:53 ` Krzysztof Adamski
2021-09-24 11:46 ` Guenter Roeck
2021-09-24 15:37 ` Oskar Senft
2021-09-25 13:26 ` Guenter Roeck
2021-10-08 12:55 ` Oskar Senft
2021-10-08 13:11 ` Guenter Roeck
2021-09-22 7:22 ` Krzysztof Adamski
2021-09-22 12:39 ` Guenter Roeck
2021-09-22 18:32 ` Krzysztof Adamski
2021-09-23 0:38 ` Guenter Roeck
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210924002951.GA3027924@roeck-us.net \
--to=linux@roeck-us.net \
--cc=devicetree@vger.kernel.org \
--cc=jdelvare@suse.com \
--cc=krzysztof.adamski@nokia.com \
--cc=linux-hwmon@vger.kernel.org \
--cc=osk@google.com \
--cc=robh@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).