Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
Pull input subsystem updates from Dmitry Torokhov: - updated support for Synaptics RMI4 devices, including support for SMBus controllers, firmware update support, sensor tuning, and PS/2 guest support - ALPS driver now supports tracksticks on SS5 controllers - i8042 now uses chassis info to skip selftest on Asus laptops as list of individual models became too unwieldy - miscellaneous fixes to other drivers * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (67 commits) Input: imx6ul_tsc - generalize the averaging property Input: drv260x - use generic device properties Input: drv260x - use temporary for &client->dev Input: drv260x - fix input device's parent assignment Input: synaptics-rmi4 - add support for F34 V7 bootloader Input: drv260x - fix initializing overdrive voltage Input: ALPS - fix protcol -> protocol Input: i8042 - comment #else/#endif of CONFIG_PNP Input: lpc32xx-keys - fix invalid error handling of a requested irq Input: synaptics-rmi4 - fix debug for sensor clip Input: synaptics-rmi4 - store the attn data in the driver Input: synaptics-rmi4 - allow to add attention data Input: synaptics-rmi4 - f03 - grab data passed by transport device Input: synaptics-rmi4 - add support for F03 Input: imx6ul_tsc - convert int to u32 Input: imx6ul_tsc - add mask when set REG_ADC_CFG Input: synaptics-rmi4 - have only one struct platform data Input: synaptics-rmi4 - remove EXPORT_SYMBOL_GPL for internal functions Input: synaptics-rmi4 - remove mutex calls while updating the firmware Input: drv2667 - fix misuse of regmap_update_bits ...
This commit is contained in:
@@ -2,7 +2,6 @@
|
||||
#define _GPIO_KEYS_H
|
||||
|
||||
struct device;
|
||||
struct gpio_desc;
|
||||
|
||||
/**
|
||||
* struct gpio_keys_button - configuration parameters
|
||||
@@ -18,7 +17,6 @@ struct gpio_desc;
|
||||
* disable button via sysfs
|
||||
* @value: axis value for %EV_ABS
|
||||
* @irq: Irq number in case of interrupt keys
|
||||
* @gpiod: GPIO descriptor
|
||||
*/
|
||||
struct gpio_keys_button {
|
||||
unsigned int code;
|
||||
@@ -31,7 +29,6 @@ struct gpio_keys_button {
|
||||
bool can_disable;
|
||||
int value;
|
||||
unsigned int irq;
|
||||
struct gpio_desc *gpiod;
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -46,7 +43,7 @@ struct gpio_keys_button {
|
||||
* @name: input device name
|
||||
*/
|
||||
struct gpio_keys_platform_data {
|
||||
struct gpio_keys_button *buttons;
|
||||
const struct gpio_keys_button *buttons;
|
||||
int nbuttons;
|
||||
unsigned int poll_interval;
|
||||
unsigned int rep:1;
|
||||
|
@@ -1,28 +0,0 @@
|
||||
/*
|
||||
* Platform data for DRV260X haptics driver family
|
||||
*
|
||||
* Author: Dan Murphy <dmurphy@ti.com>
|
||||
*
|
||||
* Copyright: (C) 2014 Texas Instruments, Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*/
|
||||
|
||||
#ifndef _LINUX_DRV260X_PDATA_H
|
||||
#define _LINUX_DRV260X_PDATA_H
|
||||
|
||||
struct drv260x_platform_data {
|
||||
u32 library_selection;
|
||||
u32 mode;
|
||||
u32 vib_rated_voltage;
|
||||
u32 vib_overdrive_voltage;
|
||||
};
|
||||
|
||||
#endif
|
@@ -13,6 +13,7 @@
|
||||
#include <linux/device.h>
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/input.h>
|
||||
#include <linux/kfifo.h>
|
||||
#include <linux/list.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/types.h>
|
||||
@@ -99,6 +100,8 @@ struct rmi_2d_sensor_platform_data {
|
||||
bool topbuttonpad;
|
||||
bool kernel_tracking;
|
||||
int dmax;
|
||||
int dribble;
|
||||
int palm_detect;
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -106,7 +109,7 @@ struct rmi_2d_sensor_platform_data {
|
||||
* @buttonpad - the touchpad is a buttonpad, so enable only the first actual
|
||||
* button that is found.
|
||||
* @trackstick_buttons - Set when the function 30 is handling the physical
|
||||
* buttons of the trackstick (as a PD/2 passthrough device.
|
||||
* buttons of the trackstick (as a PS/2 passthrough device).
|
||||
* @disable - the touchpad incorrectly reports F30 and it should be ignored.
|
||||
* This is a special case which is due to misconfigured firmware.
|
||||
*/
|
||||
@@ -116,14 +119,17 @@ struct rmi_f30_data {
|
||||
bool disable;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct rmi_f01_power - override default power management settings.
|
||||
*
|
||||
|
||||
/*
|
||||
* Set the state of a register
|
||||
* DEFAULT - use the default value set by the firmware config
|
||||
* OFF - explicitly disable the register
|
||||
* ON - explicitly enable the register
|
||||
*/
|
||||
enum rmi_f01_nosleep {
|
||||
RMI_F01_NOSLEEP_DEFAULT = 0,
|
||||
RMI_F01_NOSLEEP_OFF = 1,
|
||||
RMI_F01_NOSLEEP_ON = 2
|
||||
enum rmi_reg_state {
|
||||
RMI_REG_STATE_DEFAULT = 0,
|
||||
RMI_REG_STATE_OFF = 1,
|
||||
RMI_REG_STATE_ON = 2
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -143,7 +149,7 @@ enum rmi_f01_nosleep {
|
||||
* when the touch sensor is in doze mode, in units of 10ms.
|
||||
*/
|
||||
struct rmi_f01_power_management {
|
||||
enum rmi_f01_nosleep nosleep;
|
||||
enum rmi_reg_state nosleep;
|
||||
u8 wakeup_threshold;
|
||||
u8 doze_holdoff;
|
||||
u8 doze_interval;
|
||||
@@ -204,16 +210,18 @@ struct rmi_device_platform_data_spi {
|
||||
* @reset_delay_ms - after issuing a reset command to the touch sensor, the
|
||||
* driver waits a few milliseconds to give the firmware a chance to
|
||||
* to re-initialize. You can override the default wait period here.
|
||||
* @irq: irq associated with the attn gpio line, or negative
|
||||
*/
|
||||
struct rmi_device_platform_data {
|
||||
int reset_delay_ms;
|
||||
int irq;
|
||||
|
||||
struct rmi_device_platform_data_spi spi_data;
|
||||
|
||||
/* function handler pdata */
|
||||
struct rmi_2d_sensor_platform_data *sensor_pdata;
|
||||
struct rmi_2d_sensor_platform_data sensor_pdata;
|
||||
struct rmi_f01_power_management power_management;
|
||||
struct rmi_f30_data *f30_data;
|
||||
struct rmi_f30_data f30_data;
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -264,9 +272,6 @@ struct rmi_transport_dev {
|
||||
struct rmi_device_platform_data pdata;
|
||||
|
||||
struct input_dev *input;
|
||||
|
||||
void *attn_data;
|
||||
int attn_size;
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -324,17 +329,24 @@ struct rmi_device {
|
||||
|
||||
};
|
||||
|
||||
struct rmi4_attn_data {
|
||||
unsigned long irq_status;
|
||||
size_t size;
|
||||
void *data;
|
||||
};
|
||||
|
||||
struct rmi_driver_data {
|
||||
struct list_head function_list;
|
||||
|
||||
struct rmi_device *rmi_dev;
|
||||
|
||||
struct rmi_function *f01_container;
|
||||
bool f01_bootloader_mode;
|
||||
struct rmi_function *f34_container;
|
||||
bool bootloader_mode;
|
||||
|
||||
u32 attn_count;
|
||||
int num_of_irq_regs;
|
||||
int irq_count;
|
||||
void *irq_memory;
|
||||
unsigned long *irq_status;
|
||||
unsigned long *fn_irq_bits;
|
||||
unsigned long *current_irq_mask;
|
||||
@@ -343,17 +355,23 @@ struct rmi_driver_data {
|
||||
struct input_dev *input;
|
||||
|
||||
u8 pdt_props;
|
||||
u8 bsr;
|
||||
|
||||
u8 num_rx_electrodes;
|
||||
u8 num_tx_electrodes;
|
||||
|
||||
bool enabled;
|
||||
struct mutex enabled_mutex;
|
||||
|
||||
void *data;
|
||||
struct rmi4_attn_data attn_data;
|
||||
DECLARE_KFIFO(attn_fifo, struct rmi4_attn_data, 16);
|
||||
};
|
||||
|
||||
int rmi_register_transport_device(struct rmi_transport_dev *xport);
|
||||
void rmi_unregister_transport_device(struct rmi_transport_dev *xport);
|
||||
int rmi_process_interrupt_requests(struct rmi_device *rmi_dev);
|
||||
|
||||
int rmi_driver_suspend(struct rmi_device *rmi_dev);
|
||||
int rmi_driver_resume(struct rmi_device *rmi_dev);
|
||||
void rmi_set_attn_data(struct rmi_device *rmi_dev, unsigned long irq_status,
|
||||
void *data, size_t size);
|
||||
|
||||
int rmi_driver_suspend(struct rmi_device *rmi_dev, bool enable_wake);
|
||||
int rmi_driver_resume(struct rmi_device *rmi_dev, bool clear_wake);
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user