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

 - a set of tweaks to iqs269a touch controller driver

 - a fix for ads7846 driver to properly handle 7845 chip

 - cap11xx driver will support cap1203, cap1293 and cap1298 models

 - xpad driver will support 8BitDo Pro 2 Wired Controller

 - input drivers have been switched to DEFINE_SIMPLE_DEV_PM_OPS() and
   pm_sleep_ptr()

 - other miscellaneous fixes and tweaks

* tag 'input-for-v6.3-rc0' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (113 commits)
  dt-bindings: input: iqs626a: Redefine trackpad property types
  Input: iqs626a - drop unused device node references
  dt-bindings: input: touchscreen: st,stmfts: convert to dtschema
  Input: cyttsp5 - fix bitmask for touch buttons
  Input: exc3000 - properly stop timer on shutdown
  Input: synaptics-rmi4 - fix SPI device ID
  Input: cap11xx - add support for cap1203, cap1293 and cap1298
  dt-bindings: input: microchip,cap11xx: add cap1203, cap1293 and cap1298
  Input: pmic8xxx-keypad - fix a Kconfig spelling mistake & hyphenation
  Input: edt-ft5x06 - fix typo in a comment
  Input: tegra-kbc - use devm_platform_get_and_ioremap_resource()
  Input: st-keyscan - use devm_platform_get_and_ioremap_resource()
  Input: spear-keyboard - use devm_platform_get_and_ioremap_resource()
  Input: olpc_apsp - use devm_platform_get_and_ioremap_resource()
  Input: arc_ps2 - use devm_platform_get_and_ioremap_resource()
  Input: apbps2 - use devm_platform_get_and_ioremap_resource()
  Input: altera_ps2 - use devm_platform_get_and_ioremap_resource()
  Input: ads7846 - don't check penirq immediately for 7845
  Input: ads7846 - always set last command to PWRDOWN
  Input: ads7846 - don't report pressure for ads7845
  ...
parents 116b4116 7ae9fb1b
Loading
Loading
Loading
Loading
+67 −27
Original line number Diff line number Diff line
@@ -564,16 +564,6 @@ patternProperties:
          2: Partial
          3: Full

      azoteq,ati-base:
        $ref: /schemas/types.yaml#/definitions/uint32-array
        minItems: 6
        maxItems: 9
        items:
          minimum: 45
          maximum: 300
        default: [45, 45, 45, 45, 45, 45, 45, 45, 45]
        description: Specifies each individual trackpad channel's ATI base.

      azoteq,ati-target:
        $ref: /schemas/types.yaml#/definitions/uint32
        multipleOf: 32
@@ -620,17 +610,6 @@ patternProperties:
        description:
          Tightens the ATI band from 1/8 to 1/16 of the desired target.

      azoteq,thresh:
        $ref: /schemas/types.yaml#/definitions/uint32-array
        minItems: 6
        maxItems: 9
        items:
          minimum: 0
          maximum: 255
        default: [0, 0, 0, 0, 0, 0, 0, 0, 0]
        description:
          Specifies each individual trackpad channel's touch threshold.

      azoteq,hyst:
        $ref: /schemas/types.yaml#/definitions/uint32
        minimum: 0
@@ -720,6 +699,28 @@ patternProperties:
          Specifies the number of points across which an axial gesture must
          travel in order to be interpreted as a flick or swipe.

    patternProperties:
      "^channel-[0-8]$":
        type: object
        description: Represents a single trackpad channel.

        properties:
          azoteq,thresh:
            $ref: /schemas/types.yaml#/definitions/uint32
            minimum: 0
            maximum: 255
            default: 0
            description: Specifies the threshold for the channel.

          azoteq,ati-base:
            $ref: /schemas/types.yaml#/definitions/uint32
            minimum: 45
            maximum: 300
            default: 45
            description: Specifies the channel's ATI base.

        additionalProperties: false

    dependencies:
      azoteq,gesture-swipe: ["linux,keycodes"]
      azoteq,timeout-tap-ms: ["linux,keycodes"]
@@ -780,14 +781,8 @@ examples:
                            azoteq,filt-str-lp-cnt = <1>;

                            azoteq,hyst = <4>;
                            azoteq,thresh = <35>, <40>, <40>,
                                            <38>, <33>, <38>,
                                            <35>, <35>, <35>;

                            azoteq,ati-mode = <3>;
                            azoteq,ati-base = <195>, <195>, <195>,
                                              <195>, <195>, <195>,
                                              <195>, <195>, <195>;
                            azoteq,ati-target = <512>;

                            azoteq,proj-bias = <1>;
@@ -804,6 +799,51 @@ examples:
                            azoteq,timeout-swipe-ms = <800>;
                            azoteq,timeout-tap-ms = <400>;
                            azoteq,thresh-swipe = <40>;

                            channel-0 {
                                    azoteq,thresh = <35>;
                                    azoteq,ati-base = <195>;
                            };

                            channel-1 {
                                    azoteq,thresh = <40>;
                                    azoteq,ati-base = <195>;
                            };

                            channel-2 {
                                    azoteq,thresh = <40>;
                                    azoteq,ati-base = <195>;
                            };

                            channel-3 {
                                    azoteq,thresh = <38>;
                                    azoteq,ati-base = <195>;
                            };

                            channel-4 {
                                    azoteq,thresh = <33>;
                                    azoteq,ati-base = <195>;
                            };

                            channel-5 {
                                    azoteq,thresh = <38>;
                                    azoteq,ati-base = <195>;
                            };

                            channel-6 {
                                    azoteq,thresh = <35>;
                                    azoteq,ati-base = <195>;
                            };

                            channel-7 {
                                    azoteq,thresh = <35>;
                                    azoteq,ati-base = <195>;
                            };

                            channel-8 {
                                    azoteq,thresh = <35>;
                                    azoteq,ati-base = <195>;
                            };
                    };

                    /*
+3 −0
Original line number Diff line number Diff line
@@ -19,7 +19,10 @@ properties:
      - microchip,cap1106
      - microchip,cap1126
      - microchip,cap1188
      - microchip,cap1203
      - microchip,cap1206
      - microchip,cap1293
      - microchip,cap1298

  reg:
    maxItems: 1
+0 −41
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)
- 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>;
	};
};
+72 −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/st,stmfts.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: ST-Microelectronics FingerTip touchscreen controller

maintainers:
  - Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>

description:
  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.

allOf:
  - $ref: touchscreen.yaml#

properties:
  compatible:
    const: st,stmfts

  reg:
    maxItems: 1

  avdd-supply:
    description: Analogic power supply

  interrupts:
    maxItems: 1

  ledvdd-supply:
    description: Power supply to the touch key leds

  touch-key-connected:
    type: boolean
    description: The touchkey feature is connected

  vdd-supply:
    description: Power supply

required:
  - compatible
  - reg
  - avdd-supply
  - interrupts
  - vdd-supply

unevaluatedProperties: false

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

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

        touchscreen@49 {
            compatible = "st,stmfts";
            reg = <0x49>;
            interrupt-parent = <&gpa1>;
            interrupts = <1 IRQ_TYPE_LEVEL_LOW>;
            touchscreen-size-x = <1599>;
            touchscreen-size-y = <2559>;
            touch-key-connected;
            avdd-supply = <&ldo30_reg>;
            vdd-supply = <&ldo31_reg>;
            ledvdd-supply = <&ldo33_reg>;
        };
    };
+2 −5
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@
#include <linux/proc_fs.h>
#include <linux/sched.h>
#include <linux/seq_file.h>
#include <linux/pm.h>
#include <linux/poll.h>
#include <linux/device.h>
#include <linux/kstrtox.h>
@@ -1828,7 +1829,6 @@ static int input_uninhibit_device(struct input_dev *dev)
	return ret;
}

#ifdef CONFIG_PM_SLEEP
static int input_dev_suspend(struct device *dev)
{
	struct input_dev *input_dev = to_input_dev(dev);
@@ -1903,15 +1903,12 @@ static const struct dev_pm_ops input_dev_pm_ops = {
	.poweroff	= input_dev_poweroff,
	.restore	= input_dev_resume,
};
#endif /* CONFIG_PM */

static const struct device_type input_dev_type = {
	.groups		= input_dev_attr_groups,
	.release	= input_dev_release,
	.uevent		= input_dev_uevent,
#ifdef CONFIG_PM_SLEEP
	.pm		= &input_dev_pm_ops,
#endif
	.pm		= pm_sleep_ptr(&input_dev_pm_ops),
};

static char *input_devnode(const struct device *dev, umode_t *mode)
Loading