Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/Documentation/devicetree/bindings/input/adi,adp5588.yaml
26308 views
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#
6
7
title: Analog Devices ADP5588 Keypad Controller
8
9
maintainers:
10
- Nuno Sá <nuno.sa@analog.com>
11
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
15
16
allOf:
17
- $ref: matrix-keymap.yaml#
18
- $ref: input.yaml#
19
20
properties:
21
compatible:
22
enum:
23
- adi,adp5587
24
- adi,adp5588
25
26
reg:
27
maxItems: 1
28
29
vcc-supply:
30
description: Supply Voltage Input
31
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
37
38
interrupts:
39
maxItems: 1
40
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.
45
46
'#gpio-cells':
47
const: 2
48
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.
56
57
'#interrupt-cells':
58
const: 2
59
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
70
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
84
85
required:
86
- compatible
87
- reg
88
89
unevaluatedProperties: false
90
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>;
99
100
keys@34 {
101
compatible = "adi,adp5588";
102
reg = <0x34>;
103
104
vcc-supply = <&vcc>;
105
interrupts = <21 IRQ_TYPE_EDGE_FALLING>;
106
interrupt-parent = <&gpio>;
107
reset-gpios = <&gpio 20 GPIO_ACTIVE_LOW>;
108
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
};
124
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>;
133
134
#gpio-cells = <2>;
135
gpio-controller;
136
};
137
};
138
139
...
140
141