linux/include/linux/platform_data/pixcir_i2c_ts.h
<<
>>
Prefs
   1#ifndef _PIXCIR_I2C_TS_H
   2#define _PIXCIR_I2C_TS_H
   3
   4/*
   5 * Register map
   6 */
   7#define PIXCIR_REG_POWER_MODE   51
   8#define PIXCIR_REG_INT_MODE     52
   9
  10/*
  11 * Power modes:
  12 * active: max scan speed
  13 * idle: lower scan speed with automatic transition to active on touch
  14 * halt: datasheet says sleep but this is more like halt as the chip
  15 *       clocks are cut and it can only be brought out of this mode
  16 *       using the RESET pin.
  17 */
  18enum pixcir_power_mode {
  19        PIXCIR_POWER_ACTIVE,
  20        PIXCIR_POWER_IDLE,
  21        PIXCIR_POWER_HALT,
  22};
  23
  24#define PIXCIR_POWER_MODE_MASK  0x03
  25#define PIXCIR_POWER_ALLOW_IDLE (1UL << 2)
  26
  27/*
  28 * Interrupt modes:
  29 * periodical: interrupt is asserted periodicaly
  30 * diff coordinates: interrupt is asserted when coordinates change
  31 * level on touch: interrupt level asserted during touch
  32 * pulse on touch: interrupt pulse asserted druing touch
  33 *
  34 */
  35enum pixcir_int_mode {
  36        PIXCIR_INT_PERIODICAL,
  37        PIXCIR_INT_DIFF_COORD,
  38        PIXCIR_INT_LEVEL_TOUCH,
  39        PIXCIR_INT_PULSE_TOUCH,
  40};
  41
  42#define PIXCIR_INT_MODE_MASK    0x03
  43#define PIXCIR_INT_ENABLE       (1UL << 3)
  44#define PIXCIR_INT_POL_HIGH     (1UL << 2)
  45
  46/**
  47 * struct pixcir_irc_chip_data - chip related data
  48 * @max_fingers:        Max number of fingers reported simultaneously by h/w
  49 * @has_hw_ids:         Hardware supports finger tracking IDs
  50 *
  51 */
  52struct pixcir_i2c_chip_data {
  53        u8 max_fingers;
  54        bool has_hw_ids;
  55};
  56
  57struct pixcir_ts_platform_data {
  58        int x_max;
  59        int y_max;
  60        struct pixcir_i2c_chip_data chip;
  61};
  62
  63#endif
  64