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- row-gpios: List of gpios used as row lines. The gpio specifier for
  29  this property depends on the gpio controller to which these row lines
  30  are connected.
  31
  32- col-gpios: List of gpios used as column lines. The gpio specifier for
  33  this property depends on the gpio controller to which these column
  34  lines are connected.
  35
  36- Keys represented as child nodes: Each key connected to the keypad
  37  controller is represented as a child node to the keypad controller
  38  device node and should include the following properties.
  39  - keypad,row: the row number to which the key is connected.
  40  - keypad,column: the column number to which the key is connected.
  41  - linux,code: the key-code to be reported when the key is pressed
  42    and released.
  43
  44Optional Properties specific to linux:
  45- linux,keypad-no-autorepeat: do no enable autorepeat feature.
  46- linux,keypad-wakeup: use any event on keypad as wakeup event.
  47
  48
  49Example:
  50        keypad@100A0000 {
  51                compatible = "samsung,s5pv210-keypad";
  52                reg = <0x100A0000 0x100>;
  53                interrupts = <173>;
  54                samsung,keypad-num-rows = <2>;
  55                samsung,keypad-num-columns = <8>;
  56                linux,input-no-autorepeat;
  57                linux,input-wakeup;
  58
  59                row-gpios = <&gpx2 0 3 3 0
  60                             &gpx2 1 3 3 0>;
  61
  62                col-gpios = <&gpx1 0 3 0 0
  63                             &gpx1 1 3 0 0
  64                             &gpx1 2 3 0 0
  65                             &gpx1 3 3 0 0
  66                             &gpx1 4 3 0 0
  67                             &gpx1 5 3 0 0
  68                             &gpx1 6 3 0 0
  69                             &gpx1 7 3 0 0>;
  70
  71                key_1 {
  72                        keypad,row = <0>;
  73                        keypad,column = <3>;
  74                        linux,code = <2>;
  75                };
  76
  77                key_2 {
  78                        keypad,row = <0>;
  79                        keypad,column = <4>;
  80                        linux,code = <3>;
  81                };
  82
  83                key_3 {
  84                        keypad,row = <0>;
  85                        keypad,column = <5>;
  86                        linux,code = <4>;
  87                };
  88        };
  89