From 4df10f7b2b0e67d1c36bb69285436ec0d5e3fdfd Mon Sep 17 00:00:00 2001 From: Denis Brockus Date: Mon, 7 Jun 2021 09:48:00 -0600 Subject: zephyr: driver: add ST accel_lis2dw12 BUG=b:180980668,b:189857004 BRANCH=none TEST=make buildall TEST=zmake configure -b $PROJ_HAYATO Signed-off-by: Denis Brockus Change-Id: Ib743f0dbcc4a9731ccb575344413f161cd0dbba2 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2944617 Tested-by: Denis Brockus Auto-Submit: Denis Brockus Reviewed-by: Yuval Peress Commit-Queue: Yuval Peress --- .../src/motionsense_driver/lis2dw12-drvinfo.inc | 44 ++++++++++++++++++++++ .../src/motionsense_driver/sensor_drv_list.inc | 3 ++ 2 files changed, 47 insertions(+) create mode 100644 zephyr/shim/src/motionsense_driver/lis2dw12-drvinfo.inc (limited to 'zephyr/shim/src') diff --git a/zephyr/shim/src/motionsense_driver/lis2dw12-drvinfo.inc b/zephyr/shim/src/motionsense_driver/lis2dw12-drvinfo.inc new file mode 100644 index 0000000000..433a9d4192 --- /dev/null +++ b/zephyr/shim/src/motionsense_driver/lis2dw12-drvinfo.inc @@ -0,0 +1,44 @@ +/* Copyright 2021 The Chromium OS Authors. All rights reserved. + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#include "accel_lis2dw12_public.h" + +/* + * CREATE_SENSOR_DATA which is defined in motionsense_sensors.c is + * the helper to create sensor driver specific data. + * + * CREATE_SENSOR_DATA gets two arguments. One is the compatible + * property value specified in device tree and the other one is the macro + * that actually creates sensor driver specific data. The macro gets + * node id and the name to be used for the sensor driver data. + */ + +/* + * Create driver data for each Kionix drvinfo instance in device tree. + * (compatible = "cros-ec,drvdata-lis2dw12") + */ +/* Declare LIS2DW12 driver data */ +#define CREATE_SENSOR_DATA_LIS2DW12(id, drvdata_name) \ + static struct motion_sensor_t drvdata_name; + +CREATE_SENSOR_DATA(cros_ec_drvdata_lis2dw12, CREATE_SENSOR_DATA_LIS2DW12) + +/* + * CREATE_MOTION_SENSOR which is defined in motionsense_sensors.c is + * the macro to create an entry in motion_sensors array. + * The macro gets value of compatible property of + * the sensor in device tree and sensor specific values like chip ID, + * type of sensor, name of driver, default min/max frequency. + * Then using the values, it creates the corresponding motion_sense_t entry + * in motion_sensors array. + */ + +/* + * Create a motion_sensor_t entry for each LIS2DW12 + * instance(compatible = "cros-ec,lis2dw12") in device tree. + */ +CREATE_MOTION_SENSOR(cros_ec_lis2dw12, MOTIONSENSE_CHIP_LIS2DW12, \ + MOTIONSENSE_TYPE_ACCEL, lis2dw12_drv, \ + LIS2DW12_ODR_MIN_VAL, LIS2DW12_ODR_MAX_VAL) diff --git a/zephyr/shim/src/motionsense_driver/sensor_drv_list.inc b/zephyr/shim/src/motionsense_driver/sensor_drv_list.inc index b9b3a189ad..f8fa4b7e53 100644 --- a/zephyr/shim/src/motionsense_driver/sensor_drv_list.inc +++ b/zephyr/shim/src/motionsense_driver/sensor_drv_list.inc @@ -25,6 +25,9 @@ #ifdef CONFIG_PLATFORM_EC_ACCEL_KX022 #include "kx022-drvinfo.inc" #endif +#ifdef CONFIG_PLATFORM_EC_ACCEL_LIS2DW12 +#include "lis2dw12-drvinfo.inc" +#endif #ifdef CONFIG_PLATFORM_EC_ACCELGYRO_BMI160 #include "bmi160-drvinfo.inc" #endif -- cgit v1.2.1