linux/Documentation/devicetree/bindings/input/samsung-keypad.txt
<<
>>
Prefs
   1* Samsung's Keypad Controller device tree bindings
   2
   3Samsung's Keypad controller is used to interface a SoC with a matrix-type
   4keypad device. The keypad controller supports multiple row and column lines.
   5A key can be placed at each intersection of a unique row and a unique column.
   6The keypad controller can sense a key-press and key-release and report the
   7event using a interrupt to the cpu.
   8
   9Required SoC Specific Properties:
  10- compatible: should be one of the following
  11  - "samsung,s3c6410-keypad": For controllers compatible with s3c6410 keypad
  12    controller.
  13  - "samsung,s5pv210-keypad": For controllers compatible with s5pv210 keypad
  14    controller.
  15
  16- reg: physical base address of the controller and length of memory mapped
  17  region.
  18
  19- interrupts: The interrupt number to the cpu.
  20
  21Required Board Specific Properties:
  22- samsung,keypad-num-rows: Number of row lines connected to the keypad
  23  controller.
  24
  25- samsung,keypad-num-columns: Number of column lines connected to the
  26  keypad controller.
  27
  28- Keys represented as child nodes: Each key connected to the keypad
  29  controller is represented as a child node to the keypad controller
  30  device node and should include the following properties.
  31  - keypad,row: the row number to which the key is connected.
  32  - keypad,column: the column number to which the key is connected.
  33  - linux,code: the key-code to be reported when the key is pressed
  34    and released.
  35
  36- pinctrl-0: Should specify pin control groups used for this controller.
  37- pinctrl-names: Should contain only one value - "default".
  38
  39Optional Properties specific to linux:
  40- linux,keypad-no-autorepeat: do no enable autorepeat feature.
  41- linux,keypad-wakeup: use any event on keypad as wakeup event.
  42
  43
  44Example:
  45        keypad@100A0000 {
  46                compatible = "samsung,s5pv210-keypad";
  47                reg = <0x100A0000 0x100>;
  48                interrupts = <173>;
  49                samsung,keypad-num-rows = <2>;
  50                samsung,keypad-num-columns = <8>;
  51                linux,input-no-autorepeat;
  52                linux,input-wakeup;
  53
  54                pinctrl-names = "default";
  55                pinctrl-0 = <&keypad_rows &keypad_columns>;
  56
  57                key_1 {
  58                        keypad,row = <0>;
  59                        keypad,column = <3>;
  60                        linux,code = <2>;
  61                };
  62
  63                key_2 {
  64                        keypad,row = <0>;
  65                        keypad,column = <4>;
  66                        linux,code = <3>;
  67                };
  68
  69                key_3 {
  70                        keypad,row = <0>;
  71                        keypad,column = <5>;
  72                        linux,code = <4>;
  73                };
  74        };
  75