From c696435b768ccff0be01e916b799be030fefd0fd Mon Sep 17 00:00:00 2001 From: "arthur.lin" Date: Mon, 19 Sep 2022 15:26:04 +0800 Subject: pujjo: Use SSFC bit 2-3 value to identify lid sensor Use SSFC bit 2-3 value to identify lid sensor. 0: bma422 1: lis2dwl BUG=b:236922025 BRANCH=none TEST=zmake build pujjo TEST=can read raw data from bma422 after setting ssfc=0x00 TEST=can read raw data from lis2dwl after setting ssfc=0x04 Signed-off-by: arthur.lin Change-Id: I9a0668407e2f770d21d7d8aab1cec717aa1074ee Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3901914 Reviewed-by: Andrew McRae --- zephyr/projects/nissa/pujjo/cbi.dts | 20 ++++++++++++++++++ zephyr/projects/nissa/pujjo/motionsense.dts | 32 +++++++++++++++++++++++++++++ zephyr/projects/nissa/pujjo/prj.conf | 1 + 3 files changed, 53 insertions(+) diff --git a/zephyr/projects/nissa/pujjo/cbi.dts b/zephyr/projects/nissa/pujjo/cbi.dts index cbb2a592b3..b5ba92bd9e 100644 --- a/zephyr/projects/nissa/pujjo/cbi.dts +++ b/zephyr/projects/nissa/pujjo/cbi.dts @@ -166,5 +166,25 @@ value = <1>; }; }; + + /* + * SSFC field to identify LID motion sensor. + */ + lid-sensor { + enum-name = "LID_SENSOR"; + size = <2>; + + lid_sensor_0: bma422 { + compatible = "named-cbi-ssfc-value"; + status = "okay"; + value = <0>; + default; + }; + lid_sensor_1: lis2dw12 { + compatible = "named-cbi-ssfc-value"; + status = "okay"; + value = <1>; + }; + }; }; }; diff --git a/zephyr/projects/nissa/pujjo/motionsense.dts b/zephyr/projects/nissa/pujjo/motionsense.dts index 2fb579d63f..d5719ef08f 100644 --- a/zephyr/projects/nissa/pujjo/motionsense.dts +++ b/zephyr/projects/nissa/pujjo/motionsense.dts @@ -13,6 +13,7 @@ */ bmi3xx-int = &base_accel; lsm6dsm-int = &base_accel; + lis2dw12-int = &lid_accel; }; /* @@ -76,6 +77,11 @@ compatible = "cros-ec,drvdata-bma4xx"; status = "okay"; }; + + lis2dw12_data: lis2dw12-drv-data { + compatible = "cros-ec,drvdata-lis2dw12"; + status = "okay"; + }; }; /* @@ -146,6 +152,32 @@ }; motionsense-sensor-alt { + alt_lid_accel: alt-lid-accel { + compatible = "cros-ec,lis2dw12"; + status = "okay"; + + active-mask = "SENSOR_ACTIVE_S0_S3"; + location = "MOTIONSENSE_LOC_LID"; + mutex = <&lid_mutex>; + port = <&i2c_ec_i2c_sensor>; + rot-standard-ref = <&lid_rot_ref>; + default-range = <2>; + drv-data = <&lis2dw12_data>; + i2c-spi-addr-flags = "LIS2DWL_ADDR1_FLAGS"; + alternate-for = <&lid_accel>; + alternate-ssfc-indicator = <&lid_sensor_1>; + configs { + compatible = + "cros-ec,motionsense-sensor-config"; + ec-s0 { + odr = <(10000 | ROUND_UP_FLAG)>; + }; + ec-s3 { + odr = <(10000 | ROUND_UP_FLAG)>; + }; + }; + }; + alt_base_accel: alt-base-accel { compatible = "cros-ec,lsm6dsm-accel"; status = "okay"; diff --git a/zephyr/projects/nissa/pujjo/prj.conf b/zephyr/projects/nissa/pujjo/prj.conf index f93568b6b5..113effaa96 100644 --- a/zephyr/projects/nissa/pujjo/prj.conf +++ b/zephyr/projects/nissa/pujjo/prj.conf @@ -17,6 +17,7 @@ CONFIG_PLATFORM_EC_ACCELGYRO_BMI_COMM_I2C=y CONFIG_PLATFORM_EC_ACCELGYRO_BMI3XX=y CONFIG_PLATFORM_EC_ACCELGYRO_LSM6DSM=y CONFIG_PLATFORM_EC_ACCEL_BMA4XX=y +CONFIG_PLATFORM_EC_ACCEL_LIS2DW12=y # Keyboard CONFIG_CROS_KB_RAW_NPCX=y -- cgit v1.2.1