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

 - support for game controllers requiring delayed initialization
   packets, such as ByoWave Proteus, in xpad driver

 - a change to atkbd driver to not reset the keyboard on Loongson
   devices

 - tweaks to gpio-keys and matrix_keypad drivers

 - fixes to documentation for Amiga joysticks

 - a fix to ims-pcu driver to better handle malformed firmware

* tag 'input-for-v6.16-rc0' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
  Input: ims-pcu - check record size in ims_pcu_flash_firmware()
  Input: gpio-keys - fix possible concurrent access in gpio_keys_irq_timer()
  Input: gpio-keys - fix a sleep while atomic with PREEMPT_RT
  Input: amijoy - make headings compliant w/ guidelines in documentation
  Input: amijoy - fix grammar in documentation
  Input: amijoy - fix Amiga 4-joystick adapter pinout in documentation
  Input: amijoy - fix broken table formatting in documentation
  Input: atkbd - do not reset keyboard by default on Loongson
  Input: xpad - send LED and auth done packets to all Xbox One controllers
  Input: xpad - add the ByoWave Proteus controller
  Input: xpad - allow delaying init packets
  MAINTAINERS: update dlg,da72??.txt to yaml
  dt-bindings: input: convert dlg,da7280.txt to dt-schema
  dt-bindings: input: touchscreen: edt-ft5x06: use unevaluatedProperties
  Input: snvs_pwrkey - support power-off-time-sec
  dt-bindings: crypto: fsl,sec-v4.0-mon: Add "power-off-time-sec"
  Input: matrix_keypad - detect change during scan
  Input: matrix_keypad - add function for reading row state
parents 4c3b7df7 4f978603
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -83,6 +83,8 @@ properties:
      by SNVS ONOFF, the driver can report the status of POWER key and wakeup
      system if pressed after system suspend.

    $ref: /schemas/input/input.yaml

    properties:
      compatible:
        const: fsl,sec-v4.0-pwrkey
@@ -111,6 +113,9 @@ properties:
        maxItems: 1
        default: 116

      power-off-time-sec:
        enum: [0, 5, 10, 15]

    required:
      - compatible
      - interrupts
+0 −108
Original line number Diff line number Diff line
Dialog Semiconductor DA7280 Haptics bindings

Required properties:
- compatible: Should be "dlg,da7280".
- reg: Specifies the I2C slave address.

- interrupt-parent : Specifies the phandle of the interrupt controller to
  which the IRQs from DA7280 are delivered to.

- dlg,actuator-type: Set Actuator type. it should be one of:
  "LRA" - Linear Resonance Actuator type.
  "ERM-bar" - Bar type Eccentric Rotating Mass.
  "ERM-coin" - Coin type Eccentric Rotating Mass.

- dlg,const-op-mode: Haptic operation mode for FF_CONSTANT.
  Possible values:
	1 - Direct register override(DRO) mode triggered by i2c(default),
	2 - PWM data source mode controlled by PWM duty,
- dlg,periodic-op-mode: Haptic operation mode for FF_PERIODIC.
  Possible values:
	1 - Register triggered waveform memory(RTWM) mode, the pattern
	    assigned to the PS_SEQ_ID played as much times as PS_SEQ_LOOP,
	2 - Edge triggered waveform memory(ETWM) mode, external GPI(N)
	    control are required to enable/disable and it needs to keep
	    device enabled by sending magnitude (X > 0),
	    the pattern is assigned to the GPI(N)_SEQUENCE_ID below.
	The default value is 1 for both of the operation modes.
	For more details, please see the datasheet.

- dlg,nom-microvolt: Nominal actuator voltage rating.
  Valid values: 0 - 6000000.
- dlg,abs-max-microvolt: Absolute actuator maximum voltage rating.
  Valid values: 0 - 6000000.
- dlg,imax-microamp: Actuator max current rating.
  Valid values: 0 - 252000.
  Default: 130000.
- dlg,impd-micro-ohms: the impedance of the actuator in micro ohms.
  Valid values: 0 - 1500000000.

Optional properties:
- pwms : phandle to the physical PWM(Pulse Width Modulation) device.
  PWM properties should be named "pwms". And number of cell is different
  for each pwm device.
  (See Documentation/devicetree/bindings/pwm/pwm.txt
   for further information relating to pwm properties)

- dlg,ps-seq-id: the PS_SEQ_ID(pattern ID in waveform memory inside chip)
  to play back when RTWM-MODE is enabled.
  Valid range: 0 - 15.
- dlg,ps-seq-loop: the PS_SEQ_LOOP, Number of times the pre-stored sequence
  pointed to by PS_SEQ_ID or GPI(N)_SEQUENCE_ID is repeated.
  Valid range: 0 - 15.
- dlg,gpiN-seq-id: the GPI(N)_SEQUENCE_ID, pattern to play
  when gpi0 is triggered, 'N' must be 0 - 2.
  Valid range: 0 - 15.
- dlg,gpiN-mode: the pattern mode which can select either
  "Single-pattern" or "Multi-pattern", 'N' must be 0 - 2.
- dlg,gpiN-polarity: gpiN polarity which can be chosen among
  "Rising-edge", "Falling-edge" and "Both-edge",
  'N' must be 0 - 2
  Haptic will work by this edge option in case of ETWM mode.

- dlg,resonant-freq-hz: use in case of LRA.
  the frequency range: 50 - 300.
  Default: 205.

- dlg,bemf-sens-enable: Enable for internal loop computations.
- dlg,freq-track-enable: Enable for resonant frequency tracking.
- dlg,acc-enable: Enable for active acceleration.
- dlg,rapid-stop-enable: Enable for rapid stop.
- dlg,amp-pid-enable: Enable for the amplitude PID.
- dlg,mem-array: Customized waveform memory(patterns) data downloaded to
  the device during initialization. This is an array of 100 values(u8).

For further information, see device datasheet.

======

Example:

	haptics: da7280-haptics@4a {
		compatible = "dlg,da7280";
		reg = <0x4a>;
		interrupt-parent = <&gpio6>;
		interrupts = <11 IRQ_TYPE_LEVEL_LOW>;
		dlg,actuator-type = "LRA";
		dlg,dlg,const-op-mode = <1>;
		dlg,dlg,periodic-op-mode = <1>;
		dlg,nom-microvolt = <2000000>;
		dlg,abs-max-microvolt = <2000000>;
		dlg,imax-microamp = <170000>;
		dlg,resonant-freq-hz = <180>;
		dlg,impd-micro-ohms = <10500000>;
		dlg,freq-track-enable;
		dlg,rapid-stop-enable;
		dlg,mem-array = <
		  0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
		  0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
		  0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
		  0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
		  0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
		  0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
		  0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
		  0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
		  0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
		  0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
		>;
	};
+248 −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/dlg,da7280.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Dialog Semiconductor DA7280 Low Power High-Definition Haptic Driver

maintainers:
  - Roy Im <roy.im.opensource@diasemi.com>

properties:
  compatible:
    const: dlg,da7280

  reg:
    maxItems: 1
    description: I2C address of the device.

  interrupts:
    maxItems: 1

  dlg,actuator-type:
    enum:
      - LRA # Linear Resonance Actuator type
      - ERM-bar # Bar type Eccentric Rotating Mass
      - ERM-coin # Coin type Eccentric Rotating Mass

  dlg,const-op-mode:
    $ref: /schemas/types.yaml#/definitions/uint32
    enum:
      - 1 # Direct register override (DRO) mode triggered by i2c (default)
      - 2 # PWM data source mode controlled by PWM duty
    description:
      Haptic operation mode for FF_CONSTANT

  dlg,periodic-op-mode:
    $ref: /schemas/types.yaml#/definitions/uint32
    enum:
      - 1 # Register triggered waveform memory(RTWM) mode, the pattern
          # assigned to the PS_SEQ_ID played as much times as PS_SEQ_LOOP
      - 2 # Edge triggered waveform memory(ETWM) mode, external GPI(N)
          # control are required to enable/disable and it needs to keep
          # device enabled by sending magnitude (X > 0),
          # the pattern is assigned to the GPI(N)_SEQUENCE_ID below
    default: 1
    description:
      Haptic operation mode for FF_PERIODIC.
      The default value is 1 for both of the operation modes.
      For more details, please see the datasheet

  dlg,nom-microvolt:
    minimum: 0
    maximum: 6000000
    description:
      Nominal actuator voltage rating

  dlg,abs-max-microvolt:
    minimum: 0
    maximum: 6000000
    description:
      Absolute actuator maximum voltage rating

  dlg,imax-microamp:
    minimum: 0
    maximum: 252000
    default: 130000
    description:
      Actuator max current rating

  dlg,impd-micro-ohms:
    minimum: 0
    maximum: 1500000000
    description:
      Impedance of the actuator

  pwms:
    maxItems: 1

  dlg,ps-seq-id:
    $ref: /schemas/types.yaml#/definitions/uint32
    minimum: 0
    maximum: 15
    description:
      The PS_SEQ_ID(pattern ID in waveform memory inside chip)
      to play back when RTWM-MODE is enabled

  dlg,ps-seq-loop:
    $ref: /schemas/types.yaml#/definitions/uint32
    minimum: 0
    maximum: 15
    description:
      The PS_SEQ_LOOP, Number of times the pre-stored sequence pointed to by
      PS_SEQ_ID or GPI(N)_SEQUENCE_ID is repeated

  dlg,gpi0-seq-id:
    $ref: /schemas/types.yaml#/definitions/uint32
    minimum: 0
    maximum: 15
    description:
      the GPI0_SEQUENCE_ID, pattern to play when gpi0 is triggered

  dlg,gpi1-seq-id:
    $ref: /schemas/types.yaml#/definitions/uint32
    minimum: 0
    maximum: 15
    description:
      the GPI1_SEQUENCE_ID, pattern to play when gpi1 is triggered

  dlg,gpi2-seq-id:
    $ref: /schemas/types.yaml#/definitions/uint32
    minimum: 0
    maximum: 15
    description:
      the GPI2_SEQUENCE_ID, pattern to play when gpi2 is triggered

  dlg,gpi0-mode:
    enum:
      - Single-pattern
      - Multi-pattern
    description:
      Pattern mode for gpi0

  dlg,gpi1-mode:
    enum:
      - Single-pattern
      - Multi-pattern
    description:
      Pattern mode for gpi1

  dlg,gpi2-mode:
    enum:
      - Single-pattern
      - Multi-pattern
    description:
      Pattern mode for gpi2

  dlg,gpi0-polarity:
    enum:
      - Rising-edge
      - Falling-edge
      - Both-edge
    description:
      gpi0 polarity, Haptic will work by this edge option in case of ETWM mode

  dlg,gpi1-polarity:
    enum:
      - Rising-edge
      - Falling-edge
      - Both-edge
    description:
      gpi1 polarity, Haptic will work by this edge option in case of ETWM mode

  dlg,gpi2-polarity:
    enum:
      - Rising-edge
      - Falling-edge
      - Both-edge
    description:
      gpi2 polarity, Haptic will work by this edge option in case of ETWM mode

  dlg,resonant-freq-hz:
    minimum: 50
    maximum: 300
    default: 205

  dlg,bemf-sens-enable:
    $ref: /schemas/types.yaml#/definitions/flag
    description:
      Enable for internal loop computations

  dlg,freq-track-enable:
    $ref: /schemas/types.yaml#/definitions/flag
    description:
      Enable for resonant frequency tracking

  dlg,acc-enable:
    $ref: /schemas/types.yaml#/definitions/flag
    description:
      Enable for active acceleration

  dlg,rapid-stop-enable:
    $ref: /schemas/types.yaml#/definitions/flag
    description:
      Enable for rapid stop

  dlg,amp-pid-enable:
    $ref: /schemas/types.yaml#/definitions/flag
    description:
      Enable for the amplitude PID

  dlg,mem-array:
    $ref: /schemas/types.yaml#/definitions/uint32-array
    minItems: 100
    description:
      Customized waveform memory (patterns) data downloaded to the device during initialization.
      Each entry value must be included between 0 and 255.

required:
  - compatible
  - reg
  - interrupts
  - dlg,actuator-type
  - dlg,const-op-mode
  - dlg,periodic-op-mode
  - dlg,nom-microvolt
  - dlg,abs-max-microvolt
  - dlg,imax-microamp
  - dlg,impd-micro-ohms

additionalProperties: false

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

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

        haptics@4a {
            compatible = "dlg,da7280";
            reg = <0x4a>;
            interrupt-parent = <&gpio6>;
            interrupts = <11 IRQ_TYPE_LEVEL_LOW>;
            dlg,actuator-type = "LRA";
            dlg,const-op-mode = <1>;
            dlg,periodic-op-mode = <1>;
            dlg,nom-microvolt = <2000000>;
            dlg,abs-max-microvolt = <2000000>;
            dlg,imax-microamp = <170000>;
            dlg,resonant-freq-hz = <180>;
            dlg,impd-micro-ohms = <10500000>;
            dlg,freq-track-enable;
            dlg,rapid-stop-enable;
            dlg,mem-array = <0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
                             0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
                             0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
                             0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
                             0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
                             0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
                             0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
                             0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
                             0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
                             0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00>;
        };
    };
+1 −8
Original line number Diff line number Diff line
@@ -103,16 +103,9 @@ properties:
    minimum: 0
    maximum: 255

  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
unevaluatedProperties: false

required:
  - compatible
+67 −58
Original line number Diff line number Diff line
~~~~~~~~~~~~~~~~~~~~~~~~~
Amiga joystick extensions
~~~~~~~~~~~~~~~~~~~~~~~~~
===============
Amiga joysticks
===============

Pinouts
=======

Amiga 4-joystick parport extension
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Amiga 4-joystick parallel port extension
----------------------------------------

Parallel port pins:


=====  ======== ====   ==========
Pin    Meaning  Pin    Meaning
=====  ======== ====   ==========
@@ -17,11 +18,11 @@ Pin Meaning Pin Meaning
 4     Left1	 8     Left2
 5     Right1	 9     Right2
13     Fire1	11     Fire2
18     Gnd1	18     Gnd2
19     Gnd1	18     Gnd2
=====  ======== ====   ==========

Amiga digital joystick pinout
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Amiga digital joystick
----------------------

=== ============
Pin Meaning
@@ -37,8 +38,8 @@ Pin Meaning
9   Thumb button
=== ============

Amiga mouse pinout
~~~~~~~~~~~~~~~~~~
Amiga mouse
-----------

=== ============
Pin Meaning
@@ -54,8 +55,8 @@ Pin Meaning
9   Right button
=== ============

Amiga analog joystick pinout
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Amiga analog joystick
---------------------

=== ==============
Pin Meaning
@@ -71,8 +72,8 @@ Pin Meaning
9   Analog Y
=== ==============

Amiga lightpen pinout
~~~~~~~~~~~~~~~~~~~~~
Amiga lightpen
--------------

=== =============
Pin Meaning
@@ -88,14 +89,18 @@ Pin Meaning
9   Stylus button
=== =============

-------------------------------------------------------------------------------
Register addresses
==================

======== === ==== ==== ====== ========================================
JOY0DAT/JOY1DAT
---------------

======== === ==== ==== ====== ===========================================
NAME     rev ADDR type chip   Description
======== === ==== ==== ====== ========================================
JOY0DAT      00A   R   Denise Joystick-mouse 0 data (left vert, horiz)
JOY1DAT      00C   R   Denise Joystick-mouse 1 data (right vert,horiz)
======== === ==== ==== ====== ========================================
======== === ==== ==== ====== ===========================================
JOY0DAT      00A   R   Denise Joystick-mouse 0 data (left vert., horiz.)
JOY1DAT      00C   R   Denise Joystick-mouse 1 data (right vert., horiz.)
======== === ==== ==== ====== ===========================================

        These addresses each read a 16 bit register. These in turn
        are loaded from the MDAT serial stream and are clocked in on
@@ -123,7 +128,7 @@ JOY1DAT Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0 X7 X6 X5 X4 X3 X2 X1 X0
        clocked by 2 of the signals input from the mouse serial
        stream. Starting with first bit received:

         +-------------------+-----------------------------------------+
         +--------+----------+-----------------------------------------+
         | Serial | Bit Name | Description                             |
         +========+==========+=========================================+
         |   0    | M0H      | JOY0DAT Horizontal Clock                |
@@ -160,7 +165,8 @@ JOY1DAT Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0 X7 X6 X5 X4 X3 X2 X1 X0
         | Right      |  4   | X1                              |
         +------------+------+---------------------------------+

-------------------------------------------------------------------------------
JOYTEST
-------

========  === ==== ==== ====== =================================================
NAME      rev ADDR type chip    Description
@@ -177,14 +183,15 @@ JOYTEST 036 W Denise Write to all 4 joystick-mouse counters at once.
  JOYxDAT  Y7  Y6  Y5  Y4  Y3  Y2  xx  xx     X7  X6  X5  X4  X3  X2  xx  xx
========= === === === === === === === === ====== === === === === === === ===

-------------------------------------------------------------------------------
POT0DAT/POT1DAT
---------------

======= === ==== ==== ====== ========================================
======= === ==== ==== ====== ===========================================
NAME    rev ADDR type chip   Description
======= === ==== ==== ====== ========================================
POT0DAT  h  012   R   Paula  Pot counter data left pair (vert, horiz)
POT1DAT  h  014   R   Paula  Pot counter data right pair (vert,horiz)
======= === ==== ==== ====== ========================================
======= === ==== ==== ====== ===========================================
POT0DAT  h  012   R   Paula  Pot counter data left pair (vert., horiz.)
POT1DAT  h  014   R   Paula  Pot counter data right pair (vert., horiz.)
======= === ==== ==== ====== ===========================================

        These addresses each read a pair of 8 bit pot counters.
        (4 counters total). The bit assignment for both
@@ -213,12 +220,13 @@ POT1DAT h 014 R Paula Pot counter data right pair (vert,horiz)
         +-------+------+-----+-----+-------+

         With normal (NTSC or PAL) horiz. line rate, the pots will
         give a full scale (FF) reading with about 500kohms in one
         frame time. With proportionally faster horiz line times,
         give a full scale (FF) reading with about 500k ohm in one
         frame time. With proportionally faster horiz. line times,
         the counters will count proportionally faster.
         This should be noted when doing variable beam displays.

-------------------------------------------------------------------------------
POTGO
-----

====== === ==== ==== ====== ================================================
NAME   rev ADDR type chip   Description
@@ -227,7 +235,8 @@ POTGO 034 W Paula Pot port (4 bit) bi-direction and data, and pot
			    counter start.
====== === ==== ==== ====== ================================================

-------------------------------------------------------------------------------
POTINP
------

====== === ==== ==== ====== ================================================
NAME   rev ADDR type chip   Description
@@ -238,26 +247,26 @@ POTINP 016 R Paula Pot pin data read
        This register controls a 4 bit bi-direction I/O port
        that shares the same 4 pins as the 4 pot counters above.

         +-------+----------+---------------------------------------------+
         +-------+----------+----------------------------------------------+
         | BIT#  | FUNCTION | DESCRIPTION                                  |
         +=======+==========+=============================================+
         +=======+==========+==============================================+
         | 15    | OUTRY    | Output enable for Paula pin 33               |
         +-------+----------+---------------------------------------------+
         +-------+----------+----------------------------------------------+
         | 14    | DATRY    | I/O data Paula pin 33                        |
         +-------+----------+---------------------------------------------+
         +-------+----------+----------------------------------------------+
         | 13    | OUTRX    | Output enable for Paula pin 32               |
         +-------+----------+---------------------------------------------+
         +-------+----------+----------------------------------------------+
         | 12    | DATRX    | I/O data Paula pin 32                        |
         +-------+----------+---------------------------------------------+
         +-------+----------+----------------------------------------------+
         | 11    | OUTLY    | Out put enable for Paula pin 36              |
         +-------+----------+---------------------------------------------+
         +-------+----------+----------------------------------------------+
         | 10    | DATLY    | I/O data Paula pin 36                        |
         +-------+----------+---------------------------------------------+
         +-------+----------+----------------------------------------------+
         | 09    | OUTLX    | Output enable for Paula pin 35               |
         +-------+----------+---------------------------------------------+
         +-------+----------+----------------------------------------------+
         | 08    | DATLX    | I/O data  Paula pin 35                       |
         +-------+----------+---------------------------------------------+
         +-------+----------+----------------------------------------------+
         | 07-01 |   X      | Not used                                     |
         +-------+----------+---------------------------------------------+
         +-------+----------+----------------------------------------------+
         | 00    | START    | Start pots (dump capacitors, start counters) |
         +-------+----------+---------------------------------------------+
         +-------+----------+----------------------------------------------+
Loading