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 | |
parent | fe99cbb378c58453ca8fd985f584b8cabe71dc85 (diff) | |
download | coreboot-aa8b1f8b38bf1abcb6dd8c6f5f510c3006d0eec6.tar.gz coreboot-aa8b1f8b38bf1abcb6dd8c6f5f510c3006d0eec6.tar.bz2 coreboot-aa8b1f8b38bf1abcb6dd8c6f5f510c3006d0eec6.zip |
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')
12 files changed, 12 insertions, 12 deletions
diff --git a/src/mainboard/system76/addw1/variants/addw1/gpio.c b/src/mainboard/system76/addw1/variants/addw1/gpio.c index 179e9ebb91c9..5f97d884f081 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 ada23b2aa2c7..1a1f8b4a3ba6 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 c699fd06bbd3..e6355550bc6c 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 44f945a1048f..640f46eb0f94 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 diff --git a/src/mainboard/system76/bonw14/devicetree.cb b/src/mainboard/system76/bonw14/devicetree.cb index 612711d91c9b..47e11d44d4df 100644 --- a/src/mainboard/system76/bonw14/devicetree.cb +++ b/src/mainboard/system76/bonw14/devicetree.cb @@ -105,7 +105,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_E7_IRQ)" + register "generic.irq" = "ACPI_IRQ_LEVEL_LOW(GPP_E7_IRQ)" register "generic.probed" = "1" register "hid_desc_reg_offset" = "0x20" device i2c 2c on end diff --git a/src/mainboard/system76/cml-u/gpio.c b/src/mainboard/system76/cml-u/gpio.c index e3e4f540a631..03683ae7b95c 100644 --- a/src/mainboard/system76/cml-u/gpio.c +++ b/src/mainboard/system76/cml-u/gpio.c @@ -95,7 +95,7 @@ static const struct pad_config gpio_table[] = { PAD_CFG_NF(GPP_C20, NONE, DEEP, NF1), // UART2_RXD PAD_CFG_NF(GPP_C21, NONE, DEEP, NF1), // UART2_TXD PAD_NC(GPP_C22, NONE), - PAD_CFG_GPI_APIC_EDGE_LOW(GPP_C23, NONE, PLTRST), // NC on galp4, TP_ATTN# on darp6 + PAD_CFG_GPI_APIC_LOW(GPP_C23, NONE, PLTRST), // NC on galp4, TP_ATTN# on darp6 /* ------- GPIO Group D ------- */ PAD_NC(GPP_D0, NONE), diff --git a/src/mainboard/system76/cml-u/variants/darp6/overridetree.cb b/src/mainboard/system76/cml-u/variants/darp6/overridetree.cb index 1723cea480c8..ff2cdc790c5a 100644 --- a/src/mainboard/system76/cml-u/variants/darp6/overridetree.cb +++ b/src/mainboard/system76/cml-u/variants/darp6/overridetree.cb @@ -5,7 +5,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_C23_IRQ)" + register "generic.irq" = "ACPI_IRQ_LEVEL_LOW(GPP_C23_IRQ)" register "generic.probed" = "1" register "hid_desc_reg_offset" = "0x20" device i2c 2c on end diff --git a/src/mainboard/system76/gaze15/variants/gaze14/overridetree.cb b/src/mainboard/system76/gaze15/variants/gaze14/overridetree.cb index e2e4d11ef9d7..91127a444dc5 100644 --- a/src/mainboard/system76/gaze15/variants/gaze14/overridetree.cb +++ b/src/mainboard/system76/gaze15/variants/gaze14/overridetree.cb @@ -13,7 +13,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_E7_IRQ)" + register "generic.irq" = "ACPI_IRQ_LEVEL_LOW(GPP_E7_IRQ)" register "generic.probed" = "1" register "hid_desc_reg_offset" = "0x20" device i2c 2c on end diff --git a/src/mainboard/system76/oryp6/devicetree.cb b/src/mainboard/system76/oryp6/devicetree.cb index 85b5d26ec676..e63e13694d89 100644 --- a/src/mainboard/system76/oryp6/devicetree.cb +++ b/src/mainboard/system76/oryp6/devicetree.cb @@ -101,7 +101,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_E7_IRQ)" + register "generic.irq" = "ACPI_IRQ_LEVEL_LOW(GPP_E7_IRQ)" register "generic.probed" = "1" register "hid_desc_reg_offset" = "0x20" device i2c 2c on end diff --git a/src/mainboard/system76/oryp6/variants/oryp6/gpio.c b/src/mainboard/system76/oryp6/variants/oryp6/gpio.c index efdb79f736db..e90ea875f5d0 100644 --- a/src/mainboard/system76/oryp6/variants/oryp6/gpio.c +++ b/src/mainboard/system76/oryp6/variants/oryp6/gpio.c @@ -133,7 +133,7 @@ static const struct pad_config gpio_table[] = { PAD_NC(GPP_E4, NONE), PAD_CFG_NF(GPP_E5, NONE, DEEP, NF1), // M2_P1_SATA_DEVSLP _PAD_CFG_STRUCT(GPP_E6, 0x82040100, 0x0000), // SMI# - PAD_CFG_GPI_APIC_EDGE_LOW(GPP_E7, NONE, PLTRST), // TP_ATTN# + PAD_CFG_GPI_APIC_LOW(GPP_E7, NONE, PLTRST), // TP_ATTN# PAD_CFG_NF(GPP_E8, NONE, DEEP, NF1), // PCH_SATAHDD_LED# PAD_NC(GPP_E9, NONE), // USB_OC0# (test point) PAD_NC(GPP_E10, NONE), // USB_OC1# (test point) diff --git a/src/mainboard/system76/whl-u/gpio.c b/src/mainboard/system76/whl-u/gpio.c index b23d03982bda..ca546378e5cc 100644 --- a/src/mainboard/system76/whl-u/gpio.c +++ b/src/mainboard/system76/whl-u/gpio.c @@ -95,7 +95,7 @@ static const struct pad_config gpio_table[] = { //PAD_CFG_NF(GPP_C20, NONE, DEEP, NF1), // UART2_RXD //PAD_CFG_NF(GPP_C21, NONE, DEEP, NF1), // UART2_TXD PAD_NC(GPP_C22, NONE), - PAD_CFG_GPI_APIC_EDGE_LOW(GPP_C23, NONE, PLTRST), // NC on galp3-c, TP_ATTN# on darp5 + PAD_CFG_GPI_APIC_LOW(GPP_C23, NONE, PLTRST), // NC on galp3-c, TP_ATTN# on darp5 /* ------- GPIO Group GPP_D ------- */ PAD_NC(GPP_D0, NONE), diff --git a/src/mainboard/system76/whl-u/variants/darp5/overridetree.cb b/src/mainboard/system76/whl-u/variants/darp5/overridetree.cb index 4ae96ff09af4..0086905ef45b 100644 --- a/src/mainboard/system76/whl-u/variants/darp5/overridetree.cb +++ b/src/mainboard/system76/whl-u/variants/darp5/overridetree.cb @@ -5,7 +5,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_C23_IRQ)" + register "generic.irq" = "ACPI_IRQ_LEVEL_LOW(GPP_C23_IRQ)" register "generic.probed" = "1" register "hid_desc_reg_offset" = "0x20" device i2c 2c on end |