aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/mfd/twl6030-gpadc.c21
-rw-r--r--include/linux/i2c/twl6030-gpadc.h3
2 files changed, 24 insertions, 0 deletions
diff --git a/drivers/mfd/twl6030-gpadc.c b/drivers/mfd/twl6030-gpadc.c
index 8ee8a78..8a33784 100644
--- a/drivers/mfd/twl6030-gpadc.c
+++ b/drivers/mfd/twl6030-gpadc.c
@@ -852,6 +852,27 @@ out:
}
EXPORT_SYMBOL(twl6030_gpadc_conversion);
+#ifdef CONFIG_MACH_TUNA
+int twl6030_get_gpadc_conversion(int channel_no)
+{
+ struct twl6030_gpadc_request req;
+ int temp = 0;
+ int ret;
+
+ req.channels = (1 << channel_no);
+ req.method = TWL6030_GPADC_SW2;
+ req.active = 0;
+ req.func_cb = NULL;
+ ret = twl6030_gpadc_conversion(&req);
+ if (ret < 0)
+ return ret;
+ if (req.rbuf[channel_no] > 0)
+ temp = req.rbuf[channel_no];
+
+ return temp;
+}
+#endif
+
static ssize_t show_channel(struct device *dev,
struct device_attribute *devattr, char *buf)
{
diff --git a/include/linux/i2c/twl6030-gpadc.h b/include/linux/i2c/twl6030-gpadc.h
index 8d952a7..fb6934a 100644
--- a/include/linux/i2c/twl6030-gpadc.h
+++ b/include/linux/i2c/twl6030-gpadc.h
@@ -148,5 +148,8 @@ struct twl6030_gpadc_user_parms {
};
int twl6030_gpadc_conversion(struct twl6030_gpadc_request *conv);
+#ifdef CONFIG_MACH_TUNA
+int twl6030_get_gpadc_conversion(int channel_no);
+#endif
#endif