Hi Lucas, On Mon, Jan 25, 2021 at 07:25:27PM +0100, Lucas Stach wrote: > This change allows the device firmware to be updated by putting a firmware > file in /lib/firmware and providing the name of the file via the update_fw > sysfs property. The driver will then flash the firmware image into the > controller internal storage and restart the controller to activate the new > firmware. > > The implementation was done by looking at the the messages passed between > the controller and proprietary vendor update tool. Not every detail of the > protocol is totally well understood, so the implementation still has some > "monkey see, monkey do" parts, as far as they have been found to be required > for the update to succeed. > > Signed-off-by: Lucas Stach <l.stach@xxxxxxxxxxxxxx> > --- > .../ABI/testing/sysfs-driver-input-exc3000 | 20 ++ > drivers/input/touchscreen/exc3000.c | 240 +++++++++++++++++- > 2 files changed, 258 insertions(+), 2 deletions(-) > > diff --git a/Documentation/ABI/testing/sysfs-driver-input-exc3000 b/Documentation/ABI/testing/sysfs-driver-input-exc3000 > index 704434b277b0..123a00ccee8b 100644 > --- a/Documentation/ABI/testing/sysfs-driver-input-exc3000 > +++ b/Documentation/ABI/testing/sysfs-driver-input-exc3000 > @@ -24,3 +24,23 @@ Description: Reports the type identification provided by the touchscreen, for ex > Access: Read > > Valid values: Represented as string > + > +What: /sys/bus/i2c/devices/xxx/update_fw > +Date: Jan 2021 > +Contact: linux-input@xxxxxxxxxxxxxxx > +Description: Allows to specify a firlename of a firmware file located in /lib/firmware/ that will be > + used to update the application firmware on the touchscreen controller. For example > + "eeti/eeti_27_0_EDipper_0735.fw" I believe the current idiomatic way is to have statically defined firmware name (it can still encode vid/pid/model info etc) and do not re-implement variable firmware name in every driver. I think if this really is required we need to add this feature of overriding default firmware name to firmware loader maybe? Thanks. -- Dmitry