Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f0c032d8 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
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"
parents fa9a67ef 53431d0a
Loading
Loading
Loading
Loading
+36 −0
Original line number Diff line number Diff line
* Toradex Colibri VF50 Touchscreen driver

Required Properties:
- compatible must be toradex,vf50-touchscreen
- io-channels: adc channels being used by the Colibri VF50 module
- xp-gpios: FET gate driver for input of X+
- xm-gpios: FET gate driver for input of X-
- yp-gpios: FET gate driver for input of Y+
- ym-gpios: FET gate driver for input of Y-
- interrupt-parent: phandle for the interrupt controller
- interrupts: pen irq interrupt for touch detection
- pinctrl-names: "idle", "default", "gpios"
- pinctrl-0: pinctrl node for pen/touch detection state pinmux
- pinctrl-1: pinctrl node for X/Y and pressure measurement (ADC) state pinmux
- pinctrl-2: pinctrl node for gpios functioning as FET gate drivers
- vf50-ts-min-pressure: pressure level at which to stop measuring X/Y values

Example:

	touchctrl: vf50_touchctrl {
		compatible = "toradex,vf50-touchscreen";
		io-channels = <&adc1 0>,<&adc0 0>,
				<&adc0 1>,<&adc1 2>;
		xp-gpios = <&gpio0 13 GPIO_ACTIVE_LOW>;
		xm-gpios = <&gpio2 29 GPIO_ACTIVE_HIGH>;
		yp-gpios = <&gpio0 12 GPIO_ACTIVE_LOW>;
		ym-gpios = <&gpio0 4 GPIO_ACTIVE_HIGH>;
		interrupt-parent = <&gpio0>;
		interrupts = <8 IRQ_TYPE_LEVEL_LOW>;
		pinctrl-names = "idle","default","gpios";
		pinctrl-0 = <&pinctrl_touchctrl_idle>;
		pinctrl-1 = <&pinctrl_touchctrl_default>;
		pinctrl-2 = <&pinctrl_touchctrl_gpios>;
		vf50-ts-min-pressure = <200>;
		status = "disabled";
	};
+36 −0
Original line number Diff line number Diff line
* Freescale i.MX6UL Touch Controller

Required properties:
- compatible: must be "fsl,imx6ul-tsc".
- reg: this touch controller address and the ADC2 address.
- interrupts: the interrupt of this touch controller and ADC2.
- clocks: the root clock of touch controller and ADC2.
- clock-names; must be "tsc" and "adc".
- xnur-gpio: the X- gpio this controller connect to.
  This xnur-gpio returns to low once the finger leave the touch screen (The
  last touch event the touch controller capture).

Optional properties:
- measure-delay-time: the value of measure delay time.
  Before X-axis or Y-axis measurement, the screen need some time before
  even potential distribution ready.
  This value depends on the touch screen.
- pre-charge-time: the touch screen need some time to precharge.
  This value depends on the touch screen.

Example:
	tsc: tsc@02040000 {
		compatible = "fsl,imx6ul-tsc";
		reg = <0x02040000 0x4000>, <0x0219c000 0x4000>;
		interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>,
			     <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
		clocks = <&clks IMX6UL_CLK_IPG>,
			 <&clks IMX6UL_CLK_ADC2>;
		clock-names = "tsc", "adc";
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_tsc>;
		xnur-gpio = <&gpio1 3 GPIO_ACTIVE_LOW>;
		measure-delay-time = <0xfff>;
		pre-charge-time = <0xffff>;
		status = "okay";
	};
+4 −9
Original line number Diff line number Diff line
@@ -290,19 +290,14 @@ static int evdev_flush(struct file *file, fl_owner_t id)
{
	struct evdev_client *client = file->private_data;
	struct evdev *evdev = client->evdev;
	int retval;

	retval = mutex_lock_interruptible(&evdev->mutex);
	if (retval)
		return retval;
	mutex_lock(&evdev->mutex);

	if (!evdev->exist || client->revoked)
		retval = -ENODEV;
	else
		retval = input_flush_device(&evdev->handle, file);
	if (evdev->exist && !client->revoked)
		input_flush_device(&evdev->handle, file);

	mutex_unlock(&evdev->mutex);
	return retval;
	return 0;
}

static void evdev_free(struct device *dev)
+0 −2
Original line number Diff line number Diff line
@@ -5,8 +5,6 @@
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
 *
 * <<Power management needs to be implemented>>.
 */

#include <linux/clk.h>
+1 −0
Original line number Diff line number Diff line
@@ -118,6 +118,7 @@ static const struct of_device_id ab8500_ponkey_match[] = {
	{ .compatible = "stericsson,ab8500-ponkey", },
	{}
};
MODULE_DEVICE_TABLE(of, ab8500_ponkey_match);
#endif

static struct platform_driver ab8500_ponkey_driver = {
Loading