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

 - an update to Elan touchpad controller driver supporting newer ICs
   with enhanced precision reports and a new firmware update process

 - an update to EXC3000 touch controller supporting additional parts

 - assorted driver fixups

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (27 commits)
  Input: exc3000 - add support to query model and fw_version
  Input: exc3000 - add reset gpio support
  Input: exc3000 - add EXC80H60 and EXC80H84 support
  dt-bindings: touchscreen: Convert EETI EXC3000 touchscreen to json-schema
  Input: sentelic - fix error return when fsp_reg_write fails
  Input: alps - remove redundant assignment to variable ret
  Input: ims-pcu - return error code rather than -ENOMEM
  Input: elan_i2c - add ic type 0x15
  Input: atmel_mxt_ts - only read messages in mxt_acquire_irq() when necessary
  Input: uinput - fix typo in function name documentation
  Input: ati_remote2 - add missing newlines when printing module parameters
  Input: psmouse - add a newline when printing 'proto' by sysfs
  Input: synaptics-rmi4 - drop a duplicated word
  Input: elan_i2c - add support for high resolution reports
  Input: elan_i2c - do not constantly re-query pattern ID
  Input: elan_i2c - add firmware update info for ICs 0x11, 0x13, 0x14
  Input: elan_i2c - handle firmware updated on newer ICs
  Input: elan_i2c - add support for different firmware page sizes
  Input: elan_i2c - fix detecting IAP version on older controllers
  Input: elan_i2c - handle devices with patterns above 1
  ...
parents b7b8e368 9e823802
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
What:		/sys/bus/i2c/devices/xxx/fw_version
Date:		Aug 2020
Contact:	linux-input@vger.kernel.org
Description:    Reports the firmware version provided by the touchscreen, for example "00_T6" on a EXC80H60

		Access: Read
		Valid values: Represented as string

What:		/sys/bus/i2c/devices/xxx/model
Date:		Aug 2020
Contact:	linux-input@vger.kernel.org
Description:    Reports the model identification provided by the touchscreen, for example "Orion_1320" on a EXC80H60

		Access: Read
		Valid values: Represented as string
+58 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/input/touchscreen/eeti,exc3000.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: EETI EXC3000 series touchscreen controller

maintainers:
  - Dmitry Torokhov <dmitry.torokhov@gmail.com>

allOf:
  - $ref: touchscreen.yaml#

properties:
  compatible:
    enum:
      - eeti,exc3000
      - eeti,exc80h60
      - eeti,exc80h84
  reg:
    const: 0x2a
  interrupts:
    maxItems: 1
  reset-gpios:
    maxItems: 1
  touchscreen-size-x: true
  touchscreen-size-y: true
  touchscreen-inverted-x: true
  touchscreen-inverted-y: true
  touchscreen-swapped-x-y: true

required:
  - compatible
  - reg
  - interrupts
  - touchscreen-size-x
  - touchscreen-size-y

additionalProperties: false

examples:
  - |
    #include "dt-bindings/interrupt-controller/irq.h"
    i2c {
        #address-cells = <1>;
        #size-cells = <0>;
        touchscreen@2a {
                compatible = "eeti,exc3000";
                reg = <0x2a>;
                interrupt-parent = <&gpio1>;
                interrupts = <9 IRQ_TYPE_LEVEL_LOW>;
                touchscreen-size-x = <4096>;
                touchscreen-size-y = <4096>;
                touchscreen-inverted-x;
                touchscreen-swapped-x-y;
        };
    };
+0 −26
Original line number Diff line number Diff line
* EETI EXC3000 Multiple Touch Controller

Required properties:
- compatible: must be "eeti,exc3000"
- reg: i2c slave address
- interrupts: touch controller interrupt
- touchscreen-size-x: See touchscreen.txt
- touchscreen-size-y: See touchscreen.txt

Optional properties:
- touchscreen-inverted-x: See touchscreen.txt
- touchscreen-inverted-y: See touchscreen.txt
- touchscreen-swapped-x-y: See touchscreen.txt

Example:

	touchscreen@2a {
		compatible = "eeti,exc3000";
		reg = <0x2a>;
		interrupt-parent = <&gpio1>;
		interrupts = <9 IRQ_TYPE_LEVEL_LOW>;
		touchscreen-size-x = <4096>;
		touchscreen-size-y = <4096>;
		touchscreen-inverted-x;
		touchscreen-swapped-x-y;
	};
+3 −3
Original line number Diff line number Diff line
@@ -99,7 +99,7 @@ the sake of simplicity.

      /*
       * Give userspace some time to read the events before we destroy the
       * device with UI_DEV_DESTOY.
       * device with UI_DEV_DESTROY.
       */
      sleep(1);

@@ -164,7 +164,7 @@ mouse.

      /*
       * Give userspace some time to read the events before we destroy the
       * device with UI_DEV_DESTOY.
       * device with UI_DEV_DESTROY.
       */
      sleep(1);

@@ -233,7 +233,7 @@ but interact with uinput via ioctl calls, or use libevdev.

      /*
       * Give userspace some time to read the events before we destroy the
       * device with UI_DEV_DESTOY.
       * device with UI_DEV_DESTROY.
       */
      sleep(1);

+1 −1
Original line number Diff line number Diff line
@@ -16,7 +16,7 @@ static void copy_abs(struct input_dev *dev, unsigned int dst, unsigned int src)
	if (dev->absinfo && test_bit(src, dev->absbit)) {
		dev->absinfo[dst] = dev->absinfo[src];
		dev->absinfo[dst].fuzz = 0;
		dev->absbit[BIT_WORD(dst)] |= BIT_MASK(dst);
		__set_bit(dst, dev->absbit);
	}
}

Loading