+ int (*get_config)(void *drv_data, int what, int *val);
+ int (*set_config)(void *drv_data, int what, int val);
+ int (*update)(void *drv_data, const int *binds, int *result);
+ int (*update_analog)(void *drv_data, int axis_id, int *result);
+ /* return -1 on no event, -2 on error */