diff options
author | Tim Crawford <tcrawford@system76.com> | 2022-01-24 09:04:26 -0700 |
---|---|---|
committer | Felix Held <felix-coreboot@felixheld.de> | 2022-05-02 14:06:42 +0000 |
commit | aa8b1f8b38bf1abcb6dd8c6f5f510c3006d0eec6 (patch) | |
tree | e8cc2ca03c5b2339da07298e0e803f9d693150bf /src/mainboard/system76/addw1 | |
parent | fe99cbb378c58453ca8fd985f584b8cabe71dc85 (diff) |
mb/system76: Configure I2C HID IRQs as level triggered
Per Microsoft's spec for HID over I2C [1], interrupts must be level
triggered. Switch GPIOs and the devicetree config to conform to this.
Touchpad and multitouch gestures were already working, so no behavior
changes are observed in normal use.
[1]: http://download.microsoft.com/download/7/d/d/7dd44bb7-2a7a-4505-ac1c-7227d3d96d5b/hid-over-i2c-protocol-spec-v1-0.docx
Change-Id: I485e616ae00e10bc3620ff3fa1fc1e903653c5cc
Signed-off-by: Tim Crawford <tcrawford@system76.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/61343
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Michael Niewöhner <foss@mniewoehner.de>
Reviewed-by: Felix Singer <felixsinger@posteo.net>
Diffstat (limited to 'src/mainboard/system76/addw1')
4 files changed, 4 insertions, 4 deletions
diff --git a/src/mainboard/system76/addw1/variants/addw1/gpio.c b/src/mainboard/system76/addw1/variants/addw1/gpio.c index 179e9ebb91..5f97d884f0 100644 --- a/src/mainboard/system76/addw1/variants/addw1/gpio.c +++ b/src/mainboard/system76/addw1/variants/addw1/gpio.c @@ -49,7 +49,7 @@ static const struct pad_config gpio_table[] = { PAD_NC(GPP_B1, NONE), PAD_NC(GPP_B2, NONE), // PCH_GPP_B3 (touchpad interrupt) - PAD_CFG_GPI_APIC(GPP_B3, NONE, PLTRST, EDGE_SINGLE, INVERT), + PAD_CFG_GPI_APIC_LOW(GPP_B3, NONE, PLTRST), PAD_NC(GPP_B4, NONE), PAD_CFG_NF(GPP_B5, NONE, DEEP, NF1), // TBT_CLKREQ# PAD_NC(GPP_B6, NONE), diff --git a/src/mainboard/system76/addw1/variants/addw1/overridetree.cb b/src/mainboard/system76/addw1/variants/addw1/overridetree.cb index ada23b2aa2..1a1f8b4a3b 100644 --- a/src/mainboard/system76/addw1/variants/addw1/overridetree.cb +++ b/src/mainboard/system76/addw1/variants/addw1/overridetree.cb @@ -11,7 +11,7 @@ chip soc/intel/cannonlake chip drivers/i2c/hid register "generic.hid" = ""PNP0C50"" register "generic.desc" = ""Synaptics Touchpad"" - register "generic.irq" = "ACPI_IRQ_EDGE_LOW(GPP_B3_IRQ)" + register "generic.irq" = "ACPI_IRQ_LEVEL_LOW(GPP_B3_IRQ)" register "generic.probed" = "1" register "hid_desc_reg_offset" = "0x20" device i2c 2c on end diff --git a/src/mainboard/system76/addw1/variants/addw2/gpio.c b/src/mainboard/system76/addw1/variants/addw2/gpio.c index c699fd06bb..e6355550bc 100644 --- a/src/mainboard/system76/addw1/variants/addw2/gpio.c +++ b/src/mainboard/system76/addw1/variants/addw2/gpio.c @@ -33,7 +33,7 @@ static const struct pad_config gpio_table[] = { PAD_NC(GPP_A11, UP_20K), PAD_NC(GPP_A12, NONE), PAD_CFG_NF(GPP_A13, NONE, DEEP, NF1), // SUSWARN# - PAD_CFG_GPI_APIC(GPP_A14, NONE, PLTRST, EDGE_SINGLE, INVERT), // TCHPD_INT# + PAD_CFG_GPI_APIC_LOW(GPP_A14, NONE, PLTRST), // TCHPD_INT# PAD_CFG_NF(GPP_A15, UP_20K, DEEP, NF1), // SUS_PW_ACK# PAD_NC(GPP_A16, DN_20K), PAD_CFG_GPI(GPP_A17, NONE, DEEP), // AMP_TYPE_DET diff --git a/src/mainboard/system76/addw1/variants/addw2/overridetree.cb b/src/mainboard/system76/addw1/variants/addw2/overridetree.cb index 44f945a104..640f46eb0f 100644 --- a/src/mainboard/system76/addw1/variants/addw2/overridetree.cb +++ b/src/mainboard/system76/addw1/variants/addw2/overridetree.cb @@ -12,7 +12,7 @@ chip soc/intel/cannonlake chip drivers/i2c/hid register "generic.hid" = ""PNP0C50"" register "generic.desc" = ""Synaptics Touchpad"" - register "generic.irq" = "ACPI_IRQ_EDGE_LOW(GPP_A14_IRQ)" + register "generic.irq" = "ACPI_IRQ_LEVEL_LOW(GPP_A14_IRQ)" register "generic.probed" = "1" register "hid_desc_reg_offset" = "0x20" device i2c 2c on end |