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

Switch from using ACPI "probed" flag to "detect" flag for all i2c
touchscreens and digitizers. This removes non-present devices from the
SSDT and relieves the OS of the burden of probing.

Test: build/boot Windows/Linux on various octopus variants, verify
touchscreens/digitizers functional, dump ACPI tables and verify only i2c
devices actually present on the board have entries in the SSDT.

Change-Id: I67c5bbae42e96ae21d37309e382b635321e6ef01
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/63214
Reviewed-by: Raul Rangel <rrangel@chromium.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
Matt DeVillier 2022-03-28 22:44:32 -05:00 committed by Felix Held
commit 0c3806db69
10 changed files with 33 additions and 30 deletions

View file

@ -79,6 +79,7 @@ chip soc/intel/apollolake
register "generic.reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_140)"
register "generic.reset_delay_ms" = "20"
register "generic.has_power_resource" = "1"
register "generic.detect" = "1"
register "hid_desc_reg_offset" = "0x1"
device i2c 0x9 on end
end
@ -113,7 +114,7 @@ chip soc/intel/apollolake
register "hid" = ""ELAN0001""
register "desc" = ""ELAN Touchscreen""
register "irq" = "ACPI_IRQ_LEVEL_LOW(GPIO_212_IRQ)"
register "probed" = "1"
register "detect" = "1"
register "reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_105)"
register "reset_delay_ms" = "20"
register "enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_146)"
@ -125,7 +126,7 @@ chip soc/intel/apollolake
register "generic.hid" = ""GTCH7502""
register "generic.desc" = ""G2TOUCH Touchscreen""
register "generic.irq" = "ACPI_IRQ_LEVEL_LOW(GPIO_212_IRQ)"
register "generic.probed" = "1"
register "generic.detect" = "1"
register "generic.reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_105)"
register "generic.reset_delay_ms" = "70"
register "generic.enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_146)"

View file

@ -129,7 +129,7 @@ chip soc/intel/apollolake
register "hid" = ""ELAN0001""
register "desc" = ""ELAN Touchscreen""
register "irq" = "ACPI_IRQ_LEVEL_LOW(GPIO_212_IRQ)"
register "probed" = "1"
register "detect" = "1"
register "reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_105)"
register "reset_delay_ms" = "20"
register "enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_146)"
@ -141,7 +141,7 @@ chip soc/intel/apollolake
register "generic.hid" = ""GDIX0000""
register "generic.desc" = ""Goodix Touchscreen""
register "generic.irq" = "ACPI_IRQ_LEVEL_LOW(GPIO_212_IRQ)"
register "generic.probed" = "1"
register "generic.detect" = "1"
register "generic.reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_105)"
register "generic.reset_delay_ms" = "120"
register "generic.reset_off_delay_ms" = "3"
@ -155,7 +155,7 @@ chip soc/intel/apollolake
register "generic.hid" = ""GTCH7503""
register "generic.desc" = ""G2TOUCH Touchscreen""
register "generic.irq" = "ACPI_IRQ_LEVEL_LOW(GPIO_212_IRQ)"
register "generic.probed" = "1"
register "generic.detect" = "1"
register "generic.reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_105)"
register "generic.reset_delay_ms" = "50"
register "generic.enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_146)"

View file

@ -100,6 +100,7 @@ chip soc/intel/apollolake
register "generic.reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_140)"
register "generic.reset_delay_ms" = "20"
register "generic.has_power_resource" = "1"
register "generic.detect" = "1"
register "hid_desc_reg_offset" = "0x1"
device i2c 0x9 on end
end
@ -188,7 +189,7 @@ chip soc/intel/apollolake
register "hid" = ""ELAN0001""
register "desc" = ""ELAN Touchscreen""
register "irq" = "ACPI_IRQ_LEVEL_LOW(GPIO_212_IRQ)"
register "probed" = "1"
register "detect" = "1"
register "reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_105)"
register "reset_delay_ms" = "20"
register "enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_146)"
@ -200,7 +201,7 @@ chip soc/intel/apollolake
register "hid" = ""RAYD0001""
register "desc" = ""Raydium Touchscreen""
register "irq" = "ACPI_IRQ_LEVEL_LOW(GPIO_212_IRQ)"
register "probed" = "1"
register "detect" = "1"
register "reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_105)"
register "reset_delay_ms" = "1"
register "enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_146)"
@ -212,7 +213,7 @@ chip soc/intel/apollolake
register "generic.hid" = ""GTCH7502""
register "generic.desc" = ""G2TOUCH Touchscreen""
register "generic.irq" = "ACPI_IRQ_LEVEL_LOW(GPIO_212_IRQ)"
register "generic.probed" = "1"
register "generic.detect" = "1"
register "generic.reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_105)"
register "generic.reset_delay_ms" = "70"
register "generic.enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_146)"

View file

@ -124,7 +124,7 @@ chip soc/intel/apollolake
register "hid" = ""ELAN0001""
register "desc" = ""ELAN Touchscreen""
register "irq" = "ACPI_IRQ_LEVEL_LOW(GPIO_212_IRQ)"
register "probed" = "1"
register "detect" = "1"
register "reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_105)"
register "reset_delay_ms" = "20"
register "enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_146)"
@ -136,7 +136,7 @@ chip soc/intel/apollolake
register "hid" = ""RAYD0001""
register "desc" = ""Raydium Touchscreen""
register "irq" = "ACPI_IRQ_LEVEL_LOW(GPIO_212_IRQ)"
register "probed" = "1"
register "detect" = "1"
register "reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_105)"
register "reset_delay_ms" = "1"
register "enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_146)"
@ -148,7 +148,7 @@ chip soc/intel/apollolake
register "generic.hid" = ""GTCH7502""
register "generic.desc" = ""G2TOUCH Touchscreen""
register "generic.irq" = "ACPI_IRQ_LEVEL_LOW(GPIO_212_IRQ)"
register "generic.probed" = "1"
register "generic.detect" = "1"
register "generic.reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_105)"
register "generic.reset_delay_ms" = "50"
register "generic.enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_146)"

View file

@ -98,7 +98,7 @@ chip soc/intel/apollolake
"ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_140)"
register "generic.reset_delay_ms" = "20"
register "generic.has_power_resource" = "1"
register "generic.probed" = "1"
register "generic.detect" = "1"
register "hid_desc_reg_offset" = "0x1"
device i2c 0x9 on end
end
@ -176,7 +176,7 @@ chip soc/intel/apollolake
register "hid" = ""ELAN0001""
register "desc" = ""ELAN Touchscreen""
register "irq" = "ACPI_IRQ_LEVEL_LOW(GPIO_212_IRQ)"
register "probed" = "1"
register "detect" = "1"
register "reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_105)"
register "reset_delay_ms" = "20"
register "enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_146)"
@ -188,7 +188,7 @@ chip soc/intel/apollolake
register "generic.hid" = ""WDHT0002""
register "generic.desc" = ""WDT Touchscreen""
register "generic.irq" = "ACPI_IRQ_LEVEL_LOW(GPIO_212_IRQ)"
register "generic.probed" = "1"
register "generic.detect" = "1"
register "generic.reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_105)"
register "generic.reset_delay_ms" = "130"
register "generic.enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_146)"
@ -202,7 +202,7 @@ chip soc/intel/apollolake
register "generic.hid" = ""GTCH7503""
register "generic.desc" = ""G2TOUCH Touchscreen""
register "generic.irq" = "ACPI_IRQ_LEVEL_LOW(GPIO_212_IRQ)"
register "generic.probed" = "1"
register "generic.detect" = "1"
register "generic.reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_105)"
register "generic.reset_delay_ms" = "50"
register "generic.enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_146)"

View file

@ -138,7 +138,7 @@ chip soc/intel/apollolake
register "generic.hid" = ""ELAN90FC""
register "generic.desc" = ""ELAN Touchscreen""
register "generic.irq" = "ACPI_IRQ_LEVEL_LOW(GPIO_212_IRQ)"
register "generic.probed" = "1"
register "generic.detect" = "1"
register "generic.reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_105)"
register "generic.enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_146)"
register "generic.reset_delay_ms" = "20"
@ -151,7 +151,7 @@ chip soc/intel/apollolake
register "generic.hid" = ""SYTS7817""
register "generic.desc" = ""Synaptics Touchscreen""
register "generic.irq" = "ACPI_IRQ_LEVEL_LOW(GPIO_212_IRQ)"
register "generic.probed" = "1"
register "generic.detect" = "1"
register "generic.reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_105)"
register "generic.enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_146)"
register "generic.reset_delay_ms" = "45"

View file

@ -166,7 +166,7 @@ chip soc/intel/apollolake
register "hid" = ""ELAN0001""
register "desc" = ""ELAN Touchscreen""
register "irq" = "ACPI_IRQ_LEVEL_LOW(GPIO_212_IRQ)"
register "probed" = "1"
register "detect" = "1"
register "reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_105)"
register "reset_delay_ms" = "20"
register "enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_146)"
@ -178,7 +178,7 @@ chip soc/intel/apollolake
register "hid" = ""RAYD0001""
register "desc" = ""Raydium Touchscreen""
register "irq" = "ACPI_IRQ_LEVEL_LOW(GPIO_212_IRQ)"
register "probed" = "1"
register "detect" = "1"
register "reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_105)"
register "reset_delay_ms" = "1"
register "enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_146)"
@ -190,7 +190,7 @@ chip soc/intel/apollolake
register "generic.hid" = ""GTCH7503""
register "generic.desc" = ""G2TOUCH Touchscreen""
register "generic.irq" = "ACPI_IRQ_LEVEL_LOW(GPIO_212_IRQ)"
register "generic.probed" = "1"
register "generic.detect" = "1"
register "generic.reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_105)"
register "generic.reset_delay_ms" = "50"
register "generic.enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_146)"

View file

@ -147,7 +147,7 @@ chip soc/intel/apollolake
register "generic.reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_140)"
register "generic.reset_delay_ms" = "20"
register "generic.has_power_resource" = "1"
register "generic.probed" = "1"
register "generic.detect" = "1"
register "hid_desc_reg_offset" = "0x1"
device i2c 0x9 on end
end
@ -158,7 +158,7 @@ chip soc/intel/apollolake
register "generic.reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_140)"
register "generic.reset_delay_ms" = "20"
register "generic.has_power_resource" = "1"
register "generic.probed" = "1"
register "generic.detect" = "1"
register "hid_desc_reg_offset" = "0x1"
device i2c 0xa on end
end
@ -210,7 +210,7 @@ chip soc/intel/apollolake
register "hid" = ""ELAN0001""
register "desc" = ""ELAN Touchscreen""
register "irq" = "ACPI_IRQ_LEVEL_LOW(GPIO_212_IRQ)"
register "probed" = "1"
register "detect" = "1"
register "reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_105)"
register "reset_delay_ms" = "20"
register "enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_146)"
@ -222,7 +222,7 @@ chip soc/intel/apollolake
register "generic.hid" = ""WDHT0002""
register "generic.desc" = ""WDT Touchscreen""
register "generic.irq" = "ACPI_IRQ_LEVEL_LOW(GPIO_212_IRQ)"
register "generic.probed" = "1"
register "generic.detect" = "1"
register "generic.reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_105)"
register "generic.reset_delay_ms" = "130"
register "generic.enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_146)"
@ -236,7 +236,7 @@ chip soc/intel/apollolake
register "generic.hid" = ""GTCH7503""
register "generic.desc" = ""G2TOUCH Touchscreen""
register "generic.irq" = "ACPI_IRQ_LEVEL_LOW(GPIO_212_IRQ)"
register "generic.probed" = "1"
register "generic.detect" = "1"
register "generic.reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_105)"
register "generic.reset_delay_ms" = "50"
register "generic.enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_146)"

View file

@ -91,6 +91,7 @@ chip soc/intel/apollolake
register "generic.reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_140)"
register "generic.reset_delay_ms" = "20"
register "generic.has_power_resource" = "1"
register "generic.detect" = "1"
register "hid_desc_reg_offset" = "0x1"
device i2c 0x9 on end
end
@ -151,7 +152,7 @@ chip soc/intel/apollolake
register "hid" = ""ELAN0001""
register "desc" = ""ELAN Touchscreen""
register "irq" = "ACPI_IRQ_LEVEL_LOW(GPIO_212_IRQ)"
register "probed" = "1"
register "detect" = "1"
register "reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_105)"
register "reset_delay_ms" = "20"
register "enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_146)"
@ -163,7 +164,7 @@ chip soc/intel/apollolake
register "generic.hid" = ""SYTS7817""
register "generic.desc" = ""Synaptics Touchscreen""
register "generic.irq" = "ACPI_IRQ_LEVEL_LOW(GPIO_212_IRQ)"
register "generic.probed" = "1"
register "generic.detect" = "1"
register "generic.reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_105)"
register "generic.enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_146)"
register "generic.reset_delay_ms" = "45"
@ -176,7 +177,7 @@ chip soc/intel/apollolake
register "hid" = ""RAYD0001""
register "desc" = ""Raydium Touchscreen""
register "irq" = "ACPI_IRQ_LEVEL_LOW(GPIO_212_IRQ)"
register "probed" = "1"
register "detect" = "1"
register "reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_105)"
register "reset_delay_ms" = "1"
register "enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_146)"
@ -188,7 +189,7 @@ chip soc/intel/apollolake
register "generic.hid" = ""GTCH7502""
register "generic.desc" = ""G2TOUCH Touchscreen""
register "generic.irq" = "ACPI_IRQ_LEVEL_LOW(GPIO_212_IRQ)"
register "generic.probed" = "1"
register "generic.detect" = "1"
register "generic.reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_105)"
register "generic.enable_delay_ms" = "1"
register "generic.enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_146)"

View file

@ -88,7 +88,7 @@ chip soc/intel/apollolake
register "hid" = ""ELAN0001""
register "desc" = ""ELAN Touchscreen""
register "irq" = "ACPI_IRQ_LEVEL_LOW(GPIO_212_IRQ)"
register "probed" = "1"
register "detect" = "1"
register "reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_105)"
register "reset_delay_ms" = "20"
register "enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_213)"