# 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.

allOf:
  - $ref: input.yaml#

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
      https://github.com/devicetree-org/dt-schema/blob/master/schemas/iio/iio-consumer.yaml
      for details.

  poll-interval: true

  '#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
    $ref: input.yaml#
    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:
        description: EV_ABS specific event code generated by the axis.

      abs-range:
        $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>;
      };
    };
