From 5274c4e851352c23cfe9b6fca34010fe19bf454d Mon Sep 17 00:00:00 2001 From: Hauke Petersen Date: Wed, 18 Nov 2015 16:15:26 +0100 Subject: [PATCH] drivers/lps331ap: added SAUL integration --- drivers/include/lps331ap.h | 9 +++++++ drivers/lps331ap/lps331ap_saul.c | 45 ++++++++++++++++++++++++++++++++ 2 files changed, 54 insertions(+) create mode 100644 drivers/lps331ap/lps331ap_saul.c diff --git a/drivers/include/lps331ap.h b/drivers/include/lps331ap.h index 513b471fa..b81c296f5 100644 --- a/drivers/include/lps331ap.h +++ b/drivers/include/lps331ap.h @@ -53,6 +53,15 @@ typedef enum { LPS331AP_RATE_25HZ = 7 /**< sample with 25Hz */ } lps331ap_rate_t; +/** + * @brief Struct holding all parameters needed for device initialization + */ +typedef struct { + i2c_t i2c; /**< I2C bus the sensor is connected to */ + uint8_t addr; /**< the devices address on the bus */ + lps331ap_rate_t rate; /**< tell sensor to sample with this rate */ +} lps331ap_params_t; + /** * @brief Initialize a given LPS331AP pressure sensor * diff --git a/drivers/lps331ap/lps331ap_saul.c b/drivers/lps331ap/lps331ap_saul.c new file mode 100644 index 000000000..ee8032436 --- /dev/null +++ b/drivers/lps331ap/lps331ap_saul.c @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2015 Freie Universität Berlin + * + * This file is subject to the terms and conditions of the GNU Lesser + * General Public License v2.1. See the file LICENSE in the top level + * directory for more details. + */ + +/** + * @ingroup driver_lps331ap + * @{ + * + * @file + * @brief LPS331ap adaption to the RIOT actuator/sensor interface + * + * @author Hauke Petersen + * + * @} + */ + +#include + +#include "saul.h" +#include "lps331ap.h" + +static int read(void *dev, phydat_t *res) +{ + lps331ap_t *d = (lps331ap_t *)dev; + res->val[0] = (int16_t)lps331ap_read_pres(d); + memset(&(res->val[1]), 0, 2 * sizeof(int16_t)); + res->unit = UNIT_BAR; + res->scale = -3; + return 1; +} + +static int write(void *dev, phydat_t *state) +{ + return -ENOTSUP; +} + +const saul_driver_t lps331ap_saul_driver = { + .read = read, + .write = write, + .type = SAUL_SENSE_PRESS, +};