1 ADC attached resistor ladder buttons
2 ------------------------------------
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
12 - poll-interval: Poll interval time in milliseconds
13 - autorepeat: Boolean, Enable auto repeat feature of Linux input
16 Each button (key) is represented as a sub-node of "adc-keys":
18 Required 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
24 No two values of press-threshold-microvolt may be the same.
25 All values of press-threshold-microvolt must be less than
26 keyup-threshold-microvolt.
30 #include <dt-bindings/input/input.h>
33 compatible = "adc-keys";
34 io-channels = <&lradc 0>;
35 io-channel-names = "buttons";
36 keyup-threshold-microvolt = <2000000>;
40 linux,code = <KEY_VOLUMEUP>;
41 press-threshold-microvolt = <1500000>;
45 label = "Volume Down";
46 linux,code = <KEY_VOLUMEDOWN>;
47 press-threshold-microvolt = <1000000>;
52 linux,code = <KEY_ENTER>;
53 press-threshold-microvolt = <500000>;
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 +--------------------------------+------------------------+