forked from Minki/linux
680772647d
A common way of multiplexing buttons on a single input in cheap devices is to use a resistor ladder on an ADC. This driver supports that configuration by polling an ADC channel provided by IIO. Acked-by: Jonathan Cameron <jic23@kernel.org> Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com> Acked-by: Rob Herring <robh@kernel.org> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
50 lines
1.2 KiB
Plaintext
50 lines
1.2 KiB
Plaintext
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 at 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 ADC input when this key is pressed.
|
|
|
|
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>;
|
|
};
|
|
};
|