summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLeila Lin <leilacy_lin@compal.corp-partner.google.com>2022-08-19 14:15:05 +0800
committerChromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com>2022-08-26 04:07:42 +0000
commita8e3d9918b69964b5a4e145d945cf7e37c78ac8f (patch)
treecaeae1c137322a9ab7c6a02a71ea9958abefa5bb
parent8e8478f2a00ad7607f1c343fff5647fffd68c0d9 (diff)
downloadchrome-ec-stabilize-15072.B-main.tar.gz
skyrim: Add rotation parameters for lid accelstabilize-15072.B-main
Lid accel sensor rotate after board ver4. BUG=b:242934665 BRANCH=none TEST=Check the lid accel data is correct. Signed-off-by: Leila Lin <leilacy_lin@compal.corp-partner.google.com> Change-Id: I16e5736634a96c9abd0603e4b32170986e0866e6 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3841532 Tested-by: LeilaCY Lin <leilacy_lin@compal.corp-partner.google.com.test-google-a.com> Commit-Queue: LeilaCY Lin <leilacy_lin@compal.corp-partner.google.com.test-google-a.com> Reviewed-by: Diana Z <dzigterman@chromium.org>
-rw-r--r--zephyr/projects/skyrim/CMakeLists.txt6
-rw-r--r--zephyr/projects/skyrim/skyrim.dts6
-rw-r--r--zephyr/projects/skyrim/src/skyrim/form_factor.c37
3 files changed, 47 insertions, 2 deletions
diff --git a/zephyr/projects/skyrim/CMakeLists.txt b/zephyr/projects/skyrim/CMakeLists.txt
index d7a5495c32..8b706417e4 100644
--- a/zephyr/projects/skyrim/CMakeLists.txt
+++ b/zephyr/projects/skyrim/CMakeLists.txt
@@ -20,10 +20,12 @@ zephyr_library_sources_ifdef(CONFIG_PLATFORM_EC_FAN "fan.c")
if(DEFINED CONFIG_BOARD_SKYRIM)
project(skyrim)
cros_ec_library_include_directories_ifdef(CONFIG_BOARD_SKYRIM include)
- zephyr_library_sources_ifdef(CONFIG_BOARD_SKYRIM "usbc_config.c")
+ zephyr_library_sources(
+ "src/skyrim/form_factor.c"
+ "usbc_config.c"
+ )
endif()
-
if(DEFINED CONFIG_BOARD_WINTERHOLD)
project(winterhold)
zephyr_library_sources(
diff --git a/zephyr/projects/skyrim/skyrim.dts b/zephyr/projects/skyrim/skyrim.dts
index fa5b1cc5a5..563876b884 100644
--- a/zephyr/projects/skyrim/skyrim.dts
+++ b/zephyr/projects/skyrim/skyrim.dts
@@ -213,6 +213,12 @@
0 0 1>;
};
+ lid_rot_ref1: lid-rotation-ref1 {
+ mat33 = <0 1 0
+ (-1) 0 0
+ 0 0 1>;
+ };
+
base_rot_ref: base-rotation-ref {
mat33 = <0 1 0
(-1) 0 0
diff --git a/zephyr/projects/skyrim/src/skyrim/form_factor.c b/zephyr/projects/skyrim/src/skyrim/form_factor.c
new file mode 100644
index 0000000000..216a31cd3f
--- /dev/null
+++ b/zephyr/projects/skyrim/src/skyrim/form_factor.c
@@ -0,0 +1,37 @@
+/* Copyright 2022 The ChromiumOS Authors.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+#include <zephyr/devicetree.h>
+#include <zephyr/logging/log.h>
+#include "common.h"
+#include "accelgyro.h"
+#include "cros_board_info.h"
+#include "hooks.h"
+#include "motionsense_sensors.h"
+
+LOG_MODULE_DECLARE(skyrim, CONFIG_SKYRIM_LOG_LEVEL);
+
+/*
+ * Mainboard orientation support.
+ */
+
+#define ALT_MAT SENSOR_ROT_STD_REF_NAME(DT_NODELABEL(lid_rot_ref1))
+#define LID_ACCEL SENSOR_ID(DT_NODELABEL(lid_accel))
+
+static void form_factor_init(void)
+{
+ int ret;
+ uint32_t val;
+ /*
+ * If the board version >=4
+ * use ver1 rotation matrix.
+ */
+ ret = cbi_get_board_version(&val);
+ if (ret == EC_SUCCESS && val >= 4) {
+ LOG_INF("Switching to ver1 lid");
+ motion_sensors[LID_ACCEL].rot_standard_ref = &ALT_MAT;
+ }
+}
+DECLARE_HOOK(HOOK_INIT, form_factor_init, HOOK_PRIO_POST_I2C);