adpd142.h 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. /**
  2. @file adpd142.h
  3. @brief ADPD142 - Low level driver Header 'H' File
  4. */
  5. #ifndef _ADPD142_H_
  6. #define _ADPD142_H_
  7. #include <linux/init.h> /* module initialization api */
  8. #include <linux/module.h> /* module functionality */
  9. #include <linux/i2c.h> /* i2c related functionality */
  10. #include <linux/slab.h>
  11. #include <linux/pm.h> /* device Power Management functionality */
  12. #include <linux/errno.h>
  13. #include <linux/err.h>
  14. #include <linux/delay.h>
  15. #include <linux/input.h>
  16. #include <linux/workqueue.h>
  17. #include <linux/kobject.h>
  18. #include <linux/average.h>
  19. #include <linux/uaccess.h>
  20. #include <linux/gpio.h>
  21. #include <linux/irq.h>
  22. #include <linux/interrupt.h>
  23. #include <linux/gpio.h>
  24. #include <linux/moduleparam.h>
  25. #include <linux/regulator/consumer.h>
  26. #include <linux/fs.h>
  27. #include <linux/sensor/sensors_core.h>
  28. /**
  29. @brief ADPD142 Slave address
  30. */
  31. #define ADPD142_SLAVE_ADDR 0x64
  32. /**
  33. @brief ADPD142 ChipID
  34. */
  35. #define ADPD_CHIPID_0 0x0016
  36. /**
  37. @brief ADPD142 ChipID 1
  38. */
  39. #define ADPD_CHIPID_1 0x0116
  40. /**
  41. @brief ADPD142 ChipID 2
  42. */
  43. #define ADPD_CHIPID_2 0x0216
  44. /**
  45. @brief ADPD142 ChipID
  46. */
  47. #define ADPD_CHIPID(id) ADPD_CHIPID_##id
  48. /*ADPD142 REGISTER ADDRESS*/
  49. /**
  50. @brief ADPD142 Interrupt Status Register
  51. */
  52. #define ADPD_INT_STATUS_ADDR 0x0
  53. /**
  54. @brief ADPD142 Interrupt Mask Register
  55. */
  56. #define ADPD_INT_MASK_ADDR 0x1
  57. /**
  58. @brief ADPD142 ChipID register
  59. */
  60. #define ADPD_CHIPID_ADDR 0x8
  61. /**
  62. @brief ADPD142 Operating mode Register
  63. */
  64. #define ADPD_OP_MODE_ADDR 0x10
  65. /**
  66. @brief ADPD142 Operating Mode Configuration register
  67. */
  68. #define ADPD_OP_MODE_CFG_ADDR 0x11
  69. /**
  70. @brief ADPD142 Gesture Control Register
  71. */
  72. #define ADPD_GEST_CTRL_ADDR 0x27
  73. /**
  74. @brief ADPD142 Gesture Threshold Register
  75. */
  76. #define ADPD_GEST_THRESH_ADDR 0x28
  77. /**
  78. @brief ADPD142 Gesture Size Register
  79. */
  80. #define ADPD_GEST_SIZE_ADDR 0x29
  81. /**
  82. @brief ADPD142 Proximity ON1 Threshold register
  83. */
  84. #define ADPD_PROX_ON_TH1_ADDR 0x2A
  85. /**
  86. @brief ADPD142 proximity OFF1 Threshold register
  87. */
  88. #define ADPD_PROX_OFF_TH1_ADDR 0x2B
  89. /**
  90. @brief ADPD142 Proximity ON2 Threshold register
  91. */
  92. #define ADPD_PROX_ON_TH2_ADDR 0x2C
  93. /**
  94. @brief ADPD142 Proximity OFF2 Threshold register
  95. */
  96. #define ADPD_PROX_OFF_TH2_ADDR 0x2D
  97. /**
  98. @brief ADPD142 Test PD register
  99. */
  100. #define ADPD_TEST_PD_ADDR 0x52
  101. /**
  102. @brief ADPD142 Access control register
  103. */
  104. #define ADPD_ACCESS_CTRL_ADDR 0x5F
  105. /**
  106. @brief ADPD142 FIFO register
  107. */
  108. #define ADPD_DATA_BUFFER_ADDR 0x60
  109. /**
  110. @brief ADPD142 maximum array size of Platform data
  111. */
  112. #define MAX_CONFIG_REG_CNT 72
  113. /**
  114. @brief ADPD142 Platform Data
  115. */
  116. struct adpd_platform_data {
  117. unsigned short config_size;
  118. unsigned int config_data[MAX_CONFIG_REG_CNT];
  119. };
  120. extern int sensors_create_symlink(struct kobject *target, const char *name);
  121. extern void sensors_remove_symlink(struct kobject *target, const char *name);
  122. extern int sensors_register(struct device *dev, void * drvdata,
  123. struct device_attribute *attributes[], char *name);
  124. extern void sensors_unregister(struct device *dev,
  125. struct device_attribute *attributes[]);
  126. #endif