1# SPDX-License-Identifier: GPL-2.0 2%YAML 1.2 3--- 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 buttons 8 9maintainers: 10 - Alexandre Belloni <alexandre.belloni@bootlin.com> 11 12allOf: 13 - $ref: input.yaml# 14 15properties: 16 compatible: 17 const: adc-keys 18 19 io-channels: 20 maxItems: 1 21 22 io-channel-names: 23 const: buttons 24 25 keyup-threshold-microvolt: 26 description: 27 Voltage above or equal to which all the keys are considered up. 28 29 poll-interval: true 30 autorepeat: true 31 32patternProperties: 33 '^button-': 34 type: object 35 $ref: input.yaml# 36 additionalProperties: false 37 description: 38 Each button (key) is represented as a sub-node. 39 40 properties: 41 label: true 42 43 linux,code: true 44 45 press-threshold-microvolt: 46 description: 47 Voltage above or equal to which this key is considered pressed. No 48 two values of press-threshold-microvolt may be the same. All values 49 of press-threshold-microvolt must be less than 50 keyup-threshold-microvolt. 51 52 required: 53 - linux,code 54 - press-threshold-microvolt 55 56required: 57 - compatible 58 - io-channels 59 - io-channel-names 60 - keyup-threshold-microvolt 61 62additionalProperties: false 63 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