blob: 7aa078dead37816294732501e1983ab869f38311 [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001# SPDX-License-Identifier: GPL-2.0
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/input/adc-keys.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: ADC attached resistor ladder buttons
8
9maintainers:
10 - Alexandre Belloni <alexandre.belloni@bootlin.com>
11
12allOf:
13 - $ref: input.yaml#
14
15properties:
16 compatible:
17 const: adc-keys
18
19 io-channels:
20 maxItems: 1
21
22 io-channel-names:
23 const: buttons
24
25 keyup-threshold-microvolt:
26 description:
27 Voltage above or equal to which all the keys are considered up.
28
29 poll-interval: true
30 autorepeat: true
31
32patternProperties:
33 '^button-':
34 type: object
35 $ref: input.yaml#
36 additionalProperties: false
37 description:
38 Each button (key) is represented as a sub-node.
39
40 properties:
41 label: true
42
43 linux,code: true
44
45 press-threshold-microvolt:
46 description:
47 Voltage above or equal to which this key is considered pressed. No
48 two values of press-threshold-microvolt may be the same. All values
49 of press-threshold-microvolt must be less than
50 keyup-threshold-microvolt.
51
52 required:
53 - linux,code
54 - press-threshold-microvolt
55
56required:
57 - compatible
58 - io-channels
59 - io-channel-names
60 - keyup-threshold-microvolt
61
62additionalProperties: false
63
64examples:
65 - |
66 #include <dt-bindings/input/input.h>
67 // +--------------------------------+------------------------+
68 // | 2.000.000 <= value | no key pressed |
69 // +--------------------------------+------------------------+
70 // | 1.500.000 <= value < 2.000.000 | KEY_VOLUMEUP pressed |
71 // +--------------------------------+------------------------+
72 // | 1.000.000 <= value < 1.500.000 | KEY_VOLUMEDOWN pressed |
73 // +--------------------------------+------------------------+
74 // | 500.000 <= value < 1.000.000 | KEY_ENTER pressed |
75 // +--------------------------------+------------------------+
76 // | value < 500.000 | no key pressed |
77 // +--------------------------------+------------------------+
78
79 adc-keys {
80 compatible = "adc-keys";
81 io-channels = <&lradc 0>;
82 io-channel-names = "buttons";
83 keyup-threshold-microvolt = <2000000>;
84
85 button-up {
86 label = "Volume Up";
87 linux,code = <KEY_VOLUMEUP>;
88 press-threshold-microvolt = <1500000>;
89 };
90
91 button-down {
92 label = "Volume Down";
93 linux,code = <KEY_VOLUMEDOWN>;
94 press-threshold-microvolt = <1000000>;
95 };
96
97 button-enter {
98 label = "Enter";
99 linux,code = <KEY_ENTER>;
100 press-threshold-microvolt = <500000>;
101 };
102 };
103...