Merge tag 'platform-drivers-x86-goodix-v5.14-1' into review-hans
[linux-2.6-microblaze.git] / drivers / platform / x86 / touchscreen_dmi.c
index 455a830..0e1451b 100644 (file)
@@ -299,6 +299,35 @@ static const struct ts_dmi_data estar_beauty_hd_data = {
        .properties     = estar_beauty_hd_props,
 };
 
+/* Generic props + data for upside-down mounted GDIX1001 touchscreens */
+static const struct property_entry gdix1001_upside_down_props[] = {
+       PROPERTY_ENTRY_BOOL("touchscreen-inverted-x"),
+       PROPERTY_ENTRY_BOOL("touchscreen-inverted-y"),
+       { }
+};
+
+static const struct ts_dmi_data gdix1001_00_upside_down_data = {
+       .acpi_name      = "GDIX1001:00",
+       .properties     = gdix1001_upside_down_props,
+};
+
+static const struct ts_dmi_data gdix1001_01_upside_down_data = {
+       .acpi_name      = "GDIX1001:01",
+       .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),
@@ -1038,6 +1067,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,
@@ -1330,6 +1368,24 @@ const struct dmi_system_id touchscreen_dmi_table[] = {
                        DMI_MATCH(DMI_BOARD_NAME, "X3 Plus"),
                },
        },
+       {
+               /* Teclast X89 (Android version / BIOS) */
+               .driver_data = (void *)&gdix1001_00_upside_down_data,
+               .matches = {
+                       DMI_MATCH(DMI_BOARD_VENDOR, "WISKY"),
+                       DMI_MATCH(DMI_BOARD_NAME, "3G062i"),
+               },
+       },
+       {
+               /* Teclast X89 (Windows version / BIOS) */
+               .driver_data = (void *)&gdix1001_01_upside_down_data,
+               .matches = {
+                       /* tPAD is too generic, also match on bios date */
+                       DMI_MATCH(DMI_BOARD_VENDOR, "TECLAST"),
+                       DMI_MATCH(DMI_BOARD_NAME, "tPAD"),
+                       DMI_MATCH(DMI_BIOS_DATE, "12/19/2014"),
+               },
+       },
        {
                /* Teclast X98 Plus II */
                .driver_data = (void *)&teclast_x98plus2_data,
@@ -1338,6 +1394,19 @@ const struct dmi_system_id touchscreen_dmi_table[] = {
                        DMI_MATCH(DMI_PRODUCT_NAME, "X98 Plus II"),
                },
        },
+       {
+               /* Teclast X98 Pro */
+               .driver_data = (void *)&gdix1001_00_upside_down_data,
+               .matches = {
+                       /*
+                        * Only match BIOS date, because the manufacturers
+                        * BIOS does not report the board name at all
+                        * (sometimes)...
+                        */
+                       DMI_MATCH(DMI_BOARD_VENDOR, "TECLAST"),
+                       DMI_MATCH(DMI_BIOS_DATE, "10/28/2015"),
+               },
+       },
        {
                /* Trekstor Primebook C11 */
                .driver_data = (void *)&trekstor_primebook_c11_data,
@@ -1413,6 +1482,22 @@ const struct dmi_system_id touchscreen_dmi_table[] = {
                        DMI_MATCH(DMI_PRODUCT_NAME, "VINGA Twizzle J116"),
                },
        },
+       {
+               /* "WinBook TW100" */
+               .driver_data = (void *)&gdix1001_00_upside_down_data,
+               .matches = {
+                       DMI_MATCH(DMI_SYS_VENDOR, "WinBook"),
+                       DMI_MATCH(DMI_PRODUCT_NAME, "TW100")
+               }
+       },
+       {
+               /* WinBook TW700 */
+               .driver_data = (void *)&gdix1001_00_upside_down_data,
+               .matches = {
+                       DMI_MATCH(DMI_SYS_VENDOR, "WinBook"),
+                       DMI_MATCH(DMI_PRODUCT_NAME, "TW700")
+               },
+       },
        {
                /* Yours Y8W81, same case and touchscreen as Chuwi Vi8 */
                .driver_data = (void *)&chuwi_vi8_data,