platform/x86: touchscreen_dmi: Add info for the Teclast Tbook 11 tablet
authorHans de Goede <hdegoede@redhat.com>
Sat, 17 Apr 2021 17:31:05 +0000 (19:31 +0200)
committerHans de Goede <hdegoede@redhat.com>
Mon, 19 Apr 2021 08:46:06 +0000 (10:46 +0200)
Add touchscreen info for the Teclast Tbook 11 tablet. This includes info
for getting the firmware directly from the UEFI, so that the user does
not need to manually install the firmware in /lib/firmware/silead.

This change will make the touchscreen on these devices work OOTB,
without requiring any manual setup.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Link: https://lore.kernel.org/r/20210417173105.4134-1-hdegoede@redhat.com
drivers/platform/x86/touchscreen_dmi.c

index 45203e333f578378c8f865bd8e004dad21aa4c72..90fe4f8f3c2c796b8257bf3733d6b65c84d4c955 100644 (file)
@@ -715,6 +715,32 @@ static const struct ts_dmi_data techbite_arc_11_6_data = {
        .properties     = techbite_arc_11_6_props,
 };
 
+static const struct property_entry teclast_tbook11_props[] = {
+       PROPERTY_ENTRY_U32("touchscreen-min-x", 8),
+       PROPERTY_ENTRY_U32("touchscreen-min-y", 14),
+       PROPERTY_ENTRY_U32("touchscreen-size-x", 1916),
+       PROPERTY_ENTRY_U32("touchscreen-size-y", 1264),
+       PROPERTY_ENTRY_BOOL("touchscreen-inverted-y"),
+       PROPERTY_ENTRY_STRING("firmware-name", "gsl3692-teclast-tbook11.fw"),
+       PROPERTY_ENTRY_U32("silead,max-fingers", 10),
+       PROPERTY_ENTRY_BOOL("silead,home-button"),
+       { }
+};
+
+static const struct ts_dmi_data teclast_tbook11_data = {
+       .embedded_fw = {
+               .name   = "silead/gsl3692-teclast-tbook11.fw",
+               .prefix = { 0xf0, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 },
+               .length = 43560,
+               .sha256 = { 0x9d, 0xb0, 0x3d, 0xf1, 0x00, 0x3c, 0xb5, 0x25,
+                           0x62, 0x8a, 0xa0, 0x93, 0x4b, 0xe0, 0x4e, 0x75,
+                           0xd1, 0x27, 0xb1, 0x65, 0x3c, 0xba, 0xa5, 0x0f,
+                           0xcd, 0xb4, 0xbe, 0x00, 0xbb, 0xf6, 0x43, 0x29 },
+       },
+       .acpi_name      = "MSSL1680:00",
+       .properties     = teclast_tbook11_props,
+};
+
 static const struct property_entry teclast_x3_plus_props[] = {
        PROPERTY_ENTRY_U32("touchscreen-size-x", 1980),
        PROPERTY_ENTRY_U32("touchscreen-size-y", 1500),
@@ -1243,6 +1269,15 @@ const struct dmi_system_id touchscreen_dmi_table[] = {
                        DMI_MATCH(DMI_BOARD_NAME, "G8316_272B"),
                },
        },
+       {
+               /* Teclast Tbook 11 */
+               .driver_data = (void *)&teclast_tbook11_data,
+               .matches = {
+                       DMI_MATCH(DMI_SYS_VENDOR, "TECLAST"),
+                       DMI_MATCH(DMI_PRODUCT_NAME, "TbooK 11"),
+                       DMI_MATCH(DMI_PRODUCT_SKU, "E5A6_A1"),
+               },
+       },
        {
                /* Teclast X3 Plus */
                .driver_data = (void *)&teclast_x3_plus_data,