1# 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 device tree bindings
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
52required:
53  - compatible
54  - reg
55  - interrupts
56  - clocks
57  - clock-names
58
59additionalProperties: false
60
61examples:
62  - |
63    #include <dt-bindings/input/input.h>
64    #include <dt-bindings/interrupt-controller/arm-gic.h>
65
66    soc {
67        #address-cells = <2>;
68        #size-cells = <2>;
69
70        keyboard@10010000 {
71          compatible = "mediatek,mt6779-keypad";
72          reg = <0 0x10010000 0 0x1000>;
73          interrupts = <GIC_SPI 75 IRQ_TYPE_EDGE_FALLING>;
74          clocks = <&clk26m>;
75          clock-names = "kpd";
76        };
77    };
78