Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

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>;
		};
	};