summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/mfd/m4sensorhub-irq.c3
-rw-r--r--drivers/mfd/m4sensorhub-reg.h33
-rw-r--r--drivers/misc/m4sensorhub_heartrate.c14
-rw-r--r--drivers/misc/m4sensorhub_passive.c64
-rw-r--r--drivers/misc/m4sensorhub_pedometer.c19
-rw-r--r--include/linux/iio/m4sensorhub/m4sensorhub_passive.h8
-rw-r--r--include/linux/iio/m4sensorhub/m4sensorhub_pedometer.h6
-rw-r--r--include/linux/m4sensorhub/m4sensorhub_irqs.h3
-rw-r--r--include/linux/m4sensorhub/m4sensorhub_reg_enum.h13
9 files changed, 109 insertions, 54 deletions
diff --git a/drivers/mfd/m4sensorhub-irq.c b/drivers/mfd/m4sensorhub-irq.c
index d569c47a8c5..b4b046b01d9 100644
--- a/drivers/mfd/m4sensorhub-irq.c
+++ b/drivers/mfd/m4sensorhub-irq.c
@@ -73,8 +73,9 @@ static const char *irq_name[] = {
[M4SH_IRQ_WRIST_READY] = "WRIST_READY",
[M4SH_IRQ_PASSIVE_BUFFER_FULL] = "PASSIVE_BUFFER_FULL",
[M4SH_IRQ_LIGHTSENSOR_DATA_READY] = "ALS_DATA_READY",
- [M4SH_IRQ_HRSENSOR_DATA_READY] = "HR_DATA_READY",
+ [M4SH_IRQ_HRSENSOR_DATA_READY] = "HRSENSOR_DATA_READY",
[M4SH_IRQ_AP_ALARM_EXPIRED] = "AP_ALARM_EXPIRED",
+ [M4SH_IRQ_HEARTRATE_DATA_READY] = "HR_DATA_READY",
};
/* -------------- Local Data Structures ------------- */
diff --git a/drivers/mfd/m4sensorhub-reg.h b/drivers/mfd/m4sensorhub-reg.h
index 9e88714f806..a69c95da7c8 100644
--- a/drivers/mfd/m4sensorhub-reg.h
+++ b/drivers/mfd/m4sensorhub-reg.h
@@ -69,12 +69,12 @@ static const struct {
[M4SH_REG_PEDOMETER_TESTCMD] = {M4SH_TYPE_PEDOMETER, 0x1, 1},
[M4SH_REG_PEDOMETER_ACTIVITY] = {M4SH_TYPE_PEDOMETER, 0x2, 1},
[M4SH_REG_PEDOMETER_EQUIPMENTTYPE] = {M4SH_TYPE_PEDOMETER, 0x3, 1},
- [M4SH_REG_PEDOMETER_TOTALSTEPS] = {M4SH_TYPE_PEDOMETER, 0x4, 2},
- [M4SH_REG_PEDOMETER_FLOORSCLIMBED] = {M4SH_TYPE_PEDOMETER, 0x6, 2},
- [M4SH_REG_PEDOMETER_TOTATDISTANCE] = {M4SH_TYPE_PEDOMETER, 0x8, 4},
- [M4SH_REG_PEDOMETER_CURRENTSPEED] = {M4SH_TYPE_PEDOMETER, 0xc, 4},
- [M4SH_REG_PEDOMETER_REPORTEDDISTANCE] = {M4SH_TYPE_PEDOMETER, 0x10, 4},
- [M4SH_REG_PEDOMETER_USERDISTANCE] = {M4SH_TYPE_PEDOMETER, 0x14, 4},
+ [M4SH_REG_PEDOMETER_TOTALSTEPS] = {M4SH_TYPE_PEDOMETER, 0x4, 4},
+ [M4SH_REG_PEDOMETER_REPORTEDDISTANCE] = {M4SH_TYPE_PEDOMETER, 0x8, 4},
+ [M4SH_REG_PEDOMETER_USERDISTANCE] = {M4SH_TYPE_PEDOMETER, 0xc, 4},
+ [M4SH_REG_PEDOMETER_TOTALDISTANCE] = {M4SH_TYPE_PEDOMETER, 0x10, 4},
+ [M4SH_REG_PEDOMETER_FLOORSCLIMBED] = {M4SH_TYPE_PEDOMETER, 0x14, 2},
+ [M4SH_REG_PEDOMETER_CURRENTSPEED] = {M4SH_TYPE_PEDOMETER, 0x16, 2},
[M4SH_REG_TCMD_OPCODE] = {M4SH_TYPE_TCMD, 0x0, 1},
[M4SH_REG_LOG_LOGENABLE] = {M4SH_TYPE_LOG, 0x0, 8},
[M4SH_REG_LOG_ISLOGIMMEDIATE] = {M4SH_TYPE_LOG, 0x8, 1},
@@ -111,6 +111,7 @@ static const struct {
[M4SH_REG_METS_MSSAMPLETIME] = {M4SH_TYPE_METS, 0x2, 2},
[M4SH_REG_METS_METS] = {M4SH_TYPE_METS, 0x4, 4},
[M4SH_REG_METS_CALORIES] = {M4SH_TYPE_METS, 0x8, 4},
+ [M4SH_REG_METS_HEALTHYMINUTES] = {M4SH_TYPE_METS, 0xc, 4},
[M4SH_REG_USERSETTINGS_VERSION] = {M4SH_TYPE_USERSETTINGS, 0x0, 1},
[M4SH_REG_USERSETTINGS_USERAGE] = {M4SH_TYPE_USERSETTINGS, 0x1, 1},
[M4SH_REG_USERSETTINGS_USERGENDER] = {M4SH_TYPE_USERSETTINGS, 0x2, 1},
@@ -162,15 +163,19 @@ static const struct {
[M4SH_REG_GESTURE_CONFIDENCE3] = {M4SH_TYPE_GESTURE, 0x8, 1},
[M4SH_REG_GESTURE_VALUE3] = {M4SH_TYPE_GESTURE, 0x9, 1},
[M4SH_REG_PASSIVE_TIMESTAMP] = {M4SH_TYPE_PASSIVE, 0x0, 48},
- [M4SH_REG_PASSIVE_STEPS] = {M4SH_TYPE_PASSIVE, 0x30, 48},
- [M4SH_REG_PASSIVE_CALORIES] = {M4SH_TYPE_PASSIVE, 0x60, 48},
- [M4SH_REG_PASSIVE_FLOORSCLIMBED] = {M4SH_TYPE_PASSIVE, 0x90, 48},
+ [M4SH_REG_PASSIVE_STEPS] = {M4SH_TYPE_PASSIVE, 0x30, 24},
+ [M4SH_REG_PASSIVE_CALORIES] = {M4SH_TYPE_PASSIVE, 0x48, 24},
+ [M4SH_REG_PASSIVE_HEARTRATE] = {M4SH_TYPE_PASSIVE, 0x60, 24},
+ [M4SH_REG_PASSIVE_HRCONFIDENCE] = {M4SH_TYPE_PASSIVE, 0x78, 12},
+ [M4SH_REG_PASSIVE_HEALTHYMINUTES] = {M4SH_TYPE_PASSIVE, 0x84, 12},
[M4SH_REG_EMG_SIGNALCOUNT] = {M4SH_TYPE_EMG, 0x0, 1},
[M4SH_REG_EMG_DUMMY] = {M4SH_TYPE_EMG, 0x1, 1},
[M4SH_REG_EMG_SAMPLERATE] = {M4SH_TYPE_EMG, 0x2, 2},
[M4SH_REG_EMG_SIGNALS] = {M4SH_TYPE_EMG, 0x4, 326},
- [M4SH_REG_HEARTRATE_HEARTRATE] = {M4SH_TYPE_HEARTRATE, 0x0, 2},
- [M4SH_REG_HEARTRATE_CONFIDENCE] = {M4SH_TYPE_HEARTRATE, 0x2, 1},
+ [M4SH_REG_HEARTRATE_ENABLE] = {M4SH_TYPE_HEARTRATE, 0x0, 4},
+ [M4SH_REG_HEARTRATE_APSAMPLERATE] = {M4SH_TYPE_HEARTRATE, 0x4, 4},
+ [M4SH_REG_HEARTRATE_HEARTRATE] = {M4SH_TYPE_HEARTRATE, 0x8, 2},
+ [M4SH_REG_HEARTRATE_CONFIDENCE] = {M4SH_TYPE_HEARTRATE, 0xa, 1},
[M4SH_REG_HRSENSOR_VERSION] = {M4SH_TYPE_HRSENSOR, 0x0, 1},
[M4SH_REG_HRSENSOR_DUMMY] = {M4SH_TYPE_HRSENSOR, 0x1, 1},
[M4SH_REG_HRSENSOR_SAMPLERATE] = {M4SH_TYPE_HRSENSOR, 0x2, 2},
@@ -195,7 +200,7 @@ static const unsigned int bank_size_tbl[M4SH_TYPE__NUM] = {
[M4SH_TYPE_FUSION] = 59,
[M4SH_TYPE_COMPASS] = 17,
[M4SH_TYPE_GYRO] = 16,
- [M4SH_TYPE_METS] = 12,
+ [M4SH_TYPE_METS] = 16,
[M4SH_TYPE_USERSETTINGS] = 8,
[M4SH_TYPE_POWER] = 8,
[M4SH_TYPE_LOCATION] = 14,
@@ -204,9 +209,9 @@ static const unsigned int bank_size_tbl[M4SH_TYPE__NUM] = {
[M4SH_TYPE_TIMEPIECE] = 8,
[M4SH_TYPE_WRIST] = 8,
[M4SH_TYPE_GESTURE] = 10,
- [M4SH_TYPE_PASSIVE] = 192,
+ [M4SH_TYPE_PASSIVE] = 144,
[M4SH_TYPE_EMG] = 330,
- [M4SH_TYPE_HEARTRATE] = 3,
+ [M4SH_TYPE_HEARTRATE] = 11,
[M4SH_TYPE_HRSENSOR] = 13,
[M4SH_TYPE_LIGHTSENSOR] = 6,
};
diff --git a/drivers/misc/m4sensorhub_heartrate.c b/drivers/misc/m4sensorhub_heartrate.c
index fc207b32834..9d785ab4b06 100644
--- a/drivers/misc/m4sensorhub_heartrate.c
+++ b/drivers/misc/m4sensorhub_heartrate.c
@@ -97,8 +97,8 @@ static int m4hrt_set_samplerate(struct iio_dev *iio, int16_t rate)
goto m4hrt_set_samplerate_irq_check;
size = m4sensorhub_reg_getsize(dd->m4,
- M4SH_REG_HRSENSOR_SAMPLERATE);
- err = m4sensorhub_reg_write(dd->m4, M4SH_REG_HRSENSOR_SAMPLERATE,
+ M4SH_REG_HEARTRATE_APSAMPLERATE);
+ err = m4sensorhub_reg_write(dd->m4, M4SH_REG_HEARTRATE_APSAMPLERATE,
(char *)&rate, m4sh_no_mask);
if (err < 0) {
m4hrt_err("%s: Failed to set sample rate.\n", __func__);
@@ -116,7 +116,7 @@ m4hrt_set_samplerate_irq_check:
/* Enable the IRQ if necessary */
if (!(dd->status & (1 << M4HRT_IRQ_ENABLED_BIT))) {
err = m4sensorhub_irq_enable(dd->m4,
- M4SH_IRQ_HRSENSOR_DATA_READY);
+ M4SH_IRQ_HEARTRATE_DATA_READY);
if (err < 0) {
m4hrt_err("%s: Failed to enable irq.\n",
__func__);
@@ -128,7 +128,7 @@ m4hrt_set_samplerate_irq_check:
/* Disable the IRQ if necessary */
if (dd->status & (1 << M4HRT_IRQ_ENABLED_BIT)) {
err = m4sensorhub_irq_disable(dd->m4,
- M4SH_IRQ_HRSENSOR_DATA_READY);
+ M4SH_IRQ_HEARTRATE_DATA_READY);
if (err < 0) {
m4hrt_err("%s: Failed to disable irq.\n",
__func__);
@@ -482,7 +482,7 @@ static int m4hrt_driver_init(struct init_calldata *p_arg)
}
err = m4sensorhub_irq_register(dd->m4,
- M4SH_IRQ_HRSENSOR_DATA_READY, m4hrt_isr, iio);
+ M4SH_IRQ_HEARTRATE_DATA_READY, m4hrt_isr, iio);
if (err < 0) {
m4hrt_err("%s: Failed to register M4 IRQ.\n", __func__);
goto m4hrt_driver_init_fail;
@@ -552,11 +552,11 @@ static int __exit m4hrt_remove(struct platform_device *pdev)
mutex_lock(&(dd->mutex));
if (dd->status & (1 << M4HRT_IRQ_ENABLED_BIT)) {
m4sensorhub_irq_disable(dd->m4,
- M4SH_IRQ_HRSENSOR_DATA_READY);
+ M4SH_IRQ_HEARTRATE_DATA_READY);
dd->status = dd->status & ~(1 << M4HRT_IRQ_ENABLED_BIT);
}
m4sensorhub_irq_unregister(dd->m4,
- M4SH_IRQ_HRSENSOR_DATA_READY);
+ M4SH_IRQ_HEARTRATE_DATA_READY);
m4sensorhub_unregister_initcall(m4hrt_driver_init);
m4hrt_remove_iiodev(iio); /* dd is freed here */
diff --git a/drivers/misc/m4sensorhub_passive.c b/drivers/misc/m4sensorhub_passive.c
index c62ae7fac97..d94ba4381ac 100644
--- a/drivers/misc/m4sensorhub_passive.c
+++ b/drivers/misc/m4sensorhub_passive.c
@@ -57,9 +57,11 @@ static void m4pas_isr(enum m4sensorhub_irqs int_event, void *handle)
struct m4pas_driver_data *dd = iio_priv(iio);
int size = 0;
uint32_t passive_timestamp[M4PAS_NUM_PASSIVE_BUFFERS];
- uint32_t steps[M4PAS_NUM_PASSIVE_BUFFERS];
- uint32_t calories[M4PAS_NUM_PASSIVE_BUFFERS];
- uint32_t floors_climbed[M4PAS_NUM_PASSIVE_BUFFERS];
+ uint16_t steps[M4PAS_NUM_PASSIVE_BUFFERS];
+ uint16_t calories[M4PAS_NUM_PASSIVE_BUFFERS];
+ uint16_t heartrate[M4PAS_NUM_PASSIVE_BUFFERS];
+ uint8_t hrconfidence[M4PAS_NUM_PASSIVE_BUFFERS];
+ uint8_t healthy_minutes[M4PAS_NUM_PASSIVE_BUFFERS];
int i = 0;
mutex_lock(&(dd->mutex));
@@ -104,16 +106,44 @@ static void m4pas_isr(enum m4sensorhub_irqs int_event, void *handle)
goto m4pas_isr_fail;
}
- size = m4sensorhub_reg_getsize(dd->m4, M4SH_REG_PASSIVE_FLOORSCLIMBED);
- err = m4sensorhub_reg_read(dd->m4, M4SH_REG_PASSIVE_FLOORSCLIMBED,
- (char *)&(floors_climbed));
+ size = m4sensorhub_reg_getsize(dd->m4, M4SH_REG_PASSIVE_HEARTRATE);
+ err = m4sensorhub_reg_read(dd->m4, M4SH_REG_PASSIVE_HEARTRATE,
+ (char *)&(heartrate));
if (err < 0) {
- m4pas_err("%s: Failed to read floors_climbed data.\n",
+ m4pas_err("%s: Failed to read heartrate data.\n",
__func__);
goto m4pas_isr_fail;
} else if (err != size) {
m4pas_err("%s: Read %d bytes instead of %d for %s.\n",
- __func__, err, size, "floors_climbed");
+ __func__, err, size, "heartrate");
+ err = -EBADE;
+ goto m4pas_isr_fail;
+ }
+
+ size = m4sensorhub_reg_getsize(dd->m4, M4SH_REG_PASSIVE_HRCONFIDENCE);
+ err = m4sensorhub_reg_read(dd->m4, M4SH_REG_PASSIVE_HRCONFIDENCE,
+ (char *)&(hrconfidence));
+ if (err < 0) {
+ m4pas_err("%s: Failed to read hrconfidence data.\n",
+ __func__);
+ goto m4pas_isr_fail;
+ } else if (err != size) {
+ m4pas_err("%s: Read %d bytes instead of %d for %s.\n",
+ __func__, err, size, "hrconfidence");
+ err = -EBADE;
+ goto m4pas_isr_fail;
+ }
+
+ size = m4sensorhub_reg_getsize(dd->m4, M4SH_REG_PASSIVE_HEALTHYMINUTES);
+ err = m4sensorhub_reg_read(dd->m4, M4SH_REG_PASSIVE_HEALTHYMINUTES,
+ (char *)&(healthy_minutes));
+ if (err < 0) {
+ m4pas_err("%s: Failed to read healthy_minutes data.\n",
+ __func__);
+ goto m4pas_isr_fail;
+ } else if (err != size) {
+ m4pas_err("%s: Read %d bytes instead of %d for %s.\n",
+ __func__, err, size, "healthy_minutes");
err = -EBADE;
goto m4pas_isr_fail;
}
@@ -122,11 +152,19 @@ static void m4pas_isr(enum m4sensorhub_irqs int_event, void *handle)
dd->iiodat[i].passive_timestamp = passive_timestamp[i];
dd->iiodat[i].steps = steps[i];
dd->iiodat[i].calories = calories[i];
- dd->iiodat[i].floors_climbed = floors_climbed[i];
+ dd->iiodat[i].heartrate = heartrate[i];
+ dd->iiodat[i].hrconfidence = hrconfidence[i];
+ dd->iiodat[i].healthy_minutes = healthy_minutes[i];
dd->iiodat[i].timestamp = iio_get_time_ns();
- iio_push_to_buffers(iio, (unsigned char *)&(dd->iiodat[i]));
}
+ /*
+ * For some reason, IIO knows we are sending an array,
+ * so all M4PAS_NUM_PASSIVE_BUFFERS indicies will be sent
+ * in this one call (it does not need to go in the for-loop).
+ */
+ iio_push_to_buffers(iio, (unsigned char *)&(dd->iiodat[0]));
+
m4pas_isr_fail:
if (err < 0)
m4pas_err("%s: Failed with error code %d.\n", __func__, err);
@@ -246,12 +284,14 @@ static ssize_t m4pas_iiodata_show(struct device *dev,
buf[0] = '\0'; /* Start with NULL terminator for concatenation */;
for (i = 0; i < M4PAS_NUM_PASSIVE_BUFFERS; i++) {
size = snprintf(buf, PAGE_SIZE,
- "%s%s%d\n%s%u\n%s%u\n%s%u\n%s%u\n",
+ "%s%s%d\n%s%u\n%s%hu\n%s%hu\n%s%hu\n%s%hhu\n%s%hhu\n",
buf, "Buffer ", i,
"passive_timestamp: ", dd->iiodat[i].passive_timestamp,
"steps: ", dd->iiodat[i].steps,
"calories: ", dd->iiodat[i].calories,
- "floors_climbed: ", dd->iiodat[i].floors_climbed);
+ "heartrate: ", dd->iiodat[i].heartrate,
+ "hrconfidence: ", dd->iiodat[i].hrconfidence,
+ "healthy_minutes: ", dd->iiodat[i].healthy_minutes);
}
mutex_unlock(&(dd->mutex));
return size;
diff --git a/drivers/misc/m4sensorhub_pedometer.c b/drivers/misc/m4sensorhub_pedometer.c
index 68b2299e1ac..87fd15be3f3 100644
--- a/drivers/misc/m4sensorhub_pedometer.c
+++ b/drivers/misc/m4sensorhub_pedometer.c
@@ -74,8 +74,8 @@ static int m4ped_read_report_data(struct iio_dev *iio,
}
size = m4sensorhub_reg_getsize(dd->m4,
- M4SH_REG_PEDOMETER_TOTATDISTANCE);
- err = m4sensorhub_reg_read(dd->m4, M4SH_REG_PEDOMETER_TOTATDISTANCE,
+ M4SH_REG_PEDOMETER_TOTALDISTANCE);
+ err = m4sensorhub_reg_read(dd->m4, M4SH_REG_PEDOMETER_TOTALDISTANCE,
(char *)&(dd->iiodat.total_distance));
if (err < 0) {
m4ped_err("%s: Failed to read total_distance data.\n",
@@ -115,17 +115,16 @@ static int m4ped_read_report_data(struct iio_dev *iio,
goto m4ped_read_fail;
}
- size = m4sensorhub_reg_getsize(dd->m4,
- M4SH_REG_PEDOMETER_FLOORSCLIMBED);
- err = m4sensorhub_reg_read(dd->m4, M4SH_REG_PEDOMETER_FLOORSCLIMBED,
- (char *)&(dd->iiodat.floors_climbed));
+ size = m4sensorhub_reg_getsize(dd->m4, M4SH_REG_METS_HEALTHYMINUTES);
+ err = m4sensorhub_reg_read(dd->m4, M4SH_REG_METS_HEALTHYMINUTES,
+ (char *)&(dd->iiodat.healthy_minutes));
if (err < 0) {
- m4ped_err("%s: Failed to read floors_climbed data.\n",
+ m4ped_err("%s: Failed to read healthy_minutes data.\n",
__func__);
goto m4ped_read_fail;
} else if (err != size) {
m4ped_err("%s: Read %d bytes instead of %d for %s.\n",
- __func__, err, size, "floors_climbed");
+ __func__, err, size, "healthy_minutes");
err = -EBADE;
goto m4ped_read_fail;
}
@@ -301,12 +300,12 @@ static ssize_t m4ped_iiodata_show(struct device *dev,
mutex_lock(&(dd->mutex));
size = snprintf(buf, PAGE_SIZE,
- "%s%hhu\n%s%u\n%s%hu\n%s%u\n%s%hu\n%s%u\n",
+ "%s%hhu\n%s%u\n%s%u\n%s%hu\n%s%u\n%s%u\n",
"ped_activity: ", dd->iiodat.ped_activity,
"total_distance: ", dd->iiodat.total_distance,
"total_steps: ", dd->iiodat.total_steps,
"current_speed: ", dd->iiodat.current_speed,
- "floors_climbed: ", dd->iiodat.floors_climbed,
+ "healthy_minutes: ", dd->iiodat.healthy_minutes,
"calories: ", dd->iiodat.calories);
mutex_unlock(&(dd->mutex));
return size;
diff --git a/include/linux/iio/m4sensorhub/m4sensorhub_passive.h b/include/linux/iio/m4sensorhub/m4sensorhub_passive.h
index 4663fc767d1..5b34b3a3222 100644
--- a/include/linux/iio/m4sensorhub/m4sensorhub_passive.h
+++ b/include/linux/iio/m4sensorhub/m4sensorhub_passive.h
@@ -25,9 +25,11 @@
struct m4sensorhub_passive_iio_data {
uint32_t passive_timestamp;
- uint32_t steps;
- uint32_t calories;
- uint32_t floors_climbed;
+ uint16_t steps;
+ uint16_t calories;
+ uint16_t heartrate;
+ uint8_t hrconfidence;
+ uint8_t healthy_minutes;
long long timestamp;
} __packed;
diff --git a/include/linux/iio/m4sensorhub/m4sensorhub_pedometer.h b/include/linux/iio/m4sensorhub/m4sensorhub_pedometer.h
index f462a393684..2e4d6cd9bec 100644
--- a/include/linux/iio/m4sensorhub/m4sensorhub_pedometer.h
+++ b/include/linux/iio/m4sensorhub/m4sensorhub_pedometer.h
@@ -26,9 +26,9 @@
struct m4sensorhub_pedometer_iio_data {
uint8_t ped_activity;
uint32_t total_distance;
- uint16_t total_steps;
- uint32_t current_speed;
- uint16_t floors_climbed;
+ uint32_t total_steps;
+ uint16_t current_speed;
+ uint32_t healthy_minutes;
uint32_t calories;
long long timestamp;
} __packed;
diff --git a/include/linux/m4sensorhub/m4sensorhub_irqs.h b/include/linux/m4sensorhub/m4sensorhub_irqs.h
index 562365e679e..597adf9dba6 100644
--- a/include/linux/m4sensorhub/m4sensorhub_irqs.h
+++ b/include/linux/m4sensorhub/m4sensorhub_irqs.h
@@ -81,6 +81,9 @@ enum m4sensorhub_irqs {
/* INT2 0x02 : AP-RTC alarm expired */
M4SH_IRQ_AP_ALARM_EXPIRED,
+ /* INT2 0x04 : HR data ready */
+ M4SH_IRQ_HEARTRATE_DATA_READY,
+
/* Number of allocated interrupts */
M4SH_IRQ__NUM
};
diff --git a/include/linux/m4sensorhub/m4sensorhub_reg_enum.h b/include/linux/m4sensorhub/m4sensorhub_reg_enum.h
index f50c11742bd..1e2fc6ac15b 100644
--- a/include/linux/m4sensorhub/m4sensorhub_reg_enum.h
+++ b/include/linux/m4sensorhub/m4sensorhub_reg_enum.h
@@ -64,11 +64,11 @@ enum m4sensorhub_reg {
M4SH_REG_PEDOMETER_ACTIVITY,
M4SH_REG_PEDOMETER_EQUIPMENTTYPE,
M4SH_REG_PEDOMETER_TOTALSTEPS,
- M4SH_REG_PEDOMETER_FLOORSCLIMBED,
- M4SH_REG_PEDOMETER_TOTATDISTANCE,
- M4SH_REG_PEDOMETER_CURRENTSPEED,
M4SH_REG_PEDOMETER_REPORTEDDISTANCE,
M4SH_REG_PEDOMETER_USERDISTANCE,
+ M4SH_REG_PEDOMETER_TOTALDISTANCE,
+ M4SH_REG_PEDOMETER_FLOORSCLIMBED,
+ M4SH_REG_PEDOMETER_CURRENTSPEED,
M4SH_REG_TCMD_OPCODE,
M4SH_REG_LOG_LOGENABLE,
M4SH_REG_LOG_ISLOGIMMEDIATE,
@@ -105,6 +105,7 @@ enum m4sensorhub_reg {
M4SH_REG_METS_MSSAMPLETIME,
M4SH_REG_METS_METS,
M4SH_REG_METS_CALORIES,
+ M4SH_REG_METS_HEALTHYMINUTES,
M4SH_REG_USERSETTINGS_VERSION,
M4SH_REG_USERSETTINGS_USERAGE,
M4SH_REG_USERSETTINGS_USERGENDER,
@@ -158,11 +159,15 @@ enum m4sensorhub_reg {
M4SH_REG_PASSIVE_TIMESTAMP,
M4SH_REG_PASSIVE_STEPS,
M4SH_REG_PASSIVE_CALORIES,
- M4SH_REG_PASSIVE_FLOORSCLIMBED,
+ M4SH_REG_PASSIVE_HEARTRATE,
+ M4SH_REG_PASSIVE_HRCONFIDENCE,
+ M4SH_REG_PASSIVE_HEALTHYMINUTES,
M4SH_REG_EMG_SIGNALCOUNT,
M4SH_REG_EMG_DUMMY,
M4SH_REG_EMG_SAMPLERATE,
M4SH_REG_EMG_SIGNALS,
+ M4SH_REG_HEARTRATE_ENABLE,
+ M4SH_REG_HEARTRATE_APSAMPLERATE,
M4SH_REG_HEARTRATE_HEARTRATE,
M4SH_REG_HEARTRATE_CONFIDENCE,
M4SH_REG_HRSENSOR_VERSION,