lkml.org 
[lkml]   [2020]   [Mar]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v4 4/5] dt-bindings: input: Add docs for ADC driven joystick.
    Date
    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>
    ---

    Changes:

    v2: - Add `reg` property to axis subnode in order to enumerate the axes,
    - rename `linux,abs-code` property to `linux,code`,
    - drop `linux,` prefix from the remaining properties of axis subnode

    v3: no change

    v4: - remove "bindings" from the unique identifier string,
    - replace `|` with `>` for all description properties,
    - specify the number of items for `io-channels`,
    - correct the regex pattern of `axis` property,
    - specify the value range of `reg` property for each axis,
    - put `abs-range` properties under `allOf`

    .../bindings/input/adc-joystick.yaml | 121 ++++++++++++++++++
    1 file changed, 121 insertions(+)
    create mode 100644 Documentation/devicetree/bindings/input/adc-joystick.yaml

    diff --git a/Documentation/devicetree/bindings/input/adc-joystick.yaml b/Documentation/devicetree/bindings/input/adc-joystick.yaml
    new file mode 100644
    index 000000000000..b0d2aa28d8c6
    --- /dev/null
    +++ b/Documentation/devicetree/bindings/input/adc-joystick.yaml
    @@ -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-9]+$":
    + 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>;
    + };
    + };
    --
    2.25.1
    \
     
     \ /
      Last update: 2020-03-07 22:07    [W:2.987 / U:0.040 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site