summarylogtreecommitdiffstats
path: root/0005-iio-imu-ASUS-ROG-ALLY-force-INT1-IRQ.patch
diff options
context:
space:
mode:
Diffstat (limited to '0005-iio-imu-ASUS-ROG-ALLY-force-INT1-IRQ.patch')
-rw-r--r--0005-iio-imu-ASUS-ROG-ALLY-force-INT1-IRQ.patch40
1 files changed, 40 insertions, 0 deletions
diff --git a/0005-iio-imu-ASUS-ROG-ALLY-force-INT1-IRQ.patch b/0005-iio-imu-ASUS-ROG-ALLY-force-INT1-IRQ.patch
new file mode 100644
index 000000000000..292c7bebb453
--- /dev/null
+++ b/0005-iio-imu-ASUS-ROG-ALLY-force-INT1-IRQ.patch
@@ -0,0 +1,40 @@
+diff --git a/drivers/iio/imu/bmi323/bmi323_core.c b/drivers/iio/imu/bmi323/bmi323_core.c
+index 0bd5ded..eae7756 100644
+--- a/drivers/iio/imu/bmi323/bmi323_core.c
++++ b/drivers/iio/imu/bmi323/bmi323_core.c
+@@ -10,6 +10,7 @@
+ #include <linux/bitfield.h>
+ #include <linux/cleanup.h>
+ #include <linux/device.h>
++#include <linux/dmi.h>
+ #include <linux/interrupt.h>
+ #include <linux/minmax.h>
+ #include <linux/module.h>
+@@ -1870,6 +1871,8 @@ static int bmi323_trigger_probe(struct bmi323_data *data,
+ return -ENODEV;
+
+ irq = fwnode_irq_get_byname(fwnode, "INT1");
++ if (dmi_match(DMI_BOARD_NAME, "RC71L"))
++ irq = 1; // force IRQ INT1 for ASUS ROG ALLY
+ if (irq > 0) {
+ irq_pin = BMI323_IRQ_INT1;
+ } else {
+@@ -1886,6 +1889,8 @@ static int bmi323_trigger_probe(struct bmi323_data *data,
+ "Could not find IRQ %d\n", irq);
+
+ irq_type = irqd_get_trigger_type(desc);
++ if (dmi_match(DMI_BOARD_NAME, "RC71L"))
++ irq_type = IRQF_TRIGGER_RISING; // forcing trigger type for ASUS ROG ALLY
+ switch (irq_type) {
+ case IRQF_TRIGGER_RISING:
+ latch = false;
+@@ -1910,7 +1915,8 @@ static int bmi323_trigger_probe(struct bmi323_data *data,
+ }
+
+ open_drain = fwnode_property_read_bool(fwnode, "drive-open-drain");
+-
++ if (dmi_match(DMI_BOARD_NAME, "RC71L"))
++ open_drain = false; // forcing whether open drain (true) or push-pull (false) for ROG ALLY
+ ret = bmi323_int_pin_config(data, irq_pin, active_high, open_drain,
+ latch);
+ if (ret)