diff options
author | Oleksandr Dmytryshyn <oleksandr.dmytryshyn@ti.com> | 2012-02-28 16:38:02 +0200 |
---|---|---|
committer | Ziyann <jaraidaniel@gmail.com> | 2014-10-01 13:00:31 +0200 |
commit | 8acd54bfa0be56cc616e4709ef9f50f7a0afa5a2 (patch) | |
tree | 2522835df99f74a9c4c880056835d8e31c6ca9e5 /drivers/mfd | |
parent | 92da1c763d90d13686172016863d215baf1a42b6 (diff) | |
download | kernel_samsung_tuna-8acd54bfa0be56cc616e4709ef9f50f7a0afa5a2.tar.gz kernel_samsung_tuna-8acd54bfa0be56cc616e4709ef9f50f7a0afa5a2.tar.bz2 kernel_samsung_tuna-8acd54bfa0be56cc616e4709ef9f50f7a0afa5a2.zip |
MFD: TWL6030_GPADC: Add raw code ADC inputs values to the sysfs
This patch adds raw code ADC inputs values to the sysfs.
Change-Id: I498a2171a2a08abc157b929cec3a5c5ad398a4df
Signed-off-by: Oleksandr Dmytryshyn <oleksandr.dmytryshyn@ti.com>
Diffstat (limited to 'drivers/mfd')
-rw-r--r-- | drivers/mfd/twl6030-gpadc.c | 32 |
1 files changed, 31 insertions, 1 deletions
diff --git a/drivers/mfd/twl6030-gpadc.c b/drivers/mfd/twl6030-gpadc.c index 32411d3bd10..c776ac04d92 100644 --- a/drivers/mfd/twl6030-gpadc.c +++ b/drivers/mfd/twl6030-gpadc.c @@ -817,6 +817,33 @@ static ssize_t show_channel(struct device *dev, return ret; } +static ssize_t show_raw_code(struct device *dev, + struct device_attribute *devattr, char *buf) +{ + struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); + struct twl6030_gpadc_request req; + int temp = 0; + int ret; + + req.channels = (1 << attr->index); + if (the_gpadc->features & TWL6032_SUBCLASS) + req.method = TWL6032_GPADC_SW2; + else + req.method = TWL6030_GPADC_SW2; + req.active = 0; + req.func_cb = NULL; + ret = twl6030_gpadc_conversion(&req); + if (ret < 0) + return ret; + + if (req.buf[attr->index].raw_channel_value > 0) + temp = req.buf[attr->index].raw_code; + + ret = sprintf(buf, "%d\n", temp); + + return ret; +} + #define in_gain(index) \ static SENSOR_DEVICE_ATTR(in##index##_gain, S_IRUGO|S_IWUSR, show_gain, \ set_gain, index); \ @@ -843,6 +870,8 @@ in_gain(16); #define in_channel(index) \ static SENSOR_DEVICE_ATTR(in##index##_channel, S_IRUGO, show_channel, \ + NULL, index); \ +static SENSOR_DEVICE_ATTR(in##index##_raw_code, S_IRUGO, show_raw_code, \ NULL, index) in_channel(0); @@ -870,7 +899,8 @@ in_channel(18); &sensor_dev_attr_in##X##_offset.dev_attr.attr \ #define IN_ATTRS_CHANNEL(X)\ - (&sensor_dev_attr_in##X##_channel.dev_attr.attr) \ + &sensor_dev_attr_in##X##_channel.dev_attr.attr, \ + &sensor_dev_attr_in##X##_raw_code.dev_attr.attr \ static struct attribute *twl6030_gpadc_attributes[] = { IN_ATTRS(0), |