]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - include/linux/spi/ads7846.h
Input: ads7846 - introduce sample settling delay
[linux-2.6-omap-h63xx.git] / include / linux / spi / ads7846.h
index adb3dafd33e96a6d12c122fc62101b6c7a5c0947..a44fa7a02bd92ff424359f41d769bf353eec4b17 100644 (file)
@@ -5,9 +5,25 @@
  *
  * It's OK if the min/max values are zero.
  */
+enum ads7846_filter {
+       ADS7846_FILTER_OK,
+       ADS7846_FILTER_REPEAT,
+       ADS7846_FILTER_IGNORE,
+};
+
 struct ads7846_platform_data {
        u16     model;                  /* 7843, 7845, 7846. */
        u16     vref_delay_usecs;       /* 0 for external vref; etc */
+       int     keep_vref_on:1;         /* set to keep vref on for differential
+                                        * measurements as well */
+
+       /* Settling time of the analog signals; a function of Vcc and the
+        * capacitance on the X/Y drivers.  If set to non-zero, two samples
+        * are taken with settle_delay us apart, and the second one is used.
+        * ~150 uSec with 0.01uF caps.
+        */
+       u16     settle_delay_usecs;
+
        u16     x_plate_ohms;
        u16     y_plate_ohms;
 
@@ -21,5 +37,9 @@ struct ads7846_platform_data {
        u16     debounce_rep;           /* additional consecutive good readings
                                         * required after the first two */
        int     (*get_pendown_state)(void);
+       int     (*filter_init)  (struct ads7846_platform_data *pdata,
+                                void **filter_data);
+       int     (*filter)       (void *filter_data, int data_idx, int *val);
+       void    (*filter_cleanup)(void *filter_data);
 };