blob: 6c8be6a9ace286c359c1ed50fca83879b01e18ed [file] [log] [blame]
Marek Szyprowski32238f02021-02-18 11:33:14 +01001ADC attached resistor ladder buttons
2------------------------------------
3
4Required properties:
5 - compatible: "adc-keys"
6 - io-channels: Phandle to an ADC channel
7 - io-channel-names = "buttons";
8 - keyup-threshold-microvolt: Voltage above or equal to which all the keys are
9 considered up.
10
11Optional properties:
12 - poll-interval: Poll interval time in milliseconds
13 - autorepeat: Boolean, Enable auto repeat feature of Linux input
14 subsystem.
15
16Each button (key) is represented as a sub-node of "adc-keys":
17
18Required subnode-properties:
19 - label: Descriptive name of the key.
20 - linux,code: Keycode to emit.
21 - press-threshold-microvolt: voltage above or equal to which this key is
22 considered pressed.
23
24No two values of press-threshold-microvolt may be the same.
25All values of press-threshold-microvolt must be less than
26keyup-threshold-microvolt.
27
28Example:
29
30#include <dt-bindings/input/input.h>
31
32 adc-keys {
33 compatible = "adc-keys";
34 io-channels = <&lradc 0>;
35 io-channel-names = "buttons";
36 keyup-threshold-microvolt = <2000000>;
37
38 button-up {
39 label = "Volume Up";
40 linux,code = <KEY_VOLUMEUP>;
41 press-threshold-microvolt = <1500000>;
42 };
43
44 button-down {
45 label = "Volume Down";
46 linux,code = <KEY_VOLUMEDOWN>;
47 press-threshold-microvolt = <1000000>;
48 };
49
50 button-enter {
51 label = "Enter";
52 linux,code = <KEY_ENTER>;
53 press-threshold-microvolt = <500000>;
54 };
55 };
56
57+--------------------------------+------------------------+
58| 2.000.000 <= value | no key pressed |
59+--------------------------------+------------------------+
60| 1.500.000 <= value < 2.000.000 | KEY_VOLUMEUP pressed |
61+--------------------------------+------------------------+
62| 1.000.000 <= value < 1.500.000 | KEY_VOLUMEDOWN pressed |
63+--------------------------------+------------------------+
64| 500.000 <= value < 1.000.000 | KEY_ENTER pressed |
65+--------------------------------+------------------------+
66| value < 500.000 | no key pressed |
67+--------------------------------+------------------------+