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

 - support for inhibiting input devices at request from userspace. If a
   device implements open/close methods, it can also put device into low
   power state. This is needed, for example, to disable keyboard and
   touchpad on convertibles when they are transitioned into tablet mode

 - now that ordinary input devices can be configured for polling mode,
   dedicated input polling device implementation has been removed

 - GTCO tablet driver has been removed, as it used problematic custom
   HID parser, devices are EOL, and there is no interest from the
   manufacturer

 - a new driver for Dialog DA7280 haptic chips has been introduced

 - a new driver for power button on Dell Wyse 3020

 - support for eKTF2132 in ektf2127 driver

 - support for SC2721 and SC2730 in sc27xx-vibra driver

 - enhancements for Atmel touchscreens, AD7846 touchscreens, Elan
   touchpads, ADP5589, ST1232 touchscreen, TM2 touchkey drivers

 - fixes and cleanups to allow clean builds with W=1

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (86 commits)
  Input: da7280 - fix spelling mistake "sequemce" -> "sequence"
  Input: cyapa_gen6 - fix out-of-bounds stack access
  Input: sc27xx - add support for sc2730 and sc2721
  dt-bindings: input: Add compatible string for SC2721 and SC2730
  dt-bindings: input: Convert sc27xx-vibra.txt to json-schema
  Input: stmpe - add axis inversion and swapping capability
  Input: adp5589-keys - do not explicitly control IRQ for wakeup
  Input: adp5589-keys - do not unconditionally configure as wakeup source
  Input: ipx4xx-beeper - convert comma to semicolon
  Input: parkbd - convert comma to semicolon
  Input: new da7280 haptic driver
  dt-bindings: input: Add document bindings for DA7280
  MAINTAINERS: da7280 updates to the Dialog Semiconductor search terms
  Input: elantech - fix protocol errors for some trackpoints in SMBus mode
  Input: elan_i2c - add new trackpoint report type 0x5F
  Input: elants - document some registers and values
  Input: atmel_mxt_ts - simplify the return expression of mxt_send_bootloader_cmd()
  Input: imx_keypad - add COMPILE_TEST support
  Input: applespi - use new structure for SPI transfer delays
  Input: synaptics-rmi4 - use new structure for SPI transfer delays
  ...
parents 61f91425 4b419325
Loading
Loading
Loading
Loading
+57 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/input/ariel-pwrbutton.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Dell Wyse 3020 a.k.a. "Ariel" Power Button

maintainers:
  - Lubomir Rintel <lkundrak@v3.sk>

description: |
  The ENE Embedded Controller on the Ariel board has an interface to the
  SPI bus that is capable of sending keyboard and mouse data. A single
  power button is attached to it. This binding describes this
  configuration.

allOf:
  - $ref: input.yaml#

properties:
  compatible:
    items:
      - const: dell,wyse-ariel-ec-input
      - const: ene,kb3930-input

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  spi-max-frequency: true

required:
  - compatible
  - reg
  - interrupts

additionalProperties: false

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

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

        power-button@0 {
            compatible = "dell,wyse-ariel-ec-input", "ene,kb3930-input";
            reg = <0>;
            interrupt-parent = <&gpio>;
            interrupts = <60 IRQ_TYPE_EDGE_RISING>;
            spi-max-frequency = <33000000>;
        };
    };
+0 −41
Original line number Diff line number Diff line
Atmel maXTouch touchscreen/touchpad

Required properties:
- compatible:
    atmel,maxtouch

    The following compatibles have been used in various products but are
    deprecated:
	atmel,qt602240_ts
	atmel,atmel_mxt_ts
	atmel,atmel_mxt_tp
	atmel,mXT224

- reg: The I2C address of the device

- interrupts: The sink for the touchpad's IRQ output
    See ../interrupt-controller/interrupts.txt

Optional properties for main touchpad device:

- linux,gpio-keymap: When enabled, the SPT_GPIOPWN_T19 object sends messages
    on GPIO bit changes. An array of up to 8 entries can be provided
    indicating the Linux keycode mapped to each bit of the status byte,
    starting at the LSB. Linux keycodes are defined in
    <dt-bindings/input/input.h>.

    Note: the numbering of the GPIOs and the bit they start at varies between
    maXTouch devices. You must either refer to the documentation, or
    experiment to determine which bit corresponds to which input. Use
    KEY_RESERVED for unused padding values.

- reset-gpios: GPIO specifier for the touchscreen's reset pin (active low)

Example:

	touch@4b {
		compatible = "atmel,maxtouch";
		reg = <0x4b>;
		interrupt-parent = <&gpio>;
		interrupts = <TEGRA_GPIO(W, 3) IRQ_TYPE_LEVEL_LOW>;
	};
+81 −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/atmel,maxtouch.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Atmel maXTouch touchscreen/touchpad

maintainers:
  - Nick Dyer <nick@shmanahar.org>
  - Linus Walleij <linus.walleij@linaro.org>

description: |
  Atmel maXTouch touchscreen or touchpads such as the mXT244
  and similar devices.

properties:
  compatible:
    const: atmel,maxtouch

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  vdda-supply:
    description:
      Optional regulator for the AVDD analog voltage.

  vdd-supply:
    description:
      Optional regulator for the VDD digital voltage.

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

  linux,gpio-keymap:
    $ref: /schemas/types.yaml#/definitions/uint32-array
    description: |
      When enabled, the SPT_GPIOPWN_T19 object sends messages
      on GPIO bit changes. An array of up to 8 entries can be provided
      indicating the Linux keycode mapped to each bit of the status byte,
      starting at the LSB. Linux keycodes are defined in
      <dt-bindings/input/input.h>.

      Note: the numbering of the GPIOs and the bit they start at varies
      between maXTouch devices. You must either refer to the documentation,
      or experiment to determine which bit corresponds to which input. Use
      KEY_RESERVED for unused padding values.

required:
  - compatible
  - reg
  - interrupts

additionalProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/irq.h>
    #include <dt-bindings/gpio/gpio.h>
    i2c {
      #address-cells = <1>;
      #size-cells = <0>;
      touchscreen@4a {
        compatible = "atmel,maxtouch";
        reg = <0x4a>;
        interrupt-parent = <&gpio>;
        interrupts = <26 IRQ_TYPE_EDGE_FALLING>;
        reset-gpios = <&gpio 27 GPIO_ACTIVE_LOW>;
        vdda-supply = <&ab8500_ldo_aux2_reg>;
        vdd-supply = <&ab8500_ldo_aux5_reg>;
      };
    };

...
+0 −33
Original line number Diff line number Diff line
Samsung tm2-touchkey

Required properties:
- compatible:
    * "cypress,tm2-touchkey" - for the touchkey found on the tm2 board
    * "cypress,midas-touchkey" - for the touchkey found on midas boards
    * "cypress,aries-touchkey" - for the touchkey found on aries boards
    * "coreriver,tc360-touchkey" - for the Coreriver TouchCore 360 touchkey
- reg: I2C address of the chip.
- interrupts: interrupt to which the chip is connected (see interrupt
	binding[0]).
- vcc-supply : internal regulator output. 1.8V
- vdd-supply : power supply for IC 3.3V

Optional properties:
- linux,keycodes: array of keycodes (max 4), default KEY_PHONE and KEY_BACK

[0]: Documentation/devicetree/bindings/interrupt-controller/interrupts.txt

Example:
	&i2c0 {
		/* ... */

		touchkey@20 {
			compatible = "cypress,tm2-touchkey";
			reg = <0x20>;
			interrupt-parent = <&gpa3>;
			interrupts = <2 IRQ_TYPE_EDGE_FALLING>;
			vcc-supply=<&ldo32_reg>;
			vdd-supply=<&ldo33_reg>;
			linux,keycodes = <KEY_PHONE KEY_BACK>;
		};
	};
+73 −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/cypress,tm2-touchkey.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Samsung TM2 touch key controller

maintainers:
  - Stephan Gerhold <stephan@gerhold.net>

description: |
  Touch key controllers similar to the TM2 can be found in a wide range of
  Samsung devices. They are implemented using many different MCUs, but use
  a similar I2C protocol.

allOf:
  - $ref: input.yaml#

properties:
  compatible:
    enum:
      - cypress,tm2-touchkey
      - cypress,midas-touchkey
      - cypress,aries-touchkey
      - coreriver,tc360-touchkey

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  vdd-supply:
    description: Optional regulator for LED voltage, 3.3V.

  vcc-supply:
    description: Optional regulator for MCU, 1.8V-3.3V (depending on MCU).

  vddio-supply:
    description: |
      Optional regulator that provides digital I/O voltage,
      e.g. for pulling up the interrupt line or the I2C pins.

  linux,keycodes:
    minItems: 1
    maxItems: 4

required:
  - compatible
  - reg
  - interrupts

additionalProperties: false

examples:
  - |
    #include <dt-bindings/input/input.h>
    #include <dt-bindings/interrupt-controller/irq.h>
    i2c {
        #address-cells = <1>;
        #size-cells = <0>;

        touchkey@20 {
            compatible = "cypress,tm2-touchkey";
            reg = <0x20>;
            interrupt-parent = <&gpa3>;
            interrupts = <2 IRQ_TYPE_EDGE_FALLING>;
            vcc-supply = <&ldo32_reg>;
            vdd-supply = <&ldo33_reg>;
            linux,keycodes = <KEY_MENU KEY_BACK>;
        };
    };
Loading