aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mfd
diff options
context:
space:
mode:
authorOleksandr Dmytryshyn <oleksandr.dmytryshyn@ti.com>2012-02-28 16:38:02 +0200
committerZiyann <jaraidaniel@gmail.com>2014-10-01 13:00:31 +0200
commit8acd54bfa0be56cc616e4709ef9f50f7a0afa5a2 (patch)
tree2522835df99f74a9c4c880056835d8e31c6ca9e5 /drivers/mfd
parent92da1c763d90d13686172016863d215baf1a42b6 (diff)
downloadkernel_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.c32
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),