devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2] lm87: Allow channel data to be set from dts file.
@ 2016-09-20  5:22 Mahoda Ratnayaka
       [not found] ` <20160920052240.10242-1-mahoda.ratnayaka-6g8wRflRTwXFdCa3tKVlE6U/zSkkHjvu@public.gmane.org>
  0 siblings, 1 reply; 5+ messages in thread
From: Mahoda Ratnayaka @ 2016-09-20  5:22 UTC (permalink / raw)
  To: Jean Delvare, Guenter Roeck, linux-hwmon, devicetree, Rob Herring
  Cc: Mahoda Ratnayaka, Chris Packham

Currently there is no method for setting the channel
value from the DTS file. When, the driver uses a dts
file to initialize the driver platform_data is not set.
As a the result channel variable may not be set correctly.

Without the channel variable set correctly, some of the
sensors will not be initialized correctly. For example
temp3 sensor sysfs entries.

This adds the required functionality to set the channel
variable from the DTS file. This is done via reading the
reading a property named "channel" from the lm87 driver.

Signed-off-by: Mahoda Ratnayaka <mahoda.ratnayaka@alliedtelesis.co.nz>
---

Notes:
     changes since v1:
     Removed unncessary variables channel and np.
     Update the code as per review comments.

 Documentation/devicetree/bindings/hwmon/lm87.txt | 9 +++++++++
 drivers/hwmon/lm87.c                             | 7 ++++++-
 2 files changed, 15 insertions(+), 1 deletion(-)

diff --git a/Documentation/devicetree/bindings/hwmon/lm87.txt b/Documentation/devicetree/bindings/hwmon/lm87.txt
index fefcb48..1906e08 100644
--- a/Documentation/devicetree/bindings/hwmon/lm87.txt
+++ b/Documentation/devicetree/bindings/hwmon/lm87.txt
@@ -6,9 +6,18 @@ Required properties:
 
 - reg: I2C address
 
+optional properties:
+- channels: Value for the channel mode register.
+            This allows configuration of pins with
+            selectable uses on the LM87 device (e.g.
+            choosing between voltage and temperature
+            inputs).
+            See hwmon/lm87 for further information
+
 Example:
 
 lm87@2e {
 	compatible = "ti,lm87";
 	reg = <0x2e>;
+	channels=<0x4>;
 };
diff --git a/drivers/hwmon/lm87.c b/drivers/hwmon/lm87.c
index a5e2958..358c1d4 100644
--- a/drivers/hwmon/lm87.c
+++ b/drivers/hwmon/lm87.c
@@ -858,8 +858,13 @@ static void lm87_remove_files(struct i2c_client *client)
 static void lm87_init_client(struct i2c_client *client)
 {
 	struct lm87_data *data = i2c_get_clientdata(client);
+	u8 val = 0;
 
-	if (dev_get_platdata(&client->dev)) {
+	if (!of_property_read_u8(client->dev.of_node, "channels", &val)) {
+		data->channel = val;
+		lm87_write_value(client,
+				 LM87_REG_CHANNEL_MODE, data->channel);
+	} else if (dev_get_platdata(&client->dev)) {
 		data->channel = *(u8 *)dev_get_platdata(&client->dev);
 		lm87_write_value(client,
 				 LM87_REG_CHANNEL_MODE, data->channel);
-- 
2.9.3


^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2016-09-23 18:10 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-09-20  5:22 [PATCH v2] lm87: Allow channel data to be set from dts file Mahoda Ratnayaka
     [not found] ` <20160920052240.10242-1-mahoda.ratnayaka-6g8wRflRTwXFdCa3tKVlE6U/zSkkHjvu@public.gmane.org>
2016-09-20  9:55   ` Guenter Roeck
2016-09-21 21:58     ` Mahoda Ratnayaka
     [not found]     ` <d3258440-db4e-a4c2-cca1-9683d0da63a8-0h96xk9xTtrk1uMJSBkQmQ@public.gmane.org>
2016-09-23 18:10       ` Rob Herring
2016-09-20 17:24   ` Frank Rowand

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).