| # Copyright (c) 2024 Chen Xingyu <hi@xingrz.me> |
| # SPDX-License-Identifier: Apache-2.0 |
| |
| description: | |
| Input driver for ADC attached resistor ladder buttons. |
| |
| The driver itself does not calculate each possible combination of resistor |
| values. Instead, users are required to specify the voltage for each single |
| key press or for combinations of key presses. |
| |
| Example: |
| |
| #include <dt-bindings/input/input-event-codes.h> |
| |
| / { |
| buttons { |
| compatible = "adc-keys"; |
| io-channels = <&adc 2>; |
| keyup-threshold-mv = <0>; |
| |
| key_0 { |
| press-thresholds-mv = <1650>, /* KEY0 */ |
| <2536>; /* KEY0 + KEY1 */ |
| zephyr,code = <INPUT_KEY_0>; |
| }; |
| |
| key_1 { |
| press-thresholds-mv = <2300>, /* KEY1 */ |
| <2536>; /* KEY0 + KEY1 */ |
| zephyr,code = <INPUT_KEY_1>; |
| }; |
| }; |
| }; |
| |
| compatible: "adc-keys" |
| |
| include: base.yaml |
| |
| properties: |
| io-channels: |
| type: phandle-array |
| required: true |
| description: Phandle to an ADC channel. |
| |
| sample-period-ms: |
| type: int |
| default: 20 |
| description: | |
| Sample period in milliseconds. |
| If not specified defaults to 20. |
| |
| keyup-threshold-mv: |
| type: int |
| required: true |
| description: | |
| Millivolt value to which all the keys are considered up. |
| |
| child-binding: |
| description: ADC KEYS child node. |
| properties: |
| press-thresholds-mv: |
| type: array |
| required: true |
| description: | |
| Array of millivolt values to consider a key pressed. |
| |
| zephyr,code: |
| type: int |
| required: true |
| description: Key code to emit. |