diff options
| -rw-r--r-- | drivers/mfd/m4sensorhub-irq.c | 3 | ||||
| -rw-r--r-- | drivers/mfd/m4sensorhub-reg.h | 33 | ||||
| -rw-r--r-- | drivers/misc/m4sensorhub_heartrate.c | 14 | ||||
| -rw-r--r-- | drivers/misc/m4sensorhub_passive.c | 64 | ||||
| -rw-r--r-- | drivers/misc/m4sensorhub_pedometer.c | 19 | ||||
| -rw-r--r-- | include/linux/iio/m4sensorhub/m4sensorhub_passive.h | 8 | ||||
| -rw-r--r-- | include/linux/iio/m4sensorhub/m4sensorhub_pedometer.h | 6 | ||||
| -rw-r--r-- | include/linux/m4sensorhub/m4sensorhub_irqs.h | 3 | ||||
| -rw-r--r-- | include/linux/m4sensorhub/m4sensorhub_reg_enum.h | 13 | 
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,  |