diff options
author | Anil Kumar <anil.kumar@stericsson.com> | 2011-11-08 14:53:46 +0530 |
---|---|---|
committer | Philippe Langlais <philippe.langlais@stericsson.com> | 2012-05-22 11:06:09 +0200 |
commit | d6b9b1256559d5f827ff2aa6620d24e5f3abdcd9 (patch) | |
tree | 3c8b6d1e8d48c097e049818ae26bcb8a879c81ea /drivers/hwmon | |
parent | 91f25d6ed091a20af26c337e15aaec417788fefd (diff) |
drivers: hwmon: l3g4200d: Provide gyroscope temperature via sysfs
Add sysfs interface to read gyroscope temperature
ST-Ericsson ID: 371726
ST-Ericsson Linux next: NA
ST-Ericsson FOSS-OUT ID: Trivial
Change-Id: I8fe2fa836c92f927cb70742a06a8b87b0beaec2f
Signed-off-by: Anil Kumar <anil.kumar@stericsson.com>
Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/36832
Reviewed-by: QABUILD
Reviewed-by: Naga RADHESH Y <naga.radheshy@stericsson.com>
Reviewed-by: Srinidhi KASAGAR <srinidhi.kasagar@stericsson.com>
Diffstat (limited to 'drivers/hwmon')
-rw-r--r-- | drivers/hwmon/l3g4200d.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/drivers/hwmon/l3g4200d.c b/drivers/hwmon/l3g4200d.c index fcac3afc044..c07baa09595 100644 --- a/drivers/hwmon/l3g4200d.c +++ b/drivers/hwmon/l3g4200d.c @@ -30,6 +30,7 @@ #define CTRL_REG3 0x22 /* CTRL_REG3 */ #define CTRL_REG4 0x23 /* CTRL_REG4 */ #define CTRL_REG5 0x24 /* CTRL_REG5 */ +#define OUT_TEMP 0x26 /* OUT_TEMP */ #define AXISDATA_REG 0x28 @@ -401,6 +402,24 @@ static ssize_t l3g4200d_store_powermode(struct device *dev, return count; } +static ssize_t l3g4200d_show_gyrotemp(struct device *dev, + struct device_attribute *attr, char *buf) +{ + struct platform_device *pdev = to_platform_device(dev); + struct l3g4200d_data *ddata = platform_get_drvdata(pdev); + int ret; + + if (ddata->powermode == PM_OFF || + ddata->device_status == DEVICE_SUSPENDED) + return -EINVAL; + + ret = l3g4200d_read(ddata, OUT_TEMP, "OUT_TEMP"); + if (ret < 0) + return ret; + + return sprintf(buf, "%d\n", ret); +} + static DEVICE_ATTR(gyrodata, S_IRUGO, l3g4200d_show_gyrodata, NULL); static DEVICE_ATTR(range, S_IRUGO | S_IWUGO, @@ -412,11 +431,14 @@ static DEVICE_ATTR(datarate, S_IRUGO | S_IWUGO, static DEVICE_ATTR(powermode, S_IRUGO | S_IWUGO, l3g4200d_show_powermode, l3g4200d_store_powermode); +static DEVICE_ATTR(gyrotemp, S_IRUGO, l3g4200d_show_gyrotemp, NULL); + static struct attribute *l3g4200d_attributes[] = { &dev_attr_gyrodata.attr, &dev_attr_range.attr, &dev_attr_datarate.attr, &dev_attr_powermode.attr, + &dev_attr_gyrotemp.attr, NULL }; |