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

 - three new touchscreen drivers: Hycon HY46XX, ILITEK Lego Series,
   and MStar MSG2638

 - a new driver for Azoteq IQS626A proximity and touch controller

 - addition of Amazon Game Controller to the list of devices handled
   by the xpad driver

 - Elan touchscreen driver will avoid binding to devices described as
   I2CHID compatible in ACPI tables

 - various driver fixes

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (56 commits)
  Input: xpad - add support for Amazon Game Controller
  Input: ili210x - add missing negation for touch indication on ili210x
  MAINTAINERS: repair reference in HYCON HY46XX TOUCHSCREEN SUPPORT
  Input: add driver for the Hycon HY46XX touchpanel series
  dt-bindings: touchscreen: Add HY46XX bindings
  dt-bindings: Add Hycon Technology vendor prefix
  Input: cyttsp - flag the device properly
  Input: cyttsp - set abs params for ABS_MT_TOUCH_MAJOR
  Input: cyttsp - drop the phys path
  Input: cyttsp - reduce reset pulse timings
  Input: cyttsp - error message on boot mode exit error
  Input: apbps2 - remove useless variable
  Input: mms114 - support MMS136
  Input: mms114 - convert bindings to YAML and extend
  Input: Add support for ILITEK Lego Series
  dt-bindings: input: touchscreen: ilitek_ts_i2c: Add bindings
  Input: add MStar MSG2638 touchscreen driver
  dt-bindings: input/touchscreen: add bindings for msg2638
  Input: silead - add workaround for x86 BIOS-es which bring the chip up in a stuck state
  Input: elants_i2c - do not bind to i2c-hid compatible ACPI instantiated devices
  ...
parents e4866123 05665cef
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -15,3 +15,12 @@ Description: Reports the model identification provided by the touchscreen, fo
		Access: Read

		Valid values: Represented as string

What:		/sys/bus/i2c/devices/xxx/type
Date:		Jan 2021
Contact:	linux-input@vger.kernel.org
Description:	Reports the type identification provided by the touchscreen, for example "PCAP82H80 Series"

		Access: Read

		Valid values: Represented as string
+32 −0
Original line number Diff line number Diff line
@@ -39,6 +39,13 @@ properties:
      (active low). The line must be flagged with
      GPIO_ACTIVE_LOW.

  wake-gpios:
    maxItems: 1
    description:
      Optional GPIO specifier for the touchscreen's wake pin
      (active low). The line must be flagged with
      GPIO_ACTIVE_LOW.

  linux,gpio-keymap:
    $ref: /schemas/types.yaml#/definitions/uint32-array
    description: |
@@ -53,6 +60,29 @@ properties:
      or experiment to determine which bit corresponds to which input. Use
      KEY_RESERVED for unused padding values.

  atmel,wakeup-method:
    $ref: /schemas/types.yaml#/definitions/uint32
    description: |
      The WAKE line is an active-low input that is used to wake up the touch
      controller from deep-sleep mode before communication with the controller
      could be started. This optional feature used to minimize current
      consumption when the controller is in deep sleep mode. This feature is
      relevant only to some controller families, like mXT1386 controller for
      example.

      The WAKE pin can be connected in one of the following ways:
       1) left permanently low
       2) connected to the I2C-compatible SCL pin
       3) connected to a GPIO pin on the host
    enum:
      - 0 # ATMEL_MXT_WAKEUP_NONE
      - 1 # ATMEL_MXT_WAKEUP_I2C_SCL
      - 2 # ATMEL_MXT_WAKEUP_GPIO
    default: 0

  wakeup-source:
    type: boolean

required:
  - compatible
  - reg
@@ -63,6 +93,7 @@ additionalProperties: false
examples:
  - |
    #include <dt-bindings/interrupt-controller/irq.h>
    #include <dt-bindings/input/atmel-maxtouch.h>
    #include <dt-bindings/gpio/gpio.h>
    i2c {
      #address-cells = <1>;
@@ -75,6 +106,7 @@ examples:
        reset-gpios = <&gpio 27 GPIO_ACTIVE_LOW>;
        vdda-supply = <&ab8500_ldo_aux2_reg>;
        vdd-supply = <&ab8500_ldo_aux5_reg>;
        atmel,wakeup-method = <ATMEL_MXT_WAKEUP_I2C_SCL>;
      };
    };

+843 −0

File added.

Preview size limit exceeded, changes collapsed.

+75 −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/azoteq,iqs5xx.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Azoteq IQS550/572/525 Trackpad/Touchscreen Controller

maintainers:
  - Jeff LaBundy <jeff@labundy.com>

description: |
  The Azoteq IQS550, IQS572 and IQS525 trackpad and touchscreen controllers
  employ projected-capacitance sensing and can track up to five independent
  contacts.

  Link to datasheet: https://www.azoteq.com/

allOf:
  - $ref: touchscreen.yaml#

properties:
  compatible:
    enum:
      - azoteq,iqs550
      - azoteq,iqs572
      - azoteq,iqs525

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  reset-gpios:
    maxItems: 1

  wakeup-source: true

  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

additionalProperties: false

examples:
  - |
    #include <dt-bindings/gpio/gpio.h>
    #include <dt-bindings/interrupt-controller/irq.h>

    i2c {
            #address-cells = <1>;
            #size-cells = <0>;

            touchscreen@74 {
                    compatible = "azoteq,iqs550";
                    reg = <0x74>;
                    interrupt-parent = <&gpio>;
                    interrupts = <27 IRQ_TYPE_LEVEL_HIGH>;
                    reset-gpios = <&gpio 22 (GPIO_ACTIVE_LOW |
                                             GPIO_PUSH_PULL)>;

                    touchscreen-size-x = <800>;
                    touchscreen-size-y = <480>;
            };
    };

...
+119 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/input/touchscreen/hycon,hy46xx.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Hycon HY46XX series touchscreen controller bindings

description: |
  There are 6 variants of the chip for various touch panel sizes and cover lens material
   Glass: 0.3mm--4.0mm
    PET/PMMA: 0.2mm--2.0mm
    HY4613(B)-N048  < 6"
    HY4614(B)-N068  7" .. 10.1"
    HY4621-NS32  < 5"
    HY4623-NS48  5.1" .. 7"
   Glass: 0.3mm--8.0mm
    PET/PMMA: 0.2mm--4.0mm
    HY4633(B)-N048  < 6"
    HY4635(B)-N048  < 7" .. 10.1"

maintainers:
  - Giulio Benetti <giulio.benetti@benettiengineering.com>

allOf:
  - $ref: touchscreen.yaml#

properties:
  compatible:
    enum:
      - hycon,hy4613
      - hycon,hy4614
      - hycon,hy4621
      - hycon,hy4623
      - hycon,hy4633
      - hycon,hy4635

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  reset-gpios:
    maxItems: 1

  vcc-supply: true

  hycon,threshold:
    description: Allows setting the sensitivity in the range from 0 to 255.
    $ref: /schemas/types.yaml#/definitions/uint32
    minimum: 0
    maximum: 255

  hycon,glove-enable:
    type: boolean
    description: Allows enabling glove setting.

  hycon,report-speed-hz:
    description: Allows setting the report speed in Hertz.
    minimum: 1
    maximum: 255

  hycon,noise-filter-enable:
    type: boolean
    description: Allows enabling power noise filter.

  hycon,filter-data:
    description: Allows setting how many samples throw before reporting touch
                 in the range from 0 to 5.
    $ref: /schemas/types.yaml#/definitions/uint32
    minimum: 0
    maximum: 5

  hycon,gain:
    description: Allows setting the sensitivity distance in the range from 0 to 5.
    $ref: /schemas/types.yaml#/definitions/uint32
    minimum: 0
    maximum: 5

  hycon,edge-offset:
    description: Allows setting the edge compensation in the range from 0 to 16.
    $ref: /schemas/types.yaml#/definitions/uint32
    minimum: 0
    maximum: 16

  touchscreen-size-x: true
  touchscreen-size-y: true
  touchscreen-fuzz-x: true
  touchscreen-fuzz-y: true
  touchscreen-inverted-x: true
  touchscreen-inverted-y: true
  touchscreen-swapped-x-y: true
  interrupt-controller: true

additionalProperties: false

required:
  - compatible
  - reg
  - interrupts

examples:
  - |
    #include <dt-bindings/gpio/gpio.h>
    #include <dt-bindings/interrupt-controller/arm-gic.h>
    i2c {
      #address-cells = <1>;
      #size-cells = <0>;
      touchscreen@1c {
        compatible = "hycon,hy4633";
        reg = <0x1c>;
        interrupt-parent = <&gpio2>;
        interrupts = <5 IRQ_TYPE_EDGE_FALLING>;
        reset-gpios = <&gpio2 6 GPIO_ACTIVE_LOW>;
      };
    };

...
Loading