2019-05-27 09:55:01 +03:00
// SPDX-License-Identifier: GPL-2.0-or-later
2017-01-23 20:35:30 +03:00
/*
2018-06-09 00:45:58 +03:00
* Touchscreen driver DMI based configuration code
2017-01-23 20:35:30 +03:00
*
* Copyright ( c ) 2017 Red Hat Inc .
*
* Red Hat authors :
* Hans de Goede < hdegoede @ redhat . com >
*/
# include <linux/acpi.h>
# include <linux/device.h>
# include <linux/dmi.h>
2020-01-15 19:35:53 +03:00
# include <linux/efi_embedded_fw.h>
2017-01-23 20:35:30 +03:00
# include <linux/i2c.h>
# include <linux/notifier.h>
# include <linux/property.h>
# include <linux/string.h>
2018-06-09 00:45:58 +03:00
struct ts_dmi_data {
2020-01-15 19:35:53 +03:00
/* The EFI embedded-fw code expects this to be the first member! */
struct efi_embedded_fw_desc embedded_fw ;
2017-01-23 20:35:30 +03:00
const char * acpi_name ;
2017-03-22 18:55:53 +03:00
const struct property_entry * properties ;
2017-01-23 20:35:30 +03:00
} ;
2018-06-09 00:45:56 +03:00
/* NOTE: Please keep all entries sorted alphabetically */
static const struct property_entry chuwi_hi8_props [ ] = {
PROPERTY_ENTRY_U32 ( " touchscreen-size-x " , 1665 ) ,
PROPERTY_ENTRY_U32 ( " touchscreen-size-y " , 1140 ) ,
2017-01-23 20:35:30 +03:00
PROPERTY_ENTRY_BOOL ( " touchscreen-swapped-x-y " ) ,
2018-06-09 00:45:56 +03:00
PROPERTY_ENTRY_BOOL ( " silead,home-button " ) ,
PROPERTY_ENTRY_STRING ( " firmware-name " , " gsl1680-chuwi-hi8.fw " ) ,
2017-01-23 20:35:30 +03:00
{ }
} ;
2018-06-09 00:45:58 +03:00
static const struct ts_dmi_data chuwi_hi8_data = {
2018-06-09 00:45:56 +03:00
. acpi_name = " MSSL0001:00 " ,
. properties = chuwi_hi8_props ,
2017-01-23 20:35:30 +03:00
} ;
2019-02-03 21:34:23 +03:00
static const struct property_entry chuwi_hi8_air_props [ ] = {
PROPERTY_ENTRY_U32 ( " touchscreen-size-x " , 1728 ) ,
PROPERTY_ENTRY_U32 ( " touchscreen-size-y " , 1148 ) ,
PROPERTY_ENTRY_BOOL ( " touchscreen-swapped-x-y " ) ,
PROPERTY_ENTRY_STRING ( " firmware-name " , " gsl3676-chuwi-hi8-air.fw " ) ,
PROPERTY_ENTRY_U32 ( " silead,max-fingers " , 10 ) ,
{ }
} ;
static const struct ts_dmi_data chuwi_hi8_air_data = {
. acpi_name = " MSSL1680:00 " ,
. properties = chuwi_hi8_air_props ,
} ;
2018-06-09 00:45:56 +03:00
static const struct property_entry chuwi_hi8_pro_props [ ] = {
2018-10-20 13:21:00 +03:00
PROPERTY_ENTRY_U32 ( " touchscreen-min-x " , 6 ) ,
PROPERTY_ENTRY_U32 ( " touchscreen-min-y " , 3 ) ,
2018-06-09 00:45:56 +03:00
PROPERTY_ENTRY_U32 ( " touchscreen-size-x " , 1728 ) ,
PROPERTY_ENTRY_U32 ( " touchscreen-size-y " , 1148 ) ,
2017-01-23 20:35:30 +03:00
PROPERTY_ENTRY_BOOL ( " touchscreen-swapped-x-y " ) ,
2018-06-09 00:45:56 +03:00
PROPERTY_ENTRY_STRING ( " firmware-name " , " gsl3680-chuwi-hi8-pro.fw " ) ,
2018-10-20 13:21:00 +03:00
PROPERTY_ENTRY_U32 ( " silead,max-fingers " , 10 ) ,
2018-06-09 00:45:56 +03:00
PROPERTY_ENTRY_BOOL ( " silead,home-button " ) ,
2017-01-23 20:35:30 +03:00
{ }
} ;
2018-06-09 00:45:58 +03:00
static const struct ts_dmi_data chuwi_hi8_pro_data = {
2020-01-15 19:35:53 +03:00
. embedded_fw = {
. name = " silead/gsl3680-chuwi-hi8-pro.fw " ,
. prefix = { 0xf0 , 0x00 , 0x00 , 0x00 , 0x02 , 0x00 , 0x00 , 0x00 } ,
. length = 39864 ,
. sha256 = { 0xc0 , 0x88 , 0xc5 , 0xef , 0xd1 , 0x70 , 0x77 , 0x59 ,
0x4e , 0xe9 , 0xc4 , 0xd8 , 0x2e , 0xcd , 0xbf , 0x95 ,
0x32 , 0xd9 , 0x03 , 0x28 , 0x0d , 0x48 , 0x9f , 0x92 ,
0x35 , 0x37 , 0xf6 , 0x8b , 0x2a , 0xe4 , 0x73 , 0xff } ,
} ,
2017-01-23 20:35:30 +03:00
. acpi_name = " MSSL1680:00 " ,
2018-06-09 00:45:56 +03:00
. properties = chuwi_hi8_pro_props ,
2017-01-23 20:35:30 +03:00
} ;
2019-03-03 16:47:27 +03:00
static const struct property_entry chuwi_hi10_air_props [ ] = {
PROPERTY_ENTRY_U32 ( " touchscreen-size-x " , 1981 ) ,
PROPERTY_ENTRY_U32 ( " touchscreen-size-y " , 1271 ) ,
PROPERTY_ENTRY_U32 ( " touchscreen-min-x " , 99 ) ,
PROPERTY_ENTRY_U32 ( " touchscreen-min-y " , 9 ) ,
PROPERTY_ENTRY_BOOL ( " touchscreen-swapped-x-y " ) ,
PROPERTY_ENTRY_U32 ( " touchscreen-fuzz-x " , 5 ) ,
PROPERTY_ENTRY_U32 ( " touchscreen-fuzz-y " , 4 ) ,
PROPERTY_ENTRY_STRING ( " firmware-name " , " gsl1680-chuwi-hi10-air.fw " ) ,
PROPERTY_ENTRY_U32 ( " silead,max-fingers " , 10 ) ,
PROPERTY_ENTRY_BOOL ( " silead,home-button " ) ,
{ }
} ;
static const struct ts_dmi_data chuwi_hi10_air_data = {
. acpi_name = " MSSL1680:00 " ,
. properties = chuwi_hi10_air_props ,
} ;
2019-05-23 22:09:13 +03:00
static const struct property_entry chuwi_hi10_plus_props [ ] = {
PROPERTY_ENTRY_U32 ( " touchscreen-min-x " , 0 ) ,
PROPERTY_ENTRY_U32 ( " touchscreen-min-y " , 5 ) ,
PROPERTY_ENTRY_U32 ( " touchscreen-size-x " , 1914 ) ,
PROPERTY_ENTRY_U32 ( " touchscreen-size-y " , 1283 ) ,
PROPERTY_ENTRY_STRING ( " firmware-name " , " gsl1680-chuwi-hi10plus.fw " ) ,
PROPERTY_ENTRY_U32 ( " silead,max-fingers " , 10 ) ,
PROPERTY_ENTRY_BOOL ( " silead,home-button " ) ,
{ }
} ;
static const struct ts_dmi_data chuwi_hi10_plus_data = {
. acpi_name = " MSSL0017:00 " ,
. properties = chuwi_hi10_plus_props ,
} ;
2018-06-09 00:45:56 +03:00
static const struct property_entry chuwi_vi8_props [ ] = {
2018-10-20 13:21:00 +03:00
PROPERTY_ENTRY_U32 ( " touchscreen-min-x " , 4 ) ,
PROPERTY_ENTRY_U32 ( " touchscreen-min-y " , 6 ) ,
2018-06-09 00:45:56 +03:00
PROPERTY_ENTRY_U32 ( " touchscreen-size-x " , 1724 ) ,
PROPERTY_ENTRY_U32 ( " touchscreen-size-y " , 1140 ) ,
PROPERTY_ENTRY_BOOL ( " touchscreen-swapped-x-y " ) ,
PROPERTY_ENTRY_STRING ( " firmware-name " , " gsl3676-chuwi-vi8.fw " ) ,
2018-05-30 13:43:39 +03:00
PROPERTY_ENTRY_U32 ( " silead,max-fingers " , 10 ) ,
PROPERTY_ENTRY_BOOL ( " silead,home-button " ) ,
{ }
} ;
2018-06-09 00:45:58 +03:00
static const struct ts_dmi_data chuwi_vi8_data = {
2018-06-09 00:45:56 +03:00
. acpi_name = " MSSL1680:00 " ,
. properties = chuwi_vi8_props ,
} ;
2020-01-15 19:35:54 +03:00
static const struct ts_dmi_data chuwi_vi8_plus_data = {
. embedded_fw = {
. name = " chipone/icn8505-HAMP0002.fw " ,
. prefix = { 0xb0 , 0x07 , 0x00 , 0x00 , 0xe4 , 0x07 , 0x00 , 0x00 } ,
. length = 35012 ,
. sha256 = { 0x93 , 0xe5 , 0x49 , 0xe0 , 0xb6 , 0xa2 , 0xb4 , 0xb3 ,
0x88 , 0x96 , 0x34 , 0x97 , 0x5e , 0xa8 , 0x13 , 0x78 ,
0x72 , 0x98 , 0xb8 , 0x29 , 0xeb , 0x5c , 0xa7 , 0xf1 ,
0x25 , 0x13 , 0x43 , 0xf4 , 0x30 , 0x7c , 0xfc , 0x7c } ,
} ,
} ;
2018-06-09 00:45:57 +03:00
static const struct property_entry chuwi_vi10_props [ ] = {
PROPERTY_ENTRY_U32 ( " touchscreen-min-x " , 0 ) ,
PROPERTY_ENTRY_U32 ( " touchscreen-min-y " , 4 ) ,
PROPERTY_ENTRY_U32 ( " touchscreen-size-x " , 1858 ) ,
PROPERTY_ENTRY_U32 ( " touchscreen-size-y " , 1280 ) ,
PROPERTY_ENTRY_STRING ( " firmware-name " , " gsl3680-chuwi-vi10.fw " ) ,
PROPERTY_ENTRY_U32 ( " silead,max-fingers " , 10 ) ,
PROPERTY_ENTRY_BOOL ( " silead,home-button " ) ,
{ }
} ;
2018-06-09 00:45:58 +03:00
static const struct ts_dmi_data chuwi_vi10_data = {
2018-06-09 00:45:57 +03:00
. acpi_name = " MSSL0002:00 " ,
. properties = chuwi_vi10_props ,
} ;
2019-08-03 17:12:22 +03:00
static const struct property_entry chuwi_surbook_mini_props [ ] = {
PROPERTY_ENTRY_U32 ( " touchscreen-min-x " , 88 ) ,
PROPERTY_ENTRY_U32 ( " touchscreen-min-y " , 13 ) ,
PROPERTY_ENTRY_U32 ( " touchscreen-size-x " , 2040 ) ,
PROPERTY_ENTRY_U32 ( " touchscreen-size-y " , 1524 ) ,
PROPERTY_ENTRY_STRING ( " firmware-name " , " gsl1680-chuwi-surbook-mini.fw " ) ,
PROPERTY_ENTRY_U32 ( " silead,max-fingers " , 10 ) ,
PROPERTY_ENTRY_BOOL ( " touchscreen-inverted-y " ) ,
{ }
} ;
static const struct ts_dmi_data chuwi_surbook_mini_data = {
. acpi_name = " MSSL1680:00 " ,
. properties = chuwi_surbook_mini_props ,
} ;
2018-07-01 12:32:56 +03:00
static const struct property_entry connect_tablet9_props [ ] = {
PROPERTY_ENTRY_U32 ( " touchscreen-min-x " , 9 ) ,
2018-10-20 13:21:00 +03:00
PROPERTY_ENTRY_U32 ( " touchscreen-min-y " , 10 ) ,
2018-07-01 12:32:56 +03:00
PROPERTY_ENTRY_U32 ( " touchscreen-size-x " , 1664 ) ,
2018-10-20 13:21:00 +03:00
PROPERTY_ENTRY_U32 ( " touchscreen-size-y " , 880 ) ,
2018-07-01 12:32:56 +03:00
PROPERTY_ENTRY_BOOL ( " touchscreen-inverted-y " ) ,
PROPERTY_ENTRY_BOOL ( " touchscreen-swapped-x-y " ) ,
PROPERTY_ENTRY_STRING ( " firmware-name " , " gsl1680-connect-tablet9.fw " ) ,
PROPERTY_ENTRY_U32 ( " silead,max-fingers " , 10 ) ,
{ }
} ;
static const struct ts_dmi_data connect_tablet9_data = {
. acpi_name = " MSSL1680:00 " ,
. properties = connect_tablet9_props ,
} ;
2018-06-09 00:45:56 +03:00
static const struct property_entry cube_iwork8_air_props [ ] = {
2018-10-20 13:21:00 +03:00
PROPERTY_ENTRY_U32 ( " touchscreen-min-x " , 1 ) ,
PROPERTY_ENTRY_U32 ( " touchscreen-min-y " , 3 ) ,
PROPERTY_ENTRY_U32 ( " touchscreen-size-x " , 1664 ) ,
PROPERTY_ENTRY_U32 ( " touchscreen-size-y " , 896 ) ,
2018-06-09 00:45:56 +03:00
PROPERTY_ENTRY_BOOL ( " touchscreen-swapped-x-y " ) ,
PROPERTY_ENTRY_STRING ( " firmware-name " , " gsl3670-cube-iwork8-air.fw " ) ,
PROPERTY_ENTRY_U32 ( " silead,max-fingers " , 10 ) ,
{ }
} ;
2018-06-09 00:45:58 +03:00
static const struct ts_dmi_data cube_iwork8_air_data = {
2020-01-15 19:35:53 +03:00
. embedded_fw = {
. name = " silead/gsl3670-cube-iwork8-air.fw " ,
. prefix = { 0xf0 , 0x00 , 0x00 , 0x00 , 0x02 , 0x00 , 0x00 , 0x00 } ,
. length = 38808 ,
. sha256 = { 0xff , 0x62 , 0x2d , 0xd1 , 0x8a , 0x78 , 0x04 , 0x7b ,
0x33 , 0x06 , 0xb0 , 0x4f , 0x7f , 0x02 , 0x08 , 0x9c ,
0x96 , 0xd4 , 0x9f , 0x04 , 0xe1 , 0x47 , 0x25 , 0x25 ,
0x60 , 0x77 , 0x41 , 0x33 , 0xeb , 0x12 , 0x82 , 0xfc } ,
} ,
2018-05-30 13:43:39 +03:00
. acpi_name = " MSSL1680:00 " ,
2018-06-09 00:45:56 +03:00
. properties = cube_iwork8_air_props ,
2018-05-30 13:43:39 +03:00
} ;
2018-07-31 12:32:56 +03:00
static const struct property_entry cube_knote_i1101_props [ ] = {
PROPERTY_ENTRY_U32 ( " touchscreen-min-x " , 20 ) ,
PROPERTY_ENTRY_U32 ( " touchscreen-min-y " , 22 ) ,
PROPERTY_ENTRY_U32 ( " touchscreen-size-x " , 1961 ) ,
PROPERTY_ENTRY_U32 ( " touchscreen-size-y " , 1513 ) ,
PROPERTY_ENTRY_STRING ( " firmware-name " , " gsl3692-cube-knote-i1101.fw " ) ,
PROPERTY_ENTRY_U32 ( " silead,max-fingers " , 10 ) ,
PROPERTY_ENTRY_BOOL ( " silead,home-button " ) ,
{ }
} ;
static const struct ts_dmi_data cube_knote_i1101_data = {
. acpi_name = " MSSL1680:00 " ,
. properties = cube_knote_i1101_props ,
} ;
2017-03-22 18:55:54 +03:00
static const struct property_entry dexp_ursus_7w_props [ ] = {
PROPERTY_ENTRY_U32 ( " touchscreen-size-x " , 890 ) ,
PROPERTY_ENTRY_U32 ( " touchscreen-size-y " , 630 ) ,
PROPERTY_ENTRY_STRING ( " firmware-name " , " gsl1686-dexp-ursus-7w.fw " ) ,
PROPERTY_ENTRY_U32 ( " silead,max-fingers " , 10 ) ,
2017-10-19 10:17:28 +03:00
PROPERTY_ENTRY_BOOL ( " silead,home-button " ) ,
2017-03-22 18:55:54 +03:00
{ }
} ;
2018-06-09 00:45:58 +03:00
static const struct ts_dmi_data dexp_ursus_7w_data = {
2017-03-22 18:55:54 +03:00
. acpi_name = " MSSL1680:00 " ,
. properties = dexp_ursus_7w_props ,
} ;
2018-06-09 00:45:56 +03:00
static const struct property_entry digma_citi_e200_props [ ] = {
PROPERTY_ENTRY_U32 ( " touchscreen-size-x " , 1980 ) ,
PROPERTY_ENTRY_U32 ( " touchscreen-size-y " , 1500 ) ,
PROPERTY_ENTRY_BOOL ( " touchscreen-inverted-y " ) ,
2020-01-09 18:34:05 +03:00
PROPERTY_ENTRY_STRING ( " firmware-name " , " gsl1686-digma_citi_e200.fw " ) ,
2017-04-09 12:07:44 +03:00
PROPERTY_ENTRY_U32 ( " silead,max-fingers " , 10 ) ,
2017-10-19 10:17:28 +03:00
PROPERTY_ENTRY_BOOL ( " silead,home-button " ) ,
2017-04-09 12:07:44 +03:00
{ }
} ;
2018-06-09 00:45:58 +03:00
static const struct ts_dmi_data digma_citi_e200_data = {
2017-04-09 12:07:44 +03:00
. acpi_name = " MSSL1680:00 " ,
2018-06-09 00:45:56 +03:00
. properties = digma_citi_e200_props ,
2017-04-09 12:07:44 +03:00
} ;
2017-05-07 15:35:15 +03:00
static const struct property_entry gp_electronic_t701_props [ ] = {
PROPERTY_ENTRY_U32 ( " touchscreen-size-x " , 960 ) ,
PROPERTY_ENTRY_U32 ( " touchscreen-size-y " , 640 ) ,
2017-10-19 10:44:14 +03:00
PROPERTY_ENTRY_BOOL ( " touchscreen-inverted-x " ) ,
PROPERTY_ENTRY_BOOL ( " touchscreen-inverted-y " ) ,
2020-01-09 18:34:05 +03:00
PROPERTY_ENTRY_STRING ( " firmware-name " , " gsl1680-gp-electronic-t701.fw " ) ,
2017-05-07 15:35:15 +03:00
{ }
} ;
2018-06-09 00:45:58 +03:00
static const struct ts_dmi_data gp_electronic_t701_data = {
2017-05-07 15:35:15 +03:00
. acpi_name = " MSSL1680:00 " ,
. properties = gp_electronic_t701_props ,
} ;
2019-08-04 16:40:23 +03:00
static const struct property_entry irbis_tw90_props [ ] = {
PROPERTY_ENTRY_U32 ( " touchscreen-size-x " , 1720 ) ,
PROPERTY_ENTRY_U32 ( " touchscreen-size-y " , 1138 ) ,
PROPERTY_ENTRY_U32 ( " touchscreen-min-x " , 8 ) ,
PROPERTY_ENTRY_U32 ( " touchscreen-min-y " , 14 ) ,
PROPERTY_ENTRY_BOOL ( " touchscreen-inverted-y " ) ,
PROPERTY_ENTRY_BOOL ( " touchscreen-swapped-x-y " ) ,
PROPERTY_ENTRY_STRING ( " firmware-name " , " gsl3680-irbis_tw90.fw " ) ,
PROPERTY_ENTRY_U32 ( " silead,max-fingers " , 10 ) ,
PROPERTY_ENTRY_BOOL ( " silead,home-button " ) ,
{ }
} ;
static const struct ts_dmi_data irbis_tw90_data = {
. acpi_name = " MSSL1680:00 " ,
. properties = irbis_tw90_props ,
} ;
2018-06-09 00:45:56 +03:00
static const struct property_entry itworks_tw891_props [ ] = {
2018-10-20 13:21:00 +03:00
PROPERTY_ENTRY_U32 ( " touchscreen-min-x " , 1 ) ,
PROPERTY_ENTRY_U32 ( " touchscreen-min-y " , 5 ) ,
2018-06-09 00:45:56 +03:00
PROPERTY_ENTRY_U32 ( " touchscreen-size-x " , 1600 ) ,
2018-10-20 13:21:00 +03:00
PROPERTY_ENTRY_U32 ( " touchscreen-size-y " , 896 ) ,
2018-06-09 00:45:56 +03:00
PROPERTY_ENTRY_BOOL ( " touchscreen-inverted-y " ) ,
2017-06-15 09:48:32 +03:00
PROPERTY_ENTRY_BOOL ( " touchscreen-swapped-x-y " ) ,
2018-06-09 00:45:56 +03:00
PROPERTY_ENTRY_STRING ( " firmware-name " , " gsl3670-itworks-tw891.fw " ) ,
2018-10-20 13:21:00 +03:00
PROPERTY_ENTRY_U32 ( " silead,max-fingers " , 10 ) ,
2017-06-15 09:48:32 +03:00
{ }
} ;
2018-06-09 00:45:58 +03:00
static const struct ts_dmi_data itworks_tw891_data = {
2017-06-15 09:48:32 +03:00
. acpi_name = " MSSL1680:00 " ,
2018-06-09 00:45:56 +03:00
. properties = itworks_tw891_props ,
2017-06-15 09:48:32 +03:00
} ;
2018-06-09 00:45:56 +03:00
static const struct property_entry jumper_ezpad_6_pro_props [ ] = {
PROPERTY_ENTRY_U32 ( " touchscreen-size-x " , 1980 ) ,
PROPERTY_ENTRY_U32 ( " touchscreen-size-y " , 1500 ) ,
PROPERTY_ENTRY_STRING ( " firmware-name " , " gsl3692-jumper-ezpad-6-pro.fw " ) ,
2018-05-30 13:43:40 +03:00
PROPERTY_ENTRY_U32 ( " silead,max-fingers " , 10 ) ,
PROPERTY_ENTRY_BOOL ( " silead,home-button " ) ,
{ }
} ;
2018-06-09 00:45:58 +03:00
static const struct ts_dmi_data jumper_ezpad_6_pro_data = {
2018-05-30 13:43:40 +03:00
. acpi_name = " MSSL1680:00 " ,
2018-06-09 00:45:56 +03:00
. properties = jumper_ezpad_6_pro_props ,
2018-05-30 13:43:40 +03:00
} ;
2019-04-29 18:46:57 +03:00
static const struct property_entry jumper_ezpad_6_pro_b_props [ ] = {
PROPERTY_ENTRY_U32 ( " touchscreen-size-x " , 1980 ) ,
PROPERTY_ENTRY_U32 ( " touchscreen-size-y " , 1500 ) ,
PROPERTY_ENTRY_STRING ( " firmware-name " , " gsl3692-jumper-ezpad-6-pro-b.fw " ) ,
PROPERTY_ENTRY_BOOL ( " touchscreen-inverted-y " ) ,
PROPERTY_ENTRY_U32 ( " silead,max-fingers " , 10 ) ,
PROPERTY_ENTRY_BOOL ( " silead,home-button " ) ,
{ }
} ;
static const struct ts_dmi_data jumper_ezpad_6_pro_b_data = {
. acpi_name = " MSSL1680:00 " ,
. properties = jumper_ezpad_6_pro_b_props ,
} ;
2019-11-12 17:17:11 +03:00
static const struct property_entry jumper_ezpad_6_m4_props [ ] = {
PROPERTY_ENTRY_U32 ( " touchscreen-min-x " , 35 ) ,
PROPERTY_ENTRY_U32 ( " touchscreen-min-y " , 15 ) ,
PROPERTY_ENTRY_U32 ( " touchscreen-size-x " , 1950 ) ,
PROPERTY_ENTRY_U32 ( " touchscreen-size-y " , 1525 ) ,
PROPERTY_ENTRY_STRING ( " firmware-name " , " gsl3692-jumper-ezpad-6-m4.fw " ) ,
PROPERTY_ENTRY_U32 ( " silead,max-fingers " , 10 ) ,
PROPERTY_ENTRY_BOOL ( " silead,home-button " ) ,
{ }
} ;
static const struct ts_dmi_data jumper_ezpad_6_m4_data = {
. acpi_name = " MSSL1680:00 " ,
. properties = jumper_ezpad_6_m4_props ,
} ;
2018-06-09 00:45:56 +03:00
static const struct property_entry jumper_ezpad_mini3_props [ ] = {
2018-10-20 13:21:00 +03:00
PROPERTY_ENTRY_U32 ( " touchscreen-min-x " , 23 ) ,
PROPERTY_ENTRY_U32 ( " touchscreen-min-y " , 16 ) ,
2018-06-09 00:45:56 +03:00
PROPERTY_ENTRY_U32 ( " touchscreen-size-x " , 1700 ) ,
2018-10-20 13:21:00 +03:00
PROPERTY_ENTRY_U32 ( " touchscreen-size-y " , 1138 ) ,
2017-06-15 09:48:31 +03:00
PROPERTY_ENTRY_BOOL ( " touchscreen-swapped-x-y " ) ,
2018-06-09 00:45:56 +03:00
PROPERTY_ENTRY_STRING ( " firmware-name " , " gsl3676-jumper-ezpad-mini3.fw " ) ,
PROPERTY_ENTRY_U32 ( " silead,max-fingers " , 10 ) ,
2017-07-01 13:15:22 +03:00
{ }
} ;
2018-06-09 00:45:58 +03:00
static const struct ts_dmi_data jumper_ezpad_mini3_data = {
2017-07-01 13:15:22 +03:00
. acpi_name = " MSSL1680:00 " ,
2018-06-09 00:45:56 +03:00
. properties = jumper_ezpad_mini3_props ,
2017-07-01 13:15:22 +03:00
} ;
2020-04-01 11:03:48 +03:00
static const struct property_entry mpman_mpwin895cl_props [ ] = {
PROPERTY_ENTRY_U32 ( " touchscreen-min-x " , 3 ) ,
PROPERTY_ENTRY_U32 ( " touchscreen-min-y " , 9 ) ,
PROPERTY_ENTRY_U32 ( " touchscreen-size-x " , 1728 ) ,
PROPERTY_ENTRY_U32 ( " touchscreen-size-y " , 1150 ) ,
PROPERTY_ENTRY_BOOL ( " touchscreen-inverted-y " ) ,
PROPERTY_ENTRY_STRING ( " firmware-name " , " gsl3680-mpman-mpwin895cl.fw " ) ,
PROPERTY_ENTRY_U32 ( " silead,max-fingers " , 10 ) ,
PROPERTY_ENTRY_BOOL ( " silead,home-button " ) ,
{ }
} ;
static const struct ts_dmi_data mpman_mpwin895cl_data = {
. acpi_name = " MSSL1680:00 " ,
. properties = mpman_mpwin895cl_props ,
} ;
2019-03-15 16:31:14 +03:00
static const struct property_entry myria_my8307_props [ ] = {
PROPERTY_ENTRY_U32 ( " touchscreen-size-x " , 1720 ) ,
PROPERTY_ENTRY_U32 ( " touchscreen-size-y " , 1140 ) ,
PROPERTY_ENTRY_BOOL ( " touchscreen-inverted-x " ) ,
PROPERTY_ENTRY_BOOL ( " touchscreen-inverted-y " ) ,
PROPERTY_ENTRY_BOOL ( " touchscreen-swapped-x-y " ) ,
PROPERTY_ENTRY_STRING ( " firmware-name " , " gsl1680-myria-my8307.fw " ) ,
PROPERTY_ENTRY_U32 ( " silead,max-fingers " , 10 ) ,
PROPERTY_ENTRY_BOOL ( " silead,home-button " ) ,
{ }
} ;
static const struct ts_dmi_data myria_my8307_data = {
. acpi_name = " MSSL1680:00 " ,
. properties = myria_my8307_props ,
} ;
2018-06-09 00:45:56 +03:00
static const struct property_entry onda_obook_20_plus_props [ ] = {
2017-10-04 16:30:12 +03:00
PROPERTY_ENTRY_U32 ( " touchscreen-size-x " , 1728 ) ,
PROPERTY_ENTRY_U32 ( " touchscreen-size-y " , 1148 ) ,
2018-06-09 00:45:56 +03:00
PROPERTY_ENTRY_BOOL ( " touchscreen-inverted-x " ) ,
PROPERTY_ENTRY_BOOL ( " touchscreen-inverted-y " ) ,
2017-10-04 16:30:12 +03:00
PROPERTY_ENTRY_BOOL ( " touchscreen-swapped-x-y " ) ,
2018-06-09 00:45:56 +03:00
PROPERTY_ENTRY_STRING ( " firmware-name " , " gsl3676-onda-obook-20-plus.fw " ) ,
PROPERTY_ENTRY_U32 ( " silead,max-fingers " , 10 ) ,
2017-10-19 10:17:28 +03:00
PROPERTY_ENTRY_BOOL ( " silead,home-button " ) ,
2017-10-04 16:30:12 +03:00
{ }
} ;
2018-06-09 00:45:58 +03:00
static const struct ts_dmi_data onda_obook_20_plus_data = {
2017-10-04 16:30:12 +03:00
. acpi_name = " MSSL1680:00 " ,
2018-06-09 00:45:56 +03:00
. properties = onda_obook_20_plus_props ,
2017-10-04 16:30:12 +03:00
} ;
2018-10-10 16:16:40 +03:00
static const struct property_entry onda_v80_plus_v3_props [ ] = {
PROPERTY_ENTRY_U32 ( " touchscreen-min-x " , 22 ) ,
PROPERTY_ENTRY_U32 ( " touchscreen-min-y " , 15 ) ,
PROPERTY_ENTRY_U32 ( " touchscreen-size-x " , 1698 ) ,
PROPERTY_ENTRY_U32 ( " touchscreen-size-y " , 1140 ) ,
PROPERTY_ENTRY_BOOL ( " touchscreen-swapped-x-y " ) ,
2020-01-09 18:34:05 +03:00
PROPERTY_ENTRY_STRING ( " firmware-name " , " gsl3676-onda-v80-plus-v3.fw " ) ,
2018-10-10 16:16:40 +03:00
PROPERTY_ENTRY_U32 ( " silead,max-fingers " , 10 ) ,
PROPERTY_ENTRY_BOOL ( " silead,home-button " ) ,
{ }
} ;
static const struct ts_dmi_data onda_v80_plus_v3_data = {
2020-01-15 19:35:53 +03:00
. embedded_fw = {
. name = " silead/gsl3676-onda-v80-plus-v3.fw " ,
. prefix = { 0xf0 , 0x00 , 0x00 , 0x00 , 0x02 , 0x00 , 0x00 , 0x00 } ,
. length = 37224 ,
. sha256 = { 0x8f , 0xbd , 0x8f , 0x0c , 0x6b , 0xba , 0x5b , 0xf5 ,
0xa3 , 0xc7 , 0xa3 , 0xc0 , 0x4f , 0xcd , 0xdf , 0x32 ,
0xcc , 0xe4 , 0x70 , 0xd6 , 0x46 , 0x9c , 0xd7 , 0xa7 ,
0x4b , 0x82 , 0x3f , 0xab , 0xc7 , 0x90 , 0xea , 0x23 } ,
} ,
2018-10-10 16:16:40 +03:00
. acpi_name = " MSSL1680:00 " ,
. properties = onda_v80_plus_v3_props ,
} ;
2018-07-02 00:47:14 +03:00
static const struct property_entry onda_v820w_32g_props [ ] = {
PROPERTY_ENTRY_U32 ( " touchscreen-size-x " , 1665 ) ,
PROPERTY_ENTRY_U32 ( " touchscreen-size-y " , 1140 ) ,
PROPERTY_ENTRY_BOOL ( " touchscreen-swapped-x-y " ) ,
2020-01-09 18:34:05 +03:00
PROPERTY_ENTRY_STRING ( " firmware-name " , " gsl1680-onda-v820w-32g.fw " ) ,
2018-07-02 00:47:14 +03:00
PROPERTY_ENTRY_U32 ( " silead,max-fingers " , 10 ) ,
PROPERTY_ENTRY_BOOL ( " silead,home-button " ) ,
{ }
} ;
static const struct ts_dmi_data onda_v820w_32g_data = {
. acpi_name = " MSSL1680:00 " ,
. properties = onda_v820w_32g_props ,
} ;
2018-06-09 00:45:56 +03:00
static const struct property_entry onda_v891w_v1_props [ ] = {
PROPERTY_ENTRY_U32 ( " touchscreen-min-x " , 46 ) ,
PROPERTY_ENTRY_U32 ( " touchscreen-min-y " , 8 ) ,
PROPERTY_ENTRY_U32 ( " touchscreen-size-x " , 1676 ) ,
PROPERTY_ENTRY_U32 ( " touchscreen-size-y " , 1130 ) ,
2020-01-09 18:34:05 +03:00
PROPERTY_ENTRY_STRING ( " firmware-name " , " gsl3680-onda-v891w-v1.fw " ) ,
2017-10-27 13:27:07 +03:00
PROPERTY_ENTRY_U32 ( " silead,max-fingers " , 10 ) ,
PROPERTY_ENTRY_BOOL ( " silead,home-button " ) ,
{ }
} ;
2018-06-09 00:45:58 +03:00
static const struct ts_dmi_data onda_v891w_v1_data = {
2017-10-27 13:27:07 +03:00
. acpi_name = " MSSL1680:00 " ,
2018-06-09 00:45:56 +03:00
. properties = onda_v891w_v1_props ,
2017-10-27 13:27:07 +03:00
} ;
2018-06-18 16:11:44 +03:00
static const struct property_entry onda_v891w_v3_props [ ] = {
PROPERTY_ENTRY_U32 ( " touchscreen-min-x " , 35 ) ,
PROPERTY_ENTRY_U32 ( " touchscreen-min-y " , 15 ) ,
PROPERTY_ENTRY_U32 ( " touchscreen-size-x " , 1625 ) ,
PROPERTY_ENTRY_U32 ( " touchscreen-size-y " , 1135 ) ,
PROPERTY_ENTRY_BOOL ( " touchscreen-inverted-y " ) ,
2020-01-09 18:34:05 +03:00
PROPERTY_ENTRY_STRING ( " firmware-name " , " gsl3676-onda-v891w-v3.fw " ) ,
2018-06-18 16:11:44 +03:00
PROPERTY_ENTRY_U32 ( " silead,max-fingers " , 10 ) ,
PROPERTY_ENTRY_BOOL ( " silead,home-button " ) ,
{ }
} ;
static const struct ts_dmi_data onda_v891w_v3_data = {
. acpi_name = " MSSL1680:00 " ,
. properties = onda_v891w_v3_props ,
} ;
2018-06-09 00:45:56 +03:00
static const struct property_entry pipo_w2s_props [ ] = {
PROPERTY_ENTRY_U32 ( " touchscreen-size-x " , 1660 ) ,
PROPERTY_ENTRY_U32 ( " touchscreen-size-y " , 880 ) ,
2017-12-11 01:02:13 +03:00
PROPERTY_ENTRY_BOOL ( " touchscreen-inverted-x " ) ,
PROPERTY_ENTRY_BOOL ( " touchscreen-swapped-x-y " ) ,
2020-01-09 18:34:05 +03:00
PROPERTY_ENTRY_STRING ( " firmware-name " , " gsl1680-pipo-w2s.fw " ) ,
2017-12-11 01:02:13 +03:00
{ }
} ;
2018-06-09 00:45:58 +03:00
static const struct ts_dmi_data pipo_w2s_data = {
2020-01-15 19:35:53 +03:00
. embedded_fw = {
. name = " silead/gsl1680-pipo-w2s.fw " ,
. prefix = { 0xf0 , 0x00 , 0x00 , 0x00 , 0x02 , 0x00 , 0x00 , 0x00 } ,
. length = 39072 ,
. sha256 = { 0xd0 , 0x58 , 0xc4 , 0x7d , 0x55 , 0x2d , 0x62 , 0x18 ,
0xd1 , 0x6a , 0x71 , 0x73 , 0x0b , 0x3f , 0xbe , 0x60 ,
0xbb , 0x45 , 0x8c , 0x52 , 0x27 , 0xb7 , 0x18 , 0xf4 ,
0x31 , 0x00 , 0x6a , 0x49 , 0x76 , 0xd8 , 0x7c , 0xd3 } ,
} ,
2017-12-11 01:02:13 +03:00
. acpi_name = " MSSL1680:00 " ,
2018-06-09 00:45:56 +03:00
. properties = pipo_w2s_props ,
2017-12-11 01:02:13 +03:00
} ;
2020-01-03 18:00:59 +03:00
static const struct property_entry pipo_w11_props [ ] = {
PROPERTY_ENTRY_U32 ( " touchscreen-min-x " , 1 ) ,
PROPERTY_ENTRY_U32 ( " touchscreen-min-y " , 15 ) ,
PROPERTY_ENTRY_U32 ( " touchscreen-size-x " , 1984 ) ,
PROPERTY_ENTRY_U32 ( " touchscreen-size-y " , 1532 ) ,
2020-01-09 18:34:05 +03:00
PROPERTY_ENTRY_STRING ( " firmware-name " , " gsl1680-pipo-w11.fw " ) ,
2020-01-03 18:00:59 +03:00
PROPERTY_ENTRY_U32 ( " silead,max-fingers " , 10 ) ,
PROPERTY_ENTRY_BOOL ( " silead,home-button " ) ,
{ }
} ;
static const struct ts_dmi_data pipo_w11_data = {
. acpi_name = " MSSL1680:00 " ,
. properties = pipo_w11_props ,
} ;
2018-06-09 00:45:56 +03:00
static const struct property_entry pov_mobii_wintab_p800w_v20_props [ ] = {
PROPERTY_ENTRY_U32 ( " touchscreen-min-x " , 32 ) ,
PROPERTY_ENTRY_U32 ( " touchscreen-min-y " , 16 ) ,
PROPERTY_ENTRY_U32 ( " touchscreen-size-x " , 1692 ) ,
PROPERTY_ENTRY_U32 ( " touchscreen-size-y " , 1146 ) ,
2017-12-20 13:30:08 +03:00
PROPERTY_ENTRY_BOOL ( " touchscreen-swapped-x-y " ) ,
2020-01-09 18:34:05 +03:00
PROPERTY_ENTRY_STRING ( " firmware-name " , " gsl3680-pov-mobii-wintab-p800w-v20.fw " ) ,
2018-06-09 00:45:56 +03:00
PROPERTY_ENTRY_U32 ( " silead,max-fingers " , 10 ) ,
2017-12-20 13:30:08 +03:00
PROPERTY_ENTRY_BOOL ( " silead,home-button " ) ,
{ }
} ;
2018-06-09 00:45:58 +03:00
static const struct ts_dmi_data pov_mobii_wintab_p800w_v20_data = {
2018-06-09 00:45:56 +03:00
. acpi_name = " MSSL1680:00 " ,
. properties = pov_mobii_wintab_p800w_v20_props ,
2017-12-20 13:30:08 +03:00
} ;
2018-06-09 00:45:56 +03:00
static const struct property_entry pov_mobii_wintab_p800w_v21_props [ ] = {
2018-10-20 13:21:00 +03:00
PROPERTY_ENTRY_U32 ( " touchscreen-min-x " , 1 ) ,
PROPERTY_ENTRY_U32 ( " touchscreen-min-y " , 8 ) ,
PROPERTY_ENTRY_U32 ( " touchscreen-size-x " , 1794 ) ,
PROPERTY_ENTRY_U32 ( " touchscreen-size-y " , 1148 ) ,
2017-12-20 13:30:09 +03:00
PROPERTY_ENTRY_BOOL ( " touchscreen-swapped-x-y " ) ,
2020-01-09 18:34:05 +03:00
PROPERTY_ENTRY_STRING ( " firmware-name " , " gsl3692-pov-mobii-wintab-p800w.fw " ) ,
2018-10-20 13:21:00 +03:00
PROPERTY_ENTRY_U32 ( " silead,max-fingers " , 10 ) ,
2017-12-20 13:30:09 +03:00
PROPERTY_ENTRY_BOOL ( " silead,home-button " ) ,
{ }
} ;
2018-06-09 00:45:58 +03:00
static const struct ts_dmi_data pov_mobii_wintab_p800w_v21_data = {
2018-06-09 00:45:56 +03:00
. acpi_name = " MSSL1680:00 " ,
. properties = pov_mobii_wintab_p800w_v21_props ,
2017-12-20 13:30:09 +03:00
} ;
2018-12-21 00:21:50 +03:00
static const struct property_entry pov_mobii_wintab_p1006w_v10_props [ ] = {
PROPERTY_ENTRY_U32 ( " touchscreen-min-x " , 1 ) ,
PROPERTY_ENTRY_U32 ( " touchscreen-min-y " , 3 ) ,
PROPERTY_ENTRY_U32 ( " touchscreen-size-x " , 1984 ) ,
PROPERTY_ENTRY_U32 ( " touchscreen-size-y " , 1520 ) ,
PROPERTY_ENTRY_BOOL ( " touchscreen-inverted-y " ) ,
2020-01-09 18:34:05 +03:00
PROPERTY_ENTRY_STRING ( " firmware-name " , " gsl3692-pov-mobii-wintab-p1006w-v10.fw " ) ,
2018-12-21 00:21:50 +03:00
PROPERTY_ENTRY_U32 ( " silead,max-fingers " , 10 ) ,
PROPERTY_ENTRY_BOOL ( " silead,home-button " ) ,
{ }
} ;
static const struct ts_dmi_data pov_mobii_wintab_p1006w_v10_data = {
. acpi_name = " MSSL1680:00 " ,
. properties = pov_mobii_wintab_p1006w_v10_props ,
} ;
2019-10-23 21:53:23 +03:00
static const struct property_entry schneider_sct101ctm_props [ ] = {
PROPERTY_ENTRY_U32 ( " touchscreen-size-x " , 1715 ) ,
PROPERTY_ENTRY_U32 ( " touchscreen-size-y " , 1140 ) ,
PROPERTY_ENTRY_BOOL ( " touchscreen-inverted-x " ) ,
PROPERTY_ENTRY_BOOL ( " touchscreen-inverted-y " ) ,
PROPERTY_ENTRY_BOOL ( " touchscreen-swapped-x-y " ) ,
2020-01-09 18:34:05 +03:00
PROPERTY_ENTRY_STRING ( " firmware-name " , " gsl1680-schneider-sct101ctm.fw " ) ,
2019-10-23 21:53:23 +03:00
PROPERTY_ENTRY_U32 ( " silead,max-fingers " , 10 ) ,
PROPERTY_ENTRY_BOOL ( " silead,home-button " ) ,
{ }
} ;
static const struct ts_dmi_data schneider_sct101ctm_data = {
. acpi_name = " MSSL1680:00 " ,
. properties = schneider_sct101ctm_props ,
} ;
2018-06-09 00:45:56 +03:00
static const struct property_entry teclast_x3_plus_props [ ] = {
PROPERTY_ENTRY_U32 ( " touchscreen-size-x " , 1980 ) ,
PROPERTY_ENTRY_U32 ( " touchscreen-size-y " , 1500 ) ,
PROPERTY_ENTRY_STRING ( " firmware-name " , " gsl1680-teclast-x3-plus.fw " ) ,
2017-12-25 15:45:25 +03:00
PROPERTY_ENTRY_U32 ( " silead,max-fingers " , 10 ) ,
PROPERTY_ENTRY_BOOL ( " silead,home-button " ) ,
{ }
} ;
2018-06-09 00:45:58 +03:00
static const struct ts_dmi_data teclast_x3_plus_data = {
2017-12-25 15:45:25 +03:00
. acpi_name = " MSSL1680:00 " ,
2018-06-09 00:45:56 +03:00
. properties = teclast_x3_plus_props ,
2017-12-25 15:45:25 +03:00
} ;
2018-01-02 21:39:27 +03:00
static const struct property_entry teclast_x98plus2_props [ ] = {
PROPERTY_ENTRY_U32 ( " touchscreen-size-x " , 2048 ) ,
PROPERTY_ENTRY_U32 ( " touchscreen-size-y " , 1280 ) ,
PROPERTY_ENTRY_BOOL ( " touchscreen-inverted-x " ) ,
PROPERTY_ENTRY_BOOL ( " touchscreen-inverted-y " ) ,
2020-01-09 18:34:05 +03:00
PROPERTY_ENTRY_STRING ( " firmware-name " , " gsl1686-teclast_x98plus2.fw " ) ,
2018-01-02 21:39:27 +03:00
PROPERTY_ENTRY_U32 ( " silead,max-fingers " , 10 ) ,
{ }
} ;
2018-06-09 00:45:58 +03:00
static const struct ts_dmi_data teclast_x98plus2_data = {
2018-01-02 21:39:27 +03:00
. acpi_name = " MSSL1680:00 " ,
. properties = teclast_x98plus2_props ,
} ;
2018-10-04 15:34:45 +03:00
static const struct property_entry trekstor_primebook_c11_props [ ] = {
PROPERTY_ENTRY_U32 ( " touchscreen-size-x " , 1970 ) ,
PROPERTY_ENTRY_U32 ( " touchscreen-size-y " , 1530 ) ,
PROPERTY_ENTRY_BOOL ( " touchscreen-inverted-y " ) ,
2020-01-09 18:34:05 +03:00
PROPERTY_ENTRY_STRING ( " firmware-name " , " gsl1680-trekstor-primebook-c11.fw " ) ,
2018-10-04 15:34:45 +03:00
PROPERTY_ENTRY_U32 ( " silead,max-fingers " , 10 ) ,
PROPERTY_ENTRY_BOOL ( " silead,home-button " ) ,
{ }
} ;
static const struct ts_dmi_data trekstor_primebook_c11_data = {
. acpi_name = " MSSL1680:00 " ,
. properties = trekstor_primebook_c11_props ,
} ;
2018-06-09 00:45:56 +03:00
static const struct property_entry trekstor_primebook_c13_props [ ] = {
PROPERTY_ENTRY_U32 ( " touchscreen-size-x " , 2624 ) ,
PROPERTY_ENTRY_U32 ( " touchscreen-size-y " , 1920 ) ,
2020-01-09 18:34:05 +03:00
PROPERTY_ENTRY_STRING ( " firmware-name " , " gsl1680-trekstor-primebook-c13.fw " ) ,
2018-01-23 21:33:38 +03:00
PROPERTY_ENTRY_U32 ( " silead,max-fingers " , 10 ) ,
PROPERTY_ENTRY_BOOL ( " silead,home-button " ) ,
{ }
} ;
2018-06-09 00:45:58 +03:00
static const struct ts_dmi_data trekstor_primebook_c13_data = {
2018-01-23 21:33:38 +03:00
. acpi_name = " MSSL1680:00 " ,
2018-06-09 00:45:56 +03:00
. properties = trekstor_primebook_c13_props ,
2018-01-23 21:33:38 +03:00
} ;
2018-10-08 10:25:05 +03:00
static const struct property_entry trekstor_primetab_t13b_props [ ] = {
PROPERTY_ENTRY_U32 ( " touchscreen-size-x " , 2500 ) ,
PROPERTY_ENTRY_U32 ( " touchscreen-size-y " , 1900 ) ,
2020-01-09 18:34:05 +03:00
PROPERTY_ENTRY_STRING ( " firmware-name " , " gsl1680-trekstor-primetab-t13b.fw " ) ,
2018-10-08 10:25:05 +03:00
PROPERTY_ENTRY_U32 ( " silead,max-fingers " , 10 ) ,
PROPERTY_ENTRY_BOOL ( " silead,home-button " ) ,
PROPERTY_ENTRY_BOOL ( " touchscreen-inverted-y " ) ,
{ }
} ;
static const struct ts_dmi_data trekstor_primetab_t13b_data = {
. acpi_name = " MSSL1680:00 " ,
. properties = trekstor_primetab_t13b_props ,
} ;
2018-06-09 00:45:56 +03:00
static const struct property_entry trekstor_surftab_twin_10_1_props [ ] = {
PROPERTY_ENTRY_U32 ( " touchscreen-size-x " , 1900 ) ,
PROPERTY_ENTRY_U32 ( " touchscreen-size-y " , 1280 ) ,
PROPERTY_ENTRY_U32 ( " touchscreen-inverted-y " , 1 ) ,
2020-01-09 18:34:05 +03:00
PROPERTY_ENTRY_STRING ( " firmware-name " , " gsl3670-surftab-twin-10-1-st10432-8.fw " ) ,
2018-06-09 00:45:56 +03:00
PROPERTY_ENTRY_U32 ( " silead,max-fingers " , 10 ) ,
{ }
} ;
2018-06-09 00:45:58 +03:00
static const struct ts_dmi_data trekstor_surftab_twin_10_1_data = {
2018-06-09 00:45:56 +03:00
. acpi_name = " MSSL1680:00 " ,
. properties = trekstor_surftab_twin_10_1_props ,
} ;
static const struct property_entry trekstor_surftab_wintron70_props [ ] = {
2018-10-20 13:21:00 +03:00
PROPERTY_ENTRY_U32 ( " touchscreen-min-x " , 12 ) ,
PROPERTY_ENTRY_U32 ( " touchscreen-min-y " , 8 ) ,
2018-06-09 00:45:56 +03:00
PROPERTY_ENTRY_U32 ( " touchscreen-size-x " , 884 ) ,
PROPERTY_ENTRY_U32 ( " touchscreen-size-y " , 632 ) ,
2020-01-09 18:34:05 +03:00
PROPERTY_ENTRY_STRING ( " firmware-name " , " gsl1686-surftab-wintron70-st70416-6.fw " ) ,
2018-05-30 13:43:41 +03:00
PROPERTY_ENTRY_U32 ( " silead,max-fingers " , 10 ) ,
PROPERTY_ENTRY_BOOL ( " silead,home-button " ) ,
{ }
} ;
2018-06-09 00:45:58 +03:00
static const struct ts_dmi_data trekstor_surftab_wintron70_data = {
2018-05-30 13:43:41 +03:00
. acpi_name = " MSSL1680:00 " ,
2018-06-09 00:45:56 +03:00
. properties = trekstor_surftab_wintron70_props ,
2018-05-30 13:43:41 +03:00
} ;
2018-06-09 00:45:56 +03:00
/* NOTE: Please keep this table sorted alphabetically */
2020-01-15 19:35:53 +03:00
const struct dmi_system_id touchscreen_dmi_table [ ] = {
2018-06-09 00:45:56 +03:00
{
/* Chuwi Hi8 */
. driver_data = ( void * ) & chuwi_hi8_data ,
. matches = {
DMI_MATCH ( DMI_SYS_VENDOR , " ilife " ) ,
DMI_MATCH ( DMI_PRODUCT_NAME , " S806 " ) ,
} ,
} ,
{
/* Chuwi Hi8 (H1D_S806_206) */
. driver_data = ( void * ) & chuwi_hi8_data ,
. matches = {
DMI_MATCH ( DMI_SYS_VENDOR , " Insyde " ) ,
DMI_MATCH ( DMI_PRODUCT_NAME , " BayTrail " ) ,
DMI_MATCH ( DMI_BIOS_VERSION , " H1D_S806_206 " ) ,
} ,
} ,
2019-02-03 21:34:23 +03:00
{
/* Chuwi Hi8 Air (CWI543) */
. driver_data = ( void * ) & chuwi_hi8_air_data ,
. matches = {
DMI_MATCH ( DMI_BOARD_VENDOR , " Default string " ) ,
DMI_MATCH ( DMI_BOARD_NAME , " Cherry Trail CR " ) ,
DMI_MATCH ( DMI_PRODUCT_NAME , " Hi8 Air " ) ,
} ,
} ,
2018-06-09 00:45:56 +03:00
{
/* Chuwi Hi8 Pro (CWI513) */
. driver_data = ( void * ) & chuwi_hi8_pro_data ,
. matches = {
DMI_MATCH ( DMI_SYS_VENDOR , " Hampoo " ) ,
DMI_MATCH ( DMI_PRODUCT_NAME , " X1D3_C806N " ) ,
} ,
} ,
2019-03-03 16:47:27 +03:00
{
/* Chuwi Hi10 Air */
. driver_data = ( void * ) & chuwi_hi10_air_data ,
. matches = {
2019-06-12 15:40:53 +03:00
DMI_MATCH ( DMI_SYS_VENDOR , " CHUWI INNOVATION AND TECHNOLOGY(SHENZHEN)CO.LTD " ) ,
DMI_MATCH ( DMI_BOARD_NAME , " Cherry Trail CR " ) ,
2019-03-03 16:47:27 +03:00
DMI_MATCH ( DMI_PRODUCT_SKU , " P1W6_C109D_B " ) ,
} ,
} ,
2019-05-23 22:09:13 +03:00
{
/* Chuwi Hi10 Plus (CWI527) */
. driver_data = ( void * ) & chuwi_hi10_plus_data ,
. matches = {
DMI_MATCH ( DMI_BOARD_VENDOR , " Hampoo " ) ,
DMI_MATCH ( DMI_PRODUCT_NAME , " Hi10 plus tablet " ) ,
DMI_MATCH ( DMI_BOARD_NAME , " Cherry Trail CR " ) ,
} ,
} ,
2018-06-09 00:45:56 +03:00
{
/* Chuwi Vi8 (CWI506) */
. driver_data = ( void * ) & chuwi_vi8_data ,
. matches = {
DMI_MATCH ( DMI_SYS_VENDOR , " Insyde " ) ,
DMI_MATCH ( DMI_PRODUCT_NAME , " i86 " ) ,
DMI_MATCH ( DMI_BIOS_VERSION , " CHUWI.D86JLBNR " ) ,
} ,
} ,
2020-01-15 19:35:54 +03:00
{
/* Chuwi Vi8 Plus (CWI519) */
. driver_data = ( void * ) & chuwi_vi8_plus_data ,
. matches = {
DMI_MATCH ( DMI_SYS_VENDOR , " Hampoo " ) ,
DMI_MATCH ( DMI_PRODUCT_NAME , " D2D3_Vi8A1 " ) ,
DMI_MATCH ( DMI_BOARD_NAME , " Cherry Trail CR " ) ,
} ,
} ,
2018-06-09 00:45:57 +03:00
{
/* Chuwi Vi10 (CWI505) */
. driver_data = ( void * ) & chuwi_vi10_data ,
. matches = {
DMI_MATCH ( DMI_BOARD_VENDOR , " Hampoo " ) ,
DMI_MATCH ( DMI_BOARD_NAME , " BYT-PF02 " ) ,
DMI_MATCH ( DMI_SYS_VENDOR , " ilife " ) ,
DMI_MATCH ( DMI_PRODUCT_NAME , " S165 " ) ,
} ,
} ,
2019-08-03 17:12:22 +03:00
{
/* Chuwi Surbook Mini (CWI540) */
. driver_data = ( void * ) & chuwi_surbook_mini_data ,
. matches = {
DMI_MATCH ( DMI_BOARD_VENDOR , " Hampoo " ) ,
DMI_MATCH ( DMI_PRODUCT_NAME , " C3W6_AP108_4G " ) ,
} ,
} ,
2018-07-01 12:32:56 +03:00
{
/* Connect Tablet 9 */
. driver_data = ( void * ) & connect_tablet9_data ,
. matches = {
DMI_MATCH ( DMI_SYS_VENDOR , " Connect " ) ,
DMI_MATCH ( DMI_PRODUCT_NAME , " Tablet 9 " ) ,
} ,
} ,
2017-01-23 20:35:30 +03:00
{
/* CUBE iwork8 Air */
. driver_data = ( void * ) & cube_iwork8_air_data ,
. matches = {
DMI_MATCH ( DMI_SYS_VENDOR , " cube " ) ,
DMI_MATCH ( DMI_PRODUCT_NAME , " i1-TF " ) ,
DMI_MATCH ( DMI_BOARD_NAME , " Cherry Trail CR " ) ,
} ,
} ,
2018-07-31 12:32:56 +03:00
{
/* Cube KNote i1101 */
. driver_data = ( void * ) & cube_knote_i1101_data ,
. matches = {
DMI_MATCH ( DMI_BOARD_VENDOR , " Hampoo " ) ,
DMI_MATCH ( DMI_BOARD_NAME , " L1W6_I1101 " ) ,
DMI_MATCH ( DMI_SYS_VENDOR , " ALLDOCUBE " ) ,
DMI_MATCH ( DMI_PRODUCT_NAME , " i1101 " ) ,
} ,
} ,
2017-01-23 20:35:30 +03:00
{
2018-06-09 00:45:56 +03:00
/* DEXP Ursus 7W */
. driver_data = ( void * ) & dexp_ursus_7w_data ,
2017-01-23 20:35:30 +03:00
. matches = {
DMI_MATCH ( DMI_SYS_VENDOR , " Insyde " ) ,
2018-06-09 00:45:56 +03:00
DMI_MATCH ( DMI_PRODUCT_NAME , " 7W " ) ,
} ,
} ,
{
/* Digma Citi E200 */
. driver_data = ( void * ) & digma_citi_e200_data ,
. matches = {
DMI_MATCH ( DMI_SYS_VENDOR , " Digma " ) ,
DMI_MATCH ( DMI_PRODUCT_NAME , " CITI E200 " ) ,
DMI_MATCH ( DMI_BOARD_NAME , " Cherry Trail CR " ) ,
} ,
} ,
{
/* GP-electronic T701 */
. driver_data = ( void * ) & gp_electronic_t701_data ,
. matches = {
DMI_MATCH ( DMI_SYS_VENDOR , " Insyde " ) ,
DMI_MATCH ( DMI_PRODUCT_NAME , " T701 " ) ,
DMI_MATCH ( DMI_BIOS_VERSION , " BYT70A.YNCHENG.WIN.007 " ) ,
} ,
} ,
{
/* I.T.Works TW701 (same hardware as the Trekstor ST70416-6) */
. driver_data = ( void * ) & trekstor_surftab_wintron70_data ,
. matches = {
DMI_MATCH ( DMI_SYS_VENDOR , " Insyde " ) ,
DMI_MATCH ( DMI_PRODUCT_NAME , " i71c " ) ,
DMI_MATCH ( DMI_BIOS_VERSION , " itWORKS.G.WI71C.JGBMRB " ) ,
} ,
} ,
2019-08-04 16:40:23 +03:00
{
/* Irbis TW90 */
. driver_data = ( void * ) & irbis_tw90_data ,
. matches = {
DMI_MATCH ( DMI_SYS_VENDOR , " IRBIS " ) ,
DMI_MATCH ( DMI_PRODUCT_NAME , " TW90 " ) ,
} ,
} ,
2018-06-09 00:45:56 +03:00
{
/* I.T.Works TW891 */
. driver_data = ( void * ) & itworks_tw891_data ,
. matches = {
DMI_MATCH ( DMI_SYS_VENDOR , " To be filled by O.E.M. " ) ,
DMI_MATCH ( DMI_PRODUCT_NAME , " TW891 " ) ,
2017-01-23 20:35:30 +03:00
} ,
} ,
2018-05-30 13:43:39 +03:00
{
/* Jumper EZpad 6 Pro */
. driver_data = ( void * ) & jumper_ezpad_6_pro_data ,
. matches = {
DMI_MATCH ( DMI_SYS_VENDOR , " Jumper " ) ,
DMI_MATCH ( DMI_PRODUCT_NAME , " EZpad " ) ,
DMI_MATCH ( DMI_BIOS_VERSION , " 5.12 " ) ,
/* Above matches are too generic, add bios-date match */
DMI_MATCH ( DMI_BIOS_DATE , " 08/18/2017 " ) ,
} ,
} ,
2019-04-29 18:46:57 +03:00
{
/* Jumper EZpad 6 Pro B */
. driver_data = ( void * ) & jumper_ezpad_6_pro_b_data ,
. matches = {
DMI_MATCH ( DMI_SYS_VENDOR , " Jumper " ) ,
DMI_MATCH ( DMI_PRODUCT_NAME , " EZpad " ) ,
DMI_MATCH ( DMI_BIOS_VERSION , " 5.12 " ) ,
/* Above matches are too generic, add bios-date match */
DMI_MATCH ( DMI_BIOS_DATE , " 04/24/2018 " ) ,
} ,
} ,
2019-11-12 17:17:11 +03:00
{
/* Jumper EZpad 6 m4 */
. driver_data = ( void * ) & jumper_ezpad_6_m4_data ,
. matches = {
DMI_MATCH ( DMI_SYS_VENDOR , " jumper " ) ,
DMI_MATCH ( DMI_PRODUCT_NAME , " EZpad " ) ,
/* Jumper8.S106x.A00C.1066 with the version dropped */
DMI_MATCH ( DMI_BIOS_VERSION , " Jumper8.S106x " ) ,
} ,
} ,
2017-03-22 18:55:54 +03:00
{
2018-06-09 00:45:56 +03:00
/* Jumper EZpad mini3 */
. driver_data = ( void * ) & jumper_ezpad_mini3_data ,
2017-03-22 18:55:54 +03:00
. matches = {
DMI_MATCH ( DMI_SYS_VENDOR , " Insyde " ) ,
2018-06-09 00:45:56 +03:00
/* jumperx.T87.KFBNEEA02 with the version-nr dropped */
DMI_MATCH ( DMI_BIOS_VERSION , " jumperx.T87.KFBNEEA " ) ,
2017-03-22 18:55:54 +03:00
} ,
} ,
2018-12-04 12:20:04 +03:00
{
/* Mediacom Flexbook Edge 11 (same hw as TS Primebook C11) */
. driver_data = ( void * ) & trekstor_primebook_c11_data ,
. matches = {
DMI_MATCH ( DMI_SYS_VENDOR , " MEDIACOM " ) ,
DMI_MATCH ( DMI_PRODUCT_NAME , " FlexBook edge11 - M-FBE11 " ) ,
} ,
} ,
2020-04-01 11:03:48 +03:00
{
/* MP Man MPWIN895CL */
. driver_data = ( void * ) & mpman_mpwin895cl_data ,
. matches = {
DMI_MATCH ( DMI_SYS_VENDOR , " MPMAN " ) ,
DMI_MATCH ( DMI_PRODUCT_NAME , " MPWIN8900CL " ) ,
} ,
} ,
2019-03-15 16:31:14 +03:00
{
/* Myria MY8307 */
. driver_data = ( void * ) & myria_my8307_data ,
. matches = {
DMI_MATCH ( DMI_SYS_VENDOR , " Complet Electro Serv " ) ,
DMI_MATCH ( DMI_PRODUCT_NAME , " MY8307 " ) ,
} ,
} ,
2017-11-26 21:32:58 +03:00
{
2018-06-09 00:45:56 +03:00
/* Onda oBook 20 Plus */
. driver_data = ( void * ) & onda_obook_20_plus_data ,
2017-11-26 21:32:58 +03:00
. matches = {
2018-06-09 00:45:56 +03:00
DMI_MATCH ( DMI_SYS_VENDOR , " ONDA " ) ,
DMI_MATCH ( DMI_PRODUCT_NAME , " OBOOK 20 PLUS " ) ,
2017-11-26 21:32:58 +03:00
} ,
} ,
2018-10-10 16:16:40 +03:00
{
/* ONDA V80 plus v3 (P80PSBG9V3A01501) */
. driver_data = ( void * ) & onda_v80_plus_v3_data ,
. matches = {
DMI_EXACT_MATCH ( DMI_SYS_VENDOR , " ONDA " ) ,
DMI_EXACT_MATCH ( DMI_PRODUCT_NAME , " V80 PLUS " )
} ,
} ,
2018-07-02 00:47:14 +03:00
{
/* ONDA V820w DualOS */
. driver_data = ( void * ) & onda_v820w_32g_data ,
. matches = {
DMI_EXACT_MATCH ( DMI_BOARD_VENDOR , " ONDA " ) ,
DMI_EXACT_MATCH ( DMI_PRODUCT_NAME , " V820w DualOS " )
} ,
} ,
2017-04-09 12:07:44 +03:00
{
2018-06-09 00:45:56 +03:00
/* ONDA V891w revision P891WBEBV1B00 aka v1 */
. driver_data = ( void * ) & onda_v891w_v1_data ,
2017-04-09 12:07:44 +03:00
. matches = {
2018-06-09 00:45:56 +03:00
DMI_EXACT_MATCH ( DMI_BOARD_VENDOR , " ONDA " ) ,
DMI_EXACT_MATCH ( DMI_BOARD_NAME , " ONDA Tablet " ) ,
DMI_EXACT_MATCH ( DMI_BOARD_VERSION , " V001 " ) ,
2017-04-09 12:07:44 +03:00
/* Exact match, different versions need different fw */
2018-06-09 00:45:56 +03:00
DMI_EXACT_MATCH ( DMI_BIOS_VERSION , " ONDA.W89EBBN08 " ) ,
2017-04-09 12:07:44 +03:00
} ,
} ,
2018-06-18 16:11:44 +03:00
{
/* ONDA V891w Dual OS P891DCF2V1A01274 64GB */
. driver_data = ( void * ) & onda_v891w_v3_data ,
. matches = {
DMI_MATCH ( DMI_SYS_VENDOR , " Insyde " ) ,
DMI_MATCH ( DMI_PRODUCT_NAME , " ONDA Tablet " ) ,
DMI_MATCH ( DMI_BIOS_VERSION , " ONDA.D890HBBNR0A " ) ,
} ,
} ,
2018-01-16 22:24:15 +03:00
{
2018-06-09 00:45:56 +03:00
/* Pipo W2S */
. driver_data = ( void * ) & pipo_w2s_data ,
2018-01-16 22:24:15 +03:00
. matches = {
2018-06-09 00:45:56 +03:00
DMI_MATCH ( DMI_SYS_VENDOR , " PIPO " ) ,
DMI_MATCH ( DMI_PRODUCT_NAME , " W2S " ) ,
2018-01-16 22:24:15 +03:00
} ,
} ,
2020-01-03 18:00:59 +03:00
{
/* Pipo W11 */
. driver_data = ( void * ) & pipo_w11_data ,
. matches = {
DMI_MATCH ( DMI_SYS_VENDOR , " PIPO " ) ,
DMI_MATCH ( DMI_PRODUCT_NAME , " To be filled by O.E.M. " ) ,
/* Above matches are too generic, add bios-ver match */
2020-01-09 18:34:05 +03:00
DMI_MATCH ( DMI_BIOS_VERSION , " JS-BI-10.6-SF133GR300-GA55B-024-F " ) ,
2020-01-03 18:00:59 +03:00
} ,
} ,
2017-07-12 14:15:11 +03:00
{
/* Ployer Momo7w (same hardware as the Trekstor ST70416-6) */
2018-06-09 00:45:55 +03:00
. driver_data = ( void * ) & trekstor_surftab_wintron70_data ,
2017-07-12 14:15:11 +03:00
. matches = {
DMI_MATCH ( DMI_SYS_VENDOR , " Shenzhen PLOYER " ) ,
DMI_MATCH ( DMI_PRODUCT_NAME , " MOMO7W " ) ,
/* Exact match, different versions need different fw */
DMI_MATCH ( DMI_BIOS_VERSION , " MOMO.G.WI71C.MABMRBA02 " ) ,
} ,
} ,
2017-06-15 09:48:31 +03:00
{
2018-05-30 13:43:40 +03:00
/* Point of View mobii wintab p800w (v2.0) */
. driver_data = ( void * ) & pov_mobii_wintab_p800w_v20_data ,
. matches = {
DMI_MATCH ( DMI_BOARD_VENDOR , " AMI Corporation " ) ,
DMI_MATCH ( DMI_BOARD_NAME , " Aptio CRB " ) ,
DMI_MATCH ( DMI_BIOS_VERSION , " 3BAIR1014 " ) ,
/* Above matches are too generic, add bios-date match */
DMI_MATCH ( DMI_BIOS_DATE , " 10/24/2014 " ) ,
} ,
} ,
{
/* Point of View mobii wintab p800w (v2.1) */
. driver_data = ( void * ) & pov_mobii_wintab_p800w_v21_data ,
2017-06-15 09:48:31 +03:00
. matches = {
DMI_MATCH ( DMI_BOARD_VENDOR , " AMI Corporation " ) ,
DMI_MATCH ( DMI_BOARD_NAME , " Aptio CRB " ) ,
DMI_MATCH ( DMI_BIOS_VERSION , " 3BAIR1013 " ) ,
/* Above matches are too generic, add bios-date match */
DMI_MATCH ( DMI_BIOS_DATE , " 08/22/2014 " ) ,
} ,
} ,
2018-12-21 00:21:50 +03:00
{
/* Point of View mobii wintab p1006w (v1.0) */
. driver_data = ( void * ) & pov_mobii_wintab_p1006w_v10_data ,
. matches = {
DMI_EXACT_MATCH ( DMI_SYS_VENDOR , " Insyde " ) ,
DMI_EXACT_MATCH ( DMI_PRODUCT_NAME , " BayTrail " ) ,
/* Note 105b is Foxcon's USB/PCI vendor id */
DMI_EXACT_MATCH ( DMI_BOARD_VENDOR , " 105B " ) ,
DMI_EXACT_MATCH ( DMI_BOARD_NAME , " 0E57 " ) ,
} ,
} ,
2019-10-23 21:53:23 +03:00
{
/* Schneider SCT101CTM */
. driver_data = ( void * ) & schneider_sct101ctm_data ,
. matches = {
DMI_MATCH ( DMI_SYS_VENDOR , " Default string " ) ,
DMI_MATCH ( DMI_PRODUCT_NAME , " SCT101CTM " ) ,
} ,
} ,
2017-07-01 13:15:22 +03:00
{
2018-06-09 00:45:56 +03:00
/* Teclast X3 Plus */
. driver_data = ( void * ) & teclast_x3_plus_data ,
2018-06-05 04:16:02 +03:00
. matches = {
2018-06-09 00:45:56 +03:00
DMI_MATCH ( DMI_SYS_VENDOR , " TECLAST " ) ,
DMI_MATCH ( DMI_PRODUCT_NAME , " X3 Plus " ) ,
DMI_MATCH ( DMI_BOARD_NAME , " X3 Plus " ) ,
2018-06-05 04:16:02 +03:00
} ,
} ,
2017-12-20 13:30:09 +03:00
{
2018-06-09 00:45:56 +03:00
/* Teclast X98 Plus II */
. driver_data = ( void * ) & teclast_x98plus2_data ,
2017-12-20 13:30:09 +03:00
. matches = {
2018-06-09 00:45:56 +03:00
DMI_MATCH ( DMI_SYS_VENDOR , " TECLAST " ) ,
DMI_MATCH ( DMI_PRODUCT_NAME , " X98 Plus II " ) ,
2017-12-20 13:30:09 +03:00
} ,
} ,
2018-10-04 15:34:45 +03:00
{
/* Trekstor Primebook C11 */
. driver_data = ( void * ) & trekstor_primebook_c11_data ,
. matches = {
DMI_MATCH ( DMI_SYS_VENDOR , " TREKSTOR " ) ,
DMI_MATCH ( DMI_PRODUCT_NAME , " Primebook C11 " ) ,
} ,
} ,
2019-08-18 14:04:51 +03:00
{
/* Trekstor Primebook C11B (same touchscreen as the C11) */
. driver_data = ( void * ) & trekstor_primebook_c11_data ,
. matches = {
DMI_MATCH ( DMI_SYS_VENDOR , " TREKSTOR " ) ,
DMI_MATCH ( DMI_PRODUCT_NAME , " PRIMEBOOK C11B " ) ,
} ,
} ,
2017-12-25 15:45:25 +03:00
{
/* Trekstor Primebook C13 */
. driver_data = ( void * ) & trekstor_primebook_c13_data ,
. matches = {
DMI_MATCH ( DMI_SYS_VENDOR , " TREKSTOR " ) ,
DMI_MATCH ( DMI_PRODUCT_NAME , " Primebook C13 " ) ,
} ,
} ,
2018-10-08 10:25:05 +03:00
{
/* Trekstor Primetab T13B */
. driver_data = ( void * ) & trekstor_primetab_t13b_data ,
. matches = {
DMI_MATCH ( DMI_SYS_VENDOR , " TREKSTOR " ) ,
DMI_MATCH ( DMI_PRODUCT_NAME , " Primetab T13B " ) ,
} ,
} ,
2018-01-02 21:39:27 +03:00
{
2018-06-09 00:45:56 +03:00
/* TrekStor SurfTab twin 10.1 ST10432-8 */
. driver_data = ( void * ) & trekstor_surftab_twin_10_1_data ,
2018-01-02 21:39:27 +03:00
. matches = {
2018-06-09 00:45:56 +03:00
DMI_MATCH ( DMI_SYS_VENDOR , " TrekStor " ) ,
DMI_MATCH ( DMI_PRODUCT_NAME , " SurfTab twin 10.1 " ) ,
2018-01-02 21:39:27 +03:00
} ,
} ,
2018-01-23 21:33:38 +03:00
{
2018-06-09 00:45:56 +03:00
/* Trekstor Surftab Wintron 7.0 ST70416-6 */
. driver_data = ( void * ) & trekstor_surftab_wintron70_data ,
2018-01-23 21:33:38 +03:00
. matches = {
2018-06-09 00:45:56 +03:00
DMI_MATCH ( DMI_SYS_VENDOR , " Insyde " ) ,
DMI_MATCH ( DMI_PRODUCT_NAME , " ST70416-6 " ) ,
/* Exact match, different versions need different fw */
DMI_MATCH ( DMI_BIOS_VERSION , " TREK.G.WI71C.JGBMRBA04 " ) ,
2018-01-23 21:33:38 +03:00
} ,
} ,
2018-02-22 13:18:38 +03:00
{
2018-06-09 00:45:56 +03:00
/* Trekstor Surftab Wintron 7.0 ST70416-6, newer BIOS */
2018-06-09 00:45:55 +03:00
. driver_data = ( void * ) & trekstor_surftab_wintron70_data ,
2018-02-22 13:18:38 +03:00
. matches = {
2018-06-09 00:45:56 +03:00
DMI_MATCH ( DMI_SYS_VENDOR , " TrekStor " ) ,
2020-01-09 18:34:05 +03:00
DMI_MATCH ( DMI_PRODUCT_NAME , " SurfTab wintron 7.0 ST70416-6 " ) ,
2018-06-09 00:45:56 +03:00
/* Exact match, different versions need different fw */
DMI_MATCH ( DMI_BIOS_VERSION , " TREK.G.WI71C.JGBMRBA05 " ) ,
2018-02-22 13:18:38 +03:00
} ,
} ,
2018-03-09 17:03:58 +03:00
{
/* Yours Y8W81, same case and touchscreen as Chuwi Vi8 */
. driver_data = ( void * ) & chuwi_vi8_data ,
. matches = {
DMI_MATCH ( DMI_SYS_VENDOR , " YOURS " ) ,
DMI_MATCH ( DMI_PRODUCT_NAME , " Y8W81 " ) ,
} ,
} ,
2017-01-23 20:35:30 +03:00
{ } ,
} ;
2018-06-09 00:45:58 +03:00
static const struct ts_dmi_data * ts_data ;
2017-04-04 06:25:14 +03:00
2018-06-09 00:45:58 +03:00
static void ts_dmi_add_props ( struct i2c_client * client )
2017-01-23 20:35:30 +03:00
{
2017-04-04 06:25:13 +03:00
struct device * dev = & client - > dev ;
2017-01-23 20:35:30 +03:00
int error ;
if ( has_acpi_companion ( dev ) & &
2018-06-09 00:45:58 +03:00
! strncmp ( ts_data - > acpi_name , client - > name , I2C_NAME_SIZE ) ) {
error = device_add_properties ( dev , ts_data - > properties ) ;
2017-01-23 20:35:30 +03:00
if ( error )
dev_err ( dev , " failed to add properties: %d \n " , error ) ;
}
}
2018-06-09 00:45:58 +03:00
static int ts_dmi_notifier_call ( struct notifier_block * nb ,
2020-01-09 18:34:05 +03:00
unsigned long action , void * data )
2017-01-23 20:35:30 +03:00
{
struct device * dev = data ;
2017-04-04 06:25:13 +03:00
struct i2c_client * client ;
2017-01-23 20:35:30 +03:00
switch ( action ) {
case BUS_NOTIFY_ADD_DEVICE :
2017-04-04 06:25:13 +03:00
client = i2c_verify_client ( dev ) ;
if ( client )
2018-06-09 00:45:58 +03:00
ts_dmi_add_props ( client ) ;
2017-01-23 20:35:30 +03:00
break ;
default :
break ;
}
return 0 ;
}
2018-06-09 00:45:58 +03:00
static struct notifier_block ts_dmi_notifier = {
. notifier_call = ts_dmi_notifier_call ,
2017-01-23 20:35:30 +03:00
} ;
2018-06-09 00:45:58 +03:00
static int __init ts_dmi_init ( void )
2017-01-23 20:35:30 +03:00
{
2017-04-04 06:25:14 +03:00
const struct dmi_system_id * dmi_id ;
2017-01-23 20:35:30 +03:00
int error ;
2018-06-09 00:45:58 +03:00
dmi_id = dmi_first_match ( touchscreen_dmi_table ) ;
2017-04-04 06:25:14 +03:00
if ( ! dmi_id )
return 0 ; /* Not an error */
2018-06-09 00:45:58 +03:00
ts_data = dmi_id - > driver_data ;
2020-01-15 19:35:54 +03:00
/* Some dmi table entries only provide an efi_embedded_fw_desc */
if ( ! ts_data - > properties )
return 0 ;
2017-04-04 06:25:14 +03:00
2018-06-09 00:45:58 +03:00
error = bus_register_notifier ( & i2c_bus_type , & ts_dmi_notifier ) ;
2017-01-23 20:35:30 +03:00
if ( error )
pr_err ( " %s: failed to register i2c bus notifier: %d \n " ,
__func__ , error ) ;
return error ;
}
/*
* We are registering out notifier after i2c core is initialized and i2c bus
* itself is ready ( which happens at postcore initcall level ) , but before
* ACPI starts enumerating devices ( at subsys initcall level ) .
*/
2018-06-09 00:45:58 +03:00
arch_initcall ( ts_dmi_init ) ;