bma222E.h 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. #ifndef BMA150_H
  2. #define BMA150_H
  3. #include <linux/ioctl.h>
  4. #define BMA222_I2C_SLAVE_WRITE_ADDR 0x10
  5. /* BMA222 Register Map (Please refer to BMA150 Specifications) */
  6. #define BMA222_REG_DEVID 0x00
  7. #define BMA222_FIXED_DEVID 0x03
  8. #define BMA222_REG_OFSX 0x16
  9. #define BMA222_REG_OFSX_HIGH 0x1A
  10. #define BMA222_REG_BW_RATE 0x10
  11. #define BMA222_BW_MASK 0x1f
  12. #define BMA222_BW_200HZ 0x0d
  13. #define BMA222_BW_100HZ 0x0c
  14. #define BMA222_BW_50HZ 0x0b
  15. #define BMA222_BW_25HZ 0x0a
  16. #define BMA222_REG_POWER_CTL 0x11
  17. #define BMA222_REG_DATA_FORMAT 0x0f
  18. #define BMA222_RANGE_MASK 0x0f
  19. #define BMA222_RANGE_2G 0x03
  20. #define BMA222_RANGE_4G 0x05
  21. #define BMA222_RANGE_8G 0x08
  22. #define BMA222_REG_DATAXLOW 0x03
  23. #define BMA222_REG_DATA_RESOLUTION 0x14
  24. #define BMA222_MEASURE_MODE 0x80
  25. #define BMA222_SELF_TEST 0x32
  26. #define BMA222_SELF_TEST_AXIS_X 0x01
  27. #define BMA222_SELF_TEST_AXIS_Y 0x02
  28. #define BMA222_SELF_TEST_AXIS_Z 0x03
  29. #define BMA222_SELF_TEST_POSITIVE 0x00
  30. #define BMA222_SELF_TEST_NEGATIVE 0x04
  31. #define BMA222_INT_REG_1 0x16
  32. #define BMA222_INT_REG_2 0x17
  33. #define BMA222_SUCCESS 0
  34. #define BMA222_ERR_I2C -1
  35. #define BMA222_ERR_STATUS -3
  36. #define BMA222_ERR_SETUP_FAILURE -4
  37. #define BMA222_ERR_GETGSENSORDATA -5
  38. #define BMA222_ERR_IDENTIFICATION -6
  39. #define BMA222_BUFSIZE 256
  40. #define BMA222_AXES_NUM 3
  41. /*----------------------------------------------------------------------------*/
  42. enum CUST_ACTION {
  43. BMA222_CUST_ACTION_SET_CUST = 1,
  44. BMA222_CUST_ACTION_SET_CALI,
  45. BMA222_CUST_ACTION_RESET_CALI
  46. };
  47. /*----------------------------------------------------------------------------*/
  48. struct BMA222_CUST {
  49. uint16_t action;
  50. };
  51. /*----------------------------------------------------------------------------*/
  52. struct BMA222_SET_CUST {
  53. uint16_t action;
  54. uint16_t part;
  55. int32_t data[0];
  56. };
  57. /*----------------------------------------------------------------------------*/
  58. struct BMA222_SET_CALI {
  59. uint16_t action;
  60. int32_t data[BMA222_AXES_NUM];
  61. };
  62. /*----------------------------------------------------------------------------*/
  63. union BMA222_CUST_DATA {
  64. uint32_t data[10];
  65. struct BMA222_CUST cust;
  66. struct BMA222_SET_CUST setCust;
  67. struct BMA222_SET_CALI setCali;
  68. struct BMA222_CUST resetCali;
  69. };
  70. /*----------------------------------------------------------------------------*/
  71. #endif