GNU Linux-libre 6.1.90-gnu
[releases.git] / Documentation / devicetree / bindings / input / mediatek,mt6779-keypad.yaml
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
7 title: Mediatek's Keypad Controller
8
9 maintainers:
10   - Mattijs Korpershoek <mkorpershoek@baylibre.com>
11
12 allOf:
13   - $ref: "/schemas/input/matrix-keymap.yaml#"
14
15 description: |
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
22 properties:
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
58 required:
59   - compatible
60   - reg
61   - interrupts
62   - clocks
63   - clock-names
64
65 unevaluatedProperties: false
66
67 examples:
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     };