104 lines · yaml
1# SPDX-License-Identifier: GPL-2.02%YAML 1.23---4$id: http://devicetree.org/schemas/input/adc-keys.yaml#5$schema: http://devicetree.org/meta-schemas/core.yaml#6 7title: ADC attached resistor ladder buttons8 9maintainers:10 - Alexandre Belloni <alexandre.belloni@bootlin.com>11 12allOf:13 - $ref: input.yaml#14 15properties:16 compatible:17 const: adc-keys18 19 io-channels:20 maxItems: 121 22 io-channel-names:23 const: buttons24 25 keyup-threshold-microvolt:26 description:27 Voltage above or equal to which all the keys are considered up.28 29 poll-interval: true30 autorepeat: true31 32patternProperties:33 '^button-':34 type: object35 $ref: input.yaml#36 additionalProperties: false37 description:38 Each button (key) is represented as a sub-node.39 40 properties:41 label: true42 43 linux,code: true44 45 press-threshold-microvolt:46 description:47 Voltage above or equal to which this key is considered pressed. No48 two values of press-threshold-microvolt may be the same. All values49 of press-threshold-microvolt must be less than50 keyup-threshold-microvolt.51 52 required:53 - linux,code54 - press-threshold-microvolt55 56required:57 - compatible58 - io-channels59 - io-channel-names60 - keyup-threshold-microvolt61 62additionalProperties: false63 64examples:65 - |66 #include <dt-bindings/input/input.h>67 // +--------------------------------+------------------------+68 // | 2.000.000 <= value | no key pressed |69 // +--------------------------------+------------------------+70 // | 1.500.000 <= value < 2.000.000 | KEY_VOLUMEUP pressed |71 // +--------------------------------+------------------------+72 // | 1.000.000 <= value < 1.500.000 | KEY_VOLUMEDOWN pressed |73 // +--------------------------------+------------------------+74 // | 500.000 <= value < 1.000.000 | KEY_ENTER pressed |75 // +--------------------------------+------------------------+76 // | value < 500.000 | no key pressed |77 // +--------------------------------+------------------------+78 79 adc-keys {80 compatible = "adc-keys";81 io-channels = <&lradc 0>;82 io-channel-names = "buttons";83 keyup-threshold-microvolt = <2000000>;84 85 button-up {86 label = "Volume Up";87 linux,code = <KEY_VOLUMEUP>;88 press-threshold-microvolt = <1500000>;89 };90 91 button-down {92 label = "Volume Down";93 linux,code = <KEY_VOLUMEDOWN>;94 press-threshold-microvolt = <1000000>;95 };96 97 button-enter {98 label = "Enter";99 linux,code = <KEY_ENTER>;100 press-threshold-microvolt = <500000>;101 };102 };103...104