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