imsensors/include/imsensors/magnetic/magnetic_bmm150.h

52 lines
1.0 KiB
C

#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