Input: add new sun4i-lradc-keys driver
authorHans de Goede <hdegoede@redhat.com>
Thu, 18 Dec 2014 17:24:50 +0000 (09:24 -0800)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Mon, 22 Dec 2014 02:59:21 +0000 (18:59 -0800)
Allwinnner sunxi SoCs have a low resolution adc (called lradc) which is
specifically designed to have various (tablet) keys (ie home, back, search,
etc). attached to it using a resistor network. This adds a driver for this.

There are 2 channels, currently this driver only supports chan0 since there
are no boards known to use chan1.

This has been tested on an olimex a10s-olinuxino-micro, a13-olinuxino, and
a20-olinuxino-micro.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Documentation/devicetree/bindings/input/sun4i-lradc-keys.txt [new file with mode: 0644]
MAINTAINERS
drivers/input/keyboard/Kconfig
drivers/input/keyboard/Makefile
drivers/input/keyboard/sun4i-lradc-keys.c [new file with mode: 0644]

diff --git a/Documentation/devicetree/bindings/input/sun4i-lradc-keys.txt b/Documentation/devicetree/bindings/input/sun4i-lradc-keys.txt
new file mode 100644 (file)
index 0000000..b9c32f6
--- /dev/null
@@ -0,0 +1,62 @@
+Allwinner sun4i low res adc attached tablet keys
+------------------------------------------------
+
+Required properties:
+ - compatible: "allwinner,sun4i-a10-lradc-keys"
+ - reg: mmio address range of the chip
+ - interrupts: interrupt to which the chip is connected
+ - vref-supply: powersupply for the lradc reference voltage
+
+Each key is represented as a sub-node of "allwinner,sun4i-a10-lradc-keys":
+
+Required subnode-properties:
+       - label: Descriptive name of the key.
+       - linux,code: Keycode to emit.
+       - channel: Channel this key is attached to, mut be 0 or 1.
+       - voltage: Voltage in µV at lradc input when this key is pressed.
+
+Example:
+
+#include <dt-bindings/input/input.h>
+
+       lradc: lradc@01c22800 {
+               compatible = "allwinner,sun4i-a10-lradc-keys";
+               reg = <0x01c22800 0x100>;
+               interrupts = <31>;
+               vref-supply = <&reg_vcc3v0>;
+
+               button@191 {
+                       label = "Volume Up";
+                       linux,code = <KEY_VOLUMEUP>;
+                       channel = <0>;
+                       voltage = <191274>;
+               };
+
+               button@392 {
+                       label = "Volume Down";
+                       linux,code = <KEY_VOLUMEDOWN>;
+                       channel = <0>;
+                       voltage = <392644>;
+               };
+
+               button@601 {
+                       label = "Menu";
+                       linux,code = <KEY_MENU>;
+                       channel = <0>;
+                       voltage = <601151>;
+               };
+
+               button@795 {
+                       label = "Enter";
+                       linux,code = <KEY_ENTER>;
+                       channel = <0>;
+                       voltage = <795090>;
+               };
+
+               button@987 {
+                       label = "Home";
+                       linux,code = <KEY_HOMEPAGE>;
+                       channel = <0>;
+                       voltage = <987387>;
+               };
+       };
index f73bb41..21b834b 100644 (file)
@@ -8806,6 +8806,13 @@ F:       arch/m68k/sun3*/
 F:     arch/m68k/include/asm/sun3*
 F:     drivers/net/ethernet/i825xx/sun3*
 
+SUN4I LOW RES ADC ATTACHED TABLET KEYS DRIVER
+M:     Hans de Goede <hdegoede@redhat.com>
+L:     linux-input@vger.kernel.org
+S:     Maintained
+F:     Documentation/devicetree/bindings/input/sun4i-lradc-keys.txt
+F:     drivers/input/keyboard/sun4i-lradc-keys.c
+
 SUNDANCE NETWORK DRIVER
 M:     Denis Kirjanov <kda@linux-powerpc.org>
 L:     netdev@vger.kernel.org
Simple merge
Simple merge