On Mon, Apr 15, 2019 at 9:39 PM Hartley Sweeten <HartleyS@xxxxxxxxxxxxxxxxxxx> wrote: > > On Monday, April 15, 2019 12:25 PM, Arnd Bergmann wrote: > > We can communicate the clock rate using platform data rather than setting a > > flag to use a particular value in the driver, which is cleaner and avoids the dependency. > > > > No platform in the kernel currently defines the ep93xx keypad device structure, so this > > is a rather pointless excercise. Any out of tree users are probably dead now, but if not, > > they have to change their platform code to match the new platform_data structure. > > <snip> > > > diff --git a/include/linux/platform_data/keypad-ep93xx.h b/include/linux/platform_data/keypad-ep93xx.h > > index 0e36818e3680..3054fced8509 100644 > > --- a/include/linux/platform_data/keypad-ep93xx.h > > +++ b/include/linux/platform_data/keypad-ep93xx.h > > @@ -9,8 +9,7 @@ struct matrix_keymap_data; > > #define EP93XX_KEYPAD_DIAG_MODE (1<<1) /* diagnostic mode */ > > #define EP93XX_KEYPAD_BACK_DRIVE (1<<2) /* back driving mode */ > > #define EP93XX_KEYPAD_TEST_MODE (1<<3) /* scan only column 0 */ > > -#define EP93XX_KEYPAD_KDIV (1<<4) /* 1/4 clock or 1/16 clock */ > > -#define EP93XX_KEYPAD_AUTOREPEAT (1<<5) /* enable key autorepeat */ > > +#define EP93XX_KEYPAD_AUTOREPEAT (1<<4) /* enable key autorepeat */ > > You have re-defined the keypad register bits here. > > The KDIV bit changes the clock rate. The AUTOREPEAT bit enables key autorepeat. As far as I can tell, they are not register bits, just software flags for communicating between a board file and the driver, so I assumed I could freely reorganize them. Did I miss something? Arnd