From: Krzysztof Adamski <krzysztof.adamski@nokia.com>
To: Guenter Roeck <linux@roeck-us.net>, Jean Delvare <jdelvare@suse.com>
Cc: Rob Herring <robh+dt@kernel.org>,
linux-hwmon@vger.kernel.org, devicetree@vger.kernel.org
Subject: [PATCH 6/8] hwmon: (tmp421) support specifying n-factor via DT
Date: Tue, 7 Sep 2021 15:45:36 +0200 [thread overview]
Message-ID: <546898c479414a00e9caf8902d8d8db082a02668.1631021349.git.krzysztof.adamski@nokia.com> (raw)
In-Reply-To: <cover.1631021349.git.krzysztof.adamski@nokia.com>
Previous patches added a way to specify some channel specific parameters
in DT and n-factor is definitely one of them. This calibration mechanism
is board specific as its value depends on the diodes/transistors being
connected to the sensor and thus the DT seems like a right fit for that
information. It is very similar to the value of shunt resistor that some
drivers allows specifying in DT.
This patch adds a possibility to set n-factor for each channel via
"n-factor" DT property in each channel subnode.
Signed-off-by: Krzysztof Adamski <krzysztof.adamski@nokia.com>
---
drivers/hwmon/tmp421.c | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/drivers/hwmon/tmp421.c b/drivers/hwmon/tmp421.c
index a41d7935acb9..90c6b094785e 100644
--- a/drivers/hwmon/tmp421.c
+++ b/drivers/hwmon/tmp421.c
@@ -34,6 +34,7 @@ enum chips { tmp421, tmp422, tmp423, tmp441, tmp442 };
#define TMP421_STATUS_REG 0x08
#define TMP421_CONFIG_REG_1 0x09
#define TMP421_CONVERSION_RATE_REG 0x0B
+#define TMP421_N_FACTOR_REG_1 0x21
#define TMP421_MANUFACTURER_ID_REG 0xFE
#define TMP421_DEVICE_ID_REG 0xFF
@@ -302,6 +303,7 @@ void tmp421_probe_child_from_dt(struct i2c_client *client,
{
struct device *dev = &client->dev;
u32 i;
+ s32 val;
int err;
err = of_property_read_u32(child, "reg", &i);
@@ -321,6 +323,21 @@ void tmp421_probe_child_from_dt(struct i2c_client *client,
data->channel[i].disabled = true;
return;
}
+
+ if (i == 0)
+ return; /* input 0 is internal channel */
+
+ err = of_property_read_s32(child, "n-factor", &val);
+ if (!err) {
+ if (val > 127 || val < -128)
+ dev_err(dev, "n-factor for channel %d invalid (%d)\n",
+ i, val);
+ else
+ i2c_smbus_write_byte_data(client,
+ TMP421_N_FACTOR_REG_1 + i - 1,
+ val);
+ }
+
}
void tmp421_probe_from_dt(struct i2c_client *client, struct tmp421_data *data)
--
2.31.1
next prev parent reply other threads:[~2021-09-07 13:45 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 ` Krzysztof Adamski [this message]
2021-09-07 15:42 ` [PATCH 6/8] hwmon: (tmp421) support specifying n-factor via DT 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
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=546898c479414a00e9caf8902d8d8db082a02668.1631021349.git.krzysztof.adamski@nokia.com \
--to=krzysztof.adamski@nokia.com \
--cc=devicetree@vger.kernel.org \
--cc=jdelvare@suse.com \
--cc=linux-hwmon@vger.kernel.org \
--cc=linux@roeck-us.net \
--cc=robh+dt@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).