From 229b251ffa8c104e190b1bfa6ba6cb011dcacad4 Mon Sep 17 00:00:00 2001 From: Diana Z Date: Fri, 21 Apr 2023 16:03:46 -0600 Subject: 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 Signed-off-by: Peter Marheine Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4460851 Reviewed-by: SamSP Liu Reviewed-by: Chao Gui Commit-Queue: Chao Gui (cherry picked from commit ce23f23d1a43782c6dacbfc443ab3b3d2ef4f738) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4461063 Tested-by: Chao Gui --- zephyr/program/skyrim/crystaldrift/motionsense.dtsi | 6 ++---- zephyr/program/skyrim/crystaldrift/project.overlay | 8 ++++++++ zephyr/program/skyrim/frostflow/motionsense.dtsi | 6 ++---- zephyr/program/skyrim/frostflow/project.overlay | 8 ++++++++ zephyr/program/skyrim/gpio.dtsi | 2 +- zephyr/program/skyrim/markarth/motionsense.dtsi | 6 ++---- zephyr/program/skyrim/markarth/project.overlay | 8 ++++++++ zephyr/program/skyrim/motionsense.dtsi | 6 ++---- zephyr/program/skyrim/skyrim/motionsense.dtsi | 6 ++---- zephyr/program/skyrim/skyrim/project.overlay | 8 ++++++++ 10 files changed, 43 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 = ; + 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 = ; + 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 = ; + 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 = ; + handler = "bma4xx_interrupt"; + }; + }; + named-temp-sensors { compatible = "cros-ec,temp-sensors"; soc-pct2075 { -- cgit v1.2.1