Merge tag 'block-6.13-20242901' of git://git.kernel.dk/linux
[drm/drm-misc.git] / Documentation / devicetree / bindings / input / adi,adp5588.yaml
blob336bc352579a272ee155db6d83f8c6c2127d0398
1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/input/adi,adp5588.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
7 title: Analog Devices ADP5588 Keypad Controller
9 maintainers:
10   - Nuno Sá <nuno.sa@analog.com>
12 description: |
13   Analog Devices Mobile I/O Expander and QWERTY Keypad Controller
14   https://www.analog.com/media/en/technical-documentation/data-sheets/ADP5588.pdf
16 allOf:
17   - $ref: matrix-keymap.yaml#
18   - $ref: input.yaml#
20 properties:
21   compatible:
22     enum:
23       - adi,adp5587
24       - adi,adp5588
26   reg:
27     maxItems: 1
29   vcc-supply:
30     description: Supply Voltage Input
32   reset-gpios:
33     description:
34       If specified, it will be asserted during driver probe. As the line is
35       active low, it should be marked GPIO_ACTIVE_LOW.
36     maxItems: 1
38   interrupts:
39     maxItems: 1
41   gpio-controller:
42     description:
43       This property applies if either keypad,num-rows lower than 8 or
44       keypad,num-columns lower than 10.
46   '#gpio-cells':
47     const: 2
49   interrupt-controller:
50     description:
51       This property applies if either keypad,num-rows lower than 8 or
52       keypad,num-columns lower than 10. This property is optional if
53       keypad,num-rows or keypad,num-columns are not specified as the
54       device is then configured to be used purely for gpio during which
55       interrupts may or may not be utilized.
57   '#interrupt-cells':
58     const: 2
60   adi,unlock-keys:
61     description:
62       Specifies a maximum of 2 keys that can be used to unlock the keypad.
63       If this property is set, the keyboard will be locked and only unlocked
64       after these keys are pressed. If only one key is set, a double click is
65       needed to unlock the keypad. The value of this property cannot be bigger
66       or equal than keypad,num-rows * keypad,num-columns.
67     $ref: /schemas/types.yaml#/definitions/uint32-array
68     minItems: 1
69     maxItems: 2
71 dependencies:
72   keypad,num-rows:
73     - linux,keymap
74     - keypad,num-columns
75   keypad,num-columns:
76     - linux,keymap
77     - keypad,num-rows
78   linux,keymap:
79     - keypad,num-rows
80     - keypad,num-columns
81     - interrupts
82   interrupt-controller:
83     - interrupts
85 required:
86   - compatible
87   - reg
89 unevaluatedProperties: false
91 examples:
92   - |
93     #include <dt-bindings/interrupt-controller/irq.h>
94     #include <dt-bindings/input/input.h>
95     #include <dt-bindings/gpio/gpio.h>
96     i2c {
97         #address-cells = <1>;
98         #size-cells = <0>;
100         keys@34 {
101             compatible = "adi,adp5588";
102             reg = <0x34>;
104             vcc-supply = <&vcc>;
105             interrupts = <21 IRQ_TYPE_EDGE_FALLING>;
106             interrupt-parent = <&gpio>;
107             reset-gpios = <&gpio 20 GPIO_ACTIVE_LOW>;
109             keypad,num-rows = <1>;
110             keypad,num-columns = <9>;
111             linux,keymap = <
112                 MATRIX_KEY(0x00, 0x00, KEY_1)
113                 MATRIX_KEY(0x00, 0x01, KEY_2)
114                 MATRIX_KEY(0x00, 0x02, KEY_3)
115                 MATRIX_KEY(0x00, 0x03, KEY_4)
116                 MATRIX_KEY(0x00, 0x04, KEY_5)
117                 MATRIX_KEY(0x00, 0x05, KEY_6)
118                 MATRIX_KEY(0x00, 0x06, KEY_7)
119                 MATRIX_KEY(0x00, 0x07, KEY_8)
120                 MATRIX_KEY(0x00, 0x08, KEY_9)
121             >;
122         };
123     };
125   - |
126     #include <dt-bindings/gpio/gpio.h>
127     i2c {
128         #address-cells = <1>;
129         #size-cells = <0>;
130         gpio@34 {
131             compatible = "adi,adp5588";
132             reg = <0x34>;
134             #gpio-cells = <2>;
135             gpio-controller;
136         };
137     };