Commit e2a2501a authored by Dmitry Torokhov's avatar Dmitry Torokhov
Browse files

Merge branch 'next' into for-linus

Prepare input updates for 6.8 merge window.
parents ea371594 52c4e598
Loading
Loading
Loading
Loading
+63 −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/adafruit,seesaw-gamepad.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Adafruit Mini I2C Gamepad with seesaw

maintainers:
  - Anshul Dalal <anshulusr@gmail.com>

description: |
  Adafruit Mini I2C Gamepad

    +-----------------------------+
    |   ___                       |
    |  /   \               (X)    |
    | |  S  |  __   __  (Y)   (A) |
    |  \___/  |ST| |SE|    (B)    |
    |                             |
    +-----------------------------+

  S -> 10-bit precision bidirectional analog joystick
  ST -> Start
  SE -> Select
  X, A, B, Y -> Digital action buttons

  Datasheet: https://cdn-learn.adafruit.com/downloads/pdf/gamepad-qt.pdf
  Product page: https://www.adafruit.com/product/5743
  Arduino Driver: https://github.com/adafruit/Adafruit_Seesaw

properties:
  compatible:
    const: adafruit,seesaw-gamepad

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1
    description:
      The gamepad's IRQ pin triggers a rising edge if interrupts are enabled.

required:
  - compatible
  - reg

additionalProperties: false

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

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

        joystick@50 {
            compatible = "adafruit,seesaw-gamepad";
            interrupts = <18 IRQ_TYPE_EDGE_RISING>;
            reg = <0x50>;
        };
    };
+40 −1
Original line number Diff line number Diff line
@@ -31,7 +31,23 @@ patternProperties:
        maxItems: 1

      interrupts:
        maxItems: 1
        oneOf:
          - items:
              - description: Optional key interrupt or wakeup interrupt
          - items:
              - description: Key interrupt
              - description: Wakeup interrupt

      interrupt-names:
        description:
          Optional interrupt names, can be used to specify a separate dedicated
          wake-up interrupt in addition to the gpio irq
        oneOf:
          - items:
              - enum: [ irq, wakeup ]
          - items:
              - const: irq
              - const: wakeup

      label:
        description: Descriptive name of the key.
@@ -97,6 +113,20 @@ patternProperties:
      - required:
          - gpios

    allOf:
      - if:
          properties:
            interrupts:
              minItems: 2
          required:
            - interrupts
        then:
          properties:
            interrupt-names:
              minItems: 2
          required:
            - interrupt-names

    dependencies:
      wakeup-event-action: [ wakeup-source ]
      linux,input-value: [ gpios ]
@@ -137,6 +167,15 @@ examples:
            linux,code = <108>;
            interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
        };

        key-wakeup {
            label = "GPIO Key WAKEUP";
            linux,code = <143>;
            interrupts-extended = <&intc 2 IRQ_TYPE_EDGE_FALLING>,
                                  <&intc_wakeup 0 IRQ_TYPE_LEVEL_HIGH>;
            interrupt-names = "irq", "wakeup";
            wakeup-source;
        };
    };

...
+0 −32
Original line number Diff line number Diff line
Device-Tree bindings for GPIO attached mice

This simply uses standard GPIO handles to define a simple mouse connected
to 5-7 GPIO lines.

Required properties:
	- compatible: must be "gpio-mouse"
	- scan-interval-ms: The scanning interval in milliseconds
	- up-gpios: GPIO line phandle to the line indicating "up"
	- down-gpios: GPIO line phandle to the line indicating "down"
	- left-gpios: GPIO line phandle to the line indicating "left"
	- right-gpios: GPIO line phandle to the line indicating "right"

Optional properties:
	- button-left-gpios: GPIO line handle to the left mouse button
	- button-middle-gpios: GPIO line handle to the middle mouse button
	- button-right-gpios: GPIO line handle to the right mouse button
Example:

#include <dt-bindings/gpio/gpio.h>

gpio-mouse {
	compatible = "gpio-mouse";
	scan-interval-ms = <50>;
	up-gpios = <&gpio0 0 GPIO_ACTIVE_LOW>;
	down-gpios = <&gpio0 1 GPIO_ACTIVE_LOW>;
	left-gpios = <&gpio0 2 GPIO_ACTIVE_LOW>;
	right-gpios = <&gpio0 3 GPIO_ACTIVE_LOW>;
	button-left-gpios = <&gpio0 4 GPIO_ACTIVE_LOW>;
	button-middle-gpios = <&gpio0 5 GPIO_ACTIVE_LOW>;
	button-right-gpios = <&gpio0 6 GPIO_ACTIVE_LOW>;
};
+68 −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/gpio-mouse.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: GPIO attached mouse

description: |
  This simply uses standard GPIO handles to define a simple mouse connected
  to 5-7 GPIO lines.

maintainers:
  - Anshul Dalal <anshulusr@gmail.com>

properties:
  compatible:
    const: gpio-mouse

  scan-interval-ms:
    maxItems: 1

  up-gpios:
    maxItems: 1

  down-gpios:
    maxItems: 1

  left-gpios:
    maxItems: 1

  right-gpios:
    maxItems: 1

  button-left-gpios:
    maxItems: 1

  button-middle-gpios:
    maxItems: 1

  button-right-gpios:
    maxItems: 1

required:
  - compatible
  - scan-interval-ms
  - up-gpios
  - down-gpios
  - left-gpios
  - right-gpios

additionalProperties: false

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

    gpio-mouse {
        compatible = "gpio-mouse";
        scan-interval-ms = <50>;
        up-gpios = <&gpio0 0 GPIO_ACTIVE_LOW>;
        down-gpios = <&gpio0 1 GPIO_ACTIVE_LOW>;
        left-gpios = <&gpio0 2 GPIO_ACTIVE_LOW>;
        right-gpios = <&gpio0 3 GPIO_ACTIVE_LOW>;
        button-left-gpios = <&gpio0 4 GPIO_ACTIVE_LOW>;
        button-middle-gpios = <&gpio0 5 GPIO_ACTIVE_LOW>;
        button-right-gpios = <&gpio0 6 GPIO_ACTIVE_LOW>;
    };
+97 −1
Original line number Diff line number Diff line
@@ -9,6 +9,9 @@ title: Azoteq IQS269A Capacitive Touch Controller
maintainers:
  - Jeff LaBundy <jeff@labundy.com>

allOf:
  - $ref: input.yaml#

description: |
  The Azoteq IQS269A is an 8-channel capacitive touch controller that features
  additional Hall-effect and inductive sensing capabilities.
@@ -17,7 +20,10 @@ description: |

properties:
  compatible:
    const: azoteq,iqs269a
    enum:
      - azoteq,iqs269a
      - azoteq,iqs269a-00
      - azoteq,iqs269a-d0

  reg:
    maxItems: 1
@@ -204,6 +210,73 @@ properties:
    default: 1
    description: Specifies the slider coordinate filter strength.

  azoteq,touch-hold-ms:
    multipleOf: 256
    minimum: 256
    maximum: 65280
    default: 5120
    description:
      Specifies the length of time (in ms) for which the channel selected by
      'azoteq,gpio3-select' must be held in a state of touch in order for an
      approximately 60-ms pulse to be asserted on the GPIO4 pin.

  linux,keycodes:
    minItems: 1
    maxItems: 8
    description: |
      Specifies the numeric keycodes associated with each available gesture in
      the following order (enter 0 for unused gestures):
      0: Slider 0 tap
      1: Slider 0 hold
      2: Slider 0 positive flick or swipe
      3: Slider 0 negative flick or swipe
      4: Slider 1 tap
      5: Slider 1 hold
      6: Slider 1 positive flick or swipe
      7: Slider 1 negative flick or swipe

  azoteq,gesture-swipe:
    type: boolean
    description:
      Directs the device to interpret axial gestures as a swipe (finger remains
      on slider) instead of a flick (finger leaves slider).

  azoteq,timeout-tap-ms:
    multipleOf: 16
    minimum: 0
    maximum: 4080
    default: 400
    description:
      Specifies the length of time (in ms) within which a slider touch must be
      released in order to be interpreted as a tap. Default and maximum values
      as well as step size are reduced by a factor of 4 with device version 2.

  azoteq,timeout-swipe-ms:
    multipleOf: 16
    minimum: 0
    maximum: 4080
    default: 2000
    description:
      Specifies the length of time (in ms) within which an axial gesture must be
      completed in order to be interpreted as a flick or swipe. Default and max-
      imum values as well as step size are reduced by a factor of 4 with device
      version 2.

  azoteq,thresh-swipe:
    $ref: /schemas/types.yaml#/definitions/uint32
    minimum: 0
    maximum: 255
    default: 128
    description:
      Specifies the number of points across which an axial gesture must travel
      in order to be interpreted as a flick or swipe.

dependencies:
  azoteq,gesture-swipe: ["linux,keycodes"]
  azoteq,timeout-tap-ms: ["linux,keycodes"]
  azoteq,timeout-swipe-ms: ["linux,keycodes"]
  azoteq,thresh-swipe: ["linux,keycodes"]

patternProperties:
  "^channel@[0-7]$":
    type: object
@@ -454,6 +527,21 @@ patternProperties:

    additionalProperties: false

if:
  properties:
    compatible:
      contains:
        enum:
          - azoteq,iqs269a-d0
then:
  patternProperties:
    "^channel@[0-7]$":
      properties:
        azoteq,slider1-select: false
else:
  properties:
    azoteq,touch-hold-ms: false

required:
  - compatible
  - reg
@@ -484,6 +572,14 @@ examples:
                    azoteq,hall-enable;
                    azoteq,suspend-mode = <2>;

                    linux,keycodes = <KEY_PLAYPAUSE>,
                                     <KEY_STOPCD>,
                                     <KEY_NEXTSONG>,
                                     <KEY_PREVIOUSSONG>;

                    azoteq,timeout-tap-ms = <400>;
                    azoteq,timeout-swipe-ms = <800>;

                    channel@0 {
                            reg = <0x0>;

Loading