mb/google/hatch: Use runtime detection for touchscreens/digitizers

Now that power sequencing has been implemented, switch from using ACPI
"probed" flag to "detect" flag for all i2c touchscreens. This removes
non-present devices from the SSDT and relieves the OS of the burden of
probing.

BUG=b:121309055
TEST=build/boot Windows/linux on multiple hatch variants, verify all
touchscreens functional in OS, dump ACPI and verify only i2c devices
actually present on the board have entries in the SSDT.

Change-Id: I2eae486eaa5e42cfe42ecc066a58b09fe2bd9138
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/71062
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
Matt DeVillier 2022-12-18 20:13:28 -06:00 committed by Martin L Roth
parent 251d443e8b
commit c5ec497bbc
11 changed files with 24 additions and 24 deletions

View File

@ -188,7 +188,7 @@ chip soc/intel/cannonlake
register "hid" = ""ELAN0001""
register "desc" = ""ELAN Touchscreen""
register "irq" = "ACPI_IRQ_LEVEL_LOW(GPP_D16_IRQ)"
register "probed" = "1"
register "detect" = "1"
register "reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_D15)"
register "reset_delay_ms" = "100"
register "reset_off_delay_ms" = "5"
@ -204,7 +204,7 @@ chip soc/intel/cannonlake
register "generic.hid" = ""GDIX0000""
register "generic.desc" = ""Goodix Touchscreen""
register "generic.irq" = "ACPI_IRQ_LEVEL_LOW(GPP_D16_IRQ)"
register "generic.probed" = "1"
register "generic.detect" = "1"
register "generic.reset_gpio" =
"ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_D15)"
register "generic.reset_delay_ms" = "150"

View File

@ -87,7 +87,7 @@ chip soc/intel/cannonlake
register "generic.hid" = ""GTCH7503""
register "generic.desc" = ""G2TOUCH Touchscreen""
register "generic.irq" = "ACPI_IRQ_LEVEL_LOW(GPP_D16_IRQ)"
register "generic.probed" = "1"
register "generic.detect" = "1"
register "generic.reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_D15)"
register "generic.reset_delay_ms" = "50"
register "generic.enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPP_D9)"
@ -101,7 +101,7 @@ chip soc/intel/cannonlake
register "hid" = ""ELAN0001""
register "desc" = ""ELAN Touchscreen""
register "irq" = "ACPI_IRQ_LEVEL_LOW(GPP_D16_IRQ)"
register "probed" = "1"
register "detect" = "1"
register "reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_D15)"
register "reset_delay_ms" = "100"
register "reset_off_delay_ms" = "5"
@ -115,7 +115,7 @@ chip soc/intel/cannonlake
register "generic.hid" = ""GDIX0000""
register "generic.desc" = ""Goodix Touchscreen""
register "generic.irq" = "ACPI_IRQ_LEVEL_LOW(GPP_D16_IRQ)"
register "generic.probed" = "1"
register "generic.detect" = "1"
register "generic.reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_D15)"
register "generic.reset_delay_ms" = "120"
register "generic.reset_off_delay_ms" = "3"
@ -131,7 +131,7 @@ chip soc/intel/cannonlake
register "generic.hid" = ""ELAN2513""
register "generic.desc" = ""ELAN Touchscreen""
register "generic.irq" = "ACPI_IRQ_LEVEL_LOW(GPP_D16_IRQ)"
register "generic.probed" = "1"
register "generic.detect" = "1"
register "generic.reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_D15)"
register "generic.reset_delay_ms" = "20"
register "generic.reset_off_delay_ms" = "2"

View File

@ -85,7 +85,7 @@ chip soc/intel/cannonlake
register "hid" = ""ELAN0001""
register "desc" = ""ELAN Touchscreen""
register "irq" = "ACPI_IRQ_LEVEL_LOW(GPP_D16_IRQ)"
register "probed" = "1"
register "detect" = "1"
register "reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_D15)"
register "reset_delay_ms" = "100"
register "reset_off_delay_ms" = "5"
@ -101,7 +101,7 @@ chip soc/intel/cannonlake
register "generic.hid" = ""GDIX0000""
register "generic.desc" = ""Goodix Touchscreen""
register "generic.irq" = "ACPI_IRQ_LEVEL_LOW(GPP_D16_IRQ)"
register "generic.probed" = "1"
register "generic.detect" = "1"
register "generic.reset_gpio" =
"ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_D15)"
register "generic.reset_delay_ms" = "120"

View File

@ -105,7 +105,7 @@ chip soc/intel/cannonlake
register "generic.desc" = ""Goodix Touchscreen""
register "generic.irq" =
"ACPI_IRQ_EDGE_LOW(GPP_D16_IRQ)"
register "generic.probed" = "1"
register "generic.detect" = "1"
register "generic.reset_gpio" =
"ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_D15)"
register "generic.reset_delay_ms" = "120"

View File

@ -121,7 +121,7 @@ chip soc/intel/cannonlake
register "generic.desc" = ""Goodix Touchscreen""
register "generic.irq" =
"ACPI_IRQ_EDGE_LOW(GPP_D16_IRQ)"
register "generic.probed" = "1"
register "generic.detect" = "1"
register "generic.reset_gpio" =
"ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_D15)"
register "generic.reset_delay_ms" = "500"

View File

@ -109,7 +109,7 @@ chip soc/intel/cannonlake
register "generic.hid" = ""GTCH7503""
register "generic.desc" = ""G2TOUCH Touchscreen""
register "generic.irq" = "ACPI_IRQ_LEVEL_LOW(GPP_D16_IRQ)"
register "generic.probed" = "1"
register "generic.detect" = "1"
register "generic.reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_D15)"
register "generic.reset_delay_ms" = "50"
register "generic.enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPP_D9)"
@ -123,7 +123,7 @@ chip soc/intel/cannonlake
register "hid" = ""ELAN0001""
register "desc" = ""ELAN Touchscreen""
register "irq" = "ACPI_IRQ_LEVEL_LOW(GPP_D16_IRQ)"
register "probed" = "1"
register "detect" = "1"
register "reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_D15)"
register "reset_delay_ms" = "100"
register "reset_off_delay_ms" = "5"
@ -137,7 +137,7 @@ chip soc/intel/cannonlake
register "generic.hid" = ""GDIX0000""
register "generic.desc" = ""Goodix Touchscreen""
register "generic.irq" = "ACPI_IRQ_LEVEL_LOW(GPP_D16_IRQ)"
register "generic.probed" = "1"
register "generic.detect" = "1"
register "generic.reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_D15)"
register "generic.reset_delay_ms" = "120"
register "generic.reset_off_delay_ms" = "3"
@ -153,7 +153,7 @@ chip soc/intel/cannonlake
register "generic.hid" = ""ELAN2513""
register "generic.desc" = ""ELAN Touchscreen""
register "generic.irq" = "ACPI_IRQ_LEVEL_LOW(GPP_D16_IRQ)"
register "generic.probed" = "1"
register "generic.detect" = "1"
register "generic.reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_D15)"
register "generic.reset_delay_ms" = "20"
register "generic.reset_off_delay_ms" = "2"

View File

@ -133,7 +133,7 @@ chip soc/intel/cannonlake
register "hid" = ""ELAN0001""
register "desc" = ""ELAN Touchscreen""
register "irq" = "ACPI_IRQ_LEVEL_LOW(GPP_D16_IRQ)"
register "probed" = "1"
register "detect" = "1"
register "reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_D15)"
register "reset_delay_ms" = "100"
register "reset_off_delay_ms" = "5"
@ -147,7 +147,7 @@ chip soc/intel/cannonlake
register "hid" = ""RAYD0001""
register "desc" = ""Raydium Touchscreen""
register "irq" = "ACPI_IRQ_LEVEL_LOW(GPP_D16_IRQ)"
register "probed" = "1"
register "detect" = "1"
register "reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_D15)"
register "reset_delay_ms" = "1"
register "reset_off_delay_ms" = "2"
@ -161,7 +161,7 @@ chip soc/intel/cannonlake
register "generic.hid" = ""ELAN9004""
register "generic.desc" = ""ELAN Touchscreen""
register "generic.irq" = "ACPI_IRQ_LEVEL_LOW(GPP_D16_IRQ)"
register "generic.probed" = "1"
register "generic.detect" = "1"
register "generic.reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_D15)"
register "generic.reset_delay_ms" = "20"
register "generic.reset_off_delay_ms" = "2"

View File

@ -178,7 +178,7 @@ chip soc/intel/cannonlake
register "enable_delay_ms" = "1" # 90 ns
register "has_power_resource" = "1"
register "disable_gpio_export_in_crs" = "1"
register "probed" = "1"
register "detect" = "1"
device i2c 4b on end
end
@ -186,7 +186,7 @@ chip soc/intel/cannonlake
register "hid" = ""ELAN0001""
register "desc" = ""ELAN Touchscreen""
register "irq" = "ACPI_IRQ_LEVEL_LOW(GPP_D16_IRQ)"
register "probed" = "1"
register "detect" = "1"
register "enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPP_C12)"
register "enable_delay_ms" = "10"
register "enable_off_delay_ms" = "100"

View File

@ -105,7 +105,7 @@ chip soc/intel/cannonlake
register "hid" = ""ELAN0001""
register "desc" = ""ELAN Touchscreen""
register "irq" = "ACPI_IRQ_LEVEL_LOW(GPP_D16_IRQ)"
register "probed" = "1"
register "detect" = "1"
register "reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_D15)"
register "reset_delay_ms" = "100"
register "reset_off_delay_ms" = "5"
@ -121,7 +121,7 @@ chip soc/intel/cannonlake
register "generic.hid" = ""GDIX0000""
register "generic.desc" = ""Goodix Touchscreen""
register "generic.irq" = "ACPI_IRQ_LEVEL_LOW(GPP_D16_IRQ)"
register "generic.probed" = "1"
register "generic.detect" = "1"
register "generic.reset_gpio" =
"ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_D15)"
register "generic.reset_delay_ms" = "120"

View File

@ -209,7 +209,7 @@ chip soc/intel/cannonlake
register "generic.hid" = ""ELAN902C""
register "generic.desc" = ""ELAN Touchscreen""
register "generic.irq" = "ACPI_IRQ_LEVEL_LOW(GPP_D16_IRQ)"
register "generic.probed" = "1"
register "generic.detect" = "1"
register "generic.enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPP_C12)"
register "generic.reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_D15)"
register "generic.reset_delay_ms" = "20"

View File

@ -116,7 +116,7 @@ chip soc/intel/cannonlake
register "generic.desc" = ""ELAN Touchscreen USI""
register "generic.irq" =
"ACPI_IRQ_EDGE_LOW(GPP_D16_IRQ)"
register "generic.probed" = "1"
register "generic.detect" = "1"
register "generic.enable_gpio" =
"ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPP_D9)"
register "generic.enable_delay_ms" = "12"
@ -137,7 +137,7 @@ chip soc/intel/cannonlake
register "generic.desc" = ""ELAN Touchscreen USI""
register "generic.irq" =
"ACPI_IRQ_EDGE_LOW(GPP_C7_IRQ)"
register "generic.probed" = "1"
register "generic.detect" = "1"
register "generic.enable_gpio" =
"ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPP_D10)"
register "generic.enable_delay_ms" = "12"