Skip to content

Commit f0c032d

Browse files
committed
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
Pull more input updates from Dmitry Torokhov: "Second round of updates for the input subsystem. This introduces two brand new touchscreen drivers (Colibri and imx6ul_tsc), some small driver fixes, and we are no longer report errors from evdev_flush() as users do not really have a way of handling errors, error codes that we were returning were not on the list of errors supposed to be returned by close(), and errors were causing issues with one of older versions of systemd" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: Input: imx_keypad - remove obsolete comment Input: touchscreen - add imx6ul_tsc driver support Input: Add touchscreen support for Colibri VF50 Input: i8042 - lower log level for "no controller" message Input: evdev - do not report errors form flush() Input: elants_i2c - extend the calibration timeout to 12 seconds Input: sparcspkr - fix module autoload for OF platform drivers Input: regulator-haptic - fix module autoload for OF platform driver Input: pwm-beeper - fix module autoload for OF platform driver Input: ab8500-ponkey - Fix module autoload for OF platform driver Input: cyttsp - remove unnecessary MODULE_ALIAS() Input: elan_i2c - add ACPI ID "ELAN1000"
2 parents fa9a67e + 53431d0 commit f0c032d

File tree

17 files changed

+1019
-15
lines changed

17 files changed

+1019
-15
lines changed
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
* Toradex Colibri VF50 Touchscreen driver
2+
3+
Required Properties:
4+
- compatible must be toradex,vf50-touchscreen
5+
- io-channels: adc channels being used by the Colibri VF50 module
6+
- xp-gpios: FET gate driver for input of X+
7+
- xm-gpios: FET gate driver for input of X-
8+
- yp-gpios: FET gate driver for input of Y+
9+
- ym-gpios: FET gate driver for input of Y-
10+
- interrupt-parent: phandle for the interrupt controller
11+
- interrupts: pen irq interrupt for touch detection
12+
- pinctrl-names: "idle", "default", "gpios"
13+
- pinctrl-0: pinctrl node for pen/touch detection state pinmux
14+
- pinctrl-1: pinctrl node for X/Y and pressure measurement (ADC) state pinmux
15+
- pinctrl-2: pinctrl node for gpios functioning as FET gate drivers
16+
- vf50-ts-min-pressure: pressure level at which to stop measuring X/Y values
17+
18+
Example:
19+
20+
touchctrl: vf50_touchctrl {
21+
compatible = "toradex,vf50-touchscreen";
22+
io-channels = <&adc1 0>,<&adc0 0>,
23+
<&adc0 1>,<&adc1 2>;
24+
xp-gpios = <&gpio0 13 GPIO_ACTIVE_LOW>;
25+
xm-gpios = <&gpio2 29 GPIO_ACTIVE_HIGH>;
26+
yp-gpios = <&gpio0 12 GPIO_ACTIVE_LOW>;
27+
ym-gpios = <&gpio0 4 GPIO_ACTIVE_HIGH>;
28+
interrupt-parent = <&gpio0>;
29+
interrupts = <8 IRQ_TYPE_LEVEL_LOW>;
30+
pinctrl-names = "idle","default","gpios";
31+
pinctrl-0 = <&pinctrl_touchctrl_idle>;
32+
pinctrl-1 = <&pinctrl_touchctrl_default>;
33+
pinctrl-2 = <&pinctrl_touchctrl_gpios>;
34+
vf50-ts-min-pressure = <200>;
35+
status = "disabled";
36+
};
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
* Freescale i.MX6UL Touch Controller
2+
3+
Required properties:
4+
- compatible: must be "fsl,imx6ul-tsc".
5+
- reg: this touch controller address and the ADC2 address.
6+
- interrupts: the interrupt of this touch controller and ADC2.
7+
- clocks: the root clock of touch controller and ADC2.
8+
- clock-names; must be "tsc" and "adc".
9+
- xnur-gpio: the X- gpio this controller connect to.
10+
This xnur-gpio returns to low once the finger leave the touch screen (The
11+
last touch event the touch controller capture).
12+
13+
Optional properties:
14+
- measure-delay-time: the value of measure delay time.
15+
Before X-axis or Y-axis measurement, the screen need some time before
16+
even potential distribution ready.
17+
This value depends on the touch screen.
18+
- pre-charge-time: the touch screen need some time to precharge.
19+
This value depends on the touch screen.
20+
21+
Example:
22+
tsc: tsc@02040000 {
23+
compatible = "fsl,imx6ul-tsc";
24+
reg = <0x02040000 0x4000>, <0x0219c000 0x4000>;
25+
interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>,
26+
<GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
27+
clocks = <&clks IMX6UL_CLK_IPG>,
28+
<&clks IMX6UL_CLK_ADC2>;
29+
clock-names = "tsc", "adc";
30+
pinctrl-names = "default";
31+
pinctrl-0 = <&pinctrl_tsc>;
32+
xnur-gpio = <&gpio1 3 GPIO_ACTIVE_LOW>;
33+
measure-delay-time = <0xfff>;
34+
pre-charge-time = <0xffff>;
35+
status = "okay";
36+
};

drivers/input/evdev.c

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -290,19 +290,14 @@ static int evdev_flush(struct file *file, fl_owner_t id)
290290
{
291291
struct evdev_client *client = file->private_data;
292292
struct evdev *evdev = client->evdev;
293-
int retval;
294293

295-
retval = mutex_lock_interruptible(&evdev->mutex);
296-
if (retval)
297-
return retval;
294+
mutex_lock(&evdev->mutex);
298295

299-
if (!evdev->exist || client->revoked)
300-
retval = -ENODEV;
301-
else
302-
retval = input_flush_device(&evdev->handle, file);
296+
if (evdev->exist && !client->revoked)
297+
input_flush_device(&evdev->handle, file);
303298

304299
mutex_unlock(&evdev->mutex);
305-
return retval;
300+
return 0;
306301
}
307302

308303
static void evdev_free(struct device *dev)

drivers/input/keyboard/imx_keypad.c

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,6 @@
55
* This program is free software; you can redistribute it and/or modify
66
* it under the terms of the GNU General Public License version 2 as
77
* published by the Free Software Foundation.
8-
*
9-
* <<Power management needs to be implemented>>.
108
*/
119

1210
#include <linux/clk.h>

drivers/input/misc/ab8500-ponkey.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,7 @@ static const struct of_device_id ab8500_ponkey_match[] = {
118118
{ .compatible = "stericsson,ab8500-ponkey", },
119119
{}
120120
};
121+
MODULE_DEVICE_TABLE(of, ab8500_ponkey_match);
121122
#endif
122123

123124
static struct platform_driver ab8500_ponkey_driver = {

drivers/input/misc/pwm-beeper.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,7 @@ static const struct of_device_id pwm_beeper_match[] = {
173173
{ .compatible = "pwm-beeper", },
174174
{ },
175175
};
176+
MODULE_DEVICE_TABLE(of, pwm_beeper_match);
176177
#endif
177178

178179
static struct platform_driver pwm_beeper_driver = {

drivers/input/misc/regulator-haptic.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -249,6 +249,7 @@ static const struct of_device_id regulator_haptic_dt_match[] = {
249249
{ .compatible = "regulator-haptic" },
250250
{ /* sentinel */ },
251251
};
252+
MODULE_DEVICE_TABLE(of, regulator_haptic_dt_match);
252253

253254
static struct platform_driver regulator_haptic_driver = {
254255
.probe = regulator_haptic_probe,

drivers/input/misc/sparcspkr.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -253,6 +253,7 @@ static const struct of_device_id bbc_beep_match[] = {
253253
},
254254
{},
255255
};
256+
MODULE_DEVICE_TABLE(of, bbc_beep_match);
256257

257258
static struct platform_driver bbc_beep_driver = {
258259
.driver = {
@@ -332,6 +333,7 @@ static const struct of_device_id grover_beep_match[] = {
332333
},
333334
{},
334335
};
336+
MODULE_DEVICE_TABLE(of, grover_beep_match);
335337

336338
static struct platform_driver grover_beep_driver = {
337339
.driver = {

drivers/input/mouse/elan_i2c_core.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1170,6 +1170,7 @@ static const struct acpi_device_id elan_acpi_id[] = {
11701170
{ "ELAN0000", 0 },
11711171
{ "ELAN0100", 0 },
11721172
{ "ELAN0600", 0 },
1173+
{ "ELAN1000", 0 },
11731174
{ }
11741175
};
11751176
MODULE_DEVICE_TABLE(acpi, elan_acpi_id);

drivers/input/serio/i8042.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -877,7 +877,7 @@ static int __init i8042_check_aux(void)
877877
static int i8042_controller_check(void)
878878
{
879879
if (i8042_flush()) {
880-
pr_err("No controller found\n");
880+
pr_info("No controller found\n");
881881
return -ENODEV;
882882
}
883883

0 commit comments

Comments
 (0)