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

 - a new driver for Azoteq IQS7210A/7211A/E touch controllers

 - support for Azoteq IQS7222D variant added to iqs7222 driver

 - support for touch keys functionality added to Melfas MMS114 driver

 - new hardware IDs added to exc3000 and Goodix drivers

 - xpad driver gained support for GameSir T4 Kaleid Controller

 - a fix for xpad driver to properly support some third-party
   controllers that need a magic packet to start properly

 - a fix for psmouse driver to more reliably switch to RMI4 mode on
   devices that use native RMI4/SMbus protocol

 - a quirk for i8042 for TUXEDO Gemini 17 Gen1/Clevo PD70PN laptops

 - multiple drivers have been updated to make use of devm and other
   newer APIs such as dev_err_probe(), devm_regulator_get_enable(), and
   others.

* tag 'input-for-v6.6-rc0' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (83 commits)
  Input: goodix - add support for ACPI ID GDX9110
  Input: rpckbd - fix the return value handle for platform_get_irq()
  Input: tca6416-keypad - switch to using input core's polling features
  Input: tca6416-keypad - convert to use devm_* api
  Input: tca6416-keypad - fix interrupt enable disbalance
  Input: tca6416-keypad - rely on I2C core to set up suspend/resume
  Input: tca6416-keypad - always expect proper IRQ number in i2c client
  Input: lm8323 - convert to use devm_* api
  Input: lm8323 - rely on device core to create kp_disable attribute
  Input: qt2160 - convert to use devm_* api
  Input: qt2160 - do not hard code interrupt trigger
  Input: qt2160 - switch to using threaded interrupt handler
  Input: qt2160 - tweak check for i2c adapter functionality
  Input: psmouse - add delay when deactivating for SMBus mode
  Input: mcs-touchkey - fix uninitialized use of error in mcs_touchkey_probe()
  Input: qt1070 - convert to use devm_* api
  Input: mcs-touchkey - convert to use devm_* api
  Input: amikbd - convert to use devm_* api
  Input: lm8333 - convert to use devm_* api
  Input: mms114 - add support for touch keys
  ...
parents 29057cc5 1ac731c5
Loading
Loading
Loading
Loading
+223 −25
Original line number Diff line number Diff line
@@ -4,14 +4,14 @@
$id: http://devicetree.org/schemas/input/azoteq,iqs7222.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Azoteq IQS7222A/B/C Capacitive Touch Controller
title: Azoteq IQS7222A/B/C/D Capacitive Touch Controller

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

description: |
  The Azoteq IQS7222A, IQS7222B and IQS7222C are multichannel capacitive touch
  controllers that feature additional sensing capabilities.
  The Azoteq IQS7222A, IQS7222B, IQS7222C and IQS7222D are multichannel
  capacitive touch controllers that feature additional sensing capabilities.

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

@@ -21,6 +21,7 @@ properties:
      - azoteq,iqs7222a
      - azoteq,iqs7222b
      - azoteq,iqs7222c
      - azoteq,iqs7222d

  reg:
    maxItems: 1
@@ -173,6 +174,152 @@ properties:
    maximum: 3000
    description: Specifies the report rate (in ms) during ultra-low-power mode.

  touchscreen-size-x: true
  touchscreen-size-y: true
  touchscreen-inverted-x: true
  touchscreen-inverted-y: true
  touchscreen-swapped-x-y: true

  trackpad:
    type: object
    description: Represents all channels associated with the trackpad.

    properties:
      azoteq,channel-select:
        $ref: /schemas/types.yaml#/definitions/uint32-array
        minItems: 1
        maxItems: 12
        items:
          minimum: 0
          maximum: 13
        description:
          Specifies the order of the channels that participate in the trackpad.
          Specify 255 to omit a given channel for the purpose of mapping a non-
          rectangular trackpad.

      azoteq,num-rows:
        $ref: /schemas/types.yaml#/definitions/uint32
        minimum: 1
        maximum: 12
        description: Specifies the number of rows that comprise the trackpad.

      azoteq,num-cols:
        $ref: /schemas/types.yaml#/definitions/uint32
        minimum: 1
        maximum: 12
        description: Specifies the number of columns that comprise the trackpad.

      azoteq,top-speed:
        $ref: /schemas/types.yaml#/definitions/uint32
        multipleOf: 4
        minimum: 0
        maximum: 1020
        description:
          Specifies the speed (in coordinates traveled per conversion) after
          which coordinate filtering is no longer applied.

      azoteq,bottom-speed:
        $ref: /schemas/types.yaml#/definitions/uint32
        minimum: 0
        maximum: 255
        description:
          Specifies the speed (in coordinates traveled per conversion) after
          which coordinate filtering is linearly reduced.

      azoteq,use-prox:
        type: boolean
        description:
          Directs the trackpad to respond to the proximity states of the
          selected channels instead of their corresponding touch states.
          Note the trackpad cannot report granular coordinates during a
          state of proximity.

    patternProperties:
      "^azoteq,lower-cal-(x|y)$":
        $ref: /schemas/types.yaml#/definitions/uint32
        minimum: 0
        maximum: 255
        description: Specifies the trackpad's lower starting points.

      "^azoteq,upper-cal-(x|y)$":
        $ref: /schemas/types.yaml#/definitions/uint32
        minimum: 0
        maximum: 255
        description: Specifies the trackpad's upper starting points.

      "^event-(press|tap|(swipe|flick)-(x|y)-(pos|neg))$":
        type: object
        $ref: input.yaml#
        description:
          Represents a press or gesture event reported by the trackpad. Specify
          'linux,code' under the press event to report absolute coordinates.

        properties:
          linux,code: true

          azoteq,gesture-angle-tighten:
            type: boolean
            description:
              Limits the tangent of the gesture angle to 0.5 (axial gestures
              only). If specified in one direction, the effect is applied in
              either direction.

          azoteq,gesture-max-ms:
            multipleOf: 16
            minimum: 0
            maximum: 4080
            description:
              Specifies the length of time (in ms) within which a tap, swipe
              or flick gesture must be completed in order to be acknowledged
              by the device. The number specified for any one swipe or flick
              gesture applies to all other swipe or flick gestures.

          azoteq,gesture-min-ms:
            multipleOf: 16
            minimum: 0
            maximum: 4080
            description:
              Specifies the length of time (in ms) for which a tap gesture must
              be held in order to be acknowledged by the device.

          azoteq,gesture-dist:
            $ref: /schemas/types.yaml#/definitions/uint32
            minimum: 0
            maximum: 65535
            description:
              Specifies the distance (in coordinates) across which a swipe or
              flick gesture must travel in order to be acknowledged by the
              device. The number specified for any one swipe or flick gesture
              applies to all remaining swipe or flick gestures.

              For tap gestures, this property specifies the distance from the
              original point of contact across which the contact is permitted
              to travel before the gesture is rejected by the device.

          azoteq,gpio-select:
            $ref: /schemas/types.yaml#/definitions/uint32-array
            minItems: 1
            maxItems: 3
            items:
              minimum: 0
              maximum: 2
            description: |
              Specifies one or more GPIO mapped to the event as follows:
              0: GPIO0
              1: GPIO3
              2: GPIO4

              Note that although multiple events can be mapped to a single
              GPIO, they must all be of the same type (proximity, touch or
              trackpad gesture).

        additionalProperties: false

    required:
      - azoteq,channel-select

    additionalProperties: false

patternProperties:
  "^cycle-[0-9]$":
    type: object
@@ -288,6 +435,10 @@ patternProperties:
          Activates the reference channel in response to proximity events
          instead of touch events.

      azoteq,counts-filt-enable:
        type: boolean
        description: Applies counts filtering to the channel.

      azoteq,ati-band:
        $ref: /schemas/types.yaml#/definitions/uint32
        enum: [0, 1, 2, 3]
@@ -432,12 +583,12 @@ patternProperties:
            description: |
              Specifies one or more GPIO mapped to the event as follows:
              0: GPIO0
              1: GPIO3 (IQS7222C only)
              2: GPIO4 (IQS7222C only)
              1: GPIO3
              2: GPIO4

              Note that although multiple events can be mapped to a single
              GPIO, they must all be of the same type (proximity, touch or
              slider gesture).
              slider/trackpad gesture).

          azoteq,thresh:
            $ref: /schemas/types.yaml#/definitions/uint32
@@ -521,16 +672,16 @@ patternProperties:
        minimum: 0
        maximum: 65535
        description:
          Specifies the speed of movement after which coordinate filtering is
          no longer applied.
          Specifies the speed (in coordinates traveled per conversion) after
          which coordinate filtering is no longer applied.

      azoteq,bottom-speed:
        $ref: /schemas/types.yaml#/definitions/uint32
        minimum: 0
        maximum: 255
        description:
          Specifies the speed of movement after which coordinate filtering is
          linearly reduced.
          Specifies the speed (in coordinates traveled per conversion) after
          which coordinate filtering is linearly reduced.

      azoteq,bottom-beta:
        $ref: /schemas/types.yaml#/definitions/uint32
@@ -595,10 +746,10 @@ patternProperties:
            minimum: 0
            maximum: 4080
            description:
              Specifies the distance across which a swipe or flick gesture must
              travel in order to be acknowledged by the device. The number spec-
              ified for any one swipe or flick gesture applies to all remaining
              swipe or flick gestures.
              Specifies the distance (in coordinates) across which a swipe or
              flick gesture must travel in order to be acknowledged by the
              device. The number specified for any one swipe or flick gesture
              applies to all remaining swipe or flick gestures.

          azoteq,gpio-select:
            $ref: /schemas/types.yaml#/definitions/uint32-array
@@ -610,8 +761,8 @@ patternProperties:
            description: |
              Specifies one or more GPIO mapped to the event as follows:
              0: GPIO0
              1: GPIO3 (IQS7222C only)
              2: GPIO4 (IQS7222C only)
              1: GPIO3
              2: GPIO4

              Note that although multiple events can be mapped to a single
              GPIO, they must all be of the same type (proximity, touch or
@@ -629,8 +780,8 @@ patternProperties:
    description: |
      Represents a GPIO mapped to one or more events as follows:
      gpio-0: GPIO0
      gpio-1: GPIO3 (IQS7222C only)
      gpio-2: GPIO4 (IQS7222C only)
      gpio-1: GPIO3
      gpio-2: GPIO4

    allOf:
      - $ref: ../pinctrl/pincfg-node.yaml#
@@ -641,11 +792,53 @@ patternProperties:
    additionalProperties: false

allOf:
  - $ref: touchscreen/touchscreen.yaml#

  - if:
      properties:
        compatible:
          contains:
            const: azoteq,iqs7222b
            enum:
              - azoteq,iqs7222a
              - azoteq,iqs7222b
              - azoteq,iqs7222c

    then:
      properties:
        touchscreen-size-x: false
        touchscreen-size-y: false
        touchscreen-inverted-x: false
        touchscreen-inverted-y: false
        touchscreen-swapped-x-y: false

        trackpad: false

      patternProperties:
        "^channel-([0-9]|1[0-9])$":
          properties:
            azoteq,counts-filt-enable: false

  - if:
      properties:
        compatible:
          contains:
            enum:
              - azoteq,iqs7222b
              - azoteq,iqs7222c

    then:
      patternProperties:
        "^channel-([0-9]|1[0-9])$":
          properties:
            azoteq,ulp-allow: false

  - if:
      properties:
        compatible:
          contains:
            enum:
              - azoteq,iqs7222b
              - azoteq,iqs7222d

    then:
      patternProperties:
@@ -657,13 +850,22 @@ allOf:
          properties:
            azoteq,ref-select: false

        "^slider-[0-1]$": false

  - if:
      properties:
        compatible:
          contains:
            const: azoteq,iqs7222b

    then:
      patternProperties:
        "^channel-([0-9]|1[0-9])$":
          patternProperties:
            "^event-(prox|touch)$":
              properties:
                azoteq,gpio-select: false

        "^slider-[0-1]$": false

        "^gpio-[0-2]$": false

  - if:
@@ -704,10 +906,6 @@ allOf:

    else:
      patternProperties:
        "^channel-([0-9]|1[0-9])$":
          properties:
            azoteq,ulp-allow: false

        "^slider-[0-1]$":
          patternProperties:
            "^event-(press|tap|(swipe|flick)-(pos|neg))$":
+769 −0

File added.

Preview size limit exceeded, changes collapsed.

+6 −0
Original line number Diff line number Diff line
@@ -93,6 +93,12 @@ properties:
    minimum: 1
    maximum: 255

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

  touchscreen-size-x: true
  touchscreen-size-y: true
  touchscreen-fuzz-x: true
+2 −0
Original line number Diff line number Diff line
@@ -24,6 +24,8 @@ properties:
    maxItems: 1
  reset-gpios:
    maxItems: 1
  vdd-supply:
    description: Power supply regulator for the chip
  touchscreen-size-x: true
  touchscreen-size-y: true
  touchscreen-inverted-x: true
+5 −0
Original line number Diff line number Diff line
@@ -52,6 +52,11 @@ properties:
  touchscreen-swapped-x-y: true
  touchscreen-max-pressure: true

  linux,keycodes:
    description: Keycodes for the touch keys
    minItems: 1
    maxItems: 15

additionalProperties: false

required:
Loading