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.

[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>
This commit is contained in:
Tim Crawford
2022-01-24 09:04:26 -07:00
committed by Jeremy Soller
parent 7f1b3fa98c
commit 090448674d
12 changed files with 12 additions and 12 deletions

View File

@@ -49,7 +49,7 @@ static const struct pad_config gpio_table[] = {
PAD_NC(GPP_B1, NONE), PAD_NC(GPP_B1, NONE),
PAD_NC(GPP_B2, NONE), PAD_NC(GPP_B2, NONE),
// PCH_GPP_B3 (touchpad interrupt) // 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_NC(GPP_B4, NONE),
PAD_CFG_NF(GPP_B5, NONE, DEEP, NF1), // TBT_CLKREQ# PAD_CFG_NF(GPP_B5, NONE, DEEP, NF1), // TBT_CLKREQ#
PAD_NC(GPP_B6, NONE), PAD_NC(GPP_B6, NONE),

View File

@@ -11,7 +11,7 @@ chip soc/intel/cannonlake
chip drivers/i2c/hid chip drivers/i2c/hid
register "generic.hid" = ""PNP0C50"" register "generic.hid" = ""PNP0C50""
register "generic.desc" = ""Synaptics Touchpad"" 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 "generic.probed" = "1"
register "hid_desc_reg_offset" = "0x20" register "hid_desc_reg_offset" = "0x20"
device i2c 2c on end device i2c 2c on end

View File

@@ -33,7 +33,7 @@ static const struct pad_config gpio_table[] = {
PAD_NC(GPP_A11, UP_20K), PAD_NC(GPP_A11, UP_20K),
PAD_NC(GPP_A12, NONE), PAD_NC(GPP_A12, NONE),
PAD_CFG_NF(GPP_A13, NONE, DEEP, NF1), // SUSWARN# 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_CFG_NF(GPP_A15, UP_20K, DEEP, NF1), // SUS_PW_ACK#
PAD_NC(GPP_A16, DN_20K), PAD_NC(GPP_A16, DN_20K),
PAD_CFG_GPI(GPP_A17, NONE, DEEP), // AMP_TYPE_DET PAD_CFG_GPI(GPP_A17, NONE, DEEP), // AMP_TYPE_DET

View File

@@ -12,7 +12,7 @@ chip soc/intel/cannonlake
chip drivers/i2c/hid chip drivers/i2c/hid
register "generic.hid" = ""PNP0C50"" register "generic.hid" = ""PNP0C50""
register "generic.desc" = ""Synaptics Touchpad"" 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 "generic.probed" = "1"
register "hid_desc_reg_offset" = "0x20" register "hid_desc_reg_offset" = "0x20"
device i2c 2c on end device i2c 2c on end

View File

@@ -107,7 +107,7 @@ chip soc/intel/cannonlake
chip drivers/i2c/hid chip drivers/i2c/hid
register "generic.hid" = ""PNP0C50"" register "generic.hid" = ""PNP0C50""
register "generic.desc" = ""Synaptics Touchpad"" 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 "generic.probed" = "1"
register "hid_desc_reg_offset" = "0x20" register "hid_desc_reg_offset" = "0x20"
device i2c 2c on end device i2c 2c on end

View File

@@ -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_C20, NONE, DEEP, NF1), // UART2_RXD
PAD_CFG_NF(GPP_C21, NONE, DEEP, NF1), // UART2_TXD PAD_CFG_NF(GPP_C21, NONE, DEEP, NF1), // UART2_TXD
PAD_NC(GPP_C22, NONE), 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 ------- */ /* ------- GPIO Group D ------- */
PAD_NC(GPP_D0, NONE), PAD_NC(GPP_D0, NONE),

View File

@@ -5,7 +5,7 @@ chip soc/intel/cannonlake
chip drivers/i2c/hid chip drivers/i2c/hid
register "generic.hid" = ""PNP0C50"" register "generic.hid" = ""PNP0C50""
register "generic.desc" = ""Synaptics Touchpad"" 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 "generic.probed" = "1"
register "hid_desc_reg_offset" = "0x20" register "hid_desc_reg_offset" = "0x20"
device i2c 2c on end device i2c 2c on end

View File

@@ -13,7 +13,7 @@ chip soc/intel/cannonlake
chip drivers/i2c/hid chip drivers/i2c/hid
register "generic.hid" = ""PNP0C50"" register "generic.hid" = ""PNP0C50""
register "generic.desc" = ""Synaptics Touchpad"" 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 "generic.probed" = "1"
register "hid_desc_reg_offset" = "0x20" register "hid_desc_reg_offset" = "0x20"
device i2c 2c on end device i2c 2c on end

View File

@@ -108,7 +108,7 @@ chip soc/intel/cannonlake
chip drivers/i2c/hid chip drivers/i2c/hid
register "generic.hid" = ""PNP0C50"" register "generic.hid" = ""PNP0C50""
register "generic.desc" = ""Synaptics Touchpad"" 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 "generic.probed" = "1"
register "hid_desc_reg_offset" = "0x20" register "hid_desc_reg_offset" = "0x20"
device i2c 2c on end device i2c 2c on end

View File

@@ -133,7 +133,7 @@ static const struct pad_config gpio_table[] = {
PAD_NC(GPP_E4, NONE), PAD_NC(GPP_E4, NONE),
PAD_CFG_NF(GPP_E5, NONE, DEEP, NF1), // M2_P1_SATA_DEVSLP PAD_CFG_NF(GPP_E5, NONE, DEEP, NF1), // M2_P1_SATA_DEVSLP
_PAD_CFG_STRUCT(GPP_E6, 0x82040100, 0x0000), // SMI# _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_CFG_NF(GPP_E8, NONE, DEEP, NF1), // PCH_SATAHDD_LED#
PAD_NC(GPP_E9, NONE), // USB_OC0# (test point) PAD_NC(GPP_E9, NONE), // USB_OC0# (test point)
PAD_NC(GPP_E10, NONE), // USB_OC1# (test point) PAD_NC(GPP_E10, NONE), // USB_OC1# (test point)

View File

@@ -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_C20, NONE, DEEP, NF1), // UART2_RXD
//PAD_CFG_NF(GPP_C21, NONE, DEEP, NF1), // UART2_TXD //PAD_CFG_NF(GPP_C21, NONE, DEEP, NF1), // UART2_TXD
PAD_NC(GPP_C22, NONE), 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 ------- */ /* ------- GPIO Group GPP_D ------- */
PAD_NC(GPP_D0, NONE), PAD_NC(GPP_D0, NONE),

View File

@@ -5,7 +5,7 @@ chip soc/intel/cannonlake
chip drivers/i2c/hid chip drivers/i2c/hid
register "generic.hid" = ""PNP0C50"" register "generic.hid" = ""PNP0C50""
register "generic.desc" = ""Synaptics Touchpad"" 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 "generic.probed" = "1"
register "hid_desc_reg_offset" = "0x20" register "hid_desc_reg_offset" = "0x20"
device i2c 2c on end device i2c 2c on end