-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
dt-bindings: input: Add docs for ADC driven joystick
Add documentation for the adc-joystick driver, used to provide support for joysticks connected over ADC. Signed-off-by: Artur Rojek <contact@artur-rojek.eu> Tested-by: Paul Cercueil <paul@crapouillou.net> Reviewed-by: Rob Herring <robh@kernel.org> Link: https://lore.kernel.org/r/20200927123302.31062-1-contact@artur-rojek.eu Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
- Loading branch information
Artur Rojek
authored and
Dmitry Torokhov
committed
Sep 28, 2020
1 parent
cafb3ab
commit 7956b0d
Showing
1 changed file
with
121 additions
and
0 deletions.
There are no files selected for viewing
121 changes: 121 additions & 0 deletions
121
Documentation/devicetree/bindings/input/adc-joystick.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,121 @@ | ||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) | ||
# Copyright 2019-2020 Artur Rojek | ||
%YAML 1.2 | ||
--- | ||
$id: "http://devicetree.org/schemas/input/adc-joystick.yaml#" | ||
$schema: "http://devicetree.org/meta-schemas/core.yaml#" | ||
|
||
title: ADC attached joystick | ||
|
||
maintainers: | ||
- Artur Rojek <contact@artur-rojek.eu> | ||
|
||
description: > | ||
Bindings for joystick devices connected to ADC controllers supporting | ||
the Industrial I/O subsystem. | ||
properties: | ||
compatible: | ||
const: adc-joystick | ||
|
||
io-channels: | ||
minItems: 1 | ||
maxItems: 1024 | ||
description: > | ||
List of phandle and IIO specifier pairs. | ||
Each pair defines one ADC channel to which a joystick axis is connected. | ||
See Documentation/devicetree/bindings/iio/iio-bindings.txt for details. | ||
'#address-cells': | ||
const: 1 | ||
|
||
'#size-cells': | ||
const: 0 | ||
|
||
required: | ||
- compatible | ||
- io-channels | ||
- '#address-cells' | ||
- '#size-cells' | ||
|
||
additionalProperties: false | ||
|
||
patternProperties: | ||
"^axis@[0-9a-f]+$": | ||
type: object | ||
description: > | ||
Represents a joystick axis bound to the given ADC channel. | ||
For each entry in the io-channels list, one axis subnode with a matching | ||
reg property must be specified. | ||
properties: | ||
reg: | ||
minimum: 0 | ||
maximum: 1023 | ||
description: Index of an io-channels list entry bound to this axis. | ||
|
||
linux,code: | ||
$ref: /schemas/types.yaml#/definitions/uint32 | ||
description: EV_ABS specific event code generated by the axis. | ||
|
||
abs-range: | ||
allOf: | ||
- $ref: /schemas/types.yaml#/definitions/uint32-array | ||
- items: | ||
- description: minimum value | ||
- description: maximum value | ||
description: > | ||
Minimum and maximum values produced by the axis. | ||
For an ABS_X axis this will be the left-most and right-most | ||
inclination of the joystick. If min > max, it is left to userspace to | ||
treat the axis as inverted. | ||
This property is interpreted as two signed 32 bit values. | ||
abs-fuzz: | ||
$ref: /schemas/types.yaml#/definitions/uint32 | ||
description: > | ||
Amount of noise in the input value. | ||
Omitting this property indicates the axis is precise. | ||
abs-flat: | ||
$ref: /schemas/types.yaml#/definitions/uint32 | ||
description: > | ||
Axial "deadzone", or area around the center position, where the axis | ||
is considered to be at rest. | ||
Omitting this property indicates the axis always returns to exactly | ||
the center position. | ||
required: | ||
- reg | ||
- linux,code | ||
- abs-range | ||
|
||
additionalProperties: false | ||
|
||
examples: | ||
- | | ||
#include <dt-bindings/iio/adc/ingenic,adc.h> | ||
#include <dt-bindings/input/input.h> | ||
joystick: adc-joystick { | ||
compatible = "adc-joystick"; | ||
io-channels = <&adc INGENIC_ADC_TOUCH_XP>, | ||
<&adc INGENIC_ADC_TOUCH_YP>; | ||
#address-cells = <1>; | ||
#size-cells = <0>; | ||
axis@0 { | ||
reg = <0>; | ||
linux,code = <ABS_X>; | ||
abs-range = <3300 0>; | ||
abs-fuzz = <4>; | ||
abs-flat = <200>; | ||
}; | ||
axis@1 { | ||
reg = <1>; | ||
linux,code = <ABS_Y>; | ||
abs-range = <0 3300>; | ||
abs-fuzz = <4>; | ||
abs-flat = <200>; | ||
}; | ||
}; |