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