diff options
author | Gwendal Grignou <gwendal@chromium.org> | 2019-06-20 12:58:01 -0700 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2019-07-24 22:51:28 +0000 |
commit | fa1d673cfb32a89c5a067a06226dffb37ea2ed70 (patch) | |
tree | 050262f8c8b6a953e67a2c62d870bc5bf00af737 /common | |
parent | c30486beadfa9c2e9458586c6ebd5e977b85b014 (diff) | |
download | chrome-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')
-rw-r--r-- | common/motion_sense.c | 11 |
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 |