On Wed, Oct 02, 2024 at 11:13:05AM +0200, Nuno Sá wrote: > On Tue, 2024-10-01 at 07:55 -0700, Dmitry Torokhov wrote: > > On Tue, Oct 01, 2024 at 03:41:34PM +0200, Nuno Sa wrote: > > > Add a more natural chip_info structure and add it to the i2c id table > > > driver data so that we do not need an enum a switch() to get the > > > specific bits of each device. > > > > > > Signed-off-by: Nuno Sa <nuno.sa@xxxxxxxxxx> > > > --- > > > drivers/input/keyboard/adp5589-keys.c | 181 ++++++++++++++++++---------------- > > > 1 file changed, 95 insertions(+), 86 deletions(-) > > > > > > diff --git a/drivers/input/keyboard/adp5589-keys.c > > > b/drivers/input/keyboard/adp5589-keys.c > > > index > > > 922d3ab998f3a5dfbaf277f10eb19e5cd1b35415..eaa5440d4f9e14352409dd880cd254354612bf3 > > > e 100644 > > > --- a/drivers/input/keyboard/adp5589-keys.c > > > +++ b/drivers/input/keyboard/adp5589-keys.c > > > @@ -228,16 +228,20 @@ struct adp_constants { > > > u8 (*reg) (u8 reg); > > > }; > > > > > > +struct adp5589_info { > > > + const struct adp_constants *var; > > > + bool support_row5; > > > > Is it possible to derive "row5" data from keymap information to avoid > > having this fake "adp5585-02-keys" device? > > > > This is not a fake device. Looking at the adp5585 datasheet you can see there's > module with 25 keys (without GPIO5) and another with 11 GPIOS. From the datasheet: > > "- 10 configurable I/Os allowing functions such as Key pad decoding for a matrix of > up to 5 × 5 > - 11 GPIOs (5 × 6) with ADP5585ACxZ-01-R7 models" Ah, I misunderstood. I thought it was a runtime configuration. > > Why its named adp5585-02 in the driver I'm not sure. I kept the same name as the i2c > id? Should I call it ADP5585-1 instead? Or even ADP5585-1-r7? I think this question is better answered by the DT folks. BTW, in case of not using row5 we need to describe this pin as a reset line for the chip, right? Thanks. -- Dmitry