tsc200x-core.h 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. #ifndef _TSC200X_CORE_H
  2. #define _TSC200X_CORE_H
  3. /* control byte 1 */
  4. #define TSC200X_CMD 0x80
  5. #define TSC200X_CMD_NORMAL 0x00
  6. #define TSC200X_CMD_STOP 0x01
  7. #define TSC200X_CMD_12BIT 0x04
  8. /* control byte 0 */
  9. #define TSC200X_REG_READ 0x01 /* R/W access */
  10. #define TSC200X_REG_PND0 0x02 /* Power Not Down Control */
  11. #define TSC200X_REG_X (0x0 << 3)
  12. #define TSC200X_REG_Y (0x1 << 3)
  13. #define TSC200X_REG_Z1 (0x2 << 3)
  14. #define TSC200X_REG_Z2 (0x3 << 3)
  15. #define TSC200X_REG_AUX (0x4 << 3)
  16. #define TSC200X_REG_TEMP1 (0x5 << 3)
  17. #define TSC200X_REG_TEMP2 (0x6 << 3)
  18. #define TSC200X_REG_STATUS (0x7 << 3)
  19. #define TSC200X_REG_AUX_HIGH (0x8 << 3)
  20. #define TSC200X_REG_AUX_LOW (0x9 << 3)
  21. #define TSC200X_REG_TEMP_HIGH (0xA << 3)
  22. #define TSC200X_REG_TEMP_LOW (0xB << 3)
  23. #define TSC200X_REG_CFR0 (0xC << 3)
  24. #define TSC200X_REG_CFR1 (0xD << 3)
  25. #define TSC200X_REG_CFR2 (0xE << 3)
  26. #define TSC200X_REG_CONV_FUNC (0xF << 3)
  27. /* configuration register 0 */
  28. #define TSC200X_CFR0_PRECHARGE_276US 0x0040
  29. #define TSC200X_CFR0_STABTIME_1MS 0x0300
  30. #define TSC200X_CFR0_CLOCK_1MHZ 0x1000
  31. #define TSC200X_CFR0_RESOLUTION12 0x2000
  32. #define TSC200X_CFR0_PENMODE 0x8000
  33. #define TSC200X_CFR0_INITVALUE (TSC200X_CFR0_STABTIME_1MS | \
  34. TSC200X_CFR0_CLOCK_1MHZ | \
  35. TSC200X_CFR0_RESOLUTION12 | \
  36. TSC200X_CFR0_PRECHARGE_276US | \
  37. TSC200X_CFR0_PENMODE)
  38. /* bits common to both read and write of configuration register 0 */
  39. #define TSC200X_CFR0_RW_MASK 0x3fff
  40. /* configuration register 1 */
  41. #define TSC200X_CFR1_BATCHDELAY_4MS 0x0003
  42. #define TSC200X_CFR1_INITVALUE TSC200X_CFR1_BATCHDELAY_4MS
  43. /* configuration register 2 */
  44. #define TSC200X_CFR2_MAVE_Z 0x0004
  45. #define TSC200X_CFR2_MAVE_Y 0x0008
  46. #define TSC200X_CFR2_MAVE_X 0x0010
  47. #define TSC200X_CFR2_AVG_7 0x0800
  48. #define TSC200X_CFR2_MEDIUM_15 0x3000
  49. #define TSC200X_CFR2_INITVALUE (TSC200X_CFR2_MAVE_X | \
  50. TSC200X_CFR2_MAVE_Y | \
  51. TSC200X_CFR2_MAVE_Z | \
  52. TSC200X_CFR2_MEDIUM_15 | \
  53. TSC200X_CFR2_AVG_7)
  54. #define MAX_12BIT 0xfff
  55. #define TSC200X_DEF_X_FUZZ 4
  56. #define TSC200X_DEF_Y_FUZZ 8
  57. #define TSC200X_DEF_P_FUZZ 2
  58. #define TSC200X_DEF_RESISTOR 280
  59. #define TSC2005_SPI_MAX_SPEED_HZ 10000000
  60. #define TSC200X_PENUP_TIME_MS 40
  61. extern const struct regmap_config tsc200x_regmap_config;
  62. extern const struct dev_pm_ops tsc200x_pm_ops;
  63. int tsc200x_probe(struct device *dev, int irq, const struct input_id *tsc_id,
  64. struct regmap *regmap,
  65. int (*tsc200x_cmd)(struct device *dev, u8 cmd));
  66. int tsc200x_remove(struct device *dev);
  67. #endif