This is an automated email from the ASF dual-hosted git repository.
benmccrea pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/mynewt-core.git
The following commit(s) were added to refs/heads/master by this push:
new 7ad1daab2 lps33thw: add syscfg to make statistics optional
new ca6e5ec5b Merge pull request #2990 from
JuulLabs/lps33thw-stats-optional
7ad1daab2 is described below
commit 7ad1daab2e7438268aacee8d601c0e412fbd4b5a
Author: Ben McCrea <[email protected]>
AuthorDate: Thu May 4 14:06:17 2023 -0700
lps33thw: add syscfg to make statistics optional
---
hw/drivers/sensors/lps33thw/pkg.yml | 2 +-
hw/drivers/sensors/lps33thw/src/lps33thw.c | 18 ++++++++++++++++++
hw/drivers/sensors/lps33thw/syscfg.yml | 3 +++
3 files changed, 22 insertions(+), 1 deletion(-)
diff --git a/hw/drivers/sensors/lps33thw/pkg.yml
b/hw/drivers/sensors/lps33thw/pkg.yml
index 50d638d55..1d5880d82 100644
--- a/hw/drivers/sensors/lps33thw/pkg.yml
+++ b/hw/drivers/sensors/lps33thw/pkg.yml
@@ -41,7 +41,7 @@ pkg.deps.BUS_DRIVER_PRESENT:
- "@apache-mynewt-core/hw/bus/drivers/i2c_common"
- "@apache-mynewt-core/hw/bus/drivers/spi_common"
-pkg.req_apis:
+pkg.req_apis.LPS33HW_STATS:
- stats
pkg.deps.LPS33HW_CLI:
diff --git a/hw/drivers/sensors/lps33thw/src/lps33thw.c
b/hw/drivers/sensors/lps33thw/src/lps33thw.c
index fd5e14450..d55b190cf 100644
--- a/hw/drivers/sensors/lps33thw/src/lps33thw.c
+++ b/hw/drivers/sensors/lps33thw/src/lps33thw.c
@@ -38,7 +38,9 @@
#include "lps33thw/lps33thw.h"
#include "lps33thw_priv.h"
#include "modlog/modlog.h"
+#if MYNEWT_VAL(LPS33THW_STATS)
#include "stats/stats.h"
+#endif
#include <syscfg/syscfg.h>
#if !MYNEWT_VAL(BUS_DRIVER_PRESENT)
@@ -50,6 +52,7 @@ static struct hal_spi_settings spi_lps33thw_settings = {
};
#endif
+#if MYNEWT_VAL(LPS33THW_STATS)
/* Define the stats section and records */
STATS_SECT_START(lps33thw_stat_section)
STATS_SECT_ENTRY(read_errors)
@@ -64,6 +67,7 @@ STATS_NAME_END(lps33thw_stat_section)
/* Global variable used to hold stats data */
STATS_SECT_DECL(lps33thw_stat_section) g_lps33thwstats;
+#endif
#define LPS33THW_PRESS_OUT_DIV (40.96f)
#define LPS33THW_TEMP_OUT_DIV (100.0f)
@@ -237,7 +241,9 @@ lps33thw_i2c_set_reg(struct sensor_itf *itf, uint8_t reg,
uint8_t value)
LPS33THW_LOG_ERROR(
"Failed to write to 0x%02X:0x%02X with value 0x%02X\n",
itf->si_addr, reg, value);
+#if MYNEWT_VAL(LPS33THW_STATS)
STATS_INC(g_lps33thwstats, read_errors);
+#endif
}
return rc;
@@ -267,7 +273,9 @@ lps33thw_spi_set_reg(struct sensor_itf *itf, uint8_t reg,
uint8_t value)
rc = SYS_EINVAL;
LPS33THW_LOG_ERROR("SPI_%u register write failed addr:0x%02X\n",
itf->si_num, reg);
+#if MYNEWT_VAL(LPS33THW_STATS)
STATS_INC(g_lps33thwstats, write_errors);
+#endif
goto err;
}
@@ -277,7 +285,9 @@ lps33thw_spi_set_reg(struct sensor_itf *itf, uint8_t reg,
uint8_t value)
rc = SYS_EINVAL;
LPS33THW_LOG_ERROR("SPI_%u write failed addr:0x%02X\n",
itf->si_num, reg);
+#if MYNEWT_VAL(LPS33THW_STATS)
STATS_INC(g_lps33thwstats, write_errors);
+#endif
goto err;
}
@@ -360,7 +370,9 @@ lps33thw_spi_get_regs(struct sensor_itf *itf, uint8_t reg,
uint8_t size,
rc = SYS_EINVAL;
LPS33THW_LOG_ERROR("SPI_%u register write failed addr:0x%02X\n",
itf->si_num, reg);
+#if MYNEWT_VAL(LPS33THW_STATS)
STATS_INC(g_lps33thwstats, read_errors);
+#endif
goto err;
}
@@ -371,7 +383,9 @@ lps33thw_spi_get_regs(struct sensor_itf *itf, uint8_t reg,
uint8_t size,
rc = SYS_EINVAL;
LPS33THW_LOG_ERROR("SPI_%u read failed addr:0x%02X\n",
itf->si_num, reg);
+#if MYNEWT_VAL(LPS33THW_STATS)
STATS_INC(g_lps33thwstats, read_errors);
+#endif
goto err;
}
buffer[i] = retval;
@@ -424,7 +438,9 @@ lps33thw_i2c_get_regs(struct sensor_itf *itf, uint8_t reg,
uint8_t size,
if (rc) {
LPS33THW_LOG_ERROR("I2C access failed at address 0x%02X\n",
itf->si_addr);
+#if MYNEWT_VAL(LPS33THW_STATS)
STATS_INC(g_lps33thwstats, read_errors);
+#endif
return rc;
}
#endif
@@ -951,6 +967,7 @@ lps33thw_init(struct os_dev *dev, void *arg)
sensor = &lps->sensor;
lps->cfg.mask = SENSOR_TYPE_ALL;
+#if MYNEWT_VAL(LPS33THW_STATS)
/* Initialise the stats entry */
rc = stats_init(STATS_HDR(g_lps33thwstats),
STATS_SIZE_INIT_PARMS(g_lps33thwstats, STATS_SIZE_32),
@@ -960,6 +977,7 @@ lps33thw_init(struct os_dev *dev, void *arg)
/* Register the entry with the stats registry */
rc = stats_register(dev->od_name, STATS_HDR(g_lps33thwstats));
SYSINIT_PANIC_ASSERT(rc == 0);
+#endif
rc = sensor_init(sensor, dev);
if (rc) {
diff --git a/hw/drivers/sensors/lps33thw/syscfg.yml
b/hw/drivers/sensors/lps33thw/syscfg.yml
index 4948e1169..0e174b5b5 100644
--- a/hw/drivers/sensors/lps33thw/syscfg.yml
+++ b/hw/drivers/sensors/lps33thw/syscfg.yml
@@ -20,6 +20,9 @@ syscfg.defs:
LPS33THW_CLI:
description: 'Enable shell support for the LPS33THW'
value: 0
+ LPS33THW_STATS:
+ description: 'Enable statistics support for the LPS33THW'
+ value: 1
LPS33THW_ITF_LOCK_TMO:
description: 'LPS33THW interface lock timeout in milliseconds'
value: 1000