~funderscore blog cgit wiki get in touch
aboutsummaryrefslogtreecommitdiff
blob: 6c8be6a9ace286c359c1ed50fca83879b01e18ed (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
ADC attached resistor ladder buttons
------------------------------------

Required properties:
 - compatible: "adc-keys"
 - io-channels: Phandle to an ADC channel
 - io-channel-names = "buttons";
 - keyup-threshold-microvolt: Voltage above or equal to which all the keys are
			      considered up.

Optional properties:
	- poll-interval: Poll interval time in milliseconds
	- autorepeat: Boolean, Enable auto repeat feature of Linux input
	  subsystem.

Each button (key) is represented as a sub-node of "adc-keys":

Required subnode-properties:
	- label: Descriptive name of the key.
	- linux,code: Keycode to emit.
	- press-threshold-microvolt: voltage above or equal to which this key is
				     considered pressed.

No two values of press-threshold-microvolt may be the same.
All values of press-threshold-microvolt must be less than
keyup-threshold-microvolt.

Example:

#include <dt-bindings/input/input.h>

	adc-keys {
		compatible = "adc-keys";
		io-channels = <&lradc 0>;
		io-channel-names = "buttons";
		keyup-threshold-microvolt = <2000000>;

		button-up {
			label = "Volume Up";
			linux,code = <KEY_VOLUMEUP>;
			press-threshold-microvolt = <1500000>;
		};

		button-down {
			label = "Volume Down";
			linux,code = <KEY_VOLUMEDOWN>;
			press-threshold-microvolt = <1000000>;
		};

		button-enter {
			label = "Enter";
			linux,code = <KEY_ENTER>;
			press-threshold-microvolt = <500000>;
		};
	};

+--------------------------------+------------------------+
| 2.000.000 <= value             | no key pressed         |
+--------------------------------+------------------------+
| 1.500.000 <= value < 2.000.000 | KEY_VOLUMEUP pressed   |
+--------------------------------+------------------------+
| 1.000.000 <= value < 1.500.000 | KEY_VOLUMEDOWN pressed |
+--------------------------------+------------------------+
|   500.000 <= value < 1.000.000 | KEY_ENTER pressed      |
+--------------------------------+------------------------+
|              value <   500.000 | no key pressed         |
+--------------------------------+------------------------+