Hi On Fri, Jul 11, 2014 at 9:42 AM, Daniel Mack <zonque@xxxxxxxxx> wrote: > This patch adds a driver for Microchips CAP1106, an I2C driven, 6-channel > capacitive touch sensor. > > For now, only the capacitive buttons are supported, and no specific > settings that can be tweaked for individual channels, except for the > device-wide sensitivity gain. The defaults seem to work just fine out of > the box, so I'll leave configurable parameters for someone who's in need > of them and who can actually measure the impact. All registers are > prepared, however. Many of them are just not used for now. > > The implementation does not make any attempt to be compatible to platform > data driven boards, but fully depends on CONFIG_OF. > > Power management functions are also left for volounteers with the ability > to actually test them. > > Signed-off-by: Daniel Mack <zonque@xxxxxxxxx> > --- > .../devicetree/bindings/input/cap1106.txt | 63 ++++ > drivers/input/keyboard/Kconfig | 10 + > drivers/input/keyboard/Makefile | 1 + > drivers/input/keyboard/cap1106.c | 376 +++++++++++++++++++++ > 4 files changed, 450 insertions(+) > create mode 100644 Documentation/devicetree/bindings/input/cap1106.txt > create mode 100644 drivers/input/keyboard/cap1106.c > > diff --git a/Documentation/devicetree/bindings/input/cap1106.txt b/Documentation/devicetree/bindings/input/cap1106.txt > new file mode 100644 > index 0000000..57f5af3 ... > + spin_lock_irqsave(&priv->lock, flags); > + disable_irq(priv->irq); > + cancel_work_sync(&priv->work); > + spin_unlock_irqrestore(&priv->lock, flags); Btw., cancel_work_sync() has a might_sleep() annotation, so you really cannot call it while holding spinlocks (see start_flush_work() in workqueue.c). Cheers David -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html