Merge branch 'locking-urgent-for-linus.patch' of git://git.kernel.org/pub/scm/linux...
[firefly-linux-kernel-4.4.55.git] / include / linux / input / pixcir_ts.h
index 7163d91c0373b4d5039b743507cdc39d9a397c4d..160cf353aa3968a5fdec476890f1c34214007f4e 100644 (file)
@@ -1,10 +1,52 @@
 #ifndef        _PIXCIR_I2C_TS_H
 #define        _PIXCIR_I2C_TS_H
 
+/*
+ * Register map
+ */
+#define PIXCIR_REG_POWER_MODE  51
+#define PIXCIR_REG_INT_MODE    52
+
+/*
+ * Power modes:
+ * active: max scan speed
+ * idle: lower scan speed with automatic transition to active on touch
+ * halt: datasheet says sleep but this is more like halt as the chip
+ *       clocks are cut and it can only be brought out of this mode
+ *      using the RESET pin.
+ */
+enum pixcir_power_mode {
+       PIXCIR_POWER_ACTIVE,
+       PIXCIR_POWER_IDLE,
+       PIXCIR_POWER_HALT,
+};
+
+#define PIXCIR_POWER_MODE_MASK 0x03
+#define PIXCIR_POWER_ALLOW_IDLE (1UL << 2)
+
+/*
+ * Interrupt modes:
+ * periodical: interrupt is asserted periodicaly
+ * diff coordinates: interrupt is asserted when coordinates change
+ * level on touch: interrupt level asserted during touch
+ * pulse on touch: interrupt pulse asserted druing touch
+ *
+ */
+enum pixcir_int_mode {
+       PIXCIR_INT_PERIODICAL,
+       PIXCIR_INT_DIFF_COORD,
+       PIXCIR_INT_LEVEL_TOUCH,
+       PIXCIR_INT_PULSE_TOUCH,
+};
+
+#define PIXCIR_INT_MODE_MASK   0x03
+#define PIXCIR_INT_ENABLE      (1UL << 3)
+#define PIXCIR_INT_POL_HIGH    (1UL << 2)
+
 struct pixcir_ts_platform_data {
-       int (*attb_read_val)(void);
        int x_max;
        int y_max;
+       int gpio_attb;          /* GPIO connected to ATTB line */
 };
 
 #endif