Skip to content

Commit 429e6c7

Browse files
committed
Merge tag 'input-for-v7.1-rc0' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
Pull input updates from Dmitry Torokhov: - a new charlieplex GPIO keypad driver - an update to aw86927 driver to support 86938 chip - an update for Chrome OS EC keyboard driver to support Fn-<key> keymap extension - an UAF fix in debugfs teardown in EDT touchscreen driver - a number of conversions for input drivers to use guard() and __free() cleanup primitives - several drivers for bus mice (inport, logibm) and other very old devices have been removed - OLPC HGPK PS/2 protocol has been removed as it's been broken and inactive for 10 something years - dedicated kpsmoused has been removed from psmouse driver - other assorted cleanups and fixups * tag 'input-for-v7.1-rc0' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (101 commits) Input: charlieplex_keypad - add GPIO charlieplex keypad dt-bindings: input: add GPIO charlieplex keypad dt-bindings: input: add settling-time-us common property dt-bindings: input: add debounce-delay-ms common property Input: imx_keypad - fix spelling mistake "Colums" -> "Columns" Input: edt-ft5x06 - fix use-after-free in debugfs teardown Input: ims-pcu - fix heap-buffer-overflow in ims_pcu_process_data() Input: ct82c710 - remove driver Input: mk712 - remove driver Input: logibm - remove driver Input: inport - remove driver Input: qt1070 - inline i2c_check_functionality check Input: qt1050 - inline i2c_check_functionality check Input: aiptek - validate raw macro indices before updating state Input: gf2k - skip invalid hat lookup values Input: xpad - add RedOctane Games vendor id Input: xpad - remove stale TODO and changelog header Input: usbtouchscreen - refactor endpoint lookup Input: aw86927 - add support for Awinic AW86938 dt-bindings: input: awinic,aw86927: Add Awinic AW86938 ...
2 parents 2e68039 + f4b369c commit 429e6c7

98 files changed

Lines changed: 1815 additions & 3374 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

Documentation/devicetree/bindings/auxdisplay/holtek,ht16k33.yaml

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ maintainers:
1010
- Robin van der Gracht <robin@protonic.nl>
1111

1212
allOf:
13+
- $ref: /schemas/input/input.yaml#
1314
- $ref: /schemas/input/matrix-keymap.yaml#
1415

1516
properties:
@@ -33,9 +34,7 @@ properties:
3334
interrupts:
3435
maxItems: 1
3536

36-
debounce-delay-ms:
37-
maxItems: 1
38-
description: Debouncing interval time in milliseconds
37+
debounce-delay-ms: true
3938

4039
linux,keymap: true
4140

Documentation/devicetree/bindings/input/awinic,aw86927.yaml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,12 @@ maintainers:
1111

1212
properties:
1313
compatible:
14-
const: awinic,aw86927
14+
oneOf:
15+
- const: awinic,aw86927
16+
- items:
17+
- enum:
18+
- awinic,aw86938
19+
- const: awinic,aw86927
1520

1621
reg:
1722
maxItems: 1

Documentation/devicetree/bindings/input/cirrus,ep9307-keypad.yaml

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ maintainers:
1010
- Alexander Sverdlin <alexander.sverdlin@gmail.com>
1111

1212
allOf:
13+
- $ref: input.yaml#
1314
- $ref: /schemas/input/matrix-keymap.yaml#
1415

1516
description:
@@ -37,10 +38,8 @@ properties:
3738
clocks:
3839
maxItems: 1
3940

40-
debounce-delay-ms:
41-
description: |
42-
Time in microseconds that key must be pressed or
43-
released for state change interrupt to trigger.
41+
# Time for state change interrupt to trigger
42+
debounce-delay-ms: true
4443

4544
cirrus,prescale:
4645
description: row/column counter pre-scaler load value
Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
5+
$id: http://devicetree.org/schemas/input/gpio-charlieplex-keypad.yaml#
6+
$schema: http://devicetree.org/meta-schemas/core.yaml#
7+
8+
title: GPIO charlieplex keypad
9+
10+
maintainers:
11+
- Hugo Villeneuve <hvilleneuve@dimonoff.com>
12+
13+
description: |
14+
The charlieplex keypad supports N^2)-N different key combinations (where N is
15+
the number of I/O lines). Key presses and releases are detected by configuring
16+
only one line as output at a time, and reading other line states. This process
17+
is repeated for each line. Diodes are required to ensure current flows in only
18+
one direction between any pair of pins, as well as pull-up or pull-down
19+
resistors on all I/O lines.
20+
This mechanism doesn't allow to detect simultaneous key presses.
21+
22+
Wiring example for 3 lines keyboard with 6 switches and 3 diodes (pull-up/down
23+
resistors not shown but needed on L0, L1 and L2):
24+
25+
L0 --+---------------------+----------------------+
26+
| | |
27+
L1 -------+-----------+---------------------+ |
28+
| | | | | |
29+
L2 -------------+----------------+-----+ | |
30+
| | | | | | | | |
31+
| | | | | | | | |
32+
| S1 \ S2 \ | S3 \ S4 \ | S5 \ S6 \
33+
| | | | | | | | |
34+
| +--+--+ | +--+--+ | +--+--+
35+
| | | | | |
36+
| D1 v | D2 v | D3 v
37+
| - (k) | - (k) | - (k)
38+
| | | | | |
39+
+-------+ +-------+ +-------+
40+
41+
L: GPIO line
42+
S: switch
43+
D: diode (k indicates cathode)
44+
45+
allOf:
46+
- $ref: input.yaml#
47+
- $ref: /schemas/input/matrix-keymap.yaml#
48+
49+
properties:
50+
compatible:
51+
const: gpio-charlieplex-keypad
52+
53+
autorepeat: true
54+
55+
debounce-delay-ms:
56+
default: 5
57+
58+
line-gpios:
59+
description:
60+
List of GPIOs used as lines. The gpio specifier for this property
61+
depends on the gpio controller to which these lines are connected.
62+
63+
linux,keymap: true
64+
65+
poll-interval: true
66+
67+
settling-time-us: true
68+
69+
wakeup-source: true
70+
71+
required:
72+
- compatible
73+
- line-gpios
74+
- linux,keymap
75+
- poll-interval
76+
77+
additionalProperties: false
78+
79+
examples:
80+
- |
81+
#include <dt-bindings/gpio/gpio.h>
82+
#include <dt-bindings/input/input.h>
83+
84+
keyboard {
85+
compatible = "gpio-charlieplex-keypad";
86+
debounce-delay-ms = <20>;
87+
poll-interval = <5>;
88+
settling-time-us = <2>;
89+
90+
line-gpios = <&gpio2 25 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)
91+
&gpio2 26 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)
92+
&gpio2 27 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>;
93+
94+
/* MATRIX_KEY(output, input, key-code) */
95+
linux,keymap = <
96+
/*
97+
* According to wiring diagram above, if L1 is configured as
98+
* output and HIGH, and we detect a HIGH level on input L0,
99+
* then it means S1 is pressed: MATRIX_KEY(L1, L0, KEY...)
100+
*/
101+
MATRIX_KEY(1, 0, KEY_F1) /* S1 */
102+
MATRIX_KEY(2, 0, KEY_F2) /* S2 */
103+
MATRIX_KEY(0, 1, KEY_F3) /* S3 */
104+
MATRIX_KEY(2, 1, KEY_F4) /* S4 */
105+
MATRIX_KEY(1, 2, KEY_F5) /* S5 */
106+
MATRIX_KEY(0, 2, KEY_F6) /* S6 */
107+
>;
108+
};

Documentation/devicetree/bindings/input/gpio-matrix-keypad.yaml

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ description:
1818
report the event using GPIO interrupts to the cpu.
1919

2020
allOf:
21+
- $ref: input.yaml#
2122
- $ref: /schemas/input/matrix-keymap.yaml#
2223

2324
properties:
@@ -46,9 +47,7 @@ properties:
4647
Force GPIO polarity to active low.
4748
In the absence of this property GPIOs are treated as active high.
4849

49-
debounce-delay-ms:
50-
description: Debounce interval in milliseconds.
51-
default: 0
50+
debounce-delay-ms: true
5251

5352
col-scan-delay-us:
5453
description:

Documentation/devicetree/bindings/input/input.yaml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,14 @@ properties:
1414
description: Enable autorepeat when key is pressed and held down.
1515
type: boolean
1616

17+
debounce-delay-ms:
18+
description:
19+
Debounce delay in milliseconds. This is the time during which the key
20+
press or release signal must remain stable before it is considered valid.
21+
minimum: 0
22+
maximum: 999
23+
default: 0
24+
1725
linux,keycodes:
1826
description:
1927
Specifies an array of numeric keycode values to be used for reporting
@@ -58,6 +66,14 @@ properties:
5866
reset automatically. Device with key pressed reset feature can specify
5967
this property.
6068

69+
settling-time-us:
70+
description:
71+
Delay, in microseconds, when activating an output line/col/row before
72+
we can reliably read other input lines that maybe affected by this
73+
output. This can be the case for an output with a RC circuit that affects
74+
ramp-up/down times.
75+
default: 0
76+
6177
dependencies:
6278
linux,input-type: [ "linux,code" ]
6379

Documentation/devicetree/bindings/input/matrix-keymap.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@
44
$id: http://devicetree.org/schemas/input/matrix-keymap.yaml#
55
$schema: http://devicetree.org/meta-schemas/core.yaml#
66

7-
title: Common Key Matrices on Matrix-connected Key Boards
7+
title: Common Key Matrices on Matrix-connected Keyboards
88

99
maintainers:
1010
- Olof Johansson <olof@lixom.net>
1111

1212
description: |
13-
A simple common binding for matrix-connected key boards. Currently targeted at
13+
A simple common binding for matrix-connected keyboards. Currently targeted at
1414
defining the keys in the scope of linux key codes since that is a stable and
1515
standardized interface at this time.
1616

Documentation/devicetree/bindings/input/mediatek,mt6779-keypad.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ maintainers:
1010
- Mattijs Korpershoek <mkorpershoek@kernel.org>
1111

1212
allOf:
13+
- $ref: input.yaml#
1314
- $ref: /schemas/input/matrix-keymap.yaml#
1415

1516
description: |
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/input/parade,tc3408.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Parade TC3408 touchscreen controller
8+
9+
maintainers:
10+
- Langyan Ye <yelangyan@huaqin.corp-partner.google.com>
11+
12+
description: |
13+
Parade TC3408 is a touchscreen controller supporting the I2C-HID protocol.
14+
It requires a reset GPIO and two power supplies (3.3V and 1.8V).
15+
16+
allOf:
17+
- $ref: /schemas/input/touchscreen/touchscreen.yaml#
18+
19+
properties:
20+
compatible:
21+
const: parade,tc3408
22+
23+
reg:
24+
maxItems: 1
25+
26+
interrupts:
27+
maxItems: 1
28+
29+
reset-gpios:
30+
maxItems: 1
31+
32+
vcc33-supply:
33+
description: The 3.3V supply to the touchscreen.
34+
35+
vccio-supply:
36+
description: The 1.8V supply to the touchscreen.
37+
38+
required:
39+
- compatible
40+
- reg
41+
- interrupts
42+
- reset-gpios
43+
- vcc33-supply
44+
- vccio-supply
45+
46+
unevaluatedProperties: false
47+
48+
examples:
49+
- |
50+
#include <dt-bindings/gpio/gpio.h>
51+
#include <dt-bindings/interrupt-controller/irq.h>
52+
53+
i2c {
54+
#address-cells = <1>;
55+
#size-cells = <0>;
56+
57+
touchscreen: touchscreen@24 {
58+
compatible = "parade,tc3408";
59+
reg = <0x24>;
60+
61+
interrupt-parent = <&pio>;
62+
interrupts = <15 IRQ_TYPE_LEVEL_LOW>;
63+
64+
reset-gpios = <&pio 126 GPIO_ACTIVE_LOW>;
65+
vcc33-supply = <&pp3300_tchscr_x>;
66+
vccio-supply = <&pp1800_tchscr_report_disable>;
67+
};
68+
};

Documentation/devicetree/bindings/input/touchscreen/edt-ft5x06.yaml

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -33,19 +33,23 @@ allOf:
3333

3434
properties:
3535
compatible:
36-
enum:
37-
- edt,edt-ft5206
38-
- edt,edt-ft5306
39-
- edt,edt-ft5406
40-
- edt,edt-ft5506
41-
- evervision,ev-ft5726
42-
- focaltech,ft3518
43-
- focaltech,ft5426
44-
- focaltech,ft5452
45-
- focaltech,ft6236
46-
- focaltech,ft8201
47-
- focaltech,ft8716
48-
- focaltech,ft8719
36+
oneOf:
37+
- enum:
38+
- edt,edt-ft5206
39+
- edt,edt-ft5306
40+
- edt,edt-ft5406
41+
- edt,edt-ft5506
42+
- evervision,ev-ft5726
43+
- focaltech,ft3518
44+
- focaltech,ft5426
45+
- focaltech,ft5452
46+
- focaltech,ft6236
47+
- focaltech,ft8201
48+
- focaltech,ft8716
49+
- focaltech,ft8719
50+
- items:
51+
- const: focaltech,ft3519
52+
- const: focaltech,ft3518
4953

5054
reg:
5155
maxItems: 1

0 commit comments

Comments
 (0)