Kernel-4.18.0-80.el8_adc-keys

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