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;
 }