18c2ecf20Sopenharmony_ci* Broadcom Keypad Controller device tree bindings 28c2ecf20Sopenharmony_ci 38c2ecf20Sopenharmony_ciBroadcom Keypad controller is used to interface a SoC with a matrix-type 48c2ecf20Sopenharmony_cikeypad device. The keypad controller supports multiple row and column lines. 58c2ecf20Sopenharmony_ciA key can be placed at each intersection of a unique row and a unique column. 68c2ecf20Sopenharmony_ciThe keypad controller can sense a key-press and key-release and report the 78c2ecf20Sopenharmony_cievent using a interrupt to the cpu. 88c2ecf20Sopenharmony_ci 98c2ecf20Sopenharmony_ciThis binding is based on the matrix-keymap binding with the following 108c2ecf20Sopenharmony_cichanges: 118c2ecf20Sopenharmony_ci 128c2ecf20Sopenharmony_cikeypad,num-rows and keypad,num-columns are required. 138c2ecf20Sopenharmony_ci 148c2ecf20Sopenharmony_ciRequired SoC Specific Properties: 158c2ecf20Sopenharmony_ci- compatible: should be "brcm,bcm-keypad" 168c2ecf20Sopenharmony_ci 178c2ecf20Sopenharmony_ci- reg: physical base address of the controller and length of memory mapped 188c2ecf20Sopenharmony_ci region. 198c2ecf20Sopenharmony_ci 208c2ecf20Sopenharmony_ci- interrupts: The interrupt number to the cpu. 218c2ecf20Sopenharmony_ci 228c2ecf20Sopenharmony_ciBoard Specific Properties: 238c2ecf20Sopenharmony_ci- keypad,num-rows: Number of row lines connected to the keypad 248c2ecf20Sopenharmony_ci controller. 258c2ecf20Sopenharmony_ci 268c2ecf20Sopenharmony_ci- keypad,num-columns: Number of column lines connected to the 278c2ecf20Sopenharmony_ci keypad controller. 288c2ecf20Sopenharmony_ci 298c2ecf20Sopenharmony_ci- col-debounce-filter-period: The debounce period for the Column filter. 308c2ecf20Sopenharmony_ci 318c2ecf20Sopenharmony_ci KEYPAD_DEBOUNCE_1_ms = 0 328c2ecf20Sopenharmony_ci KEYPAD_DEBOUNCE_2_ms = 1 338c2ecf20Sopenharmony_ci KEYPAD_DEBOUNCE_4_ms = 2 348c2ecf20Sopenharmony_ci KEYPAD_DEBOUNCE_8_ms = 3 358c2ecf20Sopenharmony_ci KEYPAD_DEBOUNCE_16_ms = 4 368c2ecf20Sopenharmony_ci KEYPAD_DEBOUNCE_32_ms = 5 378c2ecf20Sopenharmony_ci KEYPAD_DEBOUNCE_64_ms = 6 388c2ecf20Sopenharmony_ci KEYPAD_DEBOUNCE_128_ms = 7 398c2ecf20Sopenharmony_ci 408c2ecf20Sopenharmony_ci- status-debounce-filter-period: The debounce period for the Status filter. 418c2ecf20Sopenharmony_ci 428c2ecf20Sopenharmony_ci KEYPAD_DEBOUNCE_1_ms = 0 438c2ecf20Sopenharmony_ci KEYPAD_DEBOUNCE_2_ms = 1 448c2ecf20Sopenharmony_ci KEYPAD_DEBOUNCE_4_ms = 2 458c2ecf20Sopenharmony_ci KEYPAD_DEBOUNCE_8_ms = 3 468c2ecf20Sopenharmony_ci KEYPAD_DEBOUNCE_16_ms = 4 478c2ecf20Sopenharmony_ci KEYPAD_DEBOUNCE_32_ms = 5 488c2ecf20Sopenharmony_ci KEYPAD_DEBOUNCE_64_ms = 6 498c2ecf20Sopenharmony_ci KEYPAD_DEBOUNCE_128_ms = 7 508c2ecf20Sopenharmony_ci 518c2ecf20Sopenharmony_ci- row-output-enabled: An optional property indicating whether the row or 528c2ecf20Sopenharmony_ci column is being used as output. If specified the row is being used 538c2ecf20Sopenharmony_ci as the output. Else defaults to column. 548c2ecf20Sopenharmony_ci 558c2ecf20Sopenharmony_ci- pull-up-enabled: An optional property indicating the Keypad scan mode. 568c2ecf20Sopenharmony_ci If specified implies the keypad scan pull-up has been enabled. 578c2ecf20Sopenharmony_ci 588c2ecf20Sopenharmony_ci- autorepeat: Boolean, Enable auto repeat feature of Linux input 598c2ecf20Sopenharmony_ci subsystem (optional). 608c2ecf20Sopenharmony_ci 618c2ecf20Sopenharmony_ci- linux,keymap: The keymap for keys as described in the binding document 628c2ecf20Sopenharmony_ci devicetree/bindings/input/matrix-keymap.txt. 638c2ecf20Sopenharmony_ci 648c2ecf20Sopenharmony_ciExample: 658c2ecf20Sopenharmony_ci#include "dt-bindings/input/input.h" 668c2ecf20Sopenharmony_ci 678c2ecf20Sopenharmony_ci/ { 688c2ecf20Sopenharmony_ci keypad: keypad@180ac000 { 698c2ecf20Sopenharmony_ci /* Required SoC specific properties */ 708c2ecf20Sopenharmony_ci compatible = "brcm,bcm-keypad"; 718c2ecf20Sopenharmony_ci 728c2ecf20Sopenharmony_ci /* Required Board specific properties */ 738c2ecf20Sopenharmony_ci keypad,num-rows = <5>; 748c2ecf20Sopenharmony_ci keypad,num-columns = <5>; 758c2ecf20Sopenharmony_ci 768c2ecf20Sopenharmony_ci linux,keymap = <MATRIX_KEY(0x00, 0x02, KEY_F) /* key_forward */ 778c2ecf20Sopenharmony_ci MATRIX_KEY(0x00, 0x03, KEY_HOME) /* key_home */ 788c2ecf20Sopenharmony_ci MATRIX_KEY(0x00, 0x04, KEY_M) /* key_message */ 798c2ecf20Sopenharmony_ci MATRIX_KEY(0x01, 0x00, KEY_A) /* key_contacts */ 808c2ecf20Sopenharmony_ci MATRIX_KEY(0x01, 0x01, KEY_1) /* key_1 */ 818c2ecf20Sopenharmony_ci MATRIX_KEY(0x01, 0x02, KEY_2) /* key_2 */ 828c2ecf20Sopenharmony_ci MATRIX_KEY(0x01, 0x03, KEY_3) /* key_3 */ 838c2ecf20Sopenharmony_ci MATRIX_KEY(0x01, 0x04, KEY_S) /* key_speaker */ 848c2ecf20Sopenharmony_ci MATRIX_KEY(0x02, 0x00, KEY_P) /* key_phone */ 858c2ecf20Sopenharmony_ci MATRIX_KEY(0x02, 0x01, KEY_4) /* key_4 */ 868c2ecf20Sopenharmony_ci MATRIX_KEY(0x02, 0x02, KEY_5) /* key_5 */ 878c2ecf20Sopenharmony_ci MATRIX_KEY(0x02, 0x03, KEY_6) /* key_6 */ 888c2ecf20Sopenharmony_ci MATRIX_KEY(0x02, 0x04, KEY_VOLUMEUP) /* key_vol_up */ 898c2ecf20Sopenharmony_ci MATRIX_KEY(0x03, 0x00, KEY_C) /* key_call_log */ 908c2ecf20Sopenharmony_ci MATRIX_KEY(0x03, 0x01, KEY_7) /* key_7 */ 918c2ecf20Sopenharmony_ci MATRIX_KEY(0x03, 0x02, KEY_8) /* key_8 */ 928c2ecf20Sopenharmony_ci MATRIX_KEY(0x03, 0x03, KEY_9) /* key_9 */ 938c2ecf20Sopenharmony_ci MATRIX_KEY(0x03, 0x04, KEY_VOLUMEDOWN) /* key_vol_down */ 948c2ecf20Sopenharmony_ci MATRIX_KEY(0x04, 0x00, KEY_H) /* key_headset */ 958c2ecf20Sopenharmony_ci MATRIX_KEY(0x04, 0x01, KEY_KPASTERISK) /* key_* */ 968c2ecf20Sopenharmony_ci MATRIX_KEY(0x04, 0x02, KEY_0) /* key_0 */ 978c2ecf20Sopenharmony_ci MATRIX_KEY(0x04, 0x03, KEY_GRAVE) /* key_# */ 988c2ecf20Sopenharmony_ci MATRIX_KEY(0x04, 0x04, KEY_MUTE) /* key_mute */ 998c2ecf20Sopenharmony_ci >; 1008c2ecf20Sopenharmony_ci 1018c2ecf20Sopenharmony_ci /* Optional board specific properties */ 1028c2ecf20Sopenharmony_ci col-debounce-filter-period = <5>; 1038c2ecf20Sopenharmony_ci row-output-enabled; 1048c2ecf20Sopenharmony_ci pull-up-enabled; 1058c2ecf20Sopenharmony_ci 1068c2ecf20Sopenharmony_ci }; 1078c2ecf20Sopenharmony_ci}; 108