Hi, On 28-Feb-26 02:56, Aelin Reidel wrote: > These ICs support SPI and I2C interfaces, up to 10 finger touch, stylus > and gesture events. > > This driver is derived from the Goodix gtx8_driver_linux available at > [1] and only supports the GT9886 and GT9896 ICs present in the Xiaomi > Mi 9T and Xiaomi Redmi Note 10 Pro smartphones. > > The current implementation only supports Normandy and Yellowstone type > ICs, aka only GT9886 and GT9896. It is also limited to I2C only, since I > don't have a device with GTX8 over SPI at hand. Adding support for SPI > should be fairly easy in the future, since the code uses a regmap. > > Support for advanced features like: > - Firmware updates > - Stylus events > - Gesture events > - Nanjing IC support > is not included in current version. > > The current support requires a previously flashed firmware to be > present. > > As I did not have access to datasheets for these ICs, I extracted the > addresses from a couple of config files using a small tool [2]. The > addresses are identical for the same IC families in all configs I > observed, however not all of them make sense and I stubbed out firmware > request support due to this. > > I've taken a lot of inspiration from the goodix_berlin driver, but the > Berlin and GTX8 series of touchscreen ICs differ quite a bit. The driver > architecture is the same overall, i.e. the power-up sequence and general > concepts are the mostly same, but it is very clear that they are > different generations when looking at it in more detail.
Right, this answers my main question about this driver which was: "why another goodix driver?" (this would be the third one). I've also compared this driver with the original goodix.c touchscreen driver (which I know well) and the protocol is somewhat closer to the original goodix.c driver then it is to goodix_berlin, but still different enough that having a separate driver is the best option IMHO. ... > From what I can tell, the evolution seems to be: > Normandy -> Yellowstone -> Berlin > since Normandy and Yellowstone are already quite different (especially > with the way checksums work) and Yellowstone has a couple of things > (checksum, fw_version) that appear similar to Berlin series ICs. You forgot the original goodix.c driver, adding that it seems the evolution is: GTx1/GTx2/GTx6 -> Normandy -> Yellowstone -> Berlin With GTx1/GTx2/GTx6 having no checksum at all (and 16 bit registers) and some of the original GTx1/GTx2/GTx6 don't have nvram for the firmware, so Linux must upload firmware every boot. Anyways I agree that these are different enough from the existing goodix and goodix_berlin drivers, so based on that (and only on that): Acked-by: Hans de Goede <[email protected]> Regards, Hans

