linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [RFC PATCH 00/06] input: Synaptics RMI4 Touchscreen Driver
@ 2012-10-06  4:09 Christopher Heiny
  2012-10-06  4:09 ` [RFC PATCH 01/06] input/rmi4: Public header and documentation Christopher Heiny
                   ` (5 more replies)
  0 siblings, 6 replies; 53+ messages in thread
From: Christopher Heiny @ 2012-10-06  4:09 UTC (permalink / raw)
  To: Dmitry Torokhov
  Cc: Jean Delvare, Linux Kernel, Linux Input, Christopher Heiny,
	Allie Xiong, Vivian Ly, Daniel Rosenberg, Alexandra Chen,
	Joerie de Gram, Wolfram Sang, Mathieu Poirier, Linus Walleij,
	Naveen Kumar Gaddipati

This patch implements a driver supporting Synaptics ClearPad and other
touchscreen sensors that use the RMI4 protocol, as defined here:

    http://www.synaptics.com/sites/default/files/511-000136-01-Rev-E-RMI4%20Intrfacing%20Guide.pdf

as well as successor documents that haven't made their way through to
publication yet.

This code supersedes the patch submitted on 2012-08-17.  For all files
included in this patch, we believe that all outstanding issues arising
from the previous submissions have been addressed, except for looking into
using irq_chip to manage chip interrupt dispatch - was passed on that mainly
to limit the amount of major structural change since the previous patch.  We
will continue to pursue the irq_chip request, however.

Also, at the request of several maintainers, we have reduced the number of
files included in this patch.  Hopefully this is much less of a patch bomb
(perhaps just a patch firecracker).  The files provided are sufficient to
fully drive an RMI4 2D sensor, handling full multifinger reporting and device
and power management.


This patch is against the v3.6 tag of Linus' kernel tree, commit
a0d271cbfed1dd50278c6b06bead3d00ba0a88f9.  It should work fine with kernels
back to 3.1.



Included in this patch are:
    - full support for an RMI virtual bus as a standard kernel bus

    - physical layer implementation for I2C

    - device driver for general RMI4 sensor functionality

    - function implementations for the following RMI4 functions:
        * F01 device control
        * F11 multifinger pointing

The driver supports a system having one or more RMI sensors attached to it.
Most devices have just a single touch sensor, but some have more than one.
An example is the Fuse concept phone, which has 4 RMI sensors in it.

Each sensor is presented as a device on the RMI logical bus (/sys/bus/rmi).
Devices are named/numbered in the order they are discovered on the bus,
starting with /sys/bus/rmi/devices/sensor00 for the first once, .../sensor01
for the second one, and so on.

Individual RMI functions are presented as child devices of the sensor device.
For example, sensor00.fn01, sensor00.fn11, and so on.  Control of an RMI
function's operating parameters is implemented via sysfs or debugfs (depending
on whether the parameters are used during normal operation or system
development/prototyping).



The amount of feedback received on previous patches precludes addressing each
item individually.  However, major changes for this patch are:
    - elimination of ad-hoc bus matching/binding and reliance on standard bus
      implementation.
    - elimination of out-of-tree features such as EARLY_SUSPEND
    - use of devm_kzalloc where appropriate
    - partition of control parameters between sysfs and debugfs
    - simplified configuration and control of debugging related features
    - IRQ management consolidated in once place


We've broken this patch into 6 parts, as follows:
    01 - public header files and documentation
    02 - core sensor and bus implementation
    03 - I2C physical layer driver
    04 - Kconfigs and Makefiles
    05..06 - drivers for individual RMI functions


Comments and other feedback on this driver are welcomed.

Christopher Heiny and the Synaptics RMI4 driver team

Signed-off-by: Christopher Heiny <cheiny@synaptics.com>

Cc: Jean Delvare <khali@linux-fr.org>
Cc: Linus Walleij <linus.walleij@stericsson.com>
Cc: Naveen Kumar Gaddipati <naveen.gaddipati@stericsson.com>
Cc: Joeri de Gram <j.de.gram@gmail.com>

---

^ permalink raw reply	[flat|nested] 53+ messages in thread
* [RFC PATCH 00/06] input: Synaptics RMI4 Touchscreen Driver
@ 2012-11-17  3:58 Christopher Heiny
  2012-11-17  3:58 ` [RFC PATCH 05/06] input/rmi4: F01 - device control Christopher Heiny
  0 siblings, 1 reply; 53+ messages in thread
From: Christopher Heiny @ 2012-11-17  3:58 UTC (permalink / raw)
  To: Dmitry Torokhov
  Cc: Jean Delvare, Linux Kernel, Linux Input, Christopher Heiny,
	Allie Xiong, Vivian Ly, Daniel Rosenberg, Alexandra Chin,
	Joerie de Gram, Wolfram Sang, Mathieu Poirier, Linus Walleij,
	Naveen Kumar Gaddipati

This patch implements a driver supporting Synaptics ClearPad and other
touchscreen sensors that use the RMI4 protocol, as defined here:

    http://www.synaptics.com/sites/default/files/511-000136-01-Rev-E-RMI4%20Intrfacing%20Guide.pdf

as well as successor documents that haven't made their way through to
publication yet.

This code supersedes the patch submitted on 2012-10-05.  For all files
included in this patch, we believe that all outstanding issues arising
from the previous submissions have been addressed, except as follows:

* we've investigated using irq_chip to manage chip interrupt dispatch, and
that certainly is a good idea.  However, we need to support kernels back to
3.0.x, and the required functionality is not yet present in those older kernels.
Once we no longer need to support 3.0.x, we'll jump onto irq_chip right
away.

* some of the requested changes to rmi_f11.c are simply not possible while
still retaining general driver functionality.  We've clarified existing comments
and added new ones to explain why that is the case.


This patch is against the v3.7-rc5 tag of Linus' kernel tree, object
77b67063bb6bce6d475e910d3b886a606d0d91f7.  It should work fine with that kernel,
but will not work with earlier kernels due to changes in the input subsystem.



Included in this patch are:
    - full support for an RMI virtual bus as a standard kernel bus

    - physical layer implementation for I2C

    - device driver for general RMI4 sensor functionality

    - function implementations for the following RMI4 functions:
        * F01 device control
        * F11 multifinger pointing

The driver supports a system having one or more RMI sensors attached to it.
Most devices have just a single touch sensor, but some have more than one.
An example is the Fuse concept phone, which has 4 RMI sensors in it.

Each sensor is presented as a device on the RMI logical bus (/sys/bus/rmi).
Devices are named/numbered in the order they are discovered on the bus,
starting with /sys/bus/rmi/devices/sensor00 for the first once, .../sensor01
for the second one, and so on.

Individual RMI functions are presented as child devices of the sensor device.
For example, sensor00.fn01, sensor00.fn11, and so on.  Control of an RMI
function's operating parameters is implemented via sysfs or debugfs (depending
on whether the parameters are used during normal operation or system
development/prototyping).



The amount of feedback received on previous patches precludes addressing each
item individually.  However, major changes for this patch are:
    - elimination of sysfs management macros
    - elimination of roll-your-own bitmask management
    - moved potentially large arrays and structs from the stack to the heap
    - elimination of the union/struct idiom for mapping register groups
    - corrected identification of input devices, including adding a BUS_RMI
      bus type.


We've broken this patch into 6 parts, as follows:
    01 - public header files and documentation
    02 - core sensor and bus implementation
    03 - I2C physical layer driver
    04 - Kconfigs and Makefiles
    05..06 - drivers for individual RMI functions


Comments and other feedback on this driver are welcomed.

Christopher Heiny and the Synaptics RMI4 driver team

Signed-off-by: Christopher Heiny <cheiny@synaptics.com>

Cc: Jean Delvare <khali@linux-fr.org>
Cc: Linus Walleij <linus.walleij@stericsson.com>
Cc: Naveen Kumar Gaddipati <naveen.gaddipati@stericsson.com>
Cc: Joeri de Gram <j.de.gram@gmail.com>

---

^ permalink raw reply	[flat|nested] 53+ messages in thread

end of thread, other threads:[~2012-11-28  2:52 UTC | newest]

Thread overview: 53+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-10-06  4:09 [RFC PATCH 00/06] input: Synaptics RMI4 Touchscreen Driver Christopher Heiny
2012-10-06  4:09 ` [RFC PATCH 01/06] input/rmi4: Public header and documentation Christopher Heiny
2012-10-09  7:43   ` Linus Walleij
2012-10-09  8:27     ` Mark Brown
2012-10-11  3:56       ` Christopher Heiny
2012-10-12  5:16         ` Mark Brown
2012-10-23 22:10           ` Christopher Heiny
2012-10-24 17:49             ` Mark Brown
2012-10-11  3:41     ` Christopher Heiny
2012-10-11  8:24       ` Dmitry Torokhov
2012-10-23 22:55         ` Christopher Heiny
2012-10-11 15:22       ` Linus Walleij
2012-10-11 15:32       ` Linus Walleij
2012-10-16  6:26         ` Mark Brown
2012-10-23 23:19           ` Christopher Heiny
2012-10-23 23:18         ` Christopher Heiny
2012-10-11  8:20   ` Dmitry Torokhov
2012-10-23 22:39     ` Christopher Heiny
2012-10-23 22:47       ` Dmitry Torokhov
2012-10-06  4:09 ` [RFC PATCH 02/06] input/rmi4: Core files Christopher Heiny
2012-10-06 12:19   ` Joe Perches
2012-10-06 13:06     ` devendra.aaru
2012-10-06 13:08       ` devendra.aaru
2012-10-11  2:49     ` Christopher Heiny
2012-10-11  3:06       ` Joe Perches
2012-10-22 21:58         ` Christopher Heiny
2012-10-09  8:40   ` Linus Walleij
2012-10-11  4:15     ` Christopher Heiny
2012-10-11  8:13       ` Dmitry Torokhov
2012-10-23 23:46         ` Christopher Heiny
2012-10-24  0:11           ` Dmitry Torokhov
2012-10-24  0:32             ` Christopher Heiny
2012-10-11 15:37       ` Linus Walleij
2012-10-06  4:10 ` [RFC PATCH 03/06] input/rmi4: I2C physical interface Christopher Heiny
2012-10-09  9:05   ` Linus Walleij
2012-10-11  4:21     ` Christopher Heiny
2012-10-06  4:10 ` [RFC PATCH 04/06] input/rmi4: Config files and makefiles Christopher Heiny
2012-10-09  9:08   ` Linus Walleij
2012-10-11  4:23     ` Christopher Heiny
2012-10-06  4:10 ` [RFC PATCH 05/06] input/rmi4: F01 - device control Christopher Heiny
2012-10-09  9:31   ` Linus Walleij
2012-10-11  4:34     ` Christopher Heiny
2012-10-06  4:10 ` [RFC PATCH 06/06] input/rmi4: F11 - 2D touch interface Christopher Heiny
2012-10-09 10:02   ` Linus Walleij
2012-10-11  4:46     ` Christopher Heiny
2012-10-10 18:21   ` Henrik Rydberg
2012-10-25 21:39     ` Christopher Heiny
2012-11-17  3:58 [RFC PATCH 00/06] input: Synaptics RMI4 Touchscreen Driver Christopher Heiny
2012-11-17  3:58 ` [RFC PATCH 05/06] input/rmi4: F01 - device control Christopher Heiny
2012-11-17 22:56   ` Linus Walleij
2012-11-26  9:40   ` Dmitry Torokhov
2012-11-26 22:31     ` Christopher Heiny
2012-11-27  9:29       ` Dmitry Torokhov
2012-11-28  2:52         ` Christopher Heiny

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).