Skip to content

Commit 6e64f45

Browse files
committed
Merge tag 'input-for-v6.17-rc0' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
Pull input updates from Dmitry Torokhov: - updates to several drivers consuming GPIO APIs to use setters returning error codes - an infrastructure allowing to define "overlays" for touchscreens carving out regions implementing buttons and other elements from a bigger sensors and a corresponding update to st1232 driver - an update to AT/PS2 keyboard driver to map F13-F24 by default - Samsung keypad driver got a facelift - evdev input handler will now bind to all devices using EV_SYN event instead of abusing id->driver_info - two new sub-drivers implementing 1A (capacitive buttons) and 21 (forcepad button) functions in Synaptics RMI driver - support for polling mode in Goodix touchscreen driver - support for support for FocalTech FT8716 in edt-ft5x06 driver - support for MT6359 in mtk-pmic-keys driver - removal of pcf50633-input driver since platform it was used on is gone - new definitions for game controller "grip" buttons (BTN_GRIP*) and corresponding changes to xpad and hid-steam controller drivers - a new definition for "performance" key * tag 'input-for-v6.17-rc0' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (38 commits) HID: hid-steam: Use new BTN_GRIP* buttons Input: add keycode for performance mode key Input: max77693 - convert to atomic pwm operation Input: st1232 - add touch-overlay handling dt-bindings: input: touchscreen: st1232: add touch-overlay example Input: touch-overlay - add touchscreen overlay handling dt-bindings: touchscreen: add touch-overlay property Input: atkbd - correctly map F13 - F24 Input: xpad - use new BTN_GRIP* buttons Input: Add and document BTN_GRIP* Input: xpad - change buttons the D-Pad gets mapped as to BTN_DPAD_* Documentation: Fix capitalization of XBox -> Xbox Input: synaptics-rmi4 - add support for F1A dt-bindings: input: syna,rmi4: Document F1A function Input: synaptics-rmi4 - add support for Forcepads (F21) Input: mtk-pmic-keys - add support for MT6359 PMIC keys Input: remove special handling of id->driver_info when matching Input: evdev - switch matching to EV_SYN Input: samsung-keypad - use BIT() and GENMASK() where appropriate Input: samsung-keypad - use per-chip parameters ...
2 parents d244f9b + ab93e0d commit 6e64f45

Some content is hidden

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

41 files changed

+1295
-424
lines changed

Documentation/devicetree/bindings/input/syna,rmi4.yaml

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,24 @@ properties:
8989
required:
9090
- reg
9191

92+
rmi4-f1a@1a:
93+
type: object
94+
additionalProperties: false
95+
$ref: input.yaml#
96+
description:
97+
RMI4 Function 1A is for capacitive keys.
98+
99+
properties:
100+
reg:
101+
maxItems: 1
102+
103+
linux,keycodes:
104+
minItems: 1
105+
maxItems: 4
106+
107+
required:
108+
- reg
109+
92110
patternProperties:
93111
"^rmi4-f1[12]@1[12]$":
94112
type: object
@@ -201,6 +219,7 @@ allOf:
201219

202220
examples:
203221
- |
222+
#include <dt-bindings/input/linux-event-codes.h>
204223
#include <dt-bindings/interrupt-controller/irq.h>
205224
206225
i2c {
@@ -234,6 +253,7 @@ examples:
234253
235254
rmi4-f1a@1a {
236255
reg = <0x1a>;
256+
linux,keycodes = <KEY_BACK KEY_HOME KEY_MENU>;
237257
};
238258
};
239259
};

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ properties:
4343
- focaltech,ft5452
4444
- focaltech,ft6236
4545
- focaltech,ft8201
46+
- focaltech,ft8716
4647
- focaltech,ft8719
4748

4849
reg:

Documentation/devicetree/bindings/input/touchscreen/lpc32xx-tsc.txt

Lines changed: 0 additions & 16 deletions
This file was deleted.
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/input/touchscreen/nxp,lpc3220-tsc.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: NXP LPC32xx SoC Touchscreen Controller (TSC)
8+
9+
maintainers:
10+
- Frank Li <[email protected]>
11+
12+
properties:
13+
compatible:
14+
const: nxp,lpc3220-tsc
15+
16+
reg:
17+
maxItems: 1
18+
19+
clocks:
20+
maxItems: 1
21+
22+
interrupts:
23+
maxItems: 1
24+
25+
required:
26+
- compatible
27+
- reg
28+
- clocks
29+
- interrupts
30+
31+
additionalProperties: false
32+
33+
examples:
34+
- |
35+
#include <dt-bindings/clock/lpc32xx-clock.h>
36+
37+
touchscreen@40048000 {
38+
compatible = "nxp,lpc3220-tsc";
39+
reg = <0x40048000 0x1000>;
40+
interrupt-parent = <&mic>;
41+
interrupts = <39 0>;
42+
clocks = <&clk LPC32XX_CLK_ADC>;
43+
};

Documentation/devicetree/bindings/input/touchscreen/sitronix,st1232.yaml

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ unevaluatedProperties: false
3737

3838
examples:
3939
- |
40+
#include <dt-bindings/input/linux-event-codes.h>
4041
i2c {
4142
#address-cells = <1>;
4243
#size-cells = <0>;
@@ -46,5 +47,33 @@ examples:
4647
reg = <0x55>;
4748
interrupts = <2 0>;
4849
gpios = <&gpio1 166 0>;
50+
51+
touch-overlay {
52+
segment-0 {
53+
label = "Touchscreen";
54+
x-origin = <0>;
55+
x-size = <240>;
56+
y-origin = <40>;
57+
y-size = <280>;
58+
};
59+
60+
segment-1a {
61+
label = "Camera light";
62+
linux,code = <KEY_LIGHTS_TOGGLE>;
63+
x-origin = <40>;
64+
x-size = <40>;
65+
y-origin = <0>;
66+
y-size = <40>;
67+
};
68+
69+
segment-2a {
70+
label = "Power";
71+
linux,code = <KEY_POWER>;
72+
x-origin = <160>;
73+
x-size = <40>;
74+
y-origin = <0>;
75+
y-size = <40>;
76+
};
77+
};
4978
};
5079
};
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/input/touchscreen/ti.tsc2007.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Texas Instruments tsc2007 touchscreen controller
8+
9+
maintainers:
10+
- Frank Li <[email protected]>
11+
12+
properties:
13+
compatible:
14+
const: ti,tsc2007
15+
16+
reg:
17+
maxItems: 1
18+
19+
interrupts:
20+
maxItems: 1
21+
22+
ti,x-plate-ohms:
23+
description: X-plate resistance in ohms.
24+
25+
gpios: true
26+
27+
pendown-gpio: true
28+
29+
ti,max-rt:
30+
$ref: /schemas/types.yaml#/definitions/uint32
31+
description: maximum pressure.
32+
33+
ti,fuzzx:
34+
$ref: /schemas/types.yaml#/definitions/uint32
35+
description:
36+
specifies the absolute input fuzz x value.
37+
If set, it will permit noise in the data up to +- the value given to the fuzz
38+
parameter, that is used to filter noise from the event stream.
39+
40+
ti,fuzzy:
41+
$ref: /schemas/types.yaml#/definitions/uint32
42+
description: specifies the absolute input fuzz y value.
43+
44+
ti,fuzzz:
45+
$ref: /schemas/types.yaml#/definitions/uint32
46+
description: specifies the absolute input fuzz z value.
47+
48+
ti,poll-period:
49+
$ref: /schemas/types.yaml#/definitions/uint32
50+
description:
51+
how much time to wait (in milliseconds) before reading again the
52+
values from the tsc2007.
53+
54+
required:
55+
- compatible
56+
- reg
57+
- ti,x-plate-ohms
58+
59+
additionalProperties: false
60+
61+
examples:
62+
- |
63+
i2c {
64+
#address-cells = <1>;
65+
#size-cells = <0>;
66+
67+
touch@49 {
68+
compatible = "ti,tsc2007";
69+
reg = <0x49>;
70+
interrupt-parent = <&gpio4>;
71+
interrupts = <0x0 0x8>;
72+
gpios = <&gpio4 0 0>;
73+
ti,x-plate-ohms = <180>;
74+
};
75+
};

Documentation/devicetree/bindings/input/touchscreen/touchscreen.yaml

Lines changed: 119 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,125 @@ properties:
8787
touchscreen-y-plate-ohms:
8888
description: Resistance of the Y-plate in Ohms
8989

90+
touch-overlay:
91+
description: |
92+
List of nodes defining segments (touch areas) on the touchscreen.
93+
94+
This object can be used to describe a series of segments to restrict
95+
the region within touch events are reported or buttons with a specific
96+
functionality.
97+
98+
This is of special interest if the touchscreen is shipped with a physical
99+
overlay on top of it with a frame that hides some part of the original
100+
touchscreen area. Printed buttons on that overlay are also a typical
101+
use case.
102+
103+
A new touchscreen area is defined as a sub-node without a key code. If a
104+
key code is defined in the sub-node, it will be interpreted as a button.
105+
106+
The x-origin and y-origin properties of a touchscreen area define the
107+
offset of a new origin from where the touchscreen events are referenced.
108+
This offset is applied to the events accordingly. The x-size and y-size
109+
properties define the size of the touchscreen effective area.
110+
111+
The following example shows a new touchscreen area with the new origin
112+
(0',0') for the touch events generated by the device.
113+
114+
Touchscreen (full area)
115+
┌────────────────────────────────────────┐
116+
│ ┌───────────────────────────────┐ │
117+
│ │ │ │
118+
│ ├ y-size │ │
119+
│ │ │ │
120+
│ │ touchscreen area │ │
121+
│ │ (no key code) │ │
122+
│ │ │ │
123+
│ │ x-size │ │
124+
│ ┌└──────────────┴────────────────┘ │
125+
│(0',0') │
126+
┌└────────────────────────────────────────┘
127+
(0,0)
128+
129+
where (0',0') = (0+x-origin,0+y-origin)
130+
131+
Sub-nodes with key codes report the touch events on their surface as key
132+
events instead.
133+
134+
The following example shows a touchscreen with a single button on it.
135+
136+
Touchscreen (full area)
137+
┌───────────────────────────────────┐
138+
│ │
139+
│ │
140+
│ ┌─────────┐ │
141+
│ │button 0 │ │
142+
│ │KEY_POWER│ │
143+
│ └─────────┘ │
144+
│ │
145+
│ │
146+
┌└───────────────────────────────────┘
147+
(0,0)
148+
149+
Segments defining buttons and clipped toushcreen areas can be combined
150+
as shown in the following example.
151+
In that case only the events within the touchscreen area are reported
152+
as touch events. Events within the button areas report their associated
153+
key code. Any events outside the defined areas are ignored.
154+
155+
Touchscreen (full area)
156+
┌─────────┬──────────────────────────────┐
157+
│ │ │
158+
│ │ ┌───────────────────────┐ │
159+
│ button 0│ │ │ │
160+
│KEY_POWER│ │ │ │
161+
│ │ │ │ │
162+
├─────────┤ │ touchscreen area │ │
163+
│ │ │ (no key code) │ │
164+
│ │ │ │ │
165+
│ button 1│ │ │ │
166+
│ KEY_INFO│ ┌└───────────────────────┘ │
167+
│ │(0',0') │
168+
┌└─────────┴──────────────────────────────┘
169+
(0,0)
170+
171+
type: object
172+
173+
patternProperties:
174+
'^segment-':
175+
type: object
176+
description:
177+
Each segment is represented as a sub-node.
178+
properties:
179+
x-origin:
180+
description: horizontal origin of the node area
181+
$ref: /schemas/types.yaml#/definitions/uint32
182+
183+
y-origin:
184+
description: vertical origin of the node area
185+
$ref: /schemas/types.yaml#/definitions/uint32
186+
187+
x-size:
188+
description: horizontal resolution of the node area
189+
$ref: /schemas/types.yaml#/definitions/uint32
190+
191+
y-size:
192+
description: vertical resolution of the node area
193+
$ref: /schemas/types.yaml#/definitions/uint32
194+
195+
label:
196+
description: descriptive name of the segment
197+
$ref: /schemas/types.yaml#/definitions/string
198+
199+
linux,code: true
200+
201+
required:
202+
- x-origin
203+
- y-origin
204+
- x-size
205+
- y-size
206+
207+
unevaluatedProperties: false
208+
90209
dependencies:
91210
touchscreen-size-x: [ touchscreen-size-y ]
92211
touchscreen-size-y: [ touchscreen-size-x ]

Documentation/devicetree/bindings/input/touchscreen/tsc2007.txt

Lines changed: 0 additions & 39 deletions
This file was deleted.

0 commit comments

Comments
 (0)