~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/devicetree/bindings/input/brcm,bcm-keypad.txt

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  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 };

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php