modules/hal_st: Align sensor drivers to stmemsc HAL i/f v1.02

Align all sensor drivers that are using stmemsc (STdC) HAL i/f
to new APIs of stmemsc v1.02.

Requires https://github.com/zephyrproject-rtos/hal_st/pull/3

Signed-off-by: Armando Visconti <armando.visconti@st.com>
This commit is contained in:
Armando Visconti 2019-09-25 10:51:12 +02:00 committed by Maureen Helm
commit dc9e297e09
29 changed files with 129 additions and 60 deletions

View file

@ -296,7 +296,7 @@ static int lsm6dso_attr_set(struct device *dev, enum sensor_channel chan,
static int lsm6dso_sample_fetch_accel(struct device *dev)
{
struct lsm6dso_data *data = dev->driver_data;
axis3bit16_t buf;
union axis3bit16_t buf;
if (lsm6dso_acceleration_raw_get(data->ctx, buf.u8bit) < 0) {
LOG_DBG("Failed to read sample");
@ -313,7 +313,7 @@ static int lsm6dso_sample_fetch_accel(struct device *dev)
static int lsm6dso_sample_fetch_gyro(struct device *dev)
{
struct lsm6dso_data *data = dev->driver_data;
axis3bit16_t buf;
union axis3bit16_t buf;
if (lsm6dso_angular_rate_raw_get(data->ctx, buf.u8bit) < 0) {
LOG_DBG("Failed to read sample");
@ -331,7 +331,7 @@ static int lsm6dso_sample_fetch_gyro(struct device *dev)
static int lsm6dso_sample_fetch_temp(struct device *dev)
{
struct lsm6dso_data *data = dev->driver_data;
axis1bit16_t buf;
union axis1bit16_t buf;
if (lsm6dso_temperature_raw_get(data->ctx, buf.u8bit) < 0) {
LOG_DBG("Failed to read sample");

View file

@ -18,6 +18,16 @@
#include <sys/util.h>
#include "lsm6dso_reg.h"
union axis3bit16_t {
s16_t i16bit[3];
u8_t u8bit[6];
};
union axis1bit16_t {
s16_t i16bit;
u8_t u8bit[2];
};
#define LSM6DSO_EN_BIT 0x01
#define LSM6DSO_DIS_BIT 0x00
@ -146,12 +156,12 @@ struct lsm6dso_data {
} hts221;
#endif /* CONFIG_LSM6DSO_SENSORHUB */
lsm6dso_ctx_t *ctx;
stmdev_ctx_t *ctx;
#ifdef DT_ST_LSM6DSO_BUS_I2C
lsm6dso_ctx_t ctx_i2c;
stmdev_ctx_t ctx_i2c;
#elif DT_ST_LSM6DSO_BUS_SPI
lsm6dso_ctx_t ctx_spi;
stmdev_ctx_t ctx_spi;
#endif
u16_t accel_freq;

View file

@ -42,8 +42,8 @@ int lsm6dso_i2c_init(struct device *dev)
{
struct lsm6dso_data *data = dev->driver_data;
data->ctx_i2c.read_reg = (lsm6dso_read_ptr) lsm6dso_i2c_read,
data->ctx_i2c.write_reg = (lsm6dso_write_ptr) lsm6dso_i2c_write,
data->ctx_i2c.read_reg = (stmdev_read_ptr) lsm6dso_i2c_read,
data->ctx_i2c.write_reg = (stmdev_write_ptr) lsm6dso_i2c_write,
data->ctx = &data->ctx_i2c;
data->ctx->handle = dev;

View file

@ -98,8 +98,8 @@ int lsm6dso_spi_init(struct device *dev)
{
struct lsm6dso_data *data = dev->driver_data;
data->ctx_spi.read_reg = (lsm6dso_read_ptr) lsm6dso_spi_read,
data->ctx_spi.write_reg = (lsm6dso_write_ptr) lsm6dso_spi_write,
data->ctx_spi.read_reg = (stmdev_read_ptr) lsm6dso_spi_read,
data->ctx_spi.write_reg = (stmdev_write_ptr) lsm6dso_spi_write,
data->ctx = &data->ctx_spi;
data->ctx->handle = dev;

View file

@ -28,7 +28,7 @@ static int lsm6dso_enable_t_int(struct device *dev, int enable)
lsm6dso_pin_int2_route_t int2_route;
if (enable) {
axis1bit16_t buf;
union axis1bit16_t buf;
/* dummy read: re-trigger interrupt */
lsm6dso_temperature_raw_get(lsm6dso->ctx, buf.u8bit);
@ -55,7 +55,7 @@ static int lsm6dso_enable_xl_int(struct device *dev, int enable)
struct lsm6dso_data *lsm6dso = dev->driver_data;
if (enable) {
axis3bit16_t buf;
union axis3bit16_t buf;
/* dummy read: re-trigger interrupt */
lsm6dso_acceleration_raw_get(lsm6dso->ctx, buf.u8bit);
@ -91,7 +91,7 @@ static int lsm6dso_enable_g_int(struct device *dev, int enable)
struct lsm6dso_data *lsm6dso = dev->driver_data;
if (enable) {
axis3bit16_t buf;
union axis3bit16_t buf;
/* dummy read: re-trigger interrupt */
lsm6dso_angular_rate_raw_get(lsm6dso->ctx, buf.u8bit);