blob: 47aac8794b6897d48555d4acc2512598b3f4e82a [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/input/mediatek,mt6779-keypad.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Mediatek's Keypad Controller
8
9maintainers:
10 - Mattijs Korpershoek <mkorpershoek@baylibre.com>
11
12allOf:
13 - $ref: /schemas/input/matrix-keymap.yaml#
14
15description: |
16 Mediatek's Keypad controller is used to interface a SoC with a matrix-type
17 keypad device. The keypad controller supports multiple row and column lines.
18 A key can be placed at each intersection of a unique row and a unique column.
19 The keypad controller can sense a key-press and key-release and report the
20 event using a interrupt to the cpu.
21
22properties:
23 compatible:
24 oneOf:
25 - const: mediatek,mt6779-keypad
26 - items:
27 - enum:
28 - mediatek,mt6873-keypad
29 - const: mediatek,mt6779-keypad
30
31 reg:
32 maxItems: 1
33
34 interrupts:
35 maxItems: 1
36
37 clocks:
38 maxItems: 1
39
40 clock-names:
41 items:
42 - const: kpd
43
44 wakeup-source:
45 description: use any event on keypad as wakeup event
46 type: boolean
47
48 debounce-delay-ms:
49 maximum: 256
50 default: 16
51
52 mediatek,keys-per-group:
53 description: each (row, column) group has multiple keys
54 $ref: /schemas/types.yaml#/definitions/uint32
55 default: 1
56 maximum: 2
57
58required:
59 - compatible
60 - reg
61 - interrupts
62 - clocks
63 - clock-names
64
65unevaluatedProperties: false
66
67examples:
68 - |
69 #include <dt-bindings/input/input.h>
70 #include <dt-bindings/interrupt-controller/arm-gic.h>
71
72 soc {
73 #address-cells = <2>;
74 #size-cells = <2>;
75
76 keyboard@10010000 {
77 compatible = "mediatek,mt6779-keypad";
78 reg = <0 0x10010000 0 0x1000>;
79 interrupts = <GIC_SPI 75 IRQ_TYPE_EDGE_FALLING>;
80 clocks = <&clk26m>;
81 clock-names = "kpd";
82 };
83 };