hc
2023-10-25 6c2073b7aa40e29d0eca7d571dd7bc590c7ecaa7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
Qualcomm PM8xxx PMIC Keypad
 
PROPERTIES
 
- compatible:
   Usage: required
   Value type: <string>
   Definition: must be one of:
           "qcom,pm8058-keypad"
           "qcom,pm8921-keypad"
 
- reg:
   Usage: required
   Value type: <prop-encoded-array>
   Definition: address of keypad control register
 
- interrupts:
   Usage: required
   Value type: <prop-encoded-array>
   Definition: the first interrupt specifies the key sense interrupt
           and the second interrupt specifies the key stuck interrupt.
           The format of the specifier is defined by the binding
           document describing the node's interrupt parent.
 
- linux,keymap:
   Usage: required
   Value type: <prop-encoded-array>
   Definition: the linux keymap. More information can be found in
           input/matrix-keymap.txt.
 
- linux,keypad-no-autorepeat:
   Usage: optional
   Value type: <bool>
   Definition: don't enable autorepeat feature.
 
- wakeup-source:
   Usage: optional
   Value type: <bool>
   Definition: use any event on keypad as wakeup event.
           (Legacy property supported: "linux,keypad-wakeup")
 
- keypad,num-rows:
   Usage: required
   Value type: <u32>
   Definition: number of rows in the keymap. More information can be found
           in input/matrix-keymap.txt.
 
- keypad,num-columns:
   Usage: required
   Value type: <u32>
   Definition: number of columns in the keymap. More information can be
           found in input/matrix-keymap.txt.
 
- debounce:
   Usage: optional
   Value type: <u32>
   Definition: time in microseconds that key must be pressed or release
           for key sense interrupt to trigger.
 
- scan-delay:
   Usage: optional
   Value type: <u32>
   Definition: time in microseconds to pause between successive scans
           of the matrix array.
 
- row-hold:
   Usage: optional
   Value type: <u32>
   Definition: time in nanoseconds to pause between scans of each row in
           the matrix array.
 
EXAMPLE
 
   keypad@148 {
       compatible = "qcom,pm8921-keypad";
       reg = <0x148>;
       interrupt-parent = <&pmicintc>;
       interrupts = <74 1>, <75 1>;
       linux,keymap = <
           MATRIX_KEY(0, 0, KEY_VOLUMEUP)
           MATRIX_KEY(0, 1, KEY_VOLUMEDOWN)
           MATRIX_KEY(0, 2, KEY_CAMERA_FOCUS)
           MATRIX_KEY(0, 3, KEY_CAMERA)
           >;
       keypad,num-rows = <1>;
       keypad,num-columns = <5>;
       debounce = <15>;
       scan-delay = <32>;
       row-hold = <91500>;
   };