#ifndef IMS_BMM150_H #define IMS_BMM150_H #include "imsensors/common/sensors_common.h" typedef enum { IMS_BMM150_ODR_10HZ = 0U, IMS_BMM150_ODR_2HZ = 1U, IMS_BMM150_ODR_6HZ = 2U, IMS_BMM150_ODR_8HZ = 3U, IMS_BMM150_ODR_15HZ = 4U, IMS_BMM150_ODR_20HZ = 5U, IMS_BMM150_ODR_25HZ = 6U, IMS_BMM150_ODR_30HZ = 7U, } ims_bmm150_odr_t; typedef enum { IMS_BMM150_PRESET_LOWPOWER, IMS_BMM150_PRESET_REGULAR, IMS_BMM150_PRESET_ENHANCED_REGULAR, IMS_BMM150_PRESET_HIGH_ACCURACY, } ims_bmm150_preset_t; typedef enum { IMS_BMM150_MODE_SLEEP, IMS_BMM150_MODE_FORCED, IMS_BMM150_MODE_NORMAL, } ims_bmm150_mode_t; typedef struct { } ims_bmm150_result_t; typedef struct { ims_i2c_xfer_t i2c_xfer; ims_delay_t delay; } ims_bmm150_cb_t; typedef struct { uint8_t rep_xy; uint8_t rep_z; ims_bmm150_odr_t odr; } ims_bmm150_config_t; typedef struct { ims_bmm150_cb_t cb; void *pdev; uint8_t i2c_addr; } ims_bmm150_t; #endif