mb/google/poppy: 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/digitizers.
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 all poppy 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: I4c1d8ae8c41c1f4283718a86fccbf5ae4fc399b6
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/70921
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
Matt DeVillier
2022-03-28 23:45:14 -05:00
committed by Martin L Roth
parent 1c2f5cea7e
commit 86425c81af
6 changed files with 13 additions and 11 deletions

View File

@@ -266,7 +266,7 @@ chip soc/intel/skylake
register "hid" = ""ELAN0001"" register "hid" = ""ELAN0001""
register "desc" = ""ELAN Touchscreen"" register "desc" = ""ELAN Touchscreen""
register "irq" = "ACPI_IRQ_LEVEL_LOW(GPP_E7_IRQ)" register "irq" = "ACPI_IRQ_LEVEL_LOW(GPP_E7_IRQ)"
register "probed" = "1" register "detect" = "1"
register "reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_E3)" register "reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_E3)"
register "reset_delay_ms" = "20" register "reset_delay_ms" = "20"
register "enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPP_C22)" register "enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPP_C22)"
@@ -278,7 +278,7 @@ chip soc/intel/skylake
register "hid" = ""ATML0001"" register "hid" = ""ATML0001""
register "desc" = ""Atmel Touchscreen"" register "desc" = ""Atmel Touchscreen""
register "irq" = "ACPI_IRQ_LEVEL_LOW(GPP_E7_IRQ)" register "irq" = "ACPI_IRQ_LEVEL_LOW(GPP_E7_IRQ)"
register "probed" = "1" register "detect" = "1"
register "has_power_resource" = "1" register "has_power_resource" = "1"
register "disable_gpio_export_in_crs" = "1" register "disable_gpio_export_in_crs" = "1"
register "enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPP_C22)" register "enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPP_C22)"

View File

@@ -281,7 +281,7 @@ chip soc/intel/skylake
register "hid" = ""ELAN0001"" register "hid" = ""ELAN0001""
register "desc" = ""ELAN Touchscreen"" register "desc" = ""ELAN Touchscreen""
register "irq" = "ACPI_IRQ_LEVEL_LOW(GPP_E7_IRQ)" register "irq" = "ACPI_IRQ_LEVEL_LOW(GPP_E7_IRQ)"
register "probed" = "1" register "detect" = "1"
register "reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_B3)" register "reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_B3)"
register "reset_delay_ms" = "20" register "reset_delay_ms" = "20"
register "reset_off_delay_ms" = "2" register "reset_off_delay_ms" = "2"
@@ -297,7 +297,7 @@ chip soc/intel/skylake
register "hid" = ""RAYD0001"" register "hid" = ""RAYD0001""
register "desc" = ""Raydium Touchscreen"" register "desc" = ""Raydium Touchscreen""
register "irq" = "ACPI_IRQ_LEVEL_LOW(GPP_E7_IRQ)" register "irq" = "ACPI_IRQ_LEVEL_LOW(GPP_E7_IRQ)"
register "probed" = "1" register "detect" = "1"
register "reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_B3)" register "reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_B3)"
register "reset_delay_ms" = "1" register "reset_delay_ms" = "1"
register "reset_off_delay_ms" = "2" register "reset_off_delay_ms" = "2"
@@ -314,7 +314,7 @@ chip soc/intel/skylake
register "generic.hid" = ""SYTS7817"" register "generic.hid" = ""SYTS7817""
register "generic.desc" = ""Synaptics Touchscreen"" register "generic.desc" = ""Synaptics Touchscreen""
register "generic.irq" = "ACPI_IRQ_LEVEL_LOW(GPP_E7_IRQ)" register "generic.irq" = "ACPI_IRQ_LEVEL_LOW(GPP_E7_IRQ)"
register "generic.probed" = "1" register "generic.detect" = "1"
register "generic.enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPP_B4)" register "generic.enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPP_B4)"
register "generic.enable_delay_ms" = "45" register "generic.enable_delay_ms" = "45"
register "generic.has_power_resource" = "1" register "generic.has_power_resource" = "1"
@@ -326,7 +326,7 @@ chip soc/intel/skylake
register "generic.hid" = ""GTCH7503"" register "generic.hid" = ""GTCH7503""
register "generic.desc" = ""G2TOUCH Touchscreen"" register "generic.desc" = ""G2TOUCH Touchscreen""
register "generic.irq" = "ACPI_IRQ_LEVEL_LOW(GPP_E7_IRQ)" register "generic.irq" = "ACPI_IRQ_LEVEL_LOW(GPP_E7_IRQ)"
register "generic.probed" = "1" register "generic.detect" = "1"
register "generic.reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_B3)" register "generic.reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_B3)"
register "generic.reset_delay_ms" = "50" register "generic.reset_delay_ms" = "50"
register "generic.enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPP_B4)" register "generic.enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPP_B4)"
@@ -362,7 +362,7 @@ chip soc/intel/skylake
register "generic.hid" = ""WCOM005C"" register "generic.hid" = ""WCOM005C""
register "generic.desc" = ""WCOM Digitizer"" register "generic.desc" = ""WCOM Digitizer""
register "generic.irq" = "ACPI_IRQ_LEVEL_LOW(GPP_D1_IRQ)" register "generic.irq" = "ACPI_IRQ_LEVEL_LOW(GPP_D1_IRQ)"
register "generic.probed" = "1" register "generic.detect" = "1"
register "generic.reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_D3)" register "generic.reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_D3)"
register "generic.reset_delay_ms" = "20" register "generic.reset_delay_ms" = "20"
register "generic.has_power_resource" = "1" register "generic.has_power_resource" = "1"

View File

@@ -288,7 +288,7 @@ chip soc/intel/skylake
register "generic.hid" = ""SYTS7813"" register "generic.hid" = ""SYTS7813""
register "generic.desc" = ""Synaptics Touchscreen"" register "generic.desc" = ""Synaptics Touchscreen""
register "generic.irq" = "ACPI_IRQ_LEVEL_LOW(GPP_E7_IRQ)" register "generic.irq" = "ACPI_IRQ_LEVEL_LOW(GPP_E7_IRQ)"
register "generic.probed" = "1" register "generic.detect" = "1"
register "generic.enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPP_C22)" register "generic.enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPP_C22)"
register "generic.enable_delay_ms" = "45" register "generic.enable_delay_ms" = "45"
register "generic.has_power_resource" = "1" register "generic.has_power_resource" = "1"
@@ -324,6 +324,7 @@ chip soc/intel/skylake
register "generic.has_power_resource" = "1" register "generic.has_power_resource" = "1"
register "generic.disable_gpio_export_in_crs" = "1" register "generic.disable_gpio_export_in_crs" = "1"
register "generic.wake" = "GPE0_DW0_21" register "generic.wake" = "GPE0_DW0_21"
register "generic.detect" = "1"
register "hid_desc_reg_offset" = "0x1" register "hid_desc_reg_offset" = "0x1"
device i2c 0x9 on end device i2c 0x9 on end
end end

View File

@@ -290,7 +290,7 @@ chip soc/intel/skylake
register "generic.desc" = ""WCOM Digitizer"" register "generic.desc" = ""WCOM Digitizer""
register "generic.irq" = "ACPI_IRQ_LEVEL_LOW(GPP_E7_IRQ)" register "generic.irq" = "ACPI_IRQ_LEVEL_LOW(GPP_E7_IRQ)"
register "generic.speed" = "I2C_SPEED_FAST_PLUS" register "generic.speed" = "I2C_SPEED_FAST_PLUS"
register "generic.probed" = "1" register "generic.detect" = "1"
register "generic.reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_E11)" register "generic.reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_E11)"
register "generic.reset_delay_ms" = "20" register "generic.reset_delay_ms" = "20"
register "generic.enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPP_C22)" register "generic.enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPP_C22)"

View File

@@ -280,7 +280,7 @@ chip soc/intel/skylake
register "generic.hid" = ""PNP0C50"" register "generic.hid" = ""PNP0C50""
register "generic.desc" = ""SISC Touchscreen"" register "generic.desc" = ""SISC Touchscreen""
register "generic.irq" = "ACPI_IRQ_LEVEL_LOW(GPP_E7_IRQ)" register "generic.irq" = "ACPI_IRQ_LEVEL_LOW(GPP_E7_IRQ)"
register "generic.probed" = "1" register "generic.detect" = "1"
register "generic.enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPP_C22)" register "generic.enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPP_C22)"
register "generic.enable_delay_ms" = "105" register "generic.enable_delay_ms" = "105"
register "generic.stop_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_E3)" register "generic.stop_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_E3)"
@@ -297,6 +297,7 @@ chip soc/intel/skylake
register "desc" = ""ELAN Touchpad"" register "desc" = ""ELAN Touchpad""
register "irq" = "ACPI_IRQ_LEVEL_LOW(GPP_B3_IRQ)" register "irq" = "ACPI_IRQ_LEVEL_LOW(GPP_B3_IRQ)"
register "wake" = "GPE0_DW0_05" # GPP_B5 register "wake" = "GPE0_DW0_05" # GPP_B5
register "detect" = "1"
device i2c 15 on end device i2c 15 on end
end end
end # I2C #1 end # I2C #1

View File

@@ -267,7 +267,7 @@ chip soc/intel/skylake
register "generic.hid" = ""WCOMCOHO"" register "generic.hid" = ""WCOMCOHO""
register "generic.desc" = ""WCOM Touchscreen"" register "generic.desc" = ""WCOM Touchscreen""
register "generic.irq" = "ACPI_IRQ_LEVEL_LOW(GPP_E7_IRQ)" register "generic.irq" = "ACPI_IRQ_LEVEL_LOW(GPP_E7_IRQ)"
register "generic.probed" = "1" register "generic.detect" = "1"
register "generic.reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_E3)" register "generic.reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_E3)"
register "generic.reset_delay_ms" = "10" register "generic.reset_delay_ms" = "10"
register "generic.enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPP_C22)" register "generic.enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPP_C22)"