hts221.h 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. /* BOSCH Pressure Sensor Driver
  2. *
  3. * This software is licensed under the terms of the GNU General Public
  4. * License version 2, as published by the Free Software Foundation, and
  5. * may be copied, distributed, and modified under those terms.
  6. *
  7. * This program is distributed in the hope that it will be useful,
  8. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  9. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  10. * GNU General Public License for more details.
  11. *
  12. */
  13. #ifndef _HTS221_H_
  14. #define _HTS221_H_
  15. #include <linux/ioctl.h>
  16. /*****************************************************
  17. | sensor | chip id | 7-bit i2c address |
  18. -----------------------------------------------------|
  19. | bmp180 | 0x55 | 0x77 |
  20. *****************************************************/
  21. #define DEBUF
  22. /*#define CONFIG_ID_TEMPERATURE*/
  23. /*#define CONFIG_I2C_BASIC_FUNCTION*/
  24. #define HTS_DRIVER_VERSION "V1.5"
  25. #define HTS_DEV_NAME "hts221"
  26. #define C_MAX_FIR_LENGTH (32)
  27. #define MAX_SENSOR_NAME (32)
  28. #define HTS221_DATA_NUM 1
  29. #define HTS221_PRESSURE 0
  30. #define HTS221_BUFSIZE 128
  31. /*********************************[HTS221]*************************************/
  32. /* i2c address */
  33. #define HTS221_I2C_ADDRESS 0x5F
  34. /* Enable/Disable Sensor */
  35. #define MASK_ENABLE (0x80)
  36. #define ENABLE_SENSOR (0x80)
  37. #define DISABLE_SENSOR (0x00)
  38. #define START_NEW_CONVERT (1)
  39. /* OUT PUT RATE */
  40. #define HTS221_ODR_ONE_SHOT (0)
  41. #define HTS221_ODR_1HZ (1)
  42. #define HTS221_ODR_7HZ (2)
  43. #define HTS221_ODR_125HZ (3)
  44. #define HTS221_ODR_MASK (0XFC)
  45. /* block data updata */
  46. #define HTS221_BDU (1<<2)
  47. #define HTS221_BDU_MASK (0XFB)
  48. /* POWER MODE MASK */
  49. #define HTS221_POWER_MASK (0X7F)
  50. /* data register */
  51. #define REG_WHOAMI_ADDR (0x0f) /** Who am i address register */
  52. #define REG_AVCONFIG_ADDR (0x10) /** Humidity res conf register */
  53. #define REG_CNTRL1_ADDR (0x20) /** CNTRL1 address register */
  54. #define REG_CNTRL2_ADDR (0x21) /** CNTRL2 address register */
  55. #define REG_H_OUT_L (0x28) /** OUT humidity address register */
  56. #define REG_H_OUT_H (0x29) /** OUT humidity address register */
  57. #define REG_T_OUT_L (0x2A) /** OUT temperature address register */
  58. #define REG_T_OUT_H (0x2B) /** OUT temperature address register */
  59. /* calibration data */
  60. #define REG_0RH_CAL_X_H (0X36) /** Calibration H 0 address register */
  61. #define REG_1RH_CAL_X_H (0X3a) /** Calibration H 1 address register */
  62. #define REG_0RH_CAL_Y_H (0x30) /** Calibration H 0 RH address register */
  63. #define REG_1RH_CAL_Y_H (0x31) /** Calibration H 1 RH address register */
  64. #define REG_0T_CAL_X_L (0x3c) /** Calibration T 0 address register */
  65. #define REG_1T_CAL_X_L (0x3e) /** Calibration T 1 address register */
  66. #define REG_0T_CAL_Y_H (0x32) /** Calibration T 0 C address register */
  67. #define REG_1T_CAL_Y_H (0x33) /** Calibration T 1 C address register */
  68. #define REG_STATUS (0x27) /** Status address register */
  69. #define REG_T1_T0_CAL_Y_H (0x35) /** Calibration T0 and T! Address register **/
  70. /* Humidity Sensor Resolution */
  71. #define HTS221_H_RESOLUTION_4 (0x00) /* Resolution set to 0.4 %RH */
  72. #define HTS221_H_RESOLUTION_8 (0x01) /* Resolution set to 0.3 %RH */
  73. #define HTS221_H_RESOLUTION_16 (0x02) /* Resolution set to 0.2 %RH */
  74. #define HTS221_H_RESOLUTION_32 (0x03) /* Resolution set to 0.15 %RH */
  75. #define HTS221_H_RESOLUTION_64 (0x04) /* Resolution set to 0.1 %RH */
  76. #define HTS221_H_RESOLUTION_128 (0x05) /* Resolution set to 0.07 %RH */
  77. #define HTS221_H_RESOLUTION_256 (0x06) /* Resolution set to 0.05 %RH */
  78. #define HTS221_H_RESOLUTION_512 (0x07) /* Resolution set to 0.03 %RH */
  79. /* Temperature Sensor Resolution */
  80. #define HTS221_T_RESOLUTION_2 (0x00) /* Resolution set to 0.08 DegC */
  81. #define HTS221_T_RESOLUTION_4 (0x08) /* Resolution set to 0.05 DegC */
  82. #define HTS221_T_RESOLUTION_8 (0x10) /* Resolution set to 0.04 DegC */
  83. #define HTS221_T_RESOLUTION_16 (0x18) /* Resolution set to 0.03 DegC */
  84. #define HTS221_T_RESOLUTION_32 (0x20) /* Resolution set to 0.02 DegC */
  85. #define HTS221_T_RESOLUTION_64 (0x28) /* Resolution set to 0.015 DegC */
  86. #define HTS221_T_RESOLUTION_128 (0x30) /* Resolution set to 0.01 DegC */
  87. #define HTS221_T_RESOLUTION_256 (0x38) /* Resolution set to 0.007 DegC */
  88. /* Sensor Resolution */
  89. #define HTS221_H_RESOLUTION_MASK (0xf8)
  90. #define HTS221_T_RESOLUTION_MASK (0xC7)
  91. #endif