hwmsen_dev.h 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. /*
  2. * Copyright(C)2014 MediaTek Inc.
  3. * Modification based on code covered by the below mentioned copyright
  4. * and/or permission notice(S).
  5. */
  6. #ifndef __HWMSEN_DEV_H__
  7. #define __HWMSEN_DEV_H__
  8. #include <linux/types.h>
  9. #include "hwmsensor.h"
  10. /*define sensor operator type---------------------------------------------------*/
  11. #define SENSOR_DELAY 0X01
  12. #define SENSOR_ENABLE 0X02
  13. #define SENSOR_GET_DATA 0X04
  14. /**
  15. * status of each sensor
  16. */
  17. #define SENSOR_STATUS_UNRELIABLE 0
  18. #define SENSOR_STATUS_ACCURACY_LOW 1
  19. #define SENSOR_STATUS_ACCURACY_MEDIUM 2
  20. #define SENSOR_STATUS_ACCURACY_HIGH 3
  21. #define GRAVITY_EARTH_1000 9807 /* about (9.80665f)*1000 */
  22. __weak int pmic_ldo_suspend_enable(int enable);
  23. struct hwmsen_object {
  24. void *self;
  25. int polling;
  26. int (*sensor_operate)(void *self, uint32_t command, void *buff_in, int size_in,
  27. void *buff_out, int size_out, int *actualout);
  28. };
  29. struct sensor_init_info {
  30. char *name;
  31. int (*init)(void);
  32. int (*uninit)(void);
  33. struct platform_driver *platform_diver_addr;
  34. };
  35. /*----------------------------------------------------------------------------*/
  36. extern int hwmsen_attach(int sensor, struct hwmsen_object *obj);
  37. extern int hwmsen_detach(int sensor);
  38. extern int hwmsen_get_interrupt_data(int sensor, struct hwm_sensor_data *data);
  39. /* AAL functions */
  40. extern int hwmsen_aal_enable(int enable);
  41. extern int hwmsen_aal_get_data(void);
  42. extern int hwmsen_aal_get_status(void);
  43. #if defined(CONFIG_MTK_AUTO_DETECT_ACCELEROMETER) /* */
  44. extern int hwmsen_gsensor_add(struct sensor_init_info *obj);
  45. #endif
  46. #if defined(CONFIG_MTK_AUTO_DETECT_MAGNETOMETER)
  47. extern int hwmsen_msensor_add(struct sensor_init_info *obj);
  48. #endif
  49. #if defined(CONFIG_MTK_AUTO_DETECT_ALSPS)
  50. extern int hwmsen_alsps_sensor_add(struct sensor_init_info *obj);
  51. #endif
  52. /*----------------------------------------------------------------------------*/
  53. #endif