Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Input: phytium-keypad: Add Phytium keypad driver #201

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
64 changes: 64 additions & 0 deletions Documentation/devicetree/bindings/input/phytium,keypad.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/input/phytium,keypad.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Phytium Keypad Port

maintainers:
- Chen Baozi <[email protected]>

allOf:
- $ref: "/schemas/input/matrix-keymap.yaml#"

description: |
The keypad port is designed to interface with a keypad matrix, which
simplify the software task of scanning a keypad matrix. It is capable
of detecting, debouncing, and decoding one or multiple keys pressed
simultaneously on a keypad.


properties:
compatible:
- const: phytium,keypad

reg:
maxItems: 1

interrupts:
maxItems: 1

required:
- compatible
- reg
- interrupts
- linux,keymap

unevaluatedProperties: false

examples:
- |
keypad: keypad@2807a000 {
compatible = "phytium,keypad";
reg = <0x 0x2807a000 0x0 0x1000>;
interrupts = <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>;
keypad,num-rows = <4>;
keypad,num-columns = <4>;
linux,keymap = <0x00000067 /* KEY_UP */
0x0001006c /* KEY_DOWN */
0x00020072 /* KEY_VOLUMEDOWN */
0x00030066 /* KEY_HOME */
0x0100006a /* KEY_RIGHT */
0x01010069 /* KEY_LEFT */
0x0102001c /* KEY_ENTER */
0x01030073 /* KEY_VOLUMEUP */
0x02000040 /* KEY_F6 */
0x02010042 /* KEY_F8 */
0x02020043 /* KEY_F9 */
0x02030044 /* KEY_F10 */
0x0300003b /* KEY_F1 */
0x0301003c /* KEY_F2 */
0x0302003d /* KEY_F3 */
0x03030074>; /* KEY_POWER */
};
11 changes: 11 additions & 0 deletions drivers/input/keyboard/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -809,4 +809,15 @@ config KEYBOARD_CYPRESS_SF
To compile this driver as a module, choose M here: the
module will be called cypress-sf.

config KEYBOARD_PHYTIUM
tristate "Phytium keypad support"
depends on ARCH_PHYTIUM
select INPUT_MATRIXKMAP
help
Say Y here if you want to enable support for Phytium keypad
port.

To compile this driver as a module, choose M here: the
module will be called phytium_keypad.

endif
1 change: 1 addition & 0 deletions drivers/input/keyboard/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ obj-$(CONFIG_KEYBOARD_NSPIRE) += nspire-keypad.o
obj-$(CONFIG_KEYBOARD_OMAP) += omap-keypad.o
obj-$(CONFIG_KEYBOARD_OMAP4) += omap4-keypad.o
obj-$(CONFIG_KEYBOARD_OPENCORES) += opencores-kbd.o
obj-$(CONFIG_KEYBOARD_PHYTIUM) += phytium-keypad.o
obj-$(CONFIG_KEYBOARD_PINEPHONE) += pinephone-keyboard.o
obj-$(CONFIG_KEYBOARD_PMIC8XXX) += pmic8xxx-keypad.o
obj-$(CONFIG_KEYBOARD_PXA27x) += pxa27x_keypad.o
Expand Down
Loading