drv_touch.h 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. /*
  2. * File : drv_touch.h
  3. * This file is part of RT-Thread RTOS
  4. * COPYRIGHT (C) 2018 RT-Thread Develop Team
  5. *
  6. * The license and distribution terms for this file may be
  7. * found in the file LICENSE in this distribution or at
  8. * http://www.rt-thread.org/license/LICENSE
  9. *
  10. * Change Logs:
  11. * Date Author Notes
  12. * 2018-10-03 xuzhuoyi first implementation.
  13. */
  14. #ifndef __DRV_TOUCH_H__
  15. #define __DRV_TOUCH_H__
  16. #include <stdint.h>
  17. /* Register addresses */
  18. #define STMPE811_CHIP_ID 0x00
  19. #define STMPE811_ID_VER 0x02
  20. #define STMPE811_SYS_CTRL1 0x03
  21. #define STMPE811_SYS_CTRL2 0x04
  22. #define STMPE811_SPI_CFG 0x08
  23. #define STMPE811_INT_CTRL 0x09
  24. #define STMPE811_INT_EN 0x0A
  25. #define STMPE811_INT_STA 0x0B
  26. #define STMPE811_GPIO_EN 0x0C
  27. #define STMPE811_GPIO_INT_STA 0x0D
  28. #define STMPE811_ADC_INT_EN 0x0E
  29. #define STMPE811_ADC_INT_STA 0x0F
  30. #define STMPE811_GPIO_SET_PIN 0x10
  31. #define STMPE811_GPIO_CLR_PIN 0x11
  32. #define STMPE811_GPIO_MP_STA 0x12
  33. #define STMPE811_GPIO_DIR 0x13
  34. #define STMPE811_GPIO_ED 0x14
  35. #define STMPE811_GPIO_RE 0x15
  36. #define STMPE811_GPIO_FE 0x16
  37. #define STMPE811_GPIO_AF 0x17
  38. #define STMPE811_ADC_CTRL1 0x20
  39. #define STMPE811_ADC_CTRL2 0x21
  40. #define STMPE811_ADC_CAPT 0x22
  41. #define STMPE811_ADC_DATA_CH0 0x30
  42. #define STMPE811_ADC_DATA_CH1 0x32
  43. #define STMPE811_ADC_DATA_CH2 0x34
  44. #define STMPE811_ADC_DATA_CH3 0x36
  45. #define STMPE811_ADC_DATA_CH4 0x38
  46. #define STMPE811_ADC_DATA_CH5 0x3A
  47. #define STMPE811_ADC_DATA_CH6 0x3C
  48. #define STMPE811_ADC_DATA_CH7 0x3E
  49. #define STMPE811_TSC_CTRL 0x40
  50. #define STMPE811_TSC_CFG 0x41
  51. #define STMPE811_WDW_TR_X 0x42
  52. #define STMPE811_WDW_TR_Y 0x44
  53. #define STMPE811_WDW_BL_X 0x46
  54. #define STMPE811_WDW_BL_Y 0x48
  55. #define STMPE811_FIFO_TH 0x4A
  56. #define STMPE811_FIFO_STA 0x4B
  57. #define STMPE811_FIFO_SIZE 0x4C
  58. #define STMPE811_TSC_DATA_X 0x4D
  59. #define STMPE811_TSC_DATA_Y 0x4F
  60. #define STMPE811_TSC_DATA_Z 0x51
  61. #define STMPE811_TSC_FRACTION_Z 0x56
  62. #define STMPE811_TSC_DATA_XYZ 0x57
  63. #define STMPE811_TSC_DATA 0xD7
  64. #define STMPE811_TSC_I_DRIVE 0x58
  65. #define STMPE811_TSC_SHIELD 0x59
  66. #define STMPE811_TEMP_CTRL 0x60
  67. #define STMPE811_TEMP_DATA 0x61
  68. #define STMPE811_TEMP_TH 0x62
  69. /* Touch state */
  70. struct touch_state {
  71. int16_t x; ///< Position X
  72. int16_t y; ///< Position Y
  73. uint8_t pressed; ///< Pressed flag
  74. uint8_t padding;
  75. };
  76. #endif /* __DRV_TOUCH_H__ */