Add the rt linux 4.1.3-rt3 as base
[kvmfornfv.git] / kernel / Documentation / devicetree / bindings / input / pxa27x-keypad.txt
diff --git a/kernel/Documentation/devicetree/bindings/input/pxa27x-keypad.txt b/kernel/Documentation/devicetree/bindings/input/pxa27x-keypad.txt
new file mode 100644 (file)
index 0000000..f8674f7
--- /dev/null
@@ -0,0 +1,60 @@
+* Marvell PXA Keypad controller
+
+Required Properties
+- compatible : should be "marvell,pxa27x-keypad"
+- reg : Address and length of the register set for the device
+- interrupts : The interrupt for the keypad controller
+- marvell,debounce-interval : How long time the key will be
+  recognized when it is pressed. It is a u32 value, and bit[31:16]
+  is debounce interval for direct key and bit[15:0] is debounce
+  interval for matrix key. The value is in binary number of 2ms
+
+Optional Properties For Matrix Keyes
+Please refer to matrix-keymap.txt
+
+Optional Properties for Direct Keyes
+- marvell,direct-key-count : How many direct keyes are used.
+- marvell,direct-key-mask : The mask indicates which keyes
+  are used. If bit[X] of the mask is set, the direct key X
+  is used.
+- marvell,direct-key-low-active : Direct key status register
+  tells the level of pins that connects to the direct keyes.
+  When this property is set, it means that when the pin level
+  is low, the key is pressed(active).
+- marvell,direct-key-map : It is a u16 array. Each item indicates
+  the linux key-code for the direct key.
+
+Optional Properties For Rotary
+- marvell,rotary0 : It is a u32 value. Bit[31:16] is the
+  linux key-code for rotary up. Bit[15:0] is the linux key-code
+  for rotary down. It is for rotary 0.
+- marvell,rotary1 : Same as marvell,rotary0. It is for rotary 1.
+- marvell,rotary-rel-key : When rotary is used for relative axes
+  in the device, the value indicates the key-code for relative
+  axes measurement in the device. It is a u32 value. Bit[31:16]
+  is for rotary 1, and Bit[15:0] is for rotary 0.
+
+Examples:
+       keypad: keypad@d4012000 {
+               keypad,num-rows = <3>;
+               keypad,num-columns = <5>;
+               linux,keymap = <0x0000000e      /* KEY_BACKSPACE */
+                               0x0001006b      /* KEY_END */
+                               0x00020061      /* KEY_RIGHTCTRL */
+                               0x0003000b      /* KEY_0 */
+                               0x00040002      /* KEY_1 */
+                               0x0100008b      /* KEY_MENU */
+                               0x01010066      /* KEY_HOME */
+                               0x010200e7      /* KEY_SEND */
+                               0x01030009      /* KEY_8 */
+                               0x0104000a      /* KEY_9 */
+                               0x02000160      /* KEY_OK */
+                               0x02010003      /* KEY_2 */
+                               0x02020004      /* KEY_3 */
+                               0x02030005      /* KEY_4 */
+                               0x02040006>;    /* KEY_5 */
+               marvell,rotary0 = <0x006c0067>; /* KEY_UP & KEY_DOWN */
+               marvell,direct-key-count = <1>;
+               marvell,direct-key-map = <0x001c>;
+               marvell,debounce-interval = <0x001e001e>;
+       };