1 * Broadcom Keypad Controller device tree bindings 2 3 Broadcom Keypad controller is used to interface a SoC with a matrix-type 4 keypad device. The keypad controller supports multiple row and column lines. 5 A key can be placed at each intersection of a unique row and a unique column. 6 The keypad controller can sense a key-press and key-release and report the 7 event using a interrupt to the cpu. 8 9 This binding is based on the matrix-keymap binding with the following 10 changes: 11 12 keypad,num-rows and keypad,num-columns are required. 13 14 Required SoC Specific Properties: 15 - compatible: should be "brcm,bcm-keypad" 16 17 - reg: physical base address of the controller and length of memory mapped 18 region. 19 20 - interrupts: The interrupt number to the cpu. 21 22 Board Specific Properties: 23 - keypad,num-rows: Number of row lines connected to the keypad 24 controller. 25 26 - keypad,num-columns: Number of column lines connected to the 27 keypad controller. 28 29 - col-debounce-filter-period: The debounce period for the Column filter. 30 31 KEYPAD_DEBOUNCE_1_ms = 0 32 KEYPAD_DEBOUNCE_2_ms = 1 33 KEYPAD_DEBOUNCE_4_ms = 2 34 KEYPAD_DEBOUNCE_8_ms = 3 35 KEYPAD_DEBOUNCE_16_ms = 4 36 KEYPAD_DEBOUNCE_32_ms = 5 37 KEYPAD_DEBOUNCE_64_ms = 6 38 KEYPAD_DEBOUNCE_128_ms = 7 39 40 - status-debounce-filter-period: The debounce period for the Status filter. 41 42 KEYPAD_DEBOUNCE_1_ms = 0 43 KEYPAD_DEBOUNCE_2_ms = 1 44 KEYPAD_DEBOUNCE_4_ms = 2 45 KEYPAD_DEBOUNCE_8_ms = 3 46 KEYPAD_DEBOUNCE_16_ms = 4 47 KEYPAD_DEBOUNCE_32_ms = 5 48 KEYPAD_DEBOUNCE_64_ms = 6 49 KEYPAD_DEBOUNCE_128_ms = 7 50 51 - row-output-enabled: An optional property indicating whether the row or 52 column is being used as output. If specified the row is being used 53 as the output. Else defaults to column. 54 55 - pull-up-enabled: An optional property indicating the Keypad scan mode. 56 If specified implies the keypad scan pull-up has been enabled. 57 58 - autorepeat: Boolean, Enable auto repeat feature of Linux input 59 subsystem (optional). 60 61 - linux,keymap: The keymap for keys as described in the binding document 62 devicetree/bindings/input/matrix-keymap.txt. 63 64 Example: 65 #include "dt-bindings/input/input.h" 66 67 / { 68 keypad: keypad@180ac000 { 69 /* Required SoC specific properties */ 70 compatible = "brcm,bcm-keypad"; 71 72 /* Required Board specific properties */ 73 keypad,num-rows = <5>; 74 keypad,num-columns = <5>; 75 76 linux,keymap = <MATRIX_KEY(0x00, 0x02, KEY_F) /* key_forward */ 77 MATRIX_KEY(0x00, 0x03, KEY_HOME) /* key_home */ 78 MATRIX_KEY(0x00, 0x04, KEY_M) /* key_message */ 79 MATRIX_KEY(0x01, 0x00, KEY_A) /* key_contacts */ 80 MATRIX_KEY(0x01, 0x01, KEY_1) /* key_1 */ 81 MATRIX_KEY(0x01, 0x02, KEY_2) /* key_2 */ 82 MATRIX_KEY(0x01, 0x03, KEY_3) /* key_3 */ 83 MATRIX_KEY(0x01, 0x04, KEY_S) /* key_speaker */ 84 MATRIX_KEY(0x02, 0x00, KEY_P) /* key_phone */ 85 MATRIX_KEY(0x02, 0x01, KEY_4) /* key_4 */ 86 MATRIX_KEY(0x02, 0x02, KEY_5) /* key_5 */ 87 MATRIX_KEY(0x02, 0x03, KEY_6) /* key_6 */ 88 MATRIX_KEY(0x02, 0x04, KEY_VOLUMEUP) /* key_vol_up */ 89 MATRIX_KEY(0x03, 0x00, KEY_C) /* key_call_log */ 90 MATRIX_KEY(0x03, 0x01, KEY_7) /* key_7 */ 91 MATRIX_KEY(0x03, 0x02, KEY_8) /* key_8 */ 92 MATRIX_KEY(0x03, 0x03, KEY_9) /* key_9 */ 93 MATRIX_KEY(0x03, 0x04, KEY_VOLUMEDOWN) /* key_vol_down */ 94 MATRIX_KEY(0x04, 0x00, KEY_H) /* key_headset */ 95 MATRIX_KEY(0x04, 0x01, KEY_KPASTERISK) /* key_* */ 96 MATRIX_KEY(0x04, 0x02, KEY_0) /* key_0 */ 97 MATRIX_KEY(0x04, 0x03, KEY_GRAVE) /* key_# */ 98 MATRIX_KEY(0x04, 0x04, KEY_MUTE) /* key_mute */ 99 >; 100 101 /* Optional board specific properties */ 102 col-debounce-filter-period = <5>; 103 row-output-enabled; 104 pull-up-enabled; 105 106 }; 107 };
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.