| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 |
- # 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>;
- };
- };
|