summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDiana Z <dzigterman@chromium.org>2023-04-21 16:03:46 -0600
committerChromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com>2023-04-24 12:37:22 +0000
commitce23f23d1a43782c6dacbfc443ab3b3d2ef4f738 (patch)
treefc32b32b2be264b94134ec4b38d0606f6d98a609
parent18fd2d050d0c1a96a67a9bc041f73b5655e743df (diff)
downloadchrome-ec-ce23f23d1a43782c6dacbfc443ab3b3d2ef4f738.tar.gz
Skyrim: Set up BMA422 interrupts
The BMA422 sensor provides interrupts. Enable these for all skyrim variants using this chip for more accurate readings when the ODR is changing frequently. BRANCH=skyrim BUG=b:278156424 TEST=on frostflow, ensure factory tablet test passes Change-Id: Iafabd8ccf04cd4df970d6f0c1f77195ba340f76a Signed-off-by: Diana Z <dzigterman@chromium.org> Signed-off-by: Peter Marheine <pmarheine@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4460851 Reviewed-by: SamSP Liu <samsp_liu2@compal.corp-partner.google.com> Reviewed-by: Chao Gui <chaogui@google.com> Commit-Queue: Chao Gui <chaogui@google.com>
-rw-r--r--zephyr/program/skyrim/crystaldrift/motionsense.dtsi6
-rw-r--r--zephyr/program/skyrim/crystaldrift/project.overlay8
-rw-r--r--zephyr/program/skyrim/frostflow/motionsense.dtsi6
-rw-r--r--zephyr/program/skyrim/frostflow/project.overlay8
-rw-r--r--zephyr/program/skyrim/gpio.dtsi2
-rw-r--r--zephyr/program/skyrim/markarth/motionsense.dtsi6
-rw-r--r--zephyr/program/skyrim/markarth/project.overlay8
-rw-r--r--zephyr/program/skyrim/motionsense.dtsi6
-rw-r--r--zephyr/program/skyrim/skyrim/motionsense.dtsi6
-rw-r--r--zephyr/program/skyrim/skyrim/project.overlay8
-rw-r--r--zephyr/test/skyrim/boards/native_posix.overlay10
-rw-r--r--zephyr/test/skyrim/tests/common/src/common.c5
12 files changed, 58 insertions, 21 deletions
diff --git a/zephyr/program/skyrim/crystaldrift/motionsense.dtsi b/zephyr/program/skyrim/crystaldrift/motionsense.dtsi
index f943bea4c8..119c4aaf8e 100644
--- a/zephyr/program/skyrim/crystaldrift/motionsense.dtsi
+++ b/zephyr/program/skyrim/crystaldrift/motionsense.dtsi
@@ -14,6 +14,7 @@
* its own <>_INT_EVENT.
*/
bmi3xx-int = &base_accel;
+ bma4xx-int = &lid_accel;
};
/*
@@ -127,9 +128,6 @@
* list of GPIO interrupts that have to
* be enabled at initial stage
*/
- sensor-irqs = <&int_accel_gyro>;
-
- /* list of sensors in force mode */
- accel-force-mode-sensors = <&lid_accel>;
+ sensor-irqs = <&int_lid_accel &int_accel_gyro>;
};
};
diff --git a/zephyr/program/skyrim/crystaldrift/project.overlay b/zephyr/program/skyrim/crystaldrift/project.overlay
index a23499046b..f03949cfa4 100644
--- a/zephyr/program/skyrim/crystaldrift/project.overlay
+++ b/zephyr/program/skyrim/crystaldrift/project.overlay
@@ -39,6 +39,14 @@
};
};
+ gpio-interrupts {
+ int_lid_accel: lid_accel {
+ irq-pin = <&gpio_lid_accel_int_l>;
+ flags = <GPIO_INT_EDGE_FALLING>;
+ handler = "bma4xx_interrupt";
+ };
+ };
+
named-temp-sensors {
compatible = "cros-ec,temp-sensors";
soc-pct2075 {
diff --git a/zephyr/program/skyrim/frostflow/motionsense.dtsi b/zephyr/program/skyrim/frostflow/motionsense.dtsi
index f943bea4c8..119c4aaf8e 100644
--- a/zephyr/program/skyrim/frostflow/motionsense.dtsi
+++ b/zephyr/program/skyrim/frostflow/motionsense.dtsi
@@ -14,6 +14,7 @@
* its own <>_INT_EVENT.
*/
bmi3xx-int = &base_accel;
+ bma4xx-int = &lid_accel;
};
/*
@@ -127,9 +128,6 @@
* list of GPIO interrupts that have to
* be enabled at initial stage
*/
- sensor-irqs = <&int_accel_gyro>;
-
- /* list of sensors in force mode */
- accel-force-mode-sensors = <&lid_accel>;
+ sensor-irqs = <&int_lid_accel &int_accel_gyro>;
};
};
diff --git a/zephyr/program/skyrim/frostflow/project.overlay b/zephyr/program/skyrim/frostflow/project.overlay
index baa400326c..82b0beb683 100644
--- a/zephyr/program/skyrim/frostflow/project.overlay
+++ b/zephyr/program/skyrim/frostflow/project.overlay
@@ -30,6 +30,14 @@
/* Frostflow-specific GPIO customizations */
};
+ gpio-interrupts {
+ int_lid_accel: lid_accel {
+ irq-pin = <&gpio_lid_accel_int_l>;
+ flags = <GPIO_INT_EDGE_FALLING>;
+ handler = "bma4xx_interrupt";
+ };
+ };
+
named-temp-sensors {
compatible = "cros-ec,temp-sensors";
temp_soc: soc-pct2075 {
diff --git a/zephyr/program/skyrim/gpio.dtsi b/zephyr/program/skyrim/gpio.dtsi
index fe92fab785..ef78e9034a 100644
--- a/zephyr/program/skyrim/gpio.dtsi
+++ b/zephyr/program/skyrim/gpio.dtsi
@@ -160,7 +160,7 @@
gpio_pg_lpddr5_s3_od: pg_lpddr5_s3_od {
gpios = <&gpio7 3 GPIO_INPUT>;
};
- 3axis_int_l {
+ gpio_lid_accel_int_l: 3axis_int_l {
gpios = <&gpioa 2 GPIO_INPUT_PULL_UP>;
};
gpio_ec_soc_pwr_btn_l: ec_soc_pwr_btn_l {
diff --git a/zephyr/program/skyrim/markarth/motionsense.dtsi b/zephyr/program/skyrim/markarth/motionsense.dtsi
index f943bea4c8..119c4aaf8e 100644
--- a/zephyr/program/skyrim/markarth/motionsense.dtsi
+++ b/zephyr/program/skyrim/markarth/motionsense.dtsi
@@ -14,6 +14,7 @@
* its own <>_INT_EVENT.
*/
bmi3xx-int = &base_accel;
+ bma4xx-int = &lid_accel;
};
/*
@@ -127,9 +128,6 @@
* list of GPIO interrupts that have to
* be enabled at initial stage
*/
- sensor-irqs = <&int_accel_gyro>;
-
- /* list of sensors in force mode */
- accel-force-mode-sensors = <&lid_accel>;
+ sensor-irqs = <&int_lid_accel &int_accel_gyro>;
};
};
diff --git a/zephyr/program/skyrim/markarth/project.overlay b/zephyr/program/skyrim/markarth/project.overlay
index 3d5f8c3fcb..6e9e519a65 100644
--- a/zephyr/program/skyrim/markarth/project.overlay
+++ b/zephyr/program/skyrim/markarth/project.overlay
@@ -41,6 +41,14 @@
};
};
+ gpio-interrupts {
+ int_lid_accel: lid_accel {
+ irq-pin = <&gpio_lid_accel_int_l>;
+ flags = <GPIO_INT_EDGE_FALLING>;
+ handler = "bma4xx_interrupt";
+ };
+ };
+
/* gpio-interrupts overrides */
gpio-interrupts {
/delete-node/ usb_c0_bc12;
diff --git a/zephyr/program/skyrim/motionsense.dtsi b/zephyr/program/skyrim/motionsense.dtsi
index f943bea4c8..119c4aaf8e 100644
--- a/zephyr/program/skyrim/motionsense.dtsi
+++ b/zephyr/program/skyrim/motionsense.dtsi
@@ -14,6 +14,7 @@
* its own <>_INT_EVENT.
*/
bmi3xx-int = &base_accel;
+ bma4xx-int = &lid_accel;
};
/*
@@ -127,9 +128,6 @@
* list of GPIO interrupts that have to
* be enabled at initial stage
*/
- sensor-irqs = <&int_accel_gyro>;
-
- /* list of sensors in force mode */
- accel-force-mode-sensors = <&lid_accel>;
+ sensor-irqs = <&int_lid_accel &int_accel_gyro>;
};
};
diff --git a/zephyr/program/skyrim/skyrim/motionsense.dtsi b/zephyr/program/skyrim/skyrim/motionsense.dtsi
index f943bea4c8..119c4aaf8e 100644
--- a/zephyr/program/skyrim/skyrim/motionsense.dtsi
+++ b/zephyr/program/skyrim/skyrim/motionsense.dtsi
@@ -14,6 +14,7 @@
* its own <>_INT_EVENT.
*/
bmi3xx-int = &base_accel;
+ bma4xx-int = &lid_accel;
};
/*
@@ -127,9 +128,6 @@
* list of GPIO interrupts that have to
* be enabled at initial stage
*/
- sensor-irqs = <&int_accel_gyro>;
-
- /* list of sensors in force mode */
- accel-force-mode-sensors = <&lid_accel>;
+ sensor-irqs = <&int_lid_accel &int_accel_gyro>;
};
};
diff --git a/zephyr/program/skyrim/skyrim/project.overlay b/zephyr/program/skyrim/skyrim/project.overlay
index 508223641b..9aea108821 100644
--- a/zephyr/program/skyrim/skyrim/project.overlay
+++ b/zephyr/program/skyrim/skyrim/project.overlay
@@ -33,6 +33,14 @@
/* Skyrim-specific GPIO customizations */
};
+ gpio-interrupts {
+ int_lid_accel: lid_accel {
+ irq-pin = <&gpio_lid_accel_int_l>;
+ flags = <GPIO_INT_EDGE_FALLING>;
+ handler = "bma4xx_interrupt";
+ };
+ };
+
named-temp-sensors {
compatible = "cros-ec,temp-sensors";
soc-pct2075 {
diff --git a/zephyr/test/skyrim/boards/native_posix.overlay b/zephyr/test/skyrim/boards/native_posix.overlay
index aa3b9118b4..84a9698770 100644
--- a/zephyr/test/skyrim/boards/native_posix.overlay
+++ b/zephyr/test/skyrim/boards/native_posix.overlay
@@ -59,6 +59,10 @@
gpios = <&gpio0 9 GPIO_INPUT>;
};
+ gpio_lid_accel_int_l: lid_accel_int_l {
+ gpios = <&gpio0 10 GPIO_INPUT>;
+ };
+
tablet_mode_l: tablet_mode_l {
gpios = <&gpio0 11 GPIO_INPUT>;
enum-name = "GPIO_TABLET_MODE_L";
@@ -176,6 +180,12 @@
handler = "bmi3xx_interrupt";
};
+ int_lid_accel: lid_accel {
+ irq-pin = <&gpio_lid_accel_int_l>;
+ flags = <GPIO_INT_EDGE_FALLING>;
+ handler = "bma4xx_interrupt";
+ };
+
int_pg_groupc_s0: pg_groupc_s0 {
irq-pin = <&gpio_pg_groupc_s0_od>;
flags = <GPIO_INT_EDGE_BOTH>;
diff --git a/zephyr/test/skyrim/tests/common/src/common.c b/zephyr/test/skyrim/tests/common/src/common.c
index 0be4550026..770414c786 100644
--- a/zephyr/test/skyrim/tests/common/src/common.c
+++ b/zephyr/test/skyrim/tests/common/src/common.c
@@ -27,6 +27,11 @@ test_mockable int bmi3xx_interrupt(enum gpio_signal signal)
return -EINVAL;
}
+test_mockable int bma4xx_interrupt(enum gpio_signal signal)
+{
+ return -EINVAL;
+}
+
test_mockable int board_anx7483_c0_mux_set(const struct usb_mux *me,
mux_state_t mux_state)
{