You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mynewt.apache.org by an...@apache.org on 2018/11/23 16:16:55 UTC
[mynewt-core] 23/26: hw/drivers/bme280: Adjust to latest changes in
bus driver
This is an automated email from the ASF dual-hosted git repository.
andk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/mynewt-core.git
commit b29f20e6917974dc4e98e50df3639d82254a6d60
Author: Andrzej Kaczmarek <an...@codecoup.pl>
AuthorDate: Mon Nov 19 14:55:15 2018 +0100
hw/drivers/bme280: Adjust to latest changes in bus driver
---
hw/drivers/sensors/bme280/include/bme280/bme280.h | 26 +++++++++++++++++++++--
hw/drivers/sensors/bme280/src/bme280.c | 20 ++++++++---------
2 files changed, 33 insertions(+), 13 deletions(-)
diff --git a/hw/drivers/sensors/bme280/include/bme280/bme280.h b/hw/drivers/sensors/bme280/include/bme280/bme280.h
index 8979fbe..1411fa7 100644
--- a/hw/drivers/sensors/bme280/include/bme280/bme280.h
+++ b/hw/drivers/sensors/bme280/include/bme280/bme280.h
@@ -285,13 +285,35 @@ int bme280_shell_init(void);
#endif
#if MYNEWT_VAL(BUS_DRIVER_PRESENT)
+/**
+ * Create I2C bus node for BME280 sensor
+ *
+ * @param node Bus node
+ * @param name Device name
+ * @param i2c_cfg I2C node configuration
+ * @param sensor_itf Sensors interface
+ *
+ * @return 0 on success, non-zero on failure
+ */
int
bme280_create_i2c_sensor_dev(struct bus_i2c_node *node, const char *name,
- const struct sensor_node_cfg *cfg);
+ const struct bus_i2c_node_cfg *i2c_cfg,
+ struct sensor_itf *sensor_itf);
+/**
+ * Create SPI bus node for BME280 sensor
+ *
+ * @param node Bus node
+ * @param name Device name
+ * @param spi_cfg SPI node configuration
+ * @param sensor_itf Sensors interface
+ *
+ * @return 0 on success, non-zero on failure
+ */
int
bme280_create_spi_sensor_dev(struct bus_spi_node *node, const char *name,
- const struct sensor_node_cfg *cfg);
+ const struct bus_spi_node_cfg *spi_cfg,
+ struct sensor_itf *sensor_itf);
#endif
#ifdef __cplusplus
diff --git a/hw/drivers/sensors/bme280/src/bme280.c b/hw/drivers/sensors/bme280/src/bme280.c
index 92c5fe9..1226e90 100644
--- a/hw/drivers/sensors/bme280/src/bme280.c
+++ b/hw/drivers/sensors/bme280/src/bme280.c
@@ -902,7 +902,7 @@ bme280_writelen(struct sensor_itf *itf, uint8_t addr, uint8_t *payload,
#if MYNEWT_VAL(BUS_DRIVER_PRESENT)
struct os_dev *dev = SENSOR_ITF_GET_DEVICE(itf);
- rc = bus_dev_lock_by_node(dev, OS_TIMEOUT_NEVER);
+ rc = bus_node_lock(dev, OS_TIMEOUT_NEVER);
if (rc) {
return SYS_EINVAL;
}
@@ -917,9 +917,7 @@ bme280_writelen(struct sensor_itf *itf, uint8_t addr, uint8_t *payload,
rc = bus_node_simple_write(dev, payload, len);
done:
- rc = bus_dev_unlock_by_node(dev);
- assert(rc == 0);
-
+ (void)bus_node_unlock(dev);
#else
int i;
@@ -1393,16 +1391,15 @@ err:
static void
init_node_cb(struct bus_node *bnode, void *arg)
{
- struct sensor_node_cfg *cfg = CONTAINER_OF(arg, struct sensor_node_cfg,
- i2c_node_cfg);
- struct sensor_itf *itf = &cfg->itf;
+ struct sensor_itf *itf = arg;
bme280_init((struct os_dev *)bnode, itf);
}
int
bme280_create_i2c_sensor_dev(struct bus_i2c_node *node, const char *name,
- const struct sensor_node_cfg *cfg)
+ const struct bus_i2c_node_cfg *i2c_cfg,
+ struct sensor_itf *sensor_itf)
{
struct bus_node_callbacks cbs = {
.init = init_node_cb,
@@ -1411,14 +1408,15 @@ bme280_create_i2c_sensor_dev(struct bus_i2c_node *node, const char *name,
bus_node_set_callbacks((struct os_dev *)node, &cbs);
- rc = bus_i2c_node_create(name, node, &cfg->i2c_node_cfg);
+ rc = bus_i2c_node_create(name, node, i2c_cfg, sensor_itf);
return rc;
}
int
bme280_create_spi_sensor_dev(struct bus_spi_node *node, const char *name,
- const struct sensor_node_cfg *cfg)
+ const struct bus_spi_node_cfg *spi_cfg,
+ struct sensor_itf *sensor_itf)
{
struct bus_node_callbacks cbs = {
.init = init_node_cb,
@@ -1427,7 +1425,7 @@ bme280_create_spi_sensor_dev(struct bus_spi_node *node, const char *name,
bus_node_set_callbacks((struct os_dev *)node, &cbs);
- rc = bus_spi_node_create(name, node, &cfg->spi_node_cfg);
+ rc = bus_spi_node_create(name, node, spi_cfg, sensor_itf);
return rc;
}