cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

brcm,bcm-keypad.txt (3548B)


      1* Broadcom Keypad Controller device tree bindings
      2
      3Broadcom Keypad controller is used to interface a SoC with a matrix-type
      4keypad 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 the
      7event using a interrupt to the cpu.
      8
      9This binding is based on the matrix-keymap binding with the following
     10changes:
     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 mapped
     18  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 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
     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};