Commit 1d0b1c74 authored by Simon Glass's avatar Simon Glass Committed by Grant Likely

input: Extend matrix-keypad device tree binding

Some matrix keypad drivers can support different numbers of rows and
columns. Add a generic binding for these.

Implementation note:

In order to implement this binding in the kernel, we will need to modify
matrix_keypad_() to look up the number of rows and cols in
the keymap. Perhaps this could be done by passing 0 for these parameters?
Many of the parameters can already be set to NULL. Ick.
Signed-off-by: default avatarSimon Glass <sjg@chromium.org>
Reviewed-by: default avatarStephen Warren <swarren@nvidia.com>
Signed-off-by: default avatarGrant Likely <grant.likely@secretlab.ca>
parent d2f4ec10
NXP LPC32xx Key Scan Interface NXP LPC32xx Key Scan Interface
This binding is based on the matrix-keymap binding with the following
changes:
Required Properties: Required Properties:
- compatible: Should be "nxp,lpc3220-key" - compatible: Should be "nxp,lpc3220-key"
- reg: Physical base address of the controller and length of memory mapped - reg: Physical base address of the controller and length of memory mapped
region. region.
- interrupts: The interrupt number to the cpu. - interrupts: The interrupt number to the cpu.
- keypad,num-rows: Number of rows and columns, e.g. 1: 1x1, 6: 6x6
- keypad,num-columns: Must be equal to keypad,num-rows since LPC32xx only
supports square matrices
- nxp,debounce-delay-ms: Debounce delay in ms - nxp,debounce-delay-ms: Debounce delay in ms
- nxp,scan-delay-ms: Repeated scan period in ms - nxp,scan-delay-ms: Repeated scan period in ms
- linux,keymap: the key-code to be reported when the key is pressed - linux,keymap: the key-code to be reported when the key is pressed
and released, see also and released, see also
Documentation/devicetree/bindings/input/matrix-keymap.txt Documentation/devicetree/bindings/input/matrix-keymap.txt
Note: keypad,num-rows and keypad,num-columns are required, and must be equal
since LPC32xx only supports square matrices
Example: Example:
key@40050000 { key@40050000 {
......
...@@ -9,6 +9,12 @@ Required properties: ...@@ -9,6 +9,12 @@ Required properties:
row << 24 | column << 16 | key-code row << 24 | column << 16 | key-code
Optional properties: Optional properties:
Properties for the number of rows and columns are optional because some
drivers will use fixed values for these.
- keypad,num-rows: Number of row lines connected to the keypad controller.
- keypad,num-columns: Number of column lines connected to the keypad
controller.
Some users of this binding might choose to specify secondary keymaps for Some users of this binding might choose to specify secondary keymaps for
cases where there is a modifier key such as a Fn key. Proposed names cases where there is a modifier key such as a Fn key. Proposed names
for said properties are "linux,fn-keymap" or with another descriptive for said properties are "linux,fn-keymap" or with another descriptive
...@@ -17,3 +23,5 @@ word for the modifier other from "Fn". ...@@ -17,3 +23,5 @@ word for the modifier other from "Fn".
Example: Example:
linux,keymap = < 0x00030012 linux,keymap = < 0x00030012
0x0102003a >; 0x0102003a >;
keypad,num-rows = <2>;
keypad,num-columns = <8>;
...@@ -6,19 +6,16 @@ A key can be placed at each intersection of a unique row and a unique column. ...@@ -6,19 +6,16 @@ A key can be placed at each intersection of a unique row and a unique column.
The keypad controller can sense a key-press and key-release and report the The keypad controller can sense a key-press and key-release and report the
event using a interrupt to the cpu. event using a interrupt to the cpu.
This binding is based on the matrix-keymap binding with the following
changes:
keypad,num-rows and keypad,num-columns are required.
Required SoC Specific Properties: Required SoC Specific Properties:
- compatible: should be one of the following - compatible: should be one of the following
- "ti,omap4-keypad": For controllers compatible with omap4 keypad - "ti,omap4-keypad": For controllers compatible with omap4 keypad
controller. controller.
Required Board Specific Properties, in addition to those specified by
the shared matrix-keyboard bindings:
- keypad,num-rows: Number of row lines connected to the keypad
controller.
- keypad,num-columns: Number of column lines connected to the
keypad controller.
Optional Properties specific to linux: Optional Properties specific to linux:
- linux,keypad-no-autorepeat: do no enable autorepeat feature. - linux,keypad-no-autorepeat: do no enable autorepeat feature.
......
This binding is based on the matrix-keymap binding with the following
changes:
keypad,num-rows and keypad,num-columns are required.
Required properties: Required properties:
- compatible: "ti,tca8418" - compatible: "ti,tca8418"
- reg: the I2C address - reg: the I2C address
- interrupts: IRQ line number, should trigger on falling edge - interrupts: IRQ line number, should trigger on falling edge
- keypad,num-rows: The number of rows
- keypad,num-columns: The number of columns
- linux,keymap: Keys definitions, see keypad-matrix. - linux,keymap: Keys definitions, see keypad-matrix.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment