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

drivers/input/touchscreen/Kconfig

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -479,6 +479,18 @@ config TOUCHSCREEN_MTOUCH
479479
To compile this driver as a module, choose M here: the
480480
module will be called mtouch.
481481

482+
config TOUCHSCREEN_IMX6UL_TSC
483+
tristate "Freescale i.MX6UL touchscreen controller"
484+
depends on (OF && GPIOLIB) || COMPILE_TEST
485+
help
486+
Say Y here if you have a Freescale i.MX6UL, and want to
487+
use the internal touchscreen controller.
488+
489+
If unsure, say N.
490+
491+
To compile this driver as a module, choose M here: the
492+
module will be called imx6ul_tsc.
493+
482494
config TOUCHSCREEN_INEXIO
483495
tristate "iNexio serial touchscreens"
484496
select SERIO
@@ -1040,4 +1052,16 @@ config TOUCHSCREEN_ZFORCE
10401052
To compile this driver as a module, choose M here: the
10411053
module will be called zforce_ts.
10421054

1055+
config TOUCHSCREEN_COLIBRI_VF50
1056+
tristate "Toradex Colibri on board touchscreen driver"
1057+
depends on GPIOLIB && IIO && VF610_ADC
1058+
help
1059+
Say Y here if you have a Colibri VF50 and plan to use
1060+
the on-board provided 4-wire touchscreen driver.
1061+
1062+
If unsure, say N.
1063+
1064+
To compile this driver as a module, choose M here: the
1065+
module will be called colibri_vf50_ts.
1066+
10431067
endif

drivers/input/touchscreen/Makefile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ obj-$(CONFIG_TOUCHSCREEN_EGALAX) += egalax_ts.o
3838
obj-$(CONFIG_TOUCHSCREEN_FUJITSU) += fujitsu_ts.o
3939
obj-$(CONFIG_TOUCHSCREEN_GOODIX) += goodix.o
4040
obj-$(CONFIG_TOUCHSCREEN_ILI210X) += ili210x.o
41+
obj-$(CONFIG_TOUCHSCREEN_IMX6UL_TSC) += imx6ul_tsc.o
4142
obj-$(CONFIG_TOUCHSCREEN_INEXIO) += inexio.o
4243
obj-$(CONFIG_TOUCHSCREEN_INTEL_MID) += intel-mid-touch.o
4344
obj-$(CONFIG_TOUCHSCREEN_IPROC) += bcm_iproc_tsc.o
@@ -85,3 +86,4 @@ obj-$(CONFIG_TOUCHSCREEN_W90X900) += w90p910_ts.o
8586
obj-$(CONFIG_TOUCHSCREEN_SX8654) += sx8654.o
8687
obj-$(CONFIG_TOUCHSCREEN_TPS6507X) += tps6507x-ts.o
8788
obj-$(CONFIG_TOUCHSCREEN_ZFORCE) += zforce_ts.o
89+
obj-$(CONFIG_TOUCHSCREEN_COLIBRI_VF50) += colibri-vf50-ts.o

0 commit comments

Comments
 (0)