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. Hartley