[lkml]   [2010]   [Jul]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    Subject[RFC PATCH 0/1] input/touchscreen: Synaptics Touchscreen Driver
    This patch adds an initial driver supporting Synaptics ClearPad
    touchscreens that use the RMI4 protocol, as defined here:

    This patch addresses feedback relating to our previous submission on May 28, in particular multifinger comments from Henrik Rydberg. Additionally, we've added a defconfig file that builds the driver for the Omap Zoom2 platform (assuming you've retrofitted it with an RMI4 sensor).

    I2C changes in the May 28th patch were ACK'ed by Jean Delvare on May 29.

    Feedback from previous patches that has not yet been acted on (such as creation of an 'rmi' bus on the kernel bus architecture) are captured as TODOs in the code, and will be implemented in a future submission.

    This patch builds with the included defconfig in our development environment,
    but I cannot guarantee that it will build for you. We're working on making
    sure it builds generically, and feedback relating to that will be greatly
    appreciated (special thanks to Joerie de Gram for his previous feedback
    on this).

    This version of the driver does not support all features of the RMI4
    protocol yet. We felt it more important to start with a solid
    implementation of the basic functionality, and then build on that base
    to support additional features (such as gestures, proximity detection,
    capacitive buttons, and so on).

    Additionally, as this is our team's first venture into the wonderful
    world of kernel submissions, we figured it was important to start out
    initially with a fairly simple codebase, just in case we're doing
    something horribly wrong.

    The significant files in this version of the driver are:
    Implements the basic core of the RMI4 protocol
    including self-discovery of RMI4 functions. This
    also implements RMI4 function 0x01, which provides
    generic device control.
    Implements basic RMI4 function 0x11 (2D sensor)
    features, including multitouch up to 10 fingers.
    The major driver functions (mod_init, mod_exit,
    and so on).
    An additional file is included, but will eventually be changed/dropped
    Provides platform setup for development. This will
    be replaced in the future by a generic approach to
    specifying platform parameters.
    More detailed descriptions can be found in each file's comments.

    We chose to use multiple source files because it makes it easy to add
    support for additional RMI4 functions with minimal impact to existing
    functions. Additionally, this supports future changes to the
    configuration to allow you to compile in only those RMI4 functions that
    you need for your particular device.

    There are two existing drivers for similar Synaptics devices in the
    current kernel tree (excluding the PS/2 touchpad driver). These are:

    A driver for the Exeda 15mm touchpad, written by Mike Rapoport
    <> and Igor Grinberg <>

    A driver for the HTC Dream ClearPad, written by Arve Hjønnevåg

    We have not extended these drivers for a couple of reasons. First, the
    two drivers are specific to particular Synaptics products, and it is our
    desire to produce a general solution that takes advantage of the 'self
    describing' features of products that use the RMI protocol.

    Second, and more importantly, is that the existing drivers are written
    for an older version of the RMI protocol (aka RMI3) that is being
    retired in favor of a more recent and substantially changed version (aka
    RMI4). Most currently shipping Synaptics ClearPads speak the RMI4
    protocol, and it will be Synaptics protocol of choice going forward. In
    almost all respects, RMI4 is not backward compatible with RMI3, making
    it impractical to support both versions in the same driver.

    Comments and other feedback on this driver are welcomed.

    Bill Manson
    Allie Xiong
    Christopher Heiny

    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to
    More majordomo info at
    Please read the FAQ at

     \ /
      Last update: 2010-07-28 02:59    [W:0.023 / U:0.856 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site