# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/input/iqs269a.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Azoteq IQS269A Capacitive Touch Controller

maintainers:
  - Jeff LaBundy <jeff@labundy.com>

allOf:
  - $ref: input.yaml#

description: |
  The Azoteq IQS269A is an 8-channel capacitive touch controller that features
  additional Hall-effect and inductive sensing capabilities.

  Link to datasheet: https://www.azoteq.com/

properties:
  compatible:
    enum:
      - azoteq,iqs269a
      - azoteq,iqs269a-00
      - azoteq,iqs269a-d0

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  "#address-cells":
    const: 1

  "#size-cells":
    const: 0

  azoteq,hall-enable:
    type: boolean
    description:
      Enables Hall-effect sensing on channels 6 and 7. In this case, keycodes
      assigned to channel 6 are ignored and keycodes assigned to channel 7 are
      interpreted as switch codes. Refer to the datasheet for requirements im-
      posed on channels 6 and 7 by Hall-effect sensing.

  azoteq,suspend-mode:
    $ref: /schemas/types.yaml#/definitions/uint32
    enum: [0, 1, 2, 3]
    default: 0
    description: |
      Specifies the power mode during suspend as follows:
      0: Automatic (same as normal runtime, i.e. suspend/resume disabled)
      1: Low power (all sensing at a reduced reporting rate)
      2: Ultra-low power (channel 0 proximity sensing)
      3: Halt (no sensing)

  azoteq,clk-div:
    type: boolean
    description: Divides the device's core clock by a factor of 4.

  azoteq,ulp-update:
    $ref: /schemas/types.yaml#/definitions/uint32
    minimum: 0
    maximum: 7
    default: 3
    description: Specifies the ultra-low-power mode update rate.

  azoteq,reseed-offset:
    type: boolean
    description:
      Applies an 8-count offset to all long-term averages upon either ATI or
      reseed events.

  azoteq,filt-str-lp-lta:
    $ref: /schemas/types.yaml#/definitions/uint32
    enum: [0, 1, 2, 3]
    default: 0
    description:
      Specifies the long-term average filter strength during low-power mode.

  azoteq,filt-str-lp-cnt:
    $ref: /schemas/types.yaml#/definitions/uint32
    enum: [0, 1, 2, 3]
    default: 0
    description:
      Specifies the raw count filter strength during low-power mode.

  azoteq,filt-str-np-lta:
    $ref: /schemas/types.yaml#/definitions/uint32
    enum: [0, 1, 2, 3]
    default: 0
    description:
      Specifies the long-term average filter strength during normal-power mode.

  azoteq,filt-str-np-cnt:
    $ref: /schemas/types.yaml#/definitions/uint32
    enum: [0, 1, 2, 3]
    default: 0
    description:
      Specifies the raw count filter strength during normal-power mode.

  azoteq,rate-np-ms:
    minimum: 0
    maximum: 255
    default: 16
    description: Specifies the report rate (in ms) during normal-power mode.

  azoteq,rate-lp-ms:
    minimum: 0
    maximum: 255
    default: 160
    description: Specifies the report rate (in ms) during low-power mode.

  azoteq,rate-ulp-ms:
    multipleOf: 16
    minimum: 0
    maximum: 4080
    default: 160
    description: Specifies the report rate (in ms) during ultra-low-power mode.

  azoteq,timeout-pwr-ms:
    multipleOf: 512
    minimum: 0
    maximum: 130560
    default: 2560
    description:
      Specifies the length of time (in ms) to wait for an event during normal-
      power mode before transitioning to low-power mode.

  azoteq,timeout-lta-ms:
    multipleOf: 512
    minimum: 0
    maximum: 130560
    default: 32768
    description:
      Specifies the length of time (in ms) to wait before resetting the long-
      term average of all channels. Specify the maximum timeout to disable it
      altogether.

  azoteq,ati-band-disable:
    type: boolean
    description: Disables the ATI band check.

  azoteq,ati-lp-only:
    type: boolean
    description: Limits automatic ATI to low-power mode.

  azoteq,ati-band-tighten:
    type: boolean
    description: Tightens the ATI band from 1/8 to 1/16 of the desired target.

  azoteq,filt-disable:
    type: boolean
    description: Disables all raw count filtering.

  azoteq,gpio3-select:
    $ref: /schemas/types.yaml#/definitions/uint32
    minimum: 0
    maximum: 7
    default: 0
    description:
      Selects the channel for which the GPIO3 pin represents touch state.

  azoteq,dual-direction:
    type: boolean
    description:
      Specifies that long-term averages are to freeze in the presence of either
      increasing or decreasing counts, thereby permitting events to be reported
      in either direction.

  azoteq,tx-freq:
    $ref: /schemas/types.yaml#/definitions/uint32
    enum: [0, 1, 2, 3]
    default: 0
    description: |
      Specifies the inductive sensing excitation frequency as follows (paren-
      thesized numbers represent the frequency if 'azoteq,clk-div' is present):
      0: 16 MHz (4 MHz)
      1: 8 MHz (2 MHz)
      2: 4 MHz (1 MHz)
      3: 2 MHz (500 kHz)

  azoteq,global-cap-increase:
    type: boolean
    description: Increases the global capacitance adder from 0.5 pF to 1.5 pF.

  azoteq,reseed-select:
    $ref: /schemas/types.yaml#/definitions/uint32
    enum: [0, 1, 2, 3]
    default: 0
    description: |
      Specifies the event(s) that prompt the device to reseed (i.e. reset the
      long-term average) of an associated channel as follows:
      0: None
      1: Proximity
      2: Proximity or touch
      3: Proximity, touch or deep touch

  azoteq,tracking-enable:
    type: boolean
    description:
      Enables all associated channels to track their respective reference
      channels.

  azoteq,filt-str-slider:
    $ref: /schemas/types.yaml#/definitions/uint32
    enum: [0, 1, 2, 3]
    default: 1
    description: Specifies the slider coordinate filter strength.

  azoteq,touch-hold-ms:
    multipleOf: 256
    minimum: 256
    maximum: 65280
    default: 5120
    description:
      Specifies the length of time (in ms) for which the channel selected by
      'azoteq,gpio3-select' must be held in a state of touch in order for an
      approximately 60-ms pulse to be asserted on the GPIO4 pin.

  linux,keycodes:
    minItems: 1
    maxItems: 8
    description: |
      Specifies the numeric keycodes associated with each available gesture in
      the following order (enter 0 for unused gestures):
      0: Slider 0 tap
      1: Slider 0 hold
      2: Slider 0 positive flick or swipe
      3: Slider 0 negative flick or swipe
      4: Slider 1 tap
      5: Slider 1 hold
      6: Slider 1 positive flick or swipe
      7: Slider 1 negative flick or swipe

  azoteq,gesture-swipe:
    type: boolean
    description:
      Directs the device to interpret axial gestures as a swipe (finger remains
      on slider) instead of a flick (finger leaves slider).

  azoteq,timeout-tap-ms:
    multipleOf: 16
    minimum: 0
    maximum: 4080
    default: 400
    description:
      Specifies the length of time (in ms) within which a slider touch must be
      released in order to be interpreted as a tap. Default and maximum values
      as well as step size are reduced by a factor of 4 with device version 2.

  azoteq,timeout-swipe-ms:
    multipleOf: 16
    minimum: 0
    maximum: 4080
    default: 2000
    description:
      Specifies the length of time (in ms) within which an axial gesture must be
      completed in order to be interpreted as a flick or swipe. Default and max-
      imum values as well as step size are reduced by a factor of 4 with device
      version 2.

  azoteq,thresh-swipe:
    $ref: /schemas/types.yaml#/definitions/uint32
    minimum: 0
    maximum: 255
    default: 128
    description:
      Specifies the number of points across which an axial gesture must travel
      in order to be interpreted as a flick or swipe.

dependencies:
  azoteq,gesture-swipe: ["linux,keycodes"]
  azoteq,timeout-tap-ms: ["linux,keycodes"]
  azoteq,timeout-swipe-ms: ["linux,keycodes"]
  azoteq,thresh-swipe: ["linux,keycodes"]

patternProperties:
  "^channel@[0-7]$":
    type: object
    description:
      Represents a single sensing channel. A channel is active if defined and
      inactive otherwise.

    properties:
      reg:
        minimum: 0
        maximum: 7
        description: Index of the channel.

      azoteq,reseed-disable:
        type: boolean
        description:
          Prevents the channel from being reseeded if the long-term average
          timeout (defined in 'azoteq,timeout-lta') expires.

      azoteq,blocking-enable:
        type: boolean
        description: Specifies that the channel is a blocking channel.

      azoteq,slider0-select:
        type: boolean
        description: Specifies that the channel participates in slider 0.

      azoteq,slider1-select:
        type: boolean
        description: Specifies that the channel participates in slider 1.

      azoteq,rx-enable:
        $ref: /schemas/types.yaml#/definitions/uint32-array
        minItems: 1
        maxItems: 8
        items:
          minimum: 0
          maximum: 7
        description:
          Specifies the CRX pin(s) associated with the channel. By default, only
          the CRX pin corresponding to the channel's index is enabled (e.g. CRX0
          for channel 0).

      azoteq,tx-enable:
        $ref: /schemas/types.yaml#/definitions/uint32-array
        minItems: 1
        maxItems: 8
        items:
          minimum: 0
          maximum: 7
        default: [0, 1, 2, 3, 4, 5, 6, 7]
        description: Specifies the TX pin(s) associated with the channel.

      azoteq,meas-cap-decrease:
        type: boolean
        description:
          Decreases the internal measurement capacitance from 60 pF to 15 pF.

      azoteq,rx-float-inactive:
        type: boolean
        description: Floats any inactive CRX pins instead of grounding them.

      azoteq,local-cap-size:
        $ref: /schemas/types.yaml#/definitions/uint32
        enum: [0, 1, 2]
        default: 0
        description: |
          Specifies the capacitance to be added to the channel as follows:
          0: None
          1: Global adder (based on 'azoteq,global-cap-increase')
          2: Global adder + 0.5 pF

      azoteq,invert-enable:
        type: boolean
        description:
          Inverts the polarity of the states reported for proximity, touch and
          deep-touch events relative to their respective thresholds.

      azoteq,proj-bias:
        $ref: /schemas/types.yaml#/definitions/uint32
        enum: [0, 1, 2, 3]
        default: 2
        description: |
          Specifies the bias current applied during projected-capacitance
          sensing as follows:
          0: 2.5 uA
          1: 5 uA
          2: 10 uA
          3: 20 uA

      azoteq,sense-mode:
        $ref: /schemas/types.yaml#/definitions/uint32
        enum: [0, 1, 9, 14, 15]
        default: 0
        description: |
          Specifies the channel's sensing mode as follows:
          0:  Self capacitance
          1:  Projected capacitance
          9:  Self or mutual inductance
          14: Hall effect
          15: Temperature

      azoteq,sense-freq:
        $ref: /schemas/types.yaml#/definitions/uint32
        enum: [0, 1, 2, 3]
        default: 1
        description: |
          Specifies the channel's sensing frequency as follows (parenthesized
          numbers represent the frequency if 'azoteq,clk-div' is present):
          0: 4 MHz (1 MHz)
          1: 2 MHz (500 kHz)
          2: 1 MHz (250 kHz)
          3: 500 kHz (125 kHz)

      azoteq,static-enable:
        type: boolean
        description: Enables the static front-end for the channel.

      azoteq,ati-mode:
        $ref: /schemas/types.yaml#/definitions/uint32
        enum: [0, 1, 2, 3]
        default: 3
        description: |
          Specifies the channel's ATI mode as follows:
          0: Disabled
          1: Semi-partial
          2: Partial
          3: Full

      azoteq,ati-base:
        $ref: /schemas/types.yaml#/definitions/uint32
        enum: [75, 100, 150, 200]
        default: 100
        description: Specifies the channel's ATI base.

      azoteq,ati-target:
        $ref: /schemas/types.yaml#/definitions/uint32
        multipleOf: 32
        minimum: 0
        maximum: 2016
        default: 512
        description: Specifies the channel's ATI target.

      azoteq,assoc-select:
        $ref: /schemas/types.yaml#/definitions/uint32-array
        minItems: 1
        maxItems: 8
        items:
          minimum: 0
          maximum: 7
        description:
          Specifies the associated channels for which the channel serves as a
          reference channel. By default, no channels are selected.

      azoteq,assoc-weight:
        $ref: /schemas/types.yaml#/definitions/uint32
        minimum: 0
        maximum: 255
        default: 0
        description:
          Specifies the channel's impact weight if it acts as an associated
          channel (0 = 0% impact, 255 = 200% impact).

    patternProperties:
      "^event-prox(-alt)?$":
        type: object
        $ref: input.yaml#
        description:
          Represents a proximity event reported by the channel in response to
          a decrease in counts. Node names suffixed with '-alt' instead corre-
          spond to an increase in counts.

          By default, the long-term average tracks an increase in counts such
          that only events corresponding to a decrease in counts are reported
          (refer to the datasheet for more information).

          Specify 'azoteq,dual-direction' to freeze the long-term average when
          the counts increase or decrease such that events of either direction
          can be reported. Alternatively, specify 'azoteq,invert-enable' to in-
          vert the polarity of the states reported by the channel.

          Complementary events (e.g. event-touch and event-touch-alt) can both
          be present and specify different key or switch codes, but not differ-
          ent thresholds or hysteresis (if applicable).

        properties:
          azoteq,thresh:
            $ref: /schemas/types.yaml#/definitions/uint32
            minimum: 0
            maximum: 255
            default: 10
            description: Specifies the threshold for the event.

          linux,code: true

        additionalProperties: false

      "^event-touch(-alt)?$":
        type: object
        $ref: input.yaml#
        description: Represents a touch event reported by the channel.

        properties:
          azoteq,thresh:
            $ref: /schemas/types.yaml#/definitions/uint32
            minimum: 0
            maximum: 255
            default: 8
            description: Specifies the threshold for the event.

          azoteq,hyst:
            $ref: /schemas/types.yaml#/definitions/uint32
            minimum: 0
            maximum: 15
            default: 4
            description: Specifies the hysteresis for the event.

          linux,code: true

        additionalProperties: false

      "^event-deep(-alt)?$":
        type: object
        $ref: input.yaml#
        description: Represents a deep-touch event reported by the channel.

        properties:
          azoteq,thresh:
            $ref: /schemas/types.yaml#/definitions/uint32
            minimum: 0
            maximum: 255
            default: 26
            description: Specifies the threshold for the event.

          azoteq,hyst:
            $ref: /schemas/types.yaml#/definitions/uint32
            minimum: 0
            maximum: 15
            default: 0
            description: Specifies the hysteresis for the event.

          linux,code: true

        additionalProperties: false

    required:
      - reg

    additionalProperties: false

if:
  properties:
    compatible:
      contains:
        enum:
          - azoteq,iqs269a-d0
then:
  patternProperties:
    "^channel@[0-7]$":
      properties:
        azoteq,slider1-select: false
else:
  properties:
    azoteq,touch-hold-ms: false

required:
  - compatible
  - reg
  - interrupts
  - "#address-cells"
  - "#size-cells"

additionalProperties: false

examples:
  - |
    #include <dt-bindings/input/input.h>
    #include <dt-bindings/interrupt-controller/irq.h>

    i2c {
            #address-cells = <1>;
            #size-cells = <0>;

            touch@44 {
                    #address-cells = <1>;
                    #size-cells = <0>;

                    compatible = "azoteq,iqs269a";
                    reg = <0x44>;
                    interrupt-parent = <&gpio>;
                    interrupts = <17 IRQ_TYPE_LEVEL_LOW>;

                    azoteq,hall-enable;
                    azoteq,suspend-mode = <2>;

                    linux,keycodes = <KEY_PLAYPAUSE>,
                                     <KEY_STOPCD>,
                                     <KEY_NEXTSONG>,
                                     <KEY_PREVIOUSSONG>;

                    azoteq,timeout-tap-ms = <400>;
                    azoteq,timeout-swipe-ms = <800>;

                    channel@0 {
                            reg = <0x0>;

                            event-prox {
                                    linux,code = <KEY_POWER>;
                            };
                    };

                    channel@1 {
                            reg = <0x1>;
                            azoteq,slider0-select;
                    };

                    channel@2 {
                            reg = <0x2>;
                            azoteq,slider0-select;
                    };

                    channel@3 {
                            reg = <0x3>;
                            azoteq,slider0-select;
                    };

                    channel@4 {
                            reg = <0x4>;
                            azoteq,slider0-select;
                    };

                    channel@5 {
                            reg = <0x5>;
                            azoteq,slider0-select;
                    };

                    channel@6 {
                            reg = <0x6>;
                            azoteq,invert-enable;
                            azoteq,static-enable;
                            azoteq,reseed-disable;
                            azoteq,rx-enable = <0>;
                            azoteq,sense-freq = <0x0>;
                            azoteq,sense-mode = <0xE>;
                            azoteq,ati-mode = <0x0>;
                            azoteq,ati-base = <200>;
                            azoteq,ati-target = <320>;
                    };

                    channel@7 {
                            reg = <0x7>;
                            azoteq,invert-enable;
                            azoteq,static-enable;
                            azoteq,reseed-disable;
                            azoteq,rx-enable = <0>, <6>;
                            azoteq,sense-freq = <0x0>;
                            azoteq,sense-mode = <0xE>;
                            azoteq,ati-mode = <0x3>;
                            azoteq,ati-base = <200>;
                            azoteq,ati-target = <320>;

                            event-touch {
                                    linux,code = <SW_LID>;
                            };
                    };
            };
    };

...
