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 -- 2.31.1