You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mynewt.apache.org by je...@apache.org on 2022/06/15 19:06:13 UTC
[mynewt-core] 02/03: lsm6dsl_shell: Add dump of some bankA and bankB registers
This is an automated email from the ASF dual-hosted git repository.
jerzy pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/mynewt-core.git
commit dd00abc21614708e4e9fbaab6390a660326a3b65
Author: JustineKH <ju...@juul.com>
AuthorDate: Fri Jun 10 12:44:09 2022 -0700
lsm6dsl_shell: Add dump of some bankA and bankB registers
---
hw/drivers/sensors/lsm6dsl/src/lsm6dsl_shell.c | 53 ++++++++++++++++++++++++++
1 file changed, 53 insertions(+)
diff --git a/hw/drivers/sensors/lsm6dsl/src/lsm6dsl_shell.c b/hw/drivers/sensors/lsm6dsl/src/lsm6dsl_shell.c
index 2047564b3..d34123cd6 100644
--- a/hw/drivers/sensors/lsm6dsl/src/lsm6dsl_shell.c
+++ b/hw/drivers/sensors/lsm6dsl/src/lsm6dsl_shell.c
@@ -80,6 +80,21 @@ static const reg_name_t reg_name[] = {
{ .addr = 0x5f, .regname = "MD2_CFG" },
};
+/* Human readable register map for bankA */
+static const reg_name_t reg_name_banka[] = {
+ { .addr = 0x0f, .regname = "CONFIG_PEDO_THS_MIN" },
+ { .addr = 0x13, .regname = "SM_THS" },
+ { .addr = 0x14, .regname = "PEDO_DEB_REG" },
+ { .addr = 0x15, .regname = "STEP_COUNT_DELTA" },
+};
+
+/* Human readable register map for bankB */
+static const reg_name_t reg_name_bankb[] = {
+ { .addr = 0x50, .regname = "A_WRIST_TILT_LAT" },
+ { .addr = 0x54, .regname = "A_WRIST_TILT_THS" },
+ { .addr = 0x59, .regname = "A_WRIST_TILT_Mask" },
+};
+
static struct shell_cmd lsm6dsl_shell_cmd_struct = {
.sc_cmd = "lsm6dsl",
.sc_cmd_func = lsm6dsl_shell_cmd
@@ -172,6 +187,44 @@ lsm6dsl_shell_cmd_dump(int argc, char **argv)
reg_name[i].regname, reg_name[i].addr, value);
}
}
+
+ /* Bank A */
+ rc = lsm6dsl_write_reg(g_lsm6dsl, LSM6DSL_FUNC_CFG_ACCESS_REG, LSM6DSL_FUNC_CFG_ACCESS_MASK);
+ if (rc) {
+ return rc;
+ }
+ for (i = 0; i < ARRAY_SIZE(reg_name_banka); i++) {
+ rc = lsm6dsl_read(g_lsm6dsl, reg_name_banka[i].addr, &value, 1);
+ if (rc) {
+ console_printf("dump failed %d\n", rc);
+ } else if (all || value != 0){
+ console_printf("%-22s(0x%02X) = 0x%02X\n",
+ reg_name_banka[i].regname, reg_name_banka[i].addr, value);
+ }
+ }
+ rc = lsm6dsl_write_reg(g_lsm6dsl, LSM6DSL_FUNC_CFG_ACCESS_REG, 0);
+ if (rc) {
+ return rc;
+ }
+
+ /* Bank B */
+ rc = lsm6dsl_write_reg(g_lsm6dsl, LSM6DSL_FUNC_CFG_ACCESS_REG, LSM6DSL_FUNC_CFG_ACCESS_MASK | LSM6DSL_SHUB_REG_ACCESS_MASK);
+ if (rc) {
+ return rc;
+ }
+ for (i = 0; i < ARRAY_SIZE(reg_name_bankb); i++) {
+ rc = lsm6dsl_read(g_lsm6dsl, reg_name_bankb[i].addr, &value, 1);
+ if (rc) {
+ console_printf("dump failed %d\n", rc);
+ } else if (all || value != 0){
+ console_printf("%-22s(0x%02X) = 0x%02X\n",
+ reg_name_bankb[i].regname, reg_name_bankb[i].addr, value);
+ }
+ }
+ rc = lsm6dsl_write_reg(g_lsm6dsl, LSM6DSL_FUNC_CFG_ACCESS_REG, 0);
+ if (rc) {
+ return rc;
+ }
} else {
sreg = parse_ll_bounds(argv[2], 0x02, 0x7F, &rc);
if (rc != 0) {