1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/input/qcom,pm8921-keypad.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Qualcomm PM8921 PMIC KeyPad
8
9maintainers:
10  - Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
11
12allOf:
13  - $ref: input.yaml#
14  - $ref: matrix-keymap.yaml#
15
16properties:
17  compatible:
18    enum:
19      - qcom,pm8058-keypad
20      - qcom,pm8921-keypad
21
22  reg:
23    maxItems: 1
24
25  interrupts:
26    items:
27      - description: key sense
28      - description: key stuck
29
30  wakeup-source:
31    type: boolean
32    description: use any event on keypad as wakeup event
33
34  linux,keypad-wakeup:
35    type: boolean
36    deprecated: true
37    description: legacy version of the wakeup-source property
38
39  debounce:
40    description:
41      Time in microseconds that key must be pressed or
42      released for state change interrupt to trigger.
43    $ref: /schemas/types.yaml#/definitions/uint32
44
45  scan-delay:
46    $ref: /schemas/types.yaml#/definitions/uint32
47    description: time in microseconds to pause between successive scans of the
48      matrix array
49
50  row-hold:
51    $ref: /schemas/types.yaml#/definitions/uint32
52    description: time in nanoseconds to pause between scans of each row in the
53      matrix array.
54
55required:
56  - compatible
57  - reg
58  - interrupts
59  - linux,keymap
60
61unevaluatedProperties: false
62
63examples:
64  - |
65   #include <dt-bindings/input/input.h>
66   #include <dt-bindings/interrupt-controller/irq.h>
67   pmic {
68       #address-cells = <1>;
69       #size-cells = <0>;
70
71       keypad@148 {
72           compatible = "qcom,pm8921-keypad";
73           reg = <0x148>;
74           interrupt-parent = <&pmicintc>;
75           interrupts = <74 IRQ_TYPE_EDGE_RISING>, <75 IRQ_TYPE_EDGE_RISING>;
76           linux,keymap = <
77               MATRIX_KEY(0, 0, KEY_VOLUMEUP)
78               MATRIX_KEY(0, 1, KEY_VOLUMEDOWN)
79               MATRIX_KEY(0, 2, KEY_CAMERA_FOCUS)
80               MATRIX_KEY(0, 3, KEY_CAMERA)
81           >;
82           keypad,num-rows = <1>;
83           keypad,num-columns = <5>;
84           debounce = <15>;
85           scan-delay = <32>;
86           row-hold = <91500>;
87       };
88   };
89...
90