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