Skip to content

Commit 8691c13

Browse files
committed
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
Pull input subsystem updates from Dmitry Torokhov: "You will get the following new drivers: - Qualcomm PM8941 power key drver - ChipOne icn8318 touchscreen controller driver - Broadcom iProc touchscreen and keypad drivers - Semtech SX8654 I2C touchscreen controller driver ALPS driver now supports newer SS4 devices; Elantech got a fix that should make it work on some ASUS laptops; and a slew of other enhancements and random fixes" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (51 commits) Input: alps - non interleaved V2 dualpoint has separate stick button bits Input: alps - fix touchpad buttons getting stuck when used with trackpoint Input: atkbd - document "no new force-release quirks" policy Input: ALPS - make alps_get_pkt_id_ss4_v2() and others static Input: ALPS - V7 devices can report 5-finger taps Input: ALPS - add support for SS4 touchpad devices Input: ALPS - refactor alps_set_abs_params_mt() Input: elantech - fix absolute mode setting on some ASUS laptops Input: atmel_mxt_ts - split out touchpad initialisation logic Input: atmel_mxt_ts - implement support for T100 touch object Input: cros_ec_keyb - fix clearing keyboard state on wakeup Input: gscps2 - drop pci_ids dependency Input: synaptics - allocate 3 slots to keep stability in image sensors Input: Revert "Revert "synaptics - use dmax in input_mt_assign_slots"" Input: MT - make slot assignment work for overcovered solutions mfd: tc3589x: enforce device-tree only mode Input: tc3589x - localize platform data Input: tsc2007 - Convert msecs to jiffies only once Input: edt-ft5x06 - remove EV_SYN event report Input: edt-ft5x06 - allow to setting the maximum axes value through the DT ...
2 parents c3a416a + 85a3685 commit 8691c13

Some content is hidden

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

59 files changed

+3965
-239
lines changed
Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
* Broadcom Keypad Controller device tree bindings
2+
3+
Broadcom Keypad controller is used to interface a SoC with a matrix-type
4+
keypad device. The keypad controller supports multiple row and column lines.
5+
A key can be placed at each intersection of a unique row and a unique column.
6+
The keypad controller can sense a key-press and key-release and report the
7+
event using a interrupt to the cpu.
8+
9+
This binding is based on the matrix-keymap binding with the following
10+
changes:
11+
12+
keypad,num-rows and keypad,num-columns are required.
13+
14+
Required SoC Specific Properties:
15+
- compatible: should be "brcm,bcm-keypad"
16+
17+
- reg: physical base address of the controller and length of memory mapped
18+
region.
19+
20+
- interrupts: The interrupt number to the cpu.
21+
22+
Board Specific Properties:
23+
- keypad,num-rows: Number of row lines connected to the keypad
24+
controller.
25+
26+
- keypad,num-columns: Number of column lines connected to the
27+
keypad controller.
28+
29+
- col-debounce-filter-period: The debounce period for the Column filter.
30+
31+
KEYPAD_DEBOUNCE_1_ms = 0
32+
KEYPAD_DEBOUNCE_2_ms = 1
33+
KEYPAD_DEBOUNCE_4_ms = 2
34+
KEYPAD_DEBOUNCE_8_ms = 3
35+
KEYPAD_DEBOUNCE_16_ms = 4
36+
KEYPAD_DEBOUNCE_32_ms = 5
37+
KEYPAD_DEBOUNCE_64_ms = 6
38+
KEYPAD_DEBOUNCE_128_ms = 7
39+
40+
- status-debounce-filter-period: The debounce period for the Status filter.
41+
42+
KEYPAD_DEBOUNCE_1_ms = 0
43+
KEYPAD_DEBOUNCE_2_ms = 1
44+
KEYPAD_DEBOUNCE_4_ms = 2
45+
KEYPAD_DEBOUNCE_8_ms = 3
46+
KEYPAD_DEBOUNCE_16_ms = 4
47+
KEYPAD_DEBOUNCE_32_ms = 5
48+
KEYPAD_DEBOUNCE_64_ms = 6
49+
KEYPAD_DEBOUNCE_128_ms = 7
50+
51+
- row-output-enabled: An optional property indicating whether the row or
52+
column is being used as output. If specified the row is being used
53+
as the output. Else defaults to column.
54+
55+
- pull-up-enabled: An optional property indicating the Keypad scan mode.
56+
If specified implies the keypad scan pull-up has been enabled.
57+
58+
- autorepeat: Boolean, Enable auto repeat feature of Linux input
59+
subsystem (optional).
60+
61+
- linux,keymap: The keymap for keys as described in the binding document
62+
devicetree/bindings/input/matrix-keymap.txt.
63+
64+
Example:
65+
#include "dt-bindings/input/input.h"
66+
67+
/ {
68+
keypad: keypad@180ac000 {
69+
/* Required SoC specific properties */
70+
compatible = "brcm,bcm-keypad";
71+
72+
/* Required Board specific properties */
73+
keypad,num-rows = <5>;
74+
keypad,num-columns = <5>;
75+
status = "okay";
76+
77+
linux,keymap = <MATRIX_KEY(0x00, 0x02, KEY_F) /* key_forward */
78+
MATRIX_KEY(0x00, 0x03, KEY_HOME) /* key_home */
79+
MATRIX_KEY(0x00, 0x04, KEY_M) /* key_message */
80+
MATRIX_KEY(0x01, 0x00, KEY_A) /* key_contacts */
81+
MATRIX_KEY(0x01, 0x01, KEY_1) /* key_1 */
82+
MATRIX_KEY(0x01, 0x02, KEY_2) /* key_2 */
83+
MATRIX_KEY(0x01, 0x03, KEY_3) /* key_3 */
84+
MATRIX_KEY(0x01, 0x04, KEY_S) /* key_speaker */
85+
MATRIX_KEY(0x02, 0x00, KEY_P) /* key_phone */
86+
MATRIX_KEY(0x02, 0x01, KEY_4) /* key_4 */
87+
MATRIX_KEY(0x02, 0x02, KEY_5) /* key_5 */
88+
MATRIX_KEY(0x02, 0x03, KEY_6) /* key_6 */
89+
MATRIX_KEY(0x02, 0x04, KEY_VOLUMEUP) /* key_vol_up */
90+
MATRIX_KEY(0x03, 0x00, KEY_C) /* key_call_log */
91+
MATRIX_KEY(0x03, 0x01, KEY_7) /* key_7 */
92+
MATRIX_KEY(0x03, 0x02, KEY_8) /* key_8 */
93+
MATRIX_KEY(0x03, 0x03, KEY_9) /* key_9 */
94+
MATRIX_KEY(0x03, 0x04, KEY_VOLUMEDOWN) /* key_vol_down */
95+
MATRIX_KEY(0x04, 0x00, KEY_H) /* key_headset */
96+
MATRIX_KEY(0x04, 0x01, KEY_KPASTERISK) /* key_* */
97+
MATRIX_KEY(0x04, 0x02, KEY_0) /* key_0 */
98+
MATRIX_KEY(0x04, 0x03, KEY_GRAVE) /* key_# */
99+
MATRIX_KEY(0x04, 0x04, KEY_MUTE) /* key_mute */
100+
>;
101+
102+
/* Optional board specific properties */
103+
col-debounce-filter-period = <5>;
104+
row-output-enabled;
105+
pull-up-enabled;
106+
107+
};
108+
};
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
Qualcomm PM8941 PMIC Power Key
2+
3+
PROPERTIES
4+
5+
- compatible:
6+
Usage: required
7+
Value type: <string>
8+
Definition: must be one of:
9+
"qcom,pm8941-pwrkey"
10+
11+
- reg:
12+
Usage: required
13+
Value type: <prop-encoded-array>
14+
Definition: base address of registers for block
15+
16+
- interrupts:
17+
Usage: required
18+
Value type: <prop-encoded-array>
19+
Definition: key change interrupt; The format of the specifier is
20+
defined by the binding document describing the node's
21+
interrupt parent.
22+
23+
- debounce:
24+
Usage: optional
25+
Value type: <u32>
26+
Definition: time in microseconds that key must be pressed or released
27+
for state change interrupt to trigger.
28+
29+
- bias-pull-up:
30+
Usage: optional
31+
Value type: <empty>
32+
Definition: presence of this property indicates that the KPDPWR_N pin
33+
should be configured for pull up.
34+
35+
EXAMPLE
36+
37+
pwrkey@800 {
38+
compatible = "qcom,pm8941-pwrkey";
39+
reg = <0x800>;
40+
interrupts = <0x0 0x8 0 IRQ_TYPE_EDGE_BOTH>;
41+
debounce = <15625>;
42+
bias-pull-up;
43+
};
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
* Broadcom's IPROC Touchscreen Controller
2+
3+
Required properties:
4+
- compatible: must be "brcm,iproc-touchscreen"
5+
- reg: physical base address of the controller and length of memory mapped
6+
region.
7+
- clocks: The clock provided by the SOC to driver the tsc
8+
- clock-name: name for the clock
9+
- interrupts: The touchscreen controller's interrupt
10+
11+
Optional properties:
12+
- scanning_period: Time between scans. Each step is 1024 us. Valid 1-256.
13+
- debounce_timeout: Each step is 512 us. Valid 0-255
14+
- settling_timeout: The settling duration (in ms) is the amount of time
15+
the tsc waits to allow the voltage to settle after
16+
turning on the drivers in detection mode.
17+
Valid values: 0-11
18+
0 = 0.008 ms
19+
1 = 0.01 ms
20+
2 = 0.02 ms
21+
3 = 0.04 ms
22+
4 = 0.08 ms
23+
5 = 0.16 ms
24+
6 = 0.32 ms
25+
7 = 0.64 ms
26+
8 = 1.28 ms
27+
9 = 2.56 ms
28+
10 = 5.12 ms
29+
11 = 10.24 ms
30+
- touch_timeout: The continuous number of scan periods in which touch is
31+
not detected before the controller returns to idle state.
32+
Valid values 0-255.
33+
- average_data: Number of data samples which are averaged before a final
34+
data point is placed into the FIFO
35+
Valid values 0-7
36+
0 = 1 sample
37+
1 = 2 samples
38+
2 = 4 samples
39+
3 = 8 samples
40+
4 = 16 samples
41+
5 = 32 samples
42+
6 = 64 samples
43+
7 = 128 samples
44+
- fifo_threshold: Interrupt is generated whenever the number of fifo
45+
entries exceeds this value
46+
Valid values 0-31
47+
- touchscreen-size-x: horizontal resolution of touchscreen (in pixels)
48+
- touchscreen-size-y: vertical resolution of touchscreen (in pixels)
49+
- touchscreen-fuzz-x: horizontal noise value of the absolute input
50+
device (in pixels)
51+
- touchscreen-fuzz-y: vertical noise value of the absolute input
52+
device (in pixels)
53+
- touchscreen-inverted-x: X axis is inverted (boolean)
54+
- touchscreen-inverted-y: Y axis is inverted (boolean)
55+
56+
Example:
57+
58+
touchscreen: tsc@0x180A6000 {
59+
compatible = "brcm,iproc-touchscreen";
60+
#address-cells = <1>;
61+
#size-cells = <1>;
62+
reg = <0x180A6000 0x40>;
63+
clocks = <&adc_clk>;
64+
clock-names = "tsc_clk";
65+
interrupts = <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>;
66+
67+
scanning_period = <5>;
68+
debounce_timeout = <40>;
69+
settling_timeout = <7>;
70+
touch_timeout = <10>;
71+
average_data = <5>;
72+
fifo_threshold = <1>;
73+
/* Touchscreen is rotated 180 degrees. */
74+
touchscreen-inverted-x;
75+
touchscreen-inverted-y;
76+
};
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
* ChipOne icn8318 I2C touchscreen controller
2+
3+
Required properties:
4+
- compatible : "chipone,icn8318"
5+
- reg : I2C slave address of the chip (0x40)
6+
- interrupt-parent : a phandle pointing to the interrupt controller
7+
serving the interrupt for this chip
8+
- interrupts : interrupt specification for the icn8318 interrupt
9+
- wake-gpios : GPIO specification for the WAKE input
10+
- touchscreen-size-x : horizontal resolution of touchscreen (in pixels)
11+
- touchscreen-size-y : vertical resolution of touchscreen (in pixels)
12+
13+
Optional properties:
14+
- pinctrl-names : should be "default"
15+
- pinctrl-0: : a phandle pointing to the pin settings for the
16+
control gpios
17+
- touchscreen-fuzz-x : horizontal noise value of the absolute input
18+
device (in pixels)
19+
- touchscreen-fuzz-y : vertical noise value of the absolute input
20+
device (in pixels)
21+
- touchscreen-inverted-x : X axis is inverted (boolean)
22+
- touchscreen-inverted-y : Y axis is inverted (boolean)
23+
- touchscreen-swapped-x-y : X and Y axis are swapped (boolean)
24+
Swapping is done after inverting the axis
25+
26+
Example:
27+
28+
i2c@00000000 {
29+
/* ... */
30+
31+
chipone_icn8318@40 {
32+
compatible = "chipone,icn8318";
33+
reg = <0x40>;
34+
interrupt-parent = <&pio>;
35+
interrupts = <9 IRQ_TYPE_EDGE_FALLING>; /* EINT9 (PG9) */
36+
pinctrl-names = "default";
37+
pinctrl-0 = <&ts_wake_pin_p66>;
38+
wake-gpios = <&pio 1 3 GPIO_ACTIVE_HIGH>; /* PB3 */
39+
touchscreen-size-x = <800>;
40+
touchscreen-size-y = <480>;
41+
touchscreen-inverted-x;
42+
touchscreen-swapped-x-y;
43+
};
44+
45+
/* ... */
46+
};
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
Device tree bindings for Goodix GT9xx series touchscreen controller
2+
3+
Required properties:
4+
5+
- compatible : Should be "goodix,gt911"
6+
or "goodix,gt9110"
7+
or "goodix,gt912"
8+
or "goodix,gt927"
9+
or "goodix,gt9271"
10+
or "goodix,gt928"
11+
or "goodix,gt967"
12+
- reg : I2C address of the chip. Should be 0x5d or 0x14
13+
- interrupt-parent : Interrupt controller to which the chip is connected
14+
- interrupts : Interrupt to which the chip is connected
15+
16+
Example:
17+
18+
i2c@00000000 {
19+
/* ... */
20+
21+
gt928@5d {
22+
compatible = "goodix,gt928";
23+
reg = <0x5d>;
24+
interrupt-parent = <&gpio>;
25+
interrupts = <0 0>;
26+
};
27+
28+
/* ... */
29+
};

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

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,27 @@ sun4i resistive touchscreen controller
22
--------------------------------------
33

44
Required properties:
5-
- compatible: "allwinner,sun4i-a10-ts" or "allwinner,sun6i-a31-ts"
5+
- compatible: "allwinner,sun4i-a10-ts", "allwinner,sun5i-a13-ts" or
6+
"allwinner,sun6i-a31-ts"
67
- reg: mmio address range of the chip
78
- interrupts: interrupt to which the chip is connected
89
- #thermal-sensor-cells: shall be 0
910

1011
Optional properties:
11-
- allwinner,ts-attached: boolean indicating that an actual touchscreen is
12-
attached to the controller
12+
- allwinner,ts-attached : boolean indicating that an actual touchscreen
13+
is attached to the controller
14+
- allwinner,tp-sensitive-adjust : integer (4 bits)
15+
adjust sensitivity of pen down detection
16+
between 0 (least sensitive) and 15
17+
(defaults to 15)
18+
- allwinner,filter-type : integer (2 bits)
19+
select median and averaging filter
20+
samples used for median / averaging filter
21+
0: 4/2
22+
1: 5/3
23+
2: 8/4
24+
3: 16/8
25+
(defaults to 1)
1326

1427
Example:
1528

@@ -19,4 +32,7 @@ Example:
1932
interrupts = <29>;
2033
allwinner,ts-attached;
2134
#thermal-sensor-cells = <0>;
35+
/* sensitive/noisy touch panel */
36+
allwinner,tp-sensitive-adjust = <0>;
37+
allwinner,filter-type = <3>;
2238
};
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
* Semtech SX8654 I2C Touchscreen Controller
2+
3+
Required properties:
4+
- compatible: must be "semtech,sx8654"
5+
- reg: i2c slave address
6+
- interrupt-parent: the phandle for the interrupt controller
7+
- interrupts: touch controller interrupt
8+
9+
Example:
10+
11+
sx8654@48 {
12+
compatible = "semtech,sx8654";
13+
reg = <0x48>;
14+
interrupt-parent = <&gpio6>;
15+
interrupts = <3 IRQ_TYPE_EDGE_FALLING>;
16+
};

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ Optional properties for Touchscreens:
1616
controller)
1717
- touchscreen-inverted-x : X axis is inverted (boolean)
1818
- touchscreen-inverted-y : Y axis is inverted (boolean)
19+
- touchscreen-swapped-x-y : X and Y axis are swapped (boolean)
20+
Swapping is done after inverting the axis
1921

2022
Deprecated properties for Touchscreens:
2123
- x-size : deprecated name for touchscreen-size-x

Documentation/devicetree/bindings/vendor-prefixes.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ capella Capella Microsystems, Inc
3737
cavium Cavium, Inc.
3838
cdns Cadence Design Systems Inc.
3939
chipidea Chipidea, Inc
40+
chipone ChipOne
4041
chipspark ChipSPARK
4142
chrp Common Hardware Reference Platform
4243
chunghwa Chunghwa Picture Tubes Ltd.
@@ -78,6 +79,7 @@ geniatech Geniatech, Inc.
7879
giantplus Giantplus Technology Co., Ltd.
7980
globalscale Globalscale Technologies, Inc.
8081
gmt Global Mixed-mode Technology, Inc.
82+
goodix Shenzhen Huiding Technology Co., Ltd.
8183
google Google, Inc.
8284
gumstix Gumstix, Inc.
8385
gw Gateworks Corporation

0 commit comments

Comments
 (0)