Re: [PATCH v2] Input: add i2c/smbus driver for elan touchpad
From: Mark Rutland
Date: Mon Oct 06 2014 - 05:25:23 EST
On Fri, Oct 03, 2014 at 10:06:51PM +0100, Dmitry Torokhov wrote:
> [adding devicetree folks...]
>
> On Fri, Oct 03, 2014 at 02:03:57PM -0700, Dmitry Torokhov wrote:
> > Hi Duson,
> >
> > On Tue, Jan 07, 2014 at 11:08:03AM +0800, Duson Lin wrote:
> > > This driver adds support for elan i2c/smbus touchpad found on some
> > > laptops PC
> > >
> >
> > I was looking at your original patch together with varous other patchs
> > for the device in ChromeOS trees and I ended up with the following
> > version. Please take a look and shout if you see something wrong.
> >
> > The SMbus portion is untested as I do not have hardware; I2C does work
> > on actual hardware.
> >
> > Thanks.
> >
> > --
> > Dmitry
> >
> > Input: driver for Elan I2C/SMbus touchpad
> >
> > From: Duson Lin <dusonlin@xxxxxxxxxx>
> >
> > This driver supports Elan I2C/SMbous touchpads found in some laptops and
> > also in many Chromebooks.
> >
> > Signed-off-by: Duson Lin <dusonlin@xxxxxxxxxx>
> > Signed-off-by: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
> > ---
> > .../devicetree/bindings/input/elan_i2c.txt | 34 +
> > .../devicetree/bindings/vendor-prefixes.txt | 1
> > drivers/input/mouse/Kconfig | 30 +
> > drivers/input/mouse/Makefile | 5
> > drivers/input/mouse/elan_i2c.h | 86 ++
> > drivers/input/mouse/elan_i2c_core.c | 1129 ++++++++++++++++++++
> > drivers/input/mouse/elan_i2c_i2c.c | 612 +++++++++++
> > drivers/input/mouse/elan_i2c_smbus.c | 514 +++++++++
> > 8 files changed, 2411 insertions(+)
> > create mode 100644 Documentation/devicetree/bindings/input/elan_i2c.txt
> > create mode 100644 drivers/input/mouse/elan_i2c.h
> > create mode 100644 drivers/input/mouse/elan_i2c_core.c
> > create mode 100644 drivers/input/mouse/elan_i2c_i2c.c
> > create mode 100644 drivers/input/mouse/elan_i2c_smbus.c
> >
> > diff --git a/Documentation/devicetree/bindings/input/elan_i2c.txt b/Documentation/devicetree/bindings/input/elan_i2c.txt
> > new file mode 100644
> > index 0000000..0a6ee7d
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/input/elan_i2c.txt
> > @@ -0,0 +1,34 @@
> > +Elantech I2C Touchpad
> > +
> > +Required properties:
> > +- compatible: must be "elan,i2c_touchpad".
s/_/-/ in DT strings and property names plase.
The name seems very generic, and you mention the driver supports a
variety of touchpads. Please choose a specific device name for the
compatible string. Other devices can have that as a fallback entry in
addition to a more specific string.
> > +- reg: I2C address of the chip.
> > +- interrupt-parent: a phandle for the gpio controller (see interrupt
> > + binding[0]).
> > +- interrupts: (gpio) interrupt to which the chip is connected (see interrupt
> > + binding[0]).
If this is an interrupt from the PoV of this device, it doesn't matter
if the other end is connected to a hardwired interrupt controller or a
gpio. So drop the mention of GPIOs frmom the interrupt properties.
> > +
> > +Optional properties:
> > +- wakeup-source: touchpad should be configured as a wakeup source.
s/should be configured as/can be used as/
> > +- pinctrl-names: should be "default" (see pinctrl binding [1]).
> > +- pinctrl-0: a phandle pointing to the pin settings for the device (see
> > + pinctrl binding [1]).
> > +- vcc-supply: a phandle for the regulator supplying 3.3V power.
> > +
> > +[0]: Documentation/devicetree/bindings/interrupt-controller/interrupts.txt
> > +[1]: Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt
> > +
> > +Example:
> > + &i2c1 {
> > + /* ... */
> > +
> > + touchpad@15 {
> > + compatible = "elan,i2c_touchpad";
> > + reg = <0x15>;
> > + interrupt-parent = <&gpio4>;
> > + interrupts = <0x0 IRQ_TYPE_EDGE_FALLING>;
> > + wakeup-source;
> > + };
> > +
> > + /* ... */
> > + };
Otherwise this looks ok.
Mark.
--
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/