On Tue, Oct 22, 2013 at 03:35:05PM -0700, Dmitry Torokhov wrote:
On Tue, Oct 22, 2013 at 11:49:47AM +0200, Lothar Waßmann wrote:
quoted
Hi,
quoted
On Mon, Oct 21, 2013 at 03:54:24PM +0200, Denis Carikli wrote:
quoted
+ if (ts->of)
+ return tsc2007_get_pendown_state_dt(ts);
+
if (!ts->get_pendown_state)
return true;
Instead of special casing "if (ts->of)" all over the place why don't you
set up the device structure as:
if (<configuring_tsc2007_form_dt>)
ts->get_pendown_state = tsc2007_get_pendown_state_dt;
and be done with it?
I also thought about that, but the existing function does not have any
parameters, while the DT version of get_pendown_state() requires to get
the GPIO passed to it somehow.
You can always have tsc2007_get_pendown_state_platform() wrapping the
call. Or we just go and fix board code.
I used to have a patch which did exactly that but never got around to
submitting it. Essentially what it did was add a void * parameter to the
.get_pendown_state() and .clear_penirq() callbacks, along with a new
.callback_data field that the driver could set. At the same time there
was some code to unify code for boards that merely use a simple GPIO as
pendown.
I'm attaching what I think is the latest version. I no longer have
access to the hardware so I can't test this, but perhaps it can serve as
an example of how this could work. Sorry this isn't in the form of a
proper patch.
Thierry