aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2015-05-31 14:24:49 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2015-05-31 14:24:49 -0400
commit30a5f11896a26a345e934e18e9a62c714bc1ceed (patch)
treefbc7dcfbbe31f1a6e793771f329f687dbba2812a
parentaaa20fc23341be3df7b17810e330f12244abcf29 (diff)
parentc7bd6dc320b85445b6b36a0aff41f929210027c7 (diff)
Merge tag 'hwmon-for-linus-v4.1-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging
Pull hwmon fixes from Guenter Roeck: "Some late hwmon patches, all headed for -stable - fix sysfs attribute initialization in nct6775 and nct6683 drivers - do not attempt to auto-detect tmp435 on I2C address 0x37 - ensure iio channel is of type IIO_VOLTAGE in ntc_thermistor driver" * tag 'hwmon-for-linus-v4.1-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging: hwmon: (nct6683) Add missing sysfs attribute initialization hwmon: (nct6775) Add missing sysfs attribute initialization hwmon: (tmp401) Do not auto-detect chip on I2C address 0x37 hwmon: (ntc_thermistor) Ensure iio channel is of type IIO_VOLTAGE
-rw-r--r--Documentation/hwmon/tmp4012
-rw-r--r--drivers/hwmon/nct6683.c2
-rw-r--r--drivers/hwmon/nct6775.c2
-rw-r--r--drivers/hwmon/ntc_thermistor.c9
-rw-r--r--drivers/hwmon/tmp401.c2
5 files changed, 15 insertions, 2 deletions
diff --git a/Documentation/hwmon/tmp401 b/Documentation/hwmon/tmp401
index 8eb88e974055..711f75e189eb 100644
--- a/Documentation/hwmon/tmp401
+++ b/Documentation/hwmon/tmp401
@@ -20,7 +20,7 @@ Supported chips:
20 Datasheet: http://focus.ti.com/docs/prod/folders/print/tmp432.html 20 Datasheet: http://focus.ti.com/docs/prod/folders/print/tmp432.html
21 * Texas Instruments TMP435 21 * Texas Instruments TMP435
22 Prefix: 'tmp435' 22 Prefix: 'tmp435'
23 Addresses scanned: I2C 0x37, 0x48 - 0x4f 23 Addresses scanned: I2C 0x48 - 0x4f
24 Datasheet: http://focus.ti.com/docs/prod/folders/print/tmp435.html 24 Datasheet: http://focus.ti.com/docs/prod/folders/print/tmp435.html
25 25
26Authors: 26Authors:
diff --git a/drivers/hwmon/nct6683.c b/drivers/hwmon/nct6683.c
index f3830db02d46..37f01702d081 100644
--- a/drivers/hwmon/nct6683.c
+++ b/drivers/hwmon/nct6683.c
@@ -439,6 +439,7 @@ nct6683_create_attr_group(struct device *dev, struct sensor_template_group *tg,
439 (*t)->dev_attr.attr.name, tg->base + i); 439 (*t)->dev_attr.attr.name, tg->base + i);
440 if ((*t)->s2) { 440 if ((*t)->s2) {
441 a2 = &su->u.a2; 441 a2 = &su->u.a2;
442 sysfs_attr_init(&a2->dev_attr.attr);
442 a2->dev_attr.attr.name = su->name; 443 a2->dev_attr.attr.name = su->name;
443 a2->nr = (*t)->u.s.nr + i; 444 a2->nr = (*t)->u.s.nr + i;
444 a2->index = (*t)->u.s.index; 445 a2->index = (*t)->u.s.index;
@@ -449,6 +450,7 @@ nct6683_create_attr_group(struct device *dev, struct sensor_template_group *tg,
449 *attrs = &a2->dev_attr.attr; 450 *attrs = &a2->dev_attr.attr;
450 } else { 451 } else {
451 a = &su->u.a1; 452 a = &su->u.a1;
453 sysfs_attr_init(&a->dev_attr.attr);
452 a->dev_attr.attr.name = su->name; 454 a->dev_attr.attr.name = su->name;
453 a->index = (*t)->u.index + i; 455 a->index = (*t)->u.index + i;
454 a->dev_attr.attr.mode = 456 a->dev_attr.attr.mode =
diff --git a/drivers/hwmon/nct6775.c b/drivers/hwmon/nct6775.c
index 4fcb48103299..bd1c99deac71 100644
--- a/drivers/hwmon/nct6775.c
+++ b/drivers/hwmon/nct6775.c
@@ -995,6 +995,7 @@ nct6775_create_attr_group(struct device *dev, struct sensor_template_group *tg,
995 (*t)->dev_attr.attr.name, tg->base + i); 995 (*t)->dev_attr.attr.name, tg->base + i);
996 if ((*t)->s2) { 996 if ((*t)->s2) {
997 a2 = &su->u.a2; 997 a2 = &su->u.a2;
998 sysfs_attr_init(&a2->dev_attr.attr);
998 a2->dev_attr.attr.name = su->name; 999 a2->dev_attr.attr.name = su->name;
999 a2->nr = (*t)->u.s.nr + i; 1000 a2->nr = (*t)->u.s.nr + i;
1000 a2->index = (*t)->u.s.index; 1001 a2->index = (*t)->u.s.index;
@@ -1005,6 +1006,7 @@ nct6775_create_attr_group(struct device *dev, struct sensor_template_group *tg,
1005 *attrs = &a2->dev_attr.attr; 1006 *attrs = &a2->dev_attr.attr;
1006 } else { 1007 } else {
1007 a = &su->u.a1; 1008 a = &su->u.a1;
1009 sysfs_attr_init(&a->dev_attr.attr);
1008 a->dev_attr.attr.name = su->name; 1010 a->dev_attr.attr.name = su->name;
1009 a->index = (*t)->u.index + i; 1011 a->index = (*t)->u.index + i;
1010 a->dev_attr.attr.mode = 1012 a->dev_attr.attr.mode =
diff --git a/drivers/hwmon/ntc_thermistor.c b/drivers/hwmon/ntc_thermistor.c
index 112e4d45e4a0..68800115876b 100644
--- a/drivers/hwmon/ntc_thermistor.c
+++ b/drivers/hwmon/ntc_thermistor.c
@@ -239,8 +239,10 @@ static struct ntc_thermistor_platform_data *
239ntc_thermistor_parse_dt(struct platform_device *pdev) 239ntc_thermistor_parse_dt(struct platform_device *pdev)
240{ 240{
241 struct iio_channel *chan; 241 struct iio_channel *chan;
242 enum iio_chan_type type;
242 struct device_node *np = pdev->dev.of_node; 243 struct device_node *np = pdev->dev.of_node;
243 struct ntc_thermistor_platform_data *pdata; 244 struct ntc_thermistor_platform_data *pdata;
245 int ret;
244 246
245 if (!np) 247 if (!np)
246 return NULL; 248 return NULL;
@@ -253,6 +255,13 @@ ntc_thermistor_parse_dt(struct platform_device *pdev)
253 if (IS_ERR(chan)) 255 if (IS_ERR(chan))
254 return ERR_CAST(chan); 256 return ERR_CAST(chan);
255 257
258 ret = iio_get_channel_type(chan, &type);
259 if (ret < 0)
260 return ERR_PTR(ret);
261
262 if (type != IIO_VOLTAGE)
263 return ERR_PTR(-EINVAL);
264
256 if (of_property_read_u32(np, "pullup-uv", &pdata->pullup_uv)) 265 if (of_property_read_u32(np, "pullup-uv", &pdata->pullup_uv))
257 return ERR_PTR(-ENODEV); 266 return ERR_PTR(-ENODEV);
258 if (of_property_read_u32(np, "pullup-ohm", &pdata->pullup_ohm)) 267 if (of_property_read_u32(np, "pullup-ohm", &pdata->pullup_ohm))
diff --git a/drivers/hwmon/tmp401.c b/drivers/hwmon/tmp401.c
index 99664ebc738d..ccf4cffe0ee1 100644
--- a/drivers/hwmon/tmp401.c
+++ b/drivers/hwmon/tmp401.c
@@ -44,7 +44,7 @@
44#include <linux/sysfs.h> 44#include <linux/sysfs.h>
45 45
46/* Addresses to scan */ 46/* Addresses to scan */
47static const unsigned short normal_i2c[] = { 0x37, 0x48, 0x49, 0x4a, 0x4c, 0x4d, 47static const unsigned short normal_i2c[] = { 0x48, 0x49, 0x4a, 0x4c, 0x4d,
48 0x4e, 0x4f, I2C_CLIENT_END }; 48 0x4e, 0x4f, I2C_CLIENT_END };
49 49
50enum chips { tmp401, tmp411, tmp431, tmp432, tmp435 }; 50enum chips { tmp401, tmp411, tmp431, tmp432, tmp435 };