| * Samsung's Keypad Controller device tree bindings |
| |
| Samsung's Keypad controller is used to interface a SoC with a matrix-type |
| keypad device. The keypad controller supports multiple row and column lines. |
| A key can be placed at each intersection of a unique row and a unique column. |
| The keypad controller can sense a key-press and key-release and report the |
| event using a interrupt to the cpu. |
| |
| Required SoC Specific Properties: |
| - compatible: should be one of the following |
| - "samsung,s3c6410-keypad": For controllers compatible with s3c6410 keypad |
| controller. |
| - "samsung,s5pv210-keypad": For controllers compatible with s5pv210 keypad |
| controller. |
| |
| - reg: physical base address of the controller and length of memory mapped |
| region. |
| |
| - interrupts: The interrupt number to the cpu. |
| |
| Required Board Specific Properties: |
| - samsung,keypad-num-rows: Number of row lines connected to the keypad |
| controller. |
| |
| - samsung,keypad-num-columns: Number of column lines connected to the |
| keypad controller. |
| |
| - row-gpios: List of gpios used as row lines. The gpio specifier for |
| this property depends on the gpio controller to which these row lines |
| are connected. |
| |
| - col-gpios: List of gpios used as column lines. The gpio specifier for |
| this property depends on the gpio controller to which these column |
| lines are connected. |
| |
| - Keys represented as child nodes: Each key connected to the keypad |
| controller is represented as a child node to the keypad controller |
| device node and should include the following properties. |
| - keypad,row: the row number to which the key is connected. |
| - keypad,column: the column number to which the key is connected. |
| - linux,code: the key-code to be reported when the key is pressed |
| and released. |
| |
| Optional Properties specific to linux: |
| - linux,keypad-no-autorepeat: do no enable autorepeat feature. |
| - linux,keypad-wakeup: use any event on keypad as wakeup event. |
| |
| |
| Example: |
| keypad@100A0000 { |
| compatible = "samsung,s5pv210-keypad"; |
| reg = <0x100A0000 0x100>; |
| interrupts = <173>; |
| samsung,keypad-num-rows = <2>; |
| samsung,keypad-num-columns = <8>; |
| linux,input-no-autorepeat; |
| linux,input-wakeup; |
| |
| row-gpios = <&gpx2 0 3 3 0 |
| &gpx2 1 3 3 0>; |
| |
| col-gpios = <&gpx1 0 3 0 0 |
| &gpx1 1 3 0 0 |
| &gpx1 2 3 0 0 |
| &gpx1 3 3 0 0 |
| &gpx1 4 3 0 0 |
| &gpx1 5 3 0 0 |
| &gpx1 6 3 0 0 |
| &gpx1 7 3 0 0>; |
| |
| key_1 { |
| keypad,row = <0>; |
| keypad,column = <3>; |
| linux,code = <2>; |
| }; |
| |
| key_2 { |
| keypad,row = <0>; |
| keypad,column = <4>; |
| linux,code = <3>; |
| }; |
| |
| key_3 { |
| keypad,row = <0>; |
| keypad,column = <5>; |
| linux,code = <4>; |
| }; |
| }; |