| From 9b7a5d87df46c8180b3bbf9ffd0983a8ffa7a284 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Tue, 4 May 2021 20:57:45 +0200 |
| Subject: platform/x86: touchscreen_dmi: Add info for the Goodix GT912 panel of |
| TM800A550L tablets |
| |
| From: Hans de Goede <hdegoede@redhat.com> |
| |
| [ Upstream commit fcd8cf0e3e48f4c66af82c8e799c37cb0cccffe0 ] |
| |
| The Bay Trail Glavey TM800A550L tablet, which ships with Android installed |
| from the factory, uses a GT912 touchscreen controller which needs to have |
| its firmware uploaded by the OS to work (this is a first for a x86 based |
| device with a Goodix touchscreen controller). |
| |
| Add a touchscreen_dmi entry for this which specifies the filenames |
| to use for the firmware and config files needed for this. |
| |
| Note this matches on a GDIX1001 ACPI HID, while the original DSDT uses |
| a HID of GODX0911. For the touchscreen to work on these devices a DSDT |
| override is necessary to fix a missing IRQ and broken GPIO settings in |
| the ACPI-resources for the touchscreen. This override also changes the |
| HID to the standard GDIX1001 id typically used for Goodix touchscreens. |
| The DSDT override is available here: |
| https://fedorapeople.org/~jwrdegoede/glavey-tm800a550l-dsdt-override/ |
| |
| Reviewed-by: Bastien Nocera <hadess@hadess.net> |
| Signed-off-by: Hans de Goede <hdegoede@redhat.com> |
| Link: https://lore.kernel.org/r/20210504185746.175461-5-hdegoede@redhat.com |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/platform/x86/touchscreen_dmi.c | 21 +++++++++++++++++++++ |
| 1 file changed, 21 insertions(+) |
| |
| diff --git a/drivers/platform/x86/touchscreen_dmi.c b/drivers/platform/x86/touchscreen_dmi.c |
| index ebae21b78327..99260915122c 100644 |
| --- a/drivers/platform/x86/touchscreen_dmi.c |
| +++ b/drivers/platform/x86/touchscreen_dmi.c |
| @@ -316,6 +316,18 @@ static const struct ts_dmi_data gdix1001_01_upside_down_data = { |
| .properties = gdix1001_upside_down_props, |
| }; |
| |
| +static const struct property_entry glavey_tm800a550l_props[] = { |
| + PROPERTY_ENTRY_STRING("firmware-name", "gt912-glavey-tm800a550l.fw"), |
| + PROPERTY_ENTRY_STRING("goodix,config-name", "gt912-glavey-tm800a550l.cfg"), |
| + PROPERTY_ENTRY_U32("goodix,main-clk", 54), |
| + { } |
| +}; |
| + |
| +static const struct ts_dmi_data glavey_tm800a550l_data = { |
| + .acpi_name = "GDIX1001:00", |
| + .properties = glavey_tm800a550l_props, |
| +}; |
| + |
| static const struct property_entry gp_electronic_t701_props[] = { |
| PROPERTY_ENTRY_U32("touchscreen-size-x", 960), |
| PROPERTY_ENTRY_U32("touchscreen-size-y", 640), |
| @@ -1012,6 +1024,15 @@ const struct dmi_system_id touchscreen_dmi_table[] = { |
| DMI_MATCH(DMI_PRODUCT_NAME, "eSTAR BEAUTY HD Intel Quad core"), |
| }, |
| }, |
| + { /* Glavey TM800A550L */ |
| + .driver_data = (void *)&glavey_tm800a550l_data, |
| + .matches = { |
| + DMI_MATCH(DMI_BOARD_VENDOR, "AMI Corporation"), |
| + DMI_MATCH(DMI_BOARD_NAME, "Aptio CRB"), |
| + /* Above strings are too generic, also match on BIOS version */ |
| + DMI_MATCH(DMI_BIOS_VERSION, "ZY-8-BI-PX4S70VTR400-X423B-005-D"), |
| + }, |
| + }, |
| { |
| /* GP-electronic T701 */ |
| .driver_data = (void *)&gp_electronic_t701_data, |
| -- |
| 2.30.2 |
| |