Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 43d01209 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull input updates from Dmitry Torokhov:

 - a new driver for STM FingerTip touchscreen

 - a new driver for D-Link DIR-685 touch keys

 - updated list of supported devices in xpad driver

 - other assorted updates and fixes

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (23 commits)
  MAINTAINERS: update input subsystem patterns
  Input: introduce KEY_ASSISTANT
  Input: xpad - sync supported devices with XBCD
  Input: xpad - sync supported devices with 360Controller
  Input: xen-kbdfront - use string constants from PV protocol
  Input: stmfts - mark all PM functions as __maybe_unused
  Input: add support for the STMicroelectronics FingerTip touchscreen
  Input: add D-Link DIR-685 touchkeys driver
  Input: s3c2410_ts - handle return value of clk_prepare_enable
  Input: axp20x-pek - add wakeup support
  Input: synaptics-rmi4 - use %phN to form F34 configuration ID
  Input: synaptics-rmi4 - change a char type to u8
  Input: sparse-keymap - remove sparse_keymap_free()
  Input: tsc2007 - move header file out of I2C realm
  Input: mms114 - move header file out of I2C realm
  Input: mcs - move header file out of I2C realm
  Input: lm8323 - move header file out of I2C realm
  Input: elantech - force relative mode on a certain module
  Input: elan_i2c - add support for fetching chip type on newer hardware
  Input: elan_i2c - check if device is there before really probing
  ...
parents 2ceedf97 ede2e7cd
Loading
Loading
Loading
Loading
+21 −0
Original line number Diff line number Diff line
* D-Link DIR-685 Touchkeys

This is a I2C one-off touchkey controller based on the Cypress Semiconductor
CY8C214 MCU with some firmware in its internal 8KB flash. The circuit
board inside the router is named E119921.

The touchkey device node should be placed inside an I2C bus node.

Required properties:
- compatible: must be "dlink,dir685-touchkeys"
- reg: the I2C address of the touchkeys
- interrupts: reference to the interrupt number

Example:

touchkeys@26 {
	compatible = "dlink,dir685-touchkeys";
	reg = <0x26>;
	interrupt-parent = <&gpio0>;
	interrupts = <17 IRQ_TYPE_EDGE_FALLING>;
};
+43 −0
Original line number Diff line number Diff line
* ST-Microelectronics FingerTip touchscreen controller

The ST-Microelectronics FingerTip device provides a basic touchscreen
functionality. Along with it the user can enable the touchkey which can work as
a basic HOME and BACK key for phones.

The driver supports also hovering as an absolute single touch event with x, y, z
coordinates.

Required properties:
- compatible		: must be "st,stmfts"
- reg			: I2C slave address, (e.g. 0x49)
- interrupt-parent	: the phandle to the interrupt controller which provides
			  the interrupt
- interrupts		: interrupt specification
- avdd-supply		: analogic power supply
- vdd-supply		: power supply
- touchscreen-size-x	: see touchscreen.txt
- touchscreen-size-y	: see touchscreen.txt

Optional properties:
- touch-key-connected	: specifies whether the touchkey feature is connected
- ledvdd-supply		: power supply to the touch key leds

Example:

i2c@00000000 {

	/* ... */

	touchscreen@49 {
		compatible = "st,stmfts";
		reg = <0x49>;
		interrupt-parent = <&gpa1>;
		interrupts = <1 IRQ_TYPE_NONE>;
		touchscreen-size-x = <1599>;
		touchscreen-size-y = <2559>;
		touch-key-connected;
		avdd-supply = <&ldo30_reg>;
		vdd-supply = <&ldo31_reg>;
		ledvdd-supply = <&ldo33_reg>;
	};
};
+8 −0
Original line number Diff line number Diff line
@@ -3846,6 +3846,12 @@ S: Supported
F:	drivers/input/touchscreen/cyttsp*
F:	include/linux/input/cyttsp.h

D-LINK DIR-685 TOUCHKEYS DRIVER
M:	Linus Walleij <linus.walleij@linaro.org>
L:	linux-input@vger.kernel.org
S:	Supported
F:	drivers/input/dlink-dir685-touchkeys.c

DALLAS/MAXIM DS1685-FAMILY REAL TIME CLOCK
M:	Joshua Kinard <kumba@gentoo.org>
S:	Maintained
@@ -6689,8 +6695,10 @@ S: Maintained
F:	drivers/input/
F:	include/linux/input.h
F:	include/uapi/linux/input.h
F:	include/uapi/linux/input-event-codes.h
F:	include/linux/input/
F:	Documentation/devicetree/bindings/input/
F:	Documentation/input/

INPUT MULTITOUCH (MT) PROTOCOL
M:	Henrik Rydberg <rydberg@bitmath.org>
+1 −1
Original line number Diff line number Diff line
@@ -24,7 +24,7 @@
#include <linux/usb/r8a66597.h>
#include <linux/usb/renesas_usbhs.h>
#include <linux/i2c.h>
#include <linux/i2c/tsc2007.h>
#include <linux/platform_data/tsc2007.h>
#include <linux/spi/spi.h>
#include <linux/spi/sh_msiof.h>
#include <linux/spi/mmc_spi.h>
+6 −6
Original line number Diff line number Diff line
@@ -481,7 +481,7 @@ EXPORT_SYMBOL(input_inject_event);
void input_alloc_absinfo(struct input_dev *dev)
{
	if (!dev->absinfo)
		dev->absinfo = kcalloc(ABS_CNT, sizeof(struct input_absinfo),
		dev->absinfo = kcalloc(ABS_CNT, sizeof(*dev->absinfo),
					GFP_KERNEL);

	WARN(!dev->absinfo, "%s(): kcalloc() failed?\n", __func__);
@@ -1126,7 +1126,7 @@ static void input_seq_print_bitmap(struct seq_file *seq, const char *name,
	 * If no output was produced print a single 0.
	 */
	if (skip_empty)
		seq_puts(seq, "0");
		seq_putc(seq, '0');

	seq_putc(seq, '\n');
}
@@ -1144,7 +1144,7 @@ static int input_devices_seq_show(struct seq_file *seq, void *v)
	seq_printf(seq, "P: Phys=%s\n", dev->phys ? dev->phys : "");
	seq_printf(seq, "S: Sysfs=%s\n", path ? path : "");
	seq_printf(seq, "U: Uniq=%s\n", dev->uniq ? dev->uniq : "");
	seq_printf(seq, "H: Handlers=");
	seq_puts(seq, "H: Handlers=");

	list_for_each_entry(handle, &dev->h_list, d_node)
		seq_printf(seq, "%s ", handle->name);
@@ -1783,7 +1783,7 @@ struct input_dev *input_allocate_device(void)
	static atomic_t input_no = ATOMIC_INIT(-1);
	struct input_dev *dev;

	dev = kzalloc(sizeof(struct input_dev), GFP_KERNEL);
	dev = kzalloc(sizeof(*dev), GFP_KERNEL);
	if (dev) {
		dev->dev.type = &input_dev_type;
		dev->dev.class = &input_class;
@@ -1849,7 +1849,7 @@ struct input_dev *devm_input_allocate_device(struct device *dev)
	struct input_devres *devres;

	devres = devres_alloc(devm_input_device_release,
			      sizeof(struct input_devres), GFP_KERNEL);
			      sizeof(*devres), GFP_KERNEL);
	if (!devres)
		return NULL;

@@ -2099,7 +2099,7 @@ int input_register_device(struct input_dev *dev)

	if (dev->devres_managed) {
		devres = devres_alloc(devm_input_device_unregister,
				      sizeof(struct input_devres), GFP_KERNEL);
				      sizeof(*devres), GFP_KERNEL);
		if (!devres)
			return -ENOMEM;

Loading