Message ID | 20210428114608.101795-8-hdegoede@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Input: goodix - Add support for controllers without flash | expand |
Hi, On 4/28/21 1:46 PM, Hans de Goede wrote: > 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/ > > Signed-off-by: Hans de Goede <hdegoede@redhat.com> Note this patch is part of the "[GIT PULL] Immutable branch between drivers/platform/x86 and drivers/input due for the v5.14 merge window" pull-req which I just send out, leaving patches 1-6 to be merged through the input tree (after merging the pull-req). Regards, Hans > --- > 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 90fe4f8f3c2c..d95f04b61111 100644 > --- a/drivers/platform/x86/touchscreen_dmi.c > +++ b/drivers/platform/x86/touchscreen_dmi.c > @@ -273,6 +273,18 @@ static const struct ts_dmi_data estar_beauty_hd_data = { > .properties = estar_beauty_hd_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), > @@ -1003,6 +1015,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, >
diff --git a/drivers/platform/x86/touchscreen_dmi.c b/drivers/platform/x86/touchscreen_dmi.c index 90fe4f8f3c2c..d95f04b61111 100644 --- a/drivers/platform/x86/touchscreen_dmi.c +++ b/drivers/platform/x86/touchscreen_dmi.c @@ -273,6 +273,18 @@ static const struct ts_dmi_data estar_beauty_hd_data = { .properties = estar_beauty_hd_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), @@ -1003,6 +1015,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,
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/ Signed-off-by: Hans de Goede <hdegoede@redhat.com> --- drivers/platform/x86/touchscreen_dmi.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+)