Re: [PATCH v4] input: touchscreen: Add generic driver for Silead touchscreens

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On Mon, Jun 13, 2016 at 12:46:50PM +0200, Daniel Jansen wrote:
> From: Robert Dolca <robert.dolca@xxxxxxxxx>
> 
> This driver adds support for Silead touchscreens. It has been tested
> with GSL1680 and GSL3680 touch panels.
> 
> It supports ACPI and device tree enumeration. Screen resolution,
> the maximum number of fingers supported and firmware name are
> configurable.
> 
> Signed-off-by: Robert Dolca <robert.dolca@xxxxxxxxx>
> Signed-off-by: Daniel Jansen <djaniboe@xxxxxxxxx>
> Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx>
> ---
> Changes since v3
> - Check for the hw reporting more touches than expected
> - Fix input_mt_assign_slots usage
> - Remove unnecessary defines.
> - Shorten lines to be under 80 characters.
> - Move closing block comment to new line.
> - Add device tree bindings document for silead_gsl1680.
> - Use dev->driver->acpi_match_table instead of silead_ts_acpi_match
> - Replaced sprintf in default firmware file name generator with snprintf
> - Add missing input_mt_sync_frame() call
> - Fix device tree support
> 
> Changes since v2
> - removed device properties requirements
>        - max x and y default to 4095
>        - max fingers default to 10
>        - firmware name uses the HID / device name
>        - power named GPIO optional with fallback to indexed GPIO
>          (without it there is no pm support in the driver)
> - finger tracking in the kernel using slot assignment
> - add device property for x/y inverting and xy swapping
> 
> Changes since v1
> - changed device tree properties names
> - removed cast for `void *id`
> - removed ifdef from suspend and resume and use __maybe_unused
> - remove ifdef from ACPI_PTR
> - renamed ret to error
> - removed input_set_capability for EV_ABS
> - fixed endianess issues
> - added mask for y in order to use only 12 bits
> - using the 4 MSb for touch ID instead of LSb (bug)
> - using the 4 LSB for X instead of MSb (bug)
> ---
>  .../bindings/input/touchscreen/silead_gsl1680.txt  |  39 ++
>  drivers/input/touchscreen/Kconfig                  |  13 +
>  drivers/input/touchscreen/Makefile                 |   1 +
>  drivers/input/touchscreen/silead.c                 | 652 +++++++++++++++++++++
>  4 files changed, 705 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/input/touchscreen/silead_gsl1680.txt
>  create mode 100644 drivers/input/touchscreen/silead.c
> 
> diff --git a/Documentation/devicetree/bindings/input/touchscreen/silead_gsl1680.txt b/Documentation/devicetree/bindings/input/touchscreen/silead_gsl1680.txt
> new file mode 100644
> index 0000000..d0164be
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/input/touchscreen/silead_gsl1680.txt
> @@ -0,0 +1,39 @@
> +* GSL 1680 touchscreen controller
> +
> +Required properties:
> +- compatible		  : "silead,gsl1680"
> +- reg			  : I2C slave address of the chip (0x40)
> +- interrupt-parent	  : a phandle pointing to the interrupt controller
> +			    serving the interrupt for this chip
> +- interrupts		  : interrupt specification for the gsl1680 interrupt
> +- wake-gpios		  : GPIO specification for the WAKE input

What direction is this?

> +- touchscreen-size-x	  : horizontal resolution of touchscreen (in pixels)
> +- touchscreen-size-y	  : vertical resolution of touchscreen (in pixels)
> +- touchscreen-max-fingers : maximal input values given to inputsystem
> +
> +Optional properties:
> +- touchscreen-inverted-x  : X axis is inverted (boolean)
> +- touchscreen-inverted-y  : Y axis is inverted (boolean)
> +- touchscreen-swapped-x-y : X and Y axis are swapped (boolean)
> +			    Swapping is done after inverting the axis
> +
> +Example:
> +
> +i2c@00000000 {
> +
> +	gsl1680: touchscreen@40 {
> +		compatible = "silead,gsl1680";
> +		reg = <0x40>;
> +		interrupt-parent = <&pio>;
> +		interrupts = <6 11 IRQ_TYPE_EDGE_FALLING>;
> +		power-gpios = <&pio 1 3 GPIO_ACTIVE_HIGH>;
> +		touchscreen-size-x = <480>;
> +		touchscreen-size-y = <800>;
> +		touchscreen-max-fingers = <5>;
> +		touchscreen-inverted-x;
> +		touchscreen-swapped-x-y;
> +	};
> +
> +	/* ... */
> +};
> +
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]
  Powered by Linux