From aa6865291a7ddfae4c67fcfc55ebd0c13a376807 Mon Sep 17 00:00:00 2001 From: Seunghwan Kim Date: Thu, 4 Jul 2024 10:55:12 +0900 Subject: mb/google/brya/var/xol: Change touchpad I2C interrupt type to GPIO_INT If user continues to use the touchpad for over 3 minutes on Xol, the pointer movement is stuttering. Touchpad I2C transaction should appear during the interrupt signal level is low, but we could see some more I2C transaction after the interrupt signal(GPP_F14) went to high. We found experimentally that changing the interrupt type to GPIO_INT from APIC_IRQ improved this issue. We are still investigating, would like to apply this change first for Xol's dogfooding. BUG=b:350609957 BRANCH=brya TEST=built and verified there's no stuttering issue on touchpad movement Change-Id: Ie1b59355a694e5a42367a20e03f6c5f93225e79c Signed-off-by: Seunghwan Kim Reviewed-on: https://review.coreboot.org/c/coreboot/+/83346 Tested-by: build bot (Jenkins) Reviewed-by: Subrata Banik Reviewed-by: YH Lin --- src/mainboard/google/brya/variants/xol/gpio.c | 7 +++++++ src/mainboard/google/brya/variants/xol/overridetree.cb | 7 +++++-- 2 files changed, 12 insertions(+), 2 deletions(-) (limited to 'src/mainboard/google/brya/variants') diff --git a/src/mainboard/google/brya/variants/xol/gpio.c b/src/mainboard/google/brya/variants/xol/gpio.c index 39478a1489..9e497849c6 100644 --- a/src/mainboard/google/brya/variants/xol/gpio.c +++ b/src/mainboard/google/brya/variants/xol/gpio.c @@ -119,6 +119,13 @@ static const struct pad_config gpio_overrides[] = { PAD_NC(GPP_F12, NONE), /* F13 : GSXDOUT ==> NC */ PAD_NC(GPP_F13, NONE), + /* F14 : GSXDIN ==> TCHPAD_INT_ODL */ + /* + * FIXME: Change back the interrupt type to IRQxAPIC if possible after investigating + * the reason why Xol shows touchpad stuttering issue with IRQxAPIC + * configuration but not GPI_INT. + */ + PAD_CFG_GPI_INT(GPP_F14, NONE, PWROK, LEVEL), /* F15 : GSXSRESET# ==> PU 100K 3.3V */ PAD_CFG_GPI(GPP_F15, NONE, DEEP), /* F16 : GSXCLK ==> NC */ diff --git a/src/mainboard/google/brya/variants/xol/overridetree.cb b/src/mainboard/google/brya/variants/xol/overridetree.cb index d73702c4bb..5de8c73260 100644 --- a/src/mainboard/google/brya/variants/xol/overridetree.cb +++ b/src/mainboard/google/brya/variants/xol/overridetree.cb @@ -343,8 +343,11 @@ chip soc/intel/alderlake chip drivers/i2c/hid register "generic.hid" = ""ZNT0000"" register "generic.desc" = ""Zinitix Touchpad"" - register "generic.irq" = "ACPI_IRQ_WAKE_LEVEL_LOW(GPP_F14_IRQ)" - register "generic.wake" = "GPE0_DW2_14" + # FIXME: Change back the interrupt type to IRQxAPIC if possible + # after investigating the reason why Xol shows touchpad + # stuttering issue with IRQxAPIC configuration but not + # GPI_INT. + register "generic.irq_gpio" = "ACPI_GPIO_IRQ_LEVEL_LOW_WAKE(GPP_F14)" register "generic.detect" = "1" register "hid_desc_reg_offset" = "0xE" device i2c 40 on end -- cgit v1.2.3