mbox series

[v5,0/9] Add per channel properies support in tmp421

Message ID cover.1634206677.git.krzysztof.adamski@nokia.com (mailing list archive)
Headers show
Series Add per channel properies support in tmp421 | expand

Message

Krzysztof Adamski Oct. 14, 2021, 1 p.m. UTC
Hi,

This series adds support for defining per-channel properies (like
n-factor and label) to the TMP421 driver. It starts by adding the
missing DT binding for tmp421, in the form that was there before any of
my changes. Then I do the changes to the driver and finally adjust the
bindings to my changes.

The precedence for this case is:
[PATCH v9 2/2] hwmon: (ina3221) Read channel input source info from DT
Which can be found here:
https://lkml.org/lkml/2018/10/2/136

My patches does similar thing but to tmp422 - we need a way to define
the labels for specific channels as well as to define the n-factor (that
is board specific as it depends on the diodes used for remote sensing).
A possibility to disable unused channels seems like a good idea too.

Here comes v5. Changes compared to v4:

- Use data->channels instead of MAX_CHANNELS to protect from specifying configuration for non-existing channels
- Return an error (instead of silently ignoring that) if n-factor is specified for internal channel
- Dropped some unneeded empty lines in tmp421_read
- Check attr, not type, in tmp421_write
- Fixed variable used for early return from tmp421_enable_channels
- Only update TMP421_CONFIG_REG_2 if it was changed

Changes compared to v3:
- fixed of by one error in the tmp421_probe_child_from_dt
- fixed errors in binding description
   - there are maximum 3 remote sensors
   - the n-factor range is -128..127
- changed "input@X" nodes into "channel@X" in DT
- changed "n-factor" property into "ti,n-factor" in DT

Changes compared to v2:
- fixed the $id path in DT
- moved the tmp421_enable_channels() call inside of tmp421_init_client()
- fixed some unneeded line brakes
- added "ignore non input related DT nodes" patch for skipping all
   subnodes that are not input@X without raising an error. I'm not
   completly convinced this is what we should do so I made it a separate
   patch so that you can easily skip it, if you decide to

Changes compared to v1:
- fixed sparse warnings about making function declarations static
- changed the policy for broken DT - in case of errors, the probe will
   return an error instead of continuing
- in addition to disabling the channels specified in DT, the probe
   function will also enable all the others in case they were disabled by
   some other code earlier
   NOTE: this may be a backwards incompatible change - if some channels
   were disabled by some bootloader code previously the channels would
   stay like that and now they would be enabled during probe, even if
   nothing is specified in DT. Is this what we want?
- added support for HWMON_T_ENABLE
- updated documentation
- NOTE: I haven't changed anything related to DT as the discussion has
   no clear conclusion yet.



Krzysztof Adamski (9):
   dt-bindings: hwmon: add missing tmp421 binding
   hwmon: (tmp421) add support for defining labels from DT
   hwmon: (tmp421) support disabling channels from DT
   hwmon: (tmp421) support specifying n-factor via DT
   hwmon: (tmp421) really disable channels
   hwmon: (tmp421) support HWMON_T_ENABLE
   hwmon: (tmp421) update documentation
   hwmon: (tmp421) ignore non-channel related DT nodes
   dt-bindings: hwmon: allow specifying channels for tmp421

  .../devicetree/bindings/hwmon/ti,tmp421.yaml  | 110 ++++++++++++
  Documentation/hwmon/tmp421.rst                |  10 ++
  drivers/hwmon/tmp421.c                        | 157 +++++++++++++++++-
  3 files changed, 272 insertions(+), 5 deletions(-)
  create mode 100644 Documentation/devicetree/bindings/hwmon/ti,tmp421.yaml