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

 - a new driver for the Azoteq IQS7222A/B/C capacitive touch controller

 - a new driver for Raspberry Pi Sense HAT joystick

 - sun4i-lradc-keys gained support of R329 and D1 variants, plus it can
   be now used as a wakeup source

 - pm8941-pwrkey can now properly handle PON GEN3 variants; the driver
   also implements software debouncing and has a workaround for missing
   key press events

 - assorted driver fixes and cleanups

* tag 'input-for-v5.19-rc0' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (29 commits)
  Input: stmfts - do not leave device disabled in stmfts_input_open
  Input: gpio-keys - cancel delayed work only in case of GPIO
  Input: cypress_ps2 - fix typo in comment
  Input: vmmouse - disable vmmouse before entering suspend mode
  dt-bindings: google,cros-ec-keyb: Fixup bad compatible match
  Input: cros-ec-keyb - allow skipping keyboard registration
  dt-bindings: google,cros-ec-keyb: Introduce switches only compatible
  Input: psmouse-smbus - avoid flush_scheduled_work() usage
  Input: bcm-keypad - remove unneeded NULL check before clk_disable_unprepare
  Input: sparcspkr - fix refcount leak in bbc_beep_probe
  Input: sun4i-lradc-keys - add support for R329 and D1
  Input: sun4i-lradc-keys - add optional clock/reset support
  dt-bindings: input: sun4i-lradc-keys: Add R329 and D1 compatibles
  Input: sun4i-lradc-keys - add wakeup support
  Input: pm8941-pwrkey - simulate missed key press events
  Input: pm8941-pwrkey - add software key press debouncing support
  Input: pm8941-pwrkey - add support for PON GEN3 base addresses
  Input: pm8941-pwrkey - fix error message
  Input: synaptics-rmi4 - remove unnecessary flush_workqueue()
  Input: ep93xx_keypad - use devm_platform_ioremap_resource() helper
  ...
parents 47f15561 1e90e262
Loading
Loading
Loading
Loading
+22 −0
Original line number Diff line number Diff line
@@ -18,10 +18,20 @@ properties:
      - items:
          - const: allwinner,sun50i-a64-lradc
          - const: allwinner,sun8i-a83t-r-lradc
      - const: allwinner,sun50i-r329-lradc
      - items:
          - const: allwinner,sun20i-d1-lradc
          - const: allwinner,sun50i-r329-lradc

  reg:
    maxItems: 1

  clocks:
    maxItems: 1

  resets:
    maxItems: 1

  interrupts:
    maxItems: 1

@@ -68,6 +78,18 @@ required:
  - interrupts
  - vref-supply

if:
  properties:
    compatible:
      contains:
        enum:
          - allwinner,sun50i-r329-lradc

then:
  required:
    - clocks
    - resets

additionalProperties: false

examples:
+960 −0

File added.

Preview size limit exceeded, changes collapsed.

+30 −6
Original line number Diff line number Diff line
@@ -15,13 +15,15 @@ description: |
  Google's ChromeOS EC Keyboard is a simple matrix keyboard
  implemented on a separate EC (Embedded Controller) device. It provides
  a message for reading key scans from the EC. These are then converted
  into keycodes for processing by the kernel.

allOf:
  - $ref: "/schemas/input/matrix-keymap.yaml#"
  into keycodes for processing by the kernel. This device also supports
  switches/buttons like power and volume buttons.

properties:
  compatible:
    oneOf:
      - description: ChromeOS EC with only buttons/switches
        const: google,cros-ec-keyb-switches
      - description: ChromeOS EC with keyboard and possibly buttons/switches
        const: google,cros-ec-keyb

  google,needs-ghost-filter:
@@ -42,15 +44,31 @@ properties:
      where the lower 16 bits are reserved. This property is specified only
      when the keyboard has a custom design for the top row keys.

dependencies:
  function-row-phsymap: [ 'linux,keymap' ]
  google,needs-ghost-filter: [ 'linux,keymap' ]

required:
  - compatible

if:
  properties:
    compatible:
      contains:
        const: google,cros-ec-keyb
then:
  $ref: "/schemas/input/matrix-keymap.yaml#"
  required:
    - keypad,num-rows
    - keypad,num-columns
    - linux,keymap

unevaluatedProperties: false

examples:
  - |
    #include <dt-bindings/input/input.h>
    cros-ec-keyb {
    keyboard-controller {
        compatible = "google,cros-ec-keyb";
        keypad,num-rows = <8>;
        keypad,num-columns = <13>;
@@ -114,3 +132,9 @@ examples:
            /* UP      LEFT    */
            0x070b0067 0x070c0069>;
    };
  - |
    /* No matrix keyboard, just buttons/switches */
    keyboard-controller {
        compatible = "google,cros-ec-keyb-switches";
    };
...
+1 −3
Original line number Diff line number Diff line
@@ -1793,8 +1793,6 @@ EXPORT_SYMBOL(input_reset_device);

static int input_inhibit_device(struct input_dev *dev)
{
	int ret = 0;

	mutex_lock(&dev->mutex);

	if (dev->inhibited)
@@ -1816,7 +1814,7 @@ static int input_inhibit_device(struct input_dev *dev)

out:
	mutex_unlock(&dev->mutex);
	return ret;
	return 0;
}

static int input_uninhibit_device(struct input_dev *dev)
+11 −0
Original line number Diff line number Diff line
@@ -399,4 +399,15 @@ config JOYSTICK_N64
	  Say Y here if you want enable support for the four
	  built-in controller ports on the Nintendo 64 console.

config JOYSTICK_SENSEHAT
	tristate "Raspberry Pi Sense HAT joystick"
	depends on INPUT && I2C
	select MFD_SIMPLE_MFD_I2C
	help
	  Say Y here if you want to enable the driver for the
	  the Raspberry Pi Sense HAT.

	  To compile this driver as a module, choose M here: the
	  module will be called sensehat_joystick.

endif
Loading