summaryrefslogtreecommitdiff
path: root/recipes/linux/linux-omap-pm-2.6.29/omap3-touchbook/touchscreen-ads7846-export-settings.patch
diff options
context:
space:
mode:
Diffstat (limited to 'recipes/linux/linux-omap-pm-2.6.29/omap3-touchbook/touchscreen-ads7846-export-settings.patch')
-rw-r--r--recipes/linux/linux-omap-pm-2.6.29/omap3-touchbook/touchscreen-ads7846-export-settings.patch87
1 files changed, 87 insertions, 0 deletions
diff --git a/recipes/linux/linux-omap-pm-2.6.29/omap3-touchbook/touchscreen-ads7846-export-settings.patch b/recipes/linux/linux-omap-pm-2.6.29/omap3-touchbook/touchscreen-ads7846-export-settings.patch
new file mode 100644
index 0000000000..f8353afee5
--- /dev/null
+++ b/recipes/linux/linux-omap-pm-2.6.29/omap3-touchbook/touchscreen-ads7846-export-settings.patch
@@ -0,0 +1,87 @@
+diff --git a/drivers/input/touchscreen/ads7846.c b/drivers/input/touchscreen/ads7846.c
+index 7c3897f..0c62ace 100644
+--- a/drivers/input/touchscreen/ads7846.c
++++ b/drivers/input/touchscreen/ads7846.c
+@@ -491,9 +491,82 @@ static ssize_t ads7846_disable_store(struct device *dev,
+
+ static DEVICE_ATTR(disable, 0664, ads7846_disable_show, ads7846_disable_store);
+
++static ssize_t show_debounce_max(struct device *dev, struct device_attribute *attr, char *buf) {
++ struct ads7846 *ts = dev_get_drvdata(dev);
++ return sprintf(buf, "%u\n", ts->debounce_max);
++}
++
++static ssize_t show_debounce_tol(struct device *dev, struct device_attribute *attr, char *buf) {
++ struct ads7846 *ts = dev_get_drvdata(dev);
++ return sprintf(buf, "%u\n", ts->debounce_tol);
++}
++
++static ssize_t show_debounce_rep(struct device *dev, struct device_attribute *attr, char *buf) {
++ struct ads7846 *ts = dev_get_drvdata(dev);
++ return sprintf(buf, "%u\n", ts->debounce_rep);
++}
++
++static ssize_t show_x_plate_ohms(struct device *dev, struct device_attribute *attr, char *buf) {
++ struct ads7846 *ts = dev_get_drvdata(dev);
++ return sprintf(buf, "%u\n", ts->x_plate_ohms);
++}
++
++static ssize_t write_debounce_max(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) {
++ struct ads7846 *ts = dev_get_drvdata(dev);
++ unsigned long i;
++
++ if (strict_strtoul(buf, 10, &i))
++ return -EINVAL;
++
++ ts->debounce_max = i;
++ return count;
++}
++
++static ssize_t write_debounce_tol(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) {
++ struct ads7846 *ts = dev_get_drvdata(dev);
++ unsigned long i;
++
++ if (strict_strtoul(buf, 10, &i))
++ return -EINVAL;
++
++ ts->debounce_tol = i;
++ return count;
++}
++
++static ssize_t write_debounce_rep(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) {
++ struct ads7846 *ts = dev_get_drvdata(dev);
++ unsigned long i;
++
++ if (strict_strtoul(buf, 10, &i))
++ return -EINVAL;
++
++ ts->debounce_rep = i;
++ return count;
++}
++
++static ssize_t write_x_plate_ohms(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) {
++ struct ads7846 *ts = dev_get_drvdata(dev);
++ unsigned long i;
++
++ if (strict_strtoul(buf, 10, &i))
++ return -EINVAL;
++
++ ts->x_plate_ohms = i;
++ return count;
++}
++
++static DEVICE_ATTR(debounce_max, S_IRUGO | S_IWUGO, show_debounce_max, write_debounce_max);
++static DEVICE_ATTR(debounce_tol, S_IRUGO | S_IWUGO, show_debounce_tol, write_debounce_tol);
++static DEVICE_ATTR(debounce_rep, S_IRUGO | S_IWUGO, show_debounce_rep, write_debounce_rep);
++static DEVICE_ATTR(x_plate_ohms, S_IRUGO | S_IWUGO, show_x_plate_ohms, write_x_plate_ohms);
++
+ static struct attribute *ads784x_attributes[] = {
+ &dev_attr_pen_down.attr,
+ &dev_attr_disable.attr,
++ &dev_attr_debounce_max.attr,
++ &dev_attr_debounce_tol.attr,
++ &dev_attr_debounce_rep.attr,
++ &dev_attr_x_plate_ohms.attr,
+ NULL,
+ };
+