Add the rt linux 4.1.3-rt3 as base
[kvmfornfv.git] / kernel / include / linux / input / pixcir_ts.h
diff --git a/kernel/include/linux/input/pixcir_ts.h b/kernel/include/linux/input/pixcir_ts.h
new file mode 100644 (file)
index 0000000..7bae83b
--- /dev/null
@@ -0,0 +1,64 @@
+#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_irc_chip_data - chip related data
+ * @max_fingers:       Max number of fingers reported simultaneously by h/w
+ * @has_hw_ids:                Hardware supports finger tracking IDs
+ *
+ */
+struct pixcir_i2c_chip_data {
+       u8 max_fingers;
+       bool has_hw_ids;
+};
+
+struct pixcir_ts_platform_data {
+       int x_max;
+       int y_max;
+       int gpio_attb;          /* GPIO connected to ATTB line */
+       struct pixcir_i2c_chip_data chip;
+};
+
+#endif