linux/Documentation/devicetree/bindings/input/adc-keys.txt
<<
>>
Prefs
   1ADC attached resistor ladder buttons
   2------------------------------------
   3
   4Required properties:
   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
   9                              considered up.
  10
  11Optional properties:
  12        - poll-interval: Poll interval time in milliseconds
  13        - autorepeat: Boolean, Enable auto repeat feature of Linux input
  14          subsystem.
  15
  16Each button (key) is represented as a sub-node of "adc-keys":
  17
  18Required 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
  22                                     considered pressed.
  23
  24No two values of press-threshold-microvolt may be the same.
  25All values of press-threshold-microvolt must be less than
  26keyup-threshold-microvolt.
  27
  28Example:
  29
  30#include <dt-bindings/input/input.h>
  31
  32        adc-keys {
  33                compatible = "adc-keys";
  34                io-channels = <&lradc 0>;
  35                io-channel-names = "buttons";
  36                keyup-threshold-microvolt = <2000000>;
  37
  38                button-up {
  39                        label = "Volume Up";
  40                        linux,code = <KEY_VOLUMEUP>;
  41                        press-threshold-microvolt = <1500000>;
  42                };
  43
  44                button-down {
  45                        label = "Volume Down";
  46                        linux,code = <KEY_VOLUMEDOWN>;
  47                        press-threshold-microvolt = <1000000>;
  48                };
  49
  50                button-enter {
  51                        label = "Enter";
  52                        linux,code = <KEY_ENTER>;
  53                        press-threshold-microvolt = <500000>;
  54                };
  55        };
  56
  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+--------------------------------+------------------------+
  68