lis3lv02d.h 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. /*
  2. * lis3lv02d.h - ST LIS3LV02DL accelerometer driver
  3. *
  4. * Copyright (C) 2007-2008 Yan Burman
  5. * Copyright (C) 2008 Eric Piel
  6. *
  7. * This program is free software; you can redistribute it and/or modify
  8. * it under the terms of the GNU General Public License as published by
  9. * the Free Software Foundation; either version 2 of the License, or
  10. * (at your option) any later version.
  11. *
  12. * This program is distributed in the hope that it will be useful,
  13. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  14. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  15. * GNU General Public License for more details.
  16. *
  17. * You should have received a copy of the GNU General Public License
  18. * along with this program; if not, write to the Free Software
  19. * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  20. */
  21. /*
  22. * The actual chip is STMicroelectronics LIS3LV02DL or LIS3LV02DQ that seems to
  23. * be connected via SPI. There exists also several similar chips (such as LIS302DL or
  24. * LIS3L02DQ) but not in the HP laptops and they have slightly different registers.
  25. * They can also be connected via I²C.
  26. */
  27. #define LIS3LV02DL_ID 0x3A /* Also the LIS3LV02DQ */
  28. #define LIS302DL_ID 0x3B /* Also the LIS202DL! */
  29. enum lis3lv02d_reg {
  30. WHO_AM_I = 0x0F,
  31. OFFSET_X = 0x16,
  32. OFFSET_Y = 0x17,
  33. OFFSET_Z = 0x18,
  34. GAIN_X = 0x19,
  35. GAIN_Y = 0x1A,
  36. GAIN_Z = 0x1B,
  37. CTRL_REG1 = 0x20,
  38. CTRL_REG2 = 0x21,
  39. CTRL_REG3 = 0x22,
  40. HP_FILTER_RESET = 0x23,
  41. STATUS_REG = 0x27,
  42. OUTX_L = 0x28,
  43. OUTX_H = 0x29,
  44. OUTY_L = 0x2A,
  45. OUTY_H = 0x2B,
  46. OUTZ_L = 0x2C,
  47. OUTZ_H = 0x2D,
  48. FF_WU_CFG = 0x30,
  49. FF_WU_SRC = 0x31,
  50. FF_WU_ACK = 0x32,
  51. FF_WU_THS_L = 0x34,
  52. FF_WU_THS_H = 0x35,
  53. FF_WU_DURATION = 0x36,
  54. DD_CFG = 0x38,
  55. DD_SRC = 0x39,
  56. DD_ACK = 0x3A,
  57. DD_THSI_L = 0x3C,
  58. DD_THSI_H = 0x3D,
  59. DD_THSE_L = 0x3E,
  60. DD_THSE_H = 0x3F,
  61. };
  62. enum lis3lv02d_ctrl1 {
  63. CTRL1_Xen = 0x01,
  64. CTRL1_Yen = 0x02,
  65. CTRL1_Zen = 0x04,
  66. CTRL1_ST = 0x08,
  67. CTRL1_DF0 = 0x10,
  68. CTRL1_DF1 = 0x20,
  69. CTRL1_PD0 = 0x40,
  70. CTRL1_PD1 = 0x80,
  71. };
  72. enum lis3lv02d_ctrl2 {
  73. CTRL2_DAS = 0x01,
  74. CTRL2_SIM = 0x02,
  75. CTRL2_DRDY = 0x04,
  76. CTRL2_IEN = 0x08,
  77. CTRL2_BOOT = 0x10,
  78. CTRL2_BLE = 0x20,
  79. CTRL2_BDU = 0x40, /* Block Data Update */
  80. CTRL2_FS = 0x80, /* Full Scale selection */
  81. };
  82. enum lis3lv02d_ctrl3 {
  83. CTRL3_CFS0 = 0x01,
  84. CTRL3_CFS1 = 0x02,
  85. CTRL3_FDS = 0x10,
  86. CTRL3_HPFF = 0x20,
  87. CTRL3_HPDD = 0x40,
  88. CTRL3_ECK = 0x80,
  89. };
  90. enum lis3lv02d_status_reg {
  91. STATUS_XDA = 0x01,
  92. STATUS_YDA = 0x02,
  93. STATUS_ZDA = 0x04,
  94. STATUS_XYZDA = 0x08,
  95. STATUS_XOR = 0x10,
  96. STATUS_YOR = 0x20,
  97. STATUS_ZOR = 0x40,
  98. STATUS_XYZOR = 0x80,
  99. };
  100. enum lis3lv02d_ff_wu_cfg {
  101. FF_WU_CFG_XLIE = 0x01,
  102. FF_WU_CFG_XHIE = 0x02,
  103. FF_WU_CFG_YLIE = 0x04,
  104. FF_WU_CFG_YHIE = 0x08,
  105. FF_WU_CFG_ZLIE = 0x10,
  106. FF_WU_CFG_ZHIE = 0x20,
  107. FF_WU_CFG_LIR = 0x40,
  108. FF_WU_CFG_AOI = 0x80,
  109. };
  110. enum lis3lv02d_ff_wu_src {
  111. FF_WU_SRC_XL = 0x01,
  112. FF_WU_SRC_XH = 0x02,
  113. FF_WU_SRC_YL = 0x04,
  114. FF_WU_SRC_YH = 0x08,
  115. FF_WU_SRC_ZL = 0x10,
  116. FF_WU_SRC_ZH = 0x20,
  117. FF_WU_SRC_IA = 0x40,
  118. };
  119. enum lis3lv02d_dd_cfg {
  120. DD_CFG_XLIE = 0x01,
  121. DD_CFG_XHIE = 0x02,
  122. DD_CFG_YLIE = 0x04,
  123. DD_CFG_YHIE = 0x08,
  124. DD_CFG_ZLIE = 0x10,
  125. DD_CFG_ZHIE = 0x20,
  126. DD_CFG_LIR = 0x40,
  127. DD_CFG_IEND = 0x80,
  128. };
  129. enum lis3lv02d_dd_src {
  130. DD_SRC_XL = 0x01,
  131. DD_SRC_XH = 0x02,
  132. DD_SRC_YL = 0x04,
  133. DD_SRC_YH = 0x08,
  134. DD_SRC_ZL = 0x10,
  135. DD_SRC_ZH = 0x20,
  136. DD_SRC_IA = 0x40,
  137. };