Hi Dmitry,
With the renewed interest in supporting SMBus with the Synaptics RMI4
driver I thought I would look into this again. I'm sorry for not
responding to your comments sooner, especially since you took the time
to read the F30 spec. Now that it has been over a year later we may need
to essentially start over. But, this time I will make sure to follow up
and hopefully not waste your time in the future.
On 07/27/2014 12:26 AM, Dmitry Torokhov wrote:
Hi Andrew,
On Thu, Jul 24, 2014 at 04:47:21PM -0700, Andrew Duggan wrote:
RMI4 Function 0x30 provides support for GPIOs, LEDs and mechanical
buttons. In particular, the mechanical button support is used in
an increasing number of touchpads.
I was reading the spec for F30 and it looks to me that instead instead of basic
keymap it should actually implement a gpio chip plus LED devices (probably
later). Then, if GPIOs are indeed attached to buttons one can use standard
gpio_keys driver to create input device.
The most common use of F30 is handling input from the tact switch on
clickpads. Since the tact switch is wired up to the touch controller,
it's the touch controller that handles the GPIO. The touch controller
then asserts attention to the host, which then issues reads to see what
interrupted, and then reads the F30 data register to get the state of
the GPIO. Would gpio chip work with this setup? After looking at gpio
chip a little bit I'm not really seeing how that would work. It looks
like to work with gpio_keys each button would need it's own irq? I
couldn't find an example of a driver doing something similar, but if
there is one could you point me to it?
For touchpad buttons we know based on convention which GPIOs represent
which buttons. In the case of touchpads we can avoid creating a button
map in the platform data. For touchpads we also want to report the input
events for F30 from the same input device which is reporting finger
data. Benjamin's patchset contains a patch which allows for a unified
input device which will allow more then one function to use the same
input device.
The F30 spec is fairly generic so it could be used for things besides
the touchpad buttons and we might want to report events independently of
finger position. However, besides touchpad LEDs I'm not sure F30 has
ever been used for other applications in production so I'm not sure its
worth implementing something more generic at this time.
Thanks.
Also, the fact that it took me over a year to reply to these comments
highlights that we at Synaptics have been inconsistent in our effort to
get the synaptics-rmi4 driver upstreamed. I think it's about time we
have a single upstreamed driver which can support all of our RMI devices
so I'm willing do more on behalf of Synaptics to help get it upstreamed.
Thanks,
Andrew
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html