summaryrefslogtreecommitdiff
path: root/common/motion_sense.c
diff options
context:
space:
mode:
authorGwendal Grignou <gwendal@chromium.org>2019-06-20 12:58:01 -0700
committerCommit Bot <commit-bot@chromium.org>2019-07-24 22:51:28 +0000
commitfa1d673cfb32a89c5a067a06226dffb37ea2ed70 (patch)
tree050262f8c8b6a953e67a2c62d870bc5bf00af737 /common/motion_sense.c
parentc30486beadfa9c2e9458586c6ebd5e977b85b014 (diff)
downloadchrome-ec-fa1d673cfb32a89c5a067a06226dffb37ea2ed70.tar.gz
driver: Add support for calibration mode
For TCS3400, performing calibration is not just a one-shot event: The RBG sensor stays in calibration mode: returns raw value in R, G, B space. When out of calibration, it returns light information in X, Y and Z space. BUG=b:124512628 BRANCH=hatch,flapjack TEST=unit test Change-Id: I6766907054c8e79a3cbcb629ef91a0967ea0780a Signed-off-by: Gwendal Grignou <gwendal@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1702543 Reviewed-by: Nick Vaccaro <nvaccaro@google.com>
Diffstat (limited to 'common/motion_sense.c')
-rw-r--r--common/motion_sense.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/common/motion_sense.c b/common/motion_sense.c
index 140f1a9aa7..17806aabfe 100644
--- a/common/motion_sense.c
+++ b/common/motion_sense.c
@@ -1636,20 +1636,21 @@ static int host_cmd_motion_sense(struct host_cmd_handler_args *args)
case MOTIONSENSE_CMD_PERFORM_CALIB:
/* Verify sensor number is valid. */
sensor = host_sensor_id_to_real_sensor(
- in->sensor_offset.sensor_num);
+ in->perform_calib.sensor_num);
if (sensor == NULL)
return EC_RES_INVALID_PARAM;
if (!sensor->drv->perform_calib)
return EC_RES_INVALID_COMMAND;
- ret = sensor->drv->perform_calib(sensor);
+ ret = sensor->drv->perform_calib(
+ sensor, in->perform_calib.enable);
if (ret != EC_SUCCESS)
return ret;
- ret = sensor->drv->get_offset(sensor, out->sensor_offset.offset,
- &out->sensor_offset.temp);
+ ret = sensor->drv->get_offset(sensor, out->perform_calib.offset,
+ &out->perform_calib.temp);
if (ret != EC_SUCCESS)
return ret;
- args->response_size = sizeof(out->sensor_offset);
+ args->response_size = sizeof(out->perform_calib);
break;
#ifdef CONFIG_ACCEL_FIFO