Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
Pull input updates from Dmitry Torokhov: - input core allows hardware drivers to specify a [more precise] timestamp (normally taken in top half) to better track velocity of contacts - input_dev instances now support "polling" mode so that drivers could use the same object for polled and interrupt-driven operation. The plan is to convert existing drivers and retire input_polled_dev API - a new driver for the FlySky FS-iA6B RC receiver - a refresh of BU21013 touchpad driver - w90x900 keyboard and touchpad drivers are removed as the platform is gone - assorted fixes * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (45 commits) Input: sidewinder - make array seq static const, makes object smaller Input: reset device timestamp on sync Input: bu21013_ts - switch to using standard touchscreen properties Input: bu21013_ts - switch to using MT-B (slotted) protocol Input: bu21013_ts - fix suspend when wake source Input: bu21013_ts - use interrupt from I2C client Input: bu21013_ts - remove support for platform data Input: bu21013_ts - convert to using managed resources Input: bu21013_ts - remove useless comments Input: bu21013_ts - annotate supend/resume methods as __maybe_unused Input: bu21013_ts - rename some variables Input: bu21013_ts - convert to use GPIO descriptors ARM: ux500: improve BU21013 touchpad bindings Input: i8042 - enable wakeup on a stable struct device Input: soc_button_array - use platform_device_register_resndata() Input: psmouse - drop all unneeded functions from mouse headers Input: add support for polling to input devices Input: wacom_w8001 - allocate additional space for 'phys' Input: cros_ec_keyb - add back missing mask for event_type Input: remove dev_err() usage after platform_get_irq() ...
This commit is contained in:
@@ -21,6 +21,8 @@
|
||||
#include <linux/timer.h>
|
||||
#include <linux/mod_devicetable.h>
|
||||
|
||||
struct input_dev_poller;
|
||||
|
||||
/**
|
||||
* struct input_value - input value representation
|
||||
* @type: type of value (EV_KEY, EV_ABS, etc)
|
||||
@@ -33,6 +35,13 @@ struct input_value {
|
||||
__s32 value;
|
||||
};
|
||||
|
||||
enum input_clock_type {
|
||||
INPUT_CLK_REAL = 0,
|
||||
INPUT_CLK_MONO,
|
||||
INPUT_CLK_BOOT,
|
||||
INPUT_CLK_MAX
|
||||
};
|
||||
|
||||
/**
|
||||
* struct input_dev - represents an input device
|
||||
* @name: name of the device
|
||||
@@ -64,6 +73,8 @@ struct input_value {
|
||||
* not sleep
|
||||
* @ff: force feedback structure associated with the device if device
|
||||
* supports force feedback effects
|
||||
* @poller: poller structure associated with the device if device is
|
||||
* set up to use polling mode
|
||||
* @repeat_key: stores key code of the last key pressed; used to implement
|
||||
* software autorepeat
|
||||
* @timer: timer for software autorepeat
|
||||
@@ -114,6 +125,8 @@ struct input_value {
|
||||
* @vals: array of values queued in the current frame
|
||||
* @devres_managed: indicates that devices is managed with devres framework
|
||||
* and needs not be explicitly unregistered or freed.
|
||||
* @timestamp: storage for a timestamp set by input_set_timestamp called
|
||||
* by a driver
|
||||
*/
|
||||
struct input_dev {
|
||||
const char *name;
|
||||
@@ -147,6 +160,8 @@ struct input_dev {
|
||||
|
||||
struct ff_device *ff;
|
||||
|
||||
struct input_dev_poller *poller;
|
||||
|
||||
unsigned int repeat_key;
|
||||
struct timer_list timer;
|
||||
|
||||
@@ -184,6 +199,8 @@ struct input_dev {
|
||||
struct input_value *vals;
|
||||
|
||||
bool devres_managed;
|
||||
|
||||
ktime_t timestamp[INPUT_CLK_MAX];
|
||||
};
|
||||
#define to_input_dev(d) container_of(d, struct input_dev, dev)
|
||||
|
||||
@@ -361,6 +378,12 @@ void input_unregister_device(struct input_dev *);
|
||||
|
||||
void input_reset_device(struct input_dev *);
|
||||
|
||||
int input_setup_polling(struct input_dev *dev,
|
||||
void (*poll_fn)(struct input_dev *dev));
|
||||
void input_set_poll_interval(struct input_dev *dev, unsigned int interval);
|
||||
void input_set_min_poll_interval(struct input_dev *dev, unsigned int interval);
|
||||
void input_set_max_poll_interval(struct input_dev *dev, unsigned int interval);
|
||||
|
||||
int __must_check input_register_handler(struct input_handler *);
|
||||
void input_unregister_handler(struct input_handler *);
|
||||
|
||||
@@ -382,6 +405,9 @@ void input_close_device(struct input_handle *);
|
||||
|
||||
int input_flush_device(struct input_handle *handle, struct file *file);
|
||||
|
||||
void input_set_timestamp(struct input_dev *dev, ktime_t timestamp);
|
||||
ktime_t *input_get_timestamp(struct input_dev *dev);
|
||||
|
||||
void input_event(struct input_dev *dev, unsigned int type, unsigned int code, int value);
|
||||
void input_inject_event(struct input_handle *handle, unsigned int type, unsigned int code, int value);
|
||||
|
||||
|
@@ -1,34 +0,0 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
/*
|
||||
* Copyright (C) ST-Ericsson SA 2010
|
||||
* Author: Naveen Kumar G <naveen.gaddipati@stericsson.com> for ST-Ericsson
|
||||
*/
|
||||
|
||||
#ifndef _BU21013_H
|
||||
#define _BU21013_H
|
||||
|
||||
/**
|
||||
* struct bu21013_platform_device - Handle the platform data
|
||||
* @touch_x_max: touch x max
|
||||
* @touch_y_max: touch y max
|
||||
* @cs_pin: chip select pin
|
||||
* @touch_pin: touch gpio pin
|
||||
* @ext_clk: external clock flag
|
||||
* @x_flip: x flip flag
|
||||
* @y_flip: y flip flag
|
||||
* @wakeup: wakeup flag
|
||||
*
|
||||
* This is used to handle the platform data
|
||||
*/
|
||||
struct bu21013_platform_device {
|
||||
int touch_x_max;
|
||||
int touch_y_max;
|
||||
unsigned int cs_pin;
|
||||
unsigned int touch_pin;
|
||||
bool ext_clk;
|
||||
bool x_flip;
|
||||
bool y_flip;
|
||||
bool wakeup;
|
||||
};
|
||||
|
||||
#endif
|
@@ -1,16 +0,0 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
#ifndef __ASM_ARCH_W90P910_KEYPAD_H
|
||||
#define __ASM_ARCH_W90P910_KEYPAD_H
|
||||
|
||||
#include <linux/input/matrix_keypad.h>
|
||||
|
||||
extern void mfp_set_groupi(struct device *dev);
|
||||
|
||||
struct w90p910_keypad_platform_data {
|
||||
const struct matrix_keymap_data *keymap_data;
|
||||
|
||||
unsigned int prescale;
|
||||
unsigned int debounce;
|
||||
};
|
||||
|
||||
#endif /* __ASM_ARCH_W90P910_KEYPAD_H */
|
Reference in New Issue
Block a user