108 lines · plain
1* Broadcom Keypad Controller device tree bindings2 3Broadcom Keypad controller is used to interface a SoC with a matrix-type4keypad 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 the7event using a interrupt to the cpu.8 9This binding is based on the matrix-keymap binding with the following10changes:11 12keypad,num-rows and keypad,num-columns are required.13 14Required SoC Specific Properties:15- compatible: should be "brcm,bcm-keypad"16 17- reg: physical base address of the controller and length of memory mapped18 region.19 20- interrupts: The interrupt number to the cpu.21 22Board Specific Properties:23- keypad,num-rows: Number of row lines connected to the keypad24 controller.25 26- keypad,num-columns: Number of column lines connected to the27 keypad controller.28 29- col-debounce-filter-period: The debounce period for the Column filter.30 31 KEYPAD_DEBOUNCE_1_ms = 032 KEYPAD_DEBOUNCE_2_ms = 133 KEYPAD_DEBOUNCE_4_ms = 234 KEYPAD_DEBOUNCE_8_ms = 335 KEYPAD_DEBOUNCE_16_ms = 436 KEYPAD_DEBOUNCE_32_ms = 537 KEYPAD_DEBOUNCE_64_ms = 638 KEYPAD_DEBOUNCE_128_ms = 739 40- status-debounce-filter-period: The debounce period for the Status filter.41 42 KEYPAD_DEBOUNCE_1_ms = 043 KEYPAD_DEBOUNCE_2_ms = 144 KEYPAD_DEBOUNCE_4_ms = 245 KEYPAD_DEBOUNCE_8_ms = 346 KEYPAD_DEBOUNCE_16_ms = 447 KEYPAD_DEBOUNCE_32_ms = 548 KEYPAD_DEBOUNCE_64_ms = 649 KEYPAD_DEBOUNCE_128_ms = 750 51- row-output-enabled: An optional property indicating whether the row or52 column is being used as output. If specified the row is being used53 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 input59 subsystem (optional).60 61- linux,keymap: The keymap for keys as described in the binding document62 devicetree/bindings/input/matrix-keymap.txt.63 64Example: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};108