162306a36Sopenharmony_ci* Broadcom Keypad Controller device tree bindings 262306a36Sopenharmony_ci 362306a36Sopenharmony_ciBroadcom Keypad controller is used to interface a SoC with a matrix-type 462306a36Sopenharmony_cikeypad device. The keypad controller supports multiple row and column lines. 562306a36Sopenharmony_ciA key can be placed at each intersection of a unique row and a unique column. 662306a36Sopenharmony_ciThe keypad controller can sense a key-press and key-release and report the 762306a36Sopenharmony_cievent using a interrupt to the cpu. 862306a36Sopenharmony_ci 962306a36Sopenharmony_ciThis binding is based on the matrix-keymap binding with the following 1062306a36Sopenharmony_cichanges: 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_cikeypad,num-rows and keypad,num-columns are required. 1362306a36Sopenharmony_ci 1462306a36Sopenharmony_ciRequired SoC Specific Properties: 1562306a36Sopenharmony_ci- compatible: should be "brcm,bcm-keypad" 1662306a36Sopenharmony_ci 1762306a36Sopenharmony_ci- reg: physical base address of the controller and length of memory mapped 1862306a36Sopenharmony_ci region. 1962306a36Sopenharmony_ci 2062306a36Sopenharmony_ci- interrupts: The interrupt number to the cpu. 2162306a36Sopenharmony_ci 2262306a36Sopenharmony_ciBoard Specific Properties: 2362306a36Sopenharmony_ci- keypad,num-rows: Number of row lines connected to the keypad 2462306a36Sopenharmony_ci controller. 2562306a36Sopenharmony_ci 2662306a36Sopenharmony_ci- keypad,num-columns: Number of column lines connected to the 2762306a36Sopenharmony_ci keypad controller. 2862306a36Sopenharmony_ci 2962306a36Sopenharmony_ci- col-debounce-filter-period: The debounce period for the Column filter. 3062306a36Sopenharmony_ci 3162306a36Sopenharmony_ci KEYPAD_DEBOUNCE_1_ms = 0 3262306a36Sopenharmony_ci KEYPAD_DEBOUNCE_2_ms = 1 3362306a36Sopenharmony_ci KEYPAD_DEBOUNCE_4_ms = 2 3462306a36Sopenharmony_ci KEYPAD_DEBOUNCE_8_ms = 3 3562306a36Sopenharmony_ci KEYPAD_DEBOUNCE_16_ms = 4 3662306a36Sopenharmony_ci KEYPAD_DEBOUNCE_32_ms = 5 3762306a36Sopenharmony_ci KEYPAD_DEBOUNCE_64_ms = 6 3862306a36Sopenharmony_ci KEYPAD_DEBOUNCE_128_ms = 7 3962306a36Sopenharmony_ci 4062306a36Sopenharmony_ci- status-debounce-filter-period: The debounce period for the Status filter. 4162306a36Sopenharmony_ci 4262306a36Sopenharmony_ci KEYPAD_DEBOUNCE_1_ms = 0 4362306a36Sopenharmony_ci KEYPAD_DEBOUNCE_2_ms = 1 4462306a36Sopenharmony_ci KEYPAD_DEBOUNCE_4_ms = 2 4562306a36Sopenharmony_ci KEYPAD_DEBOUNCE_8_ms = 3 4662306a36Sopenharmony_ci KEYPAD_DEBOUNCE_16_ms = 4 4762306a36Sopenharmony_ci KEYPAD_DEBOUNCE_32_ms = 5 4862306a36Sopenharmony_ci KEYPAD_DEBOUNCE_64_ms = 6 4962306a36Sopenharmony_ci KEYPAD_DEBOUNCE_128_ms = 7 5062306a36Sopenharmony_ci 5162306a36Sopenharmony_ci- row-output-enabled: An optional property indicating whether the row or 5262306a36Sopenharmony_ci column is being used as output. If specified the row is being used 5362306a36Sopenharmony_ci as the output. Else defaults to column. 5462306a36Sopenharmony_ci 5562306a36Sopenharmony_ci- pull-up-enabled: An optional property indicating the Keypad scan mode. 5662306a36Sopenharmony_ci If specified implies the keypad scan pull-up has been enabled. 5762306a36Sopenharmony_ci 5862306a36Sopenharmony_ci- autorepeat: Boolean, Enable auto repeat feature of Linux input 5962306a36Sopenharmony_ci subsystem (optional). 6062306a36Sopenharmony_ci 6162306a36Sopenharmony_ci- linux,keymap: The keymap for keys as described in the binding document 6262306a36Sopenharmony_ci devicetree/bindings/input/matrix-keymap.txt. 6362306a36Sopenharmony_ci 6462306a36Sopenharmony_ciExample: 6562306a36Sopenharmony_ci#include "dt-bindings/input/input.h" 6662306a36Sopenharmony_ci 6762306a36Sopenharmony_ci/ { 6862306a36Sopenharmony_ci keypad: keypad@180ac000 { 6962306a36Sopenharmony_ci /* Required SoC specific properties */ 7062306a36Sopenharmony_ci compatible = "brcm,bcm-keypad"; 7162306a36Sopenharmony_ci 7262306a36Sopenharmony_ci /* Required Board specific properties */ 7362306a36Sopenharmony_ci keypad,num-rows = <5>; 7462306a36Sopenharmony_ci keypad,num-columns = <5>; 7562306a36Sopenharmony_ci 7662306a36Sopenharmony_ci linux,keymap = <MATRIX_KEY(0x00, 0x02, KEY_F) /* key_forward */ 7762306a36Sopenharmony_ci MATRIX_KEY(0x00, 0x03, KEY_HOME) /* key_home */ 7862306a36Sopenharmony_ci MATRIX_KEY(0x00, 0x04, KEY_M) /* key_message */ 7962306a36Sopenharmony_ci MATRIX_KEY(0x01, 0x00, KEY_A) /* key_contacts */ 8062306a36Sopenharmony_ci MATRIX_KEY(0x01, 0x01, KEY_1) /* key_1 */ 8162306a36Sopenharmony_ci MATRIX_KEY(0x01, 0x02, KEY_2) /* key_2 */ 8262306a36Sopenharmony_ci MATRIX_KEY(0x01, 0x03, KEY_3) /* key_3 */ 8362306a36Sopenharmony_ci MATRIX_KEY(0x01, 0x04, KEY_S) /* key_speaker */ 8462306a36Sopenharmony_ci MATRIX_KEY(0x02, 0x00, KEY_P) /* key_phone */ 8562306a36Sopenharmony_ci MATRIX_KEY(0x02, 0x01, KEY_4) /* key_4 */ 8662306a36Sopenharmony_ci MATRIX_KEY(0x02, 0x02, KEY_5) /* key_5 */ 8762306a36Sopenharmony_ci MATRIX_KEY(0x02, 0x03, KEY_6) /* key_6 */ 8862306a36Sopenharmony_ci MATRIX_KEY(0x02, 0x04, KEY_VOLUMEUP) /* key_vol_up */ 8962306a36Sopenharmony_ci MATRIX_KEY(0x03, 0x00, KEY_C) /* key_call_log */ 9062306a36Sopenharmony_ci MATRIX_KEY(0x03, 0x01, KEY_7) /* key_7 */ 9162306a36Sopenharmony_ci MATRIX_KEY(0x03, 0x02, KEY_8) /* key_8 */ 9262306a36Sopenharmony_ci MATRIX_KEY(0x03, 0x03, KEY_9) /* key_9 */ 9362306a36Sopenharmony_ci MATRIX_KEY(0x03, 0x04, KEY_VOLUMEDOWN) /* key_vol_down */ 9462306a36Sopenharmony_ci MATRIX_KEY(0x04, 0x00, KEY_H) /* key_headset */ 9562306a36Sopenharmony_ci MATRIX_KEY(0x04, 0x01, KEY_KPASTERISK) /* key_* */ 9662306a36Sopenharmony_ci MATRIX_KEY(0x04, 0x02, KEY_0) /* key_0 */ 9762306a36Sopenharmony_ci MATRIX_KEY(0x04, 0x03, KEY_GRAVE) /* key_# */ 9862306a36Sopenharmony_ci MATRIX_KEY(0x04, 0x04, KEY_MUTE) /* key_mute */ 9962306a36Sopenharmony_ci >; 10062306a36Sopenharmony_ci 10162306a36Sopenharmony_ci /* Optional board specific properties */ 10262306a36Sopenharmony_ci col-debounce-filter-period = <5>; 10362306a36Sopenharmony_ci row-output-enabled; 10462306a36Sopenharmony_ci pull-up-enabled; 10562306a36Sopenharmony_ci 10662306a36Sopenharmony_ci }; 10762306a36Sopenharmony_ci}; 108