Re: [PATCH v2] input: mouse: add qci touchpad driver
From: Dmitry Torokhov
Date: Fri Aug 13 2010 - 20:55:00 EST
On Friday, August 13, 2010 02:56:41 pm Neil Leeder wrote:
> On 8/12/2010 10:49 PM, Dmitry Torokhov wrote:
> > On Thu, Aug 12, 2010 at 01:58:18PM -0400, Neil Leeder wrote:
> > Actually, since this is not a new touchpad but simply a PS/2 interface
> > it should be implemented as a serio driver, not input device driver.
>
> Dmitri,
>
> Thanks for supplying that serio driver. I just have a couple of questions.
>
> Even though the interface on the wpce775x EC happens to be a PS/2
> interface, this is completely hidden by the firmware on that device. To
> the linux driver it looks like a dedicated i2c connection directly to
> the touchpad. You can't substitute any other device on that PS/2
> interface without rewriting the firmware in the EC - it's not a generic
> interface. A manufacturer could even move the touchpad from the PS/2
> interface to say GPIOs, re-write the firmware and the linux driver
> couldn't tell the difference.
Hmm, according to the following diagram from Nuvoton trhe chip does in
fact has a distinct PS/2 interface (3 of them actually):
http://www.nuvoton.com/NuvotonMOSS/Community/ProductInfo.aspx?tp_GUID=d2a1e761-c93d-4bf0-b292-acb80b38cfaf
Also it is not a simple coincidence that to enable device you send 0xf4
to it (which is PSMOUSE_CMD_ENABLE - standard PS/2 command). This tends
to suggest that interface is not actually hidden and that the device
(touchpad) could be replaced with other kinds of devices.
Anyway, please try the driver (you may need to hardcode the IRQ trigger
type for now) and see if psmouse is able to talk to the touchpad. If it
is then serio is the proper solution.
> Does that change the rationale for using a
> serio driver?
>
> If the request to use a serio driver is still valid, then it seems that
> the workqueue from the interrupt handler sends each byte of data
> received over i2c in a separate serio_interrupt() call to the touchpad
> driver. Touchpad data comes in 3-byte packets, so the touchpad driver
> will have to re-assemble the packet from 3 separate interrupts. Is that
> the intended use?
Yes, serio ports are byte-oriented devices. psmouse and atkbd drivers should
be able to work with such data.
Thanks.
--
Dmitry
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/