Hi! On 15/04/2019 21:47, 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? They are indeed only software flags (just checked datasheet), so you are only changing platform data format. But as I do not know any keypad user in person, I'd rely on Hartley's opinion in this case (if it's a good idea to change platform data or not). -- Alex.