brintos

brintos / linux-shallow public Read only

0
0
Text · 3.5 KiB · 262deab Raw
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