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

title: Azoteq IQS7222A/B/C/D Capacitive Touch Controller

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

description: |
  The Azoteq IQS7222A, IQS7222B, IQS7222C and IQS7222D are multichannel
  capacitive touch controllers that feature additional sensing capabilities.

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

properties:
  compatible:
    enum:
      - azoteq,iqs7222a
      - azoteq,iqs7222b
      - azoteq,iqs7222c
      - azoteq,iqs7222d

  reg:
    maxItems: 1

  irq-gpios:
    maxItems: 1
    description:
      Specifies the GPIO connected to the device's active-low RDY output.

  reset-gpios:
    maxItems: 1
    description:
      Specifies the GPIO connected to the device's active-low MCLR input. The
      device is temporarily held in hardware reset prior to initialization if
      this property is present.

  azoteq,max-counts:
    $ref: /schemas/types.yaml#/definitions/uint32
    enum: [0, 1, 2, 3]
    description: |
      Specifies the maximum number of conversion periods (counts) that can be
      reported as follows:
      0: 1023
      1: 2047
      2: 4095
      3: 16384

  azoteq,auto-mode:
    $ref: /schemas/types.yaml#/definitions/uint32
    enum: [0, 1, 2, 3]
    description: |
      Specifies the number of conversions to occur before an interrupt is
      generated as follows:
      0: 4
      1: 8
      2: 16
      3: 32

  azoteq,ati-frac-div-fine:
    $ref: /schemas/types.yaml#/definitions/uint32
    minimum: 0
    maximum: 31
    description: Specifies the preloaded ATI fine fractional divider.

  azoteq,ati-frac-div-coarse:
    $ref: /schemas/types.yaml#/definitions/uint32
    minimum: 0
    maximum: 31
    description: Specifies the preloaded ATI coarse fractional divider.

  azoteq,ati-comp-select:
    $ref: /schemas/types.yaml#/definitions/uint32
    minimum: 0
    maximum: 1023
    description: Specifies the preloaded ATI compensation selection.

  azoteq,lta-beta-lp:
    $ref: /schemas/types.yaml#/definitions/uint32
    minimum: 0
    maximum: 15
    description:
      Specifies the long-term average filter damping factor to be applied during
      low-power mode.

  azoteq,lta-beta-np:
    $ref: /schemas/types.yaml#/definitions/uint32
    minimum: 0
    maximum: 15
    description:
      Specifies the long-term average filter damping factor to be applied during
      normal-power mode.

  azoteq,counts-beta-lp:
    $ref: /schemas/types.yaml#/definitions/uint32
    minimum: 0
    maximum: 15
    description:
      Specifies the counts filter damping factor to be applied during low-power
      mode.

  azoteq,counts-beta-np:
    $ref: /schemas/types.yaml#/definitions/uint32
    minimum: 0
    maximum: 15
    description:
      Specifies the counts filter damping factor to be applied during normal-
      power mode.

  azoteq,lta-fast-beta-lp:
    $ref: /schemas/types.yaml#/definitions/uint32
    minimum: 0
    maximum: 15
    description:
      Specifies the long-term average filter fast damping factor to be applied
      during low-power mode.

  azoteq,lta-fast-beta-np:
    $ref: /schemas/types.yaml#/definitions/uint32
    minimum: 0
    maximum: 15
    description:
      Specifies the long-term average filter fast damping factor to be applied
      during normal-power mode.

  azoteq,timeout-ati-ms:
    multipleOf: 500
    minimum: 0
    maximum: 32767500
    description:
      Specifies the delay (in ms) before ATI is retried following an ATI error.

  azoteq,rate-ati-ms:
    minimum: 0
    maximum: 65535
    description: Specifies the rate (in ms) at which ATI status is evaluated.

  azoteq,timeout-np-ms:
    minimum: 0
    maximum: 65535
    description:
      Specifies the length of time (in ms) to wait for an event before moving
      from normal-power mode to low-power mode.

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

  azoteq,timeout-lp-ms:
    minimum: 0
    maximum: 65535
    description:
      Specifies the length of time (in ms) to wait for an event before moving
      from low-power mode to ultra-low-power mode.

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

  azoteq,timeout-ulp-ms:
    minimum: 0
    maximum: 65535
    description:
      Specifies the rate (in ms) at which channels not regularly sampled during
      ultra-low-power mode are updated.

  azoteq,rate-ulp-ms:
    minimum: 0
    maximum: 3000
    description: Specifies the report rate (in ms) during ultra-low-power mode.

  touchscreen-size-x: true
  touchscreen-size-y: true
  touchscreen-inverted-x: true
  touchscreen-inverted-y: true
  touchscreen-swapped-x-y: true

  trackpad:
    type: object
    description: Represents all channels associated with the trackpad.

    properties:
      azoteq,channel-select:
        $ref: /schemas/types.yaml#/definitions/uint32-array
        minItems: 1
        maxItems: 12
        items:
          minimum: 0
          maximum: 13
        description:
          Specifies the order of the channels that participate in the trackpad.
          Specify 255 to omit a given channel for the purpose of mapping a non-
          rectangular trackpad.

      azoteq,num-rows:
        $ref: /schemas/types.yaml#/definitions/uint32
        minimum: 1
        maximum: 12
        description: Specifies the number of rows that comprise the trackpad.

      azoteq,num-cols:
        $ref: /schemas/types.yaml#/definitions/uint32
        minimum: 1
        maximum: 12
        description: Specifies the number of columns that comprise the trackpad.

      azoteq,top-speed:
        $ref: /schemas/types.yaml#/definitions/uint32
        multipleOf: 4
        minimum: 0
        maximum: 1020
        description:
          Specifies the speed (in coordinates traveled per conversion) after
          which coordinate filtering is no longer applied.

      azoteq,bottom-speed:
        $ref: /schemas/types.yaml#/definitions/uint32
        minimum: 0
        maximum: 255
        description:
          Specifies the speed (in coordinates traveled per conversion) after
          which coordinate filtering is linearly reduced.

      azoteq,use-prox:
        type: boolean
        description:
          Directs the trackpad to respond to the proximity states of the
          selected channels instead of their corresponding touch states.
          Note the trackpad cannot report granular coordinates during a
          state of proximity.

    patternProperties:
      "^azoteq,lower-cal-(x|y)$":
        $ref: /schemas/types.yaml#/definitions/uint32
        minimum: 0
        maximum: 255
        description: Specifies the trackpad's lower starting points.

      "^azoteq,upper-cal-(x|y)$":
        $ref: /schemas/types.yaml#/definitions/uint32
        minimum: 0
        maximum: 255
        description: Specifies the trackpad's upper starting points.

      "^event-(press|tap|(swipe|flick)-(x|y)-(pos|neg))$":
        type: object
        $ref: input.yaml#
        description:
          Represents a press or gesture event reported by the trackpad. Specify
          'linux,code' under the press event to report absolute coordinates.

        properties:
          linux,code: true

          azoteq,gesture-angle-tighten:
            type: boolean
            description:
              Limits the tangent of the gesture angle to 0.5 (axial gestures
              only). If specified in one direction, the effect is applied in
              either direction.

          azoteq,gesture-max-ms:
            multipleOf: 16
            minimum: 0
            maximum: 4080
            description:
              Specifies the length of time (in ms) within which a tap, swipe
              or flick gesture must be completed in order to be acknowledged
              by the device. The number specified for any one swipe or flick
              gesture applies to all other swipe or flick gestures.

          azoteq,gesture-min-ms:
            multipleOf: 16
            minimum: 0
            maximum: 4080
            description:
              Specifies the length of time (in ms) for which a tap gesture must
              be held in order to be acknowledged by the device.

          azoteq,gesture-dist:
            $ref: /schemas/types.yaml#/definitions/uint32
            minimum: 0
            maximum: 65535
            description:
              Specifies the distance (in coordinates) across which a swipe or
              flick gesture must travel in order to be acknowledged by the
              device. The number specified for any one swipe or flick gesture
              applies to all remaining swipe or flick gestures.

              For tap gestures, this property specifies the distance from the
              original point of contact across which the contact is permitted
              to travel before the gesture is rejected by the device.

          azoteq,gpio-select:
            $ref: /schemas/types.yaml#/definitions/uint32-array
            minItems: 1
            maxItems: 3
            items:
              minimum: 0
              maximum: 2
            description: |
              Specifies one or more GPIO mapped to the event as follows:
              0: GPIO0
              1: GPIO3
              2: GPIO4

              Note that although multiple events can be mapped to a single
              GPIO, they must all be of the same type (proximity, touch or
              trackpad gesture).

        additionalProperties: false

    required:
      - azoteq,channel-select

    additionalProperties: false

patternProperties:
  "^cycle-[0-9]$":
    type: object
    description: Represents a conversion cycle serving two sensing channels.

    properties:
      azoteq,conv-period:
        $ref: /schemas/types.yaml#/definitions/uint32
        minimum: 0
        maximum: 255
        description: Specifies the cycle's conversion period.

      azoteq,conv-frac:
        $ref: /schemas/types.yaml#/definitions/uint32
        minimum: 0
        maximum: 255
        description: Specifies the cycle's conversion frequency fraction.

      azoteq,tx-enable:
        $ref: /schemas/types.yaml#/definitions/uint32-array
        minItems: 1
        maxItems: 9
        items:
          minimum: 0
          maximum: 8
        description: Specifies the CTx pin(s) associated with the cycle.

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

      azoteq,dead-time-enable:
        type: boolean
        description:
          Increases the denominator of the conversion frequency formula by one.

      azoteq,tx-freq-fosc:
        type: boolean
        description:
          Fixes the conversion frequency to that of the device's core clock.

      azoteq,vbias-enable:
        type: boolean
        description: Enables the bias voltage for use during inductive sensing.

      azoteq,sense-mode:
        $ref: /schemas/types.yaml#/definitions/uint32
        enum: [0, 1, 2, 3]
        description: |
          Specifies the cycle's sensing mode as follows:
          0: None
          1: Self capacitive
          2: Mutual capacitive
          3: Inductive

          Note that in the case of IQS7222A, cycles 5 and 6 are restricted to
          Hall-effect sensing.

      azoteq,iref-enable:
        type: boolean
        description:
          Enables the current reference for use during various sensing modes.

      azoteq,iref-level:
        $ref: /schemas/types.yaml#/definitions/uint32
        minimum: 0
        maximum: 15
        description: Specifies the cycle's current reference level.

      azoteq,iref-trim:
        $ref: /schemas/types.yaml#/definitions/uint32
        minimum: 0
        maximum: 15
        description: Specifies the cycle's current reference trim.

    dependencies:
      azoteq,iref-level: ["azoteq,iref-enable"]
      azoteq,iref-trim: ["azoteq,iref-enable"]

    additionalProperties: false

  "^channel-([0-9]|1[0-9])$":
    type: object
    description:
      Represents a single sensing channel. A channel is active if defined and
      inactive otherwise.

      Note that in the case of IQS7222A, channels 10 and 11 are restricted to
      Hall-effect sensing with events reported on channel 10 only.

    properties:
      azoteq,ulp-allow:
        type: boolean
        description:
          Permits the device to enter ultra-low-power mode while the channel
          lies in a state of touch or proximity.

      azoteq,ref-select:
        $ref: /schemas/types.yaml#/definitions/uint32
        minimum: 0
        maximum: 9
        description: Specifies a separate reference channel to be followed.

      azoteq,ref-weight:
        $ref: /schemas/types.yaml#/definitions/uint32
        minimum: 0
        maximum: 65535
        description: Specifies the relative weight of the reference channel.

      azoteq,use-prox:
        type: boolean
        description:
          Activates the reference channel in response to proximity events
          instead of touch events.

      azoteq,counts-filt-enable:
        type: boolean
        description: Applies counts filtering to the channel.

      azoteq,ati-band:
        $ref: /schemas/types.yaml#/definitions/uint32
        enum: [0, 1, 2, 3]
        description: |
          Specifies the channel's ATI band as a fraction of its ATI target as
          follows:
          0: 1/16
          1: 1/8
          2: 1/4
          3: 1/2

      azoteq,global-halt:
        type: boolean
        description:
          Specifies that the channel's long-term average is to freeze if any
          other participating channel lies in a proximity or touch state.

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

      azoteq,dual-direction:
        type: boolean
        description:
          Specifies that the channel's long-term average is to freeze in the
          presence of either increasing or decreasing counts, thereby permit-
          ting events to be reported in either direction.

      azoteq,rx-enable:
        $ref: /schemas/types.yaml#/definitions/uint32-array
        minItems: 1
        maxItems: 4
        items:
          minimum: 0
          maximum: 7
        description: Specifies the CRx pin(s) associated with the channel.

      azoteq,samp-cap-double:
        type: boolean
        description: Doubles the sampling capacitance from 40 pF to 80 pF.

      azoteq,vref-half:
        type: boolean
        description: Halves the discharge threshold from 1.0 V to 0.5 V.

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

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

      azoteq,ati-base:
        $ref: /schemas/types.yaml#/definitions/uint32
        multipleOf: 16
        minimum: 0
        maximum: 496
        description: Specifies the channel's ATI base.

      azoteq,ati-mode:
        $ref: /schemas/types.yaml#/definitions/uint32
        enum: [0, 1, 2, 3, 4, 5]
        description: |
          Specifies the channel's ATI mode as follows:
          0: Disabled
          1: Compensation
          2: Compensation divider
          3: Fine fractional divider
          4: Coarse fractional divider
          5: Full

      azoteq,ati-frac-div-fine:
        $ref: /schemas/types.yaml#/definitions/uint32
        minimum: 0
        maximum: 31
        description: Specifies the channel's ATI fine fractional divider.

      azoteq,ati-frac-mult-coarse:
        $ref: /schemas/types.yaml#/definitions/uint32
        minimum: 0
        maximum: 15
        description: Specifies the channel's ATI coarse fractional multiplier.

      azoteq,ati-frac-div-coarse:
        $ref: /schemas/types.yaml#/definitions/uint32
        minimum: 0
        maximum: 31
        description: Specifies the channel's ATI coarse fractional divider.

      azoteq,ati-comp-div:
        $ref: /schemas/types.yaml#/definitions/uint32
        minimum: 0
        maximum: 31
        description: Specifies the channel's ATI compensation divider.

      azoteq,ati-comp-select:
        $ref: /schemas/types.yaml#/definitions/uint32
        minimum: 0
        maximum: 1023
        description: Specifies the channel's ATI compensation selection.

      azoteq,debounce-enter:
        $ref: /schemas/types.yaml#/definitions/uint32
        minimum: 0
        maximum: 15
        description: Specifies the channel's debounce entrance factor.

      azoteq,debounce-exit:
        $ref: /schemas/types.yaml#/definitions/uint32
        minimum: 0
        maximum: 15
        description: Specifies the channel's debounce exit factor.

    patternProperties:
      "^event-(prox|touch)$":
        type: object
        $ref: input.yaml#
        description:
          Represents a proximity or touch event reported by the channel.

        properties:
          azoteq,gpio-select:
            $ref: /schemas/types.yaml#/definitions/uint32-array
            minItems: 1
            maxItems: 3
            items:
              minimum: 0
              maximum: 2
            description: |
              Specifies one or more GPIO mapped to the event as follows:
              0: GPIO0
              1: GPIO3
              2: GPIO4

              Note that although multiple events can be mapped to a single
              GPIO, they must all be of the same type (proximity, touch or
              slider/trackpad gesture).

          azoteq,thresh:
            $ref: /schemas/types.yaml#/definitions/uint32
            description:
              Specifies the threshold for the event. Valid entries range from
              0-127 and 0-255 for proximity and touch events, respectively.

          azoteq,hyst:
            $ref: /schemas/types.yaml#/definitions/uint32
            minimum: 0
            maximum: 255
            description:
              Specifies the hysteresis for the event (touch events only).

          azoteq,timeout-press-ms:
            multipleOf: 500
            minimum: 0
            maximum: 127500
            description:
              Specifies the length of time (in ms) to wait before automatically
              releasing a press event. Specify zero to allow the press state to
              persist indefinitely.

              The IQS7222B does not feature channel-specific timeouts; the time-
              out specified for any one channel applies to all channels.

          linux,code: true

          linux,input-type:
            enum: [1, 5]
            default: 1
            description:
              Specifies whether the event is to be interpreted as a key (1)
              or a switch (5).

        additionalProperties: false

    dependencies:
      azoteq,ref-weight: ["azoteq,ref-select"]
      azoteq,use-prox: ["azoteq,ref-select"]

    additionalProperties: false

  "^slider-[0-1]$":
    type: object
    description: Represents a slider comprising three or four channels.

    properties:
      azoteq,channel-select:
        $ref: /schemas/types.yaml#/definitions/uint32-array
        minItems: 3
        maxItems: 4
        items:
          minimum: 0
          maximum: 9
        description:
          Specifies the order of the channels that participate in the slider.

      azoteq,slider-size:
        $ref: /schemas/types.yaml#/definitions/uint32
        minimum: 1
        maximum: 65535
        description:
          Specifies the slider's one-dimensional resolution, equal to the
          maximum coordinate plus one.

      azoteq,lower-cal:
        $ref: /schemas/types.yaml#/definitions/uint32
        minimum: 0
        maximum: 255
        description: Specifies the slider's lower starting point.

      azoteq,upper-cal:
        $ref: /schemas/types.yaml#/definitions/uint32
        minimum: 0
        maximum: 255
        description: Specifies the slider's upper starting point.

      azoteq,top-speed:
        $ref: /schemas/types.yaml#/definitions/uint32
        minimum: 0
        maximum: 65535
        description:
          Specifies the speed (in coordinates traveled per conversion) after
          which coordinate filtering is no longer applied.

      azoteq,bottom-speed:
        $ref: /schemas/types.yaml#/definitions/uint32
        minimum: 0
        maximum: 255
        description:
          Specifies the speed (in coordinates traveled per conversion) after
          which coordinate filtering is linearly reduced.

      azoteq,bottom-beta:
        $ref: /schemas/types.yaml#/definitions/uint32
        minimum: 0
        maximum: 7
        description:
          Specifies the coordinate filter damping factor to be applied
          while the speed of movement is below that which is specified
          by azoteq,bottom-speed.

      azoteq,static-beta:
        type: boolean
        description:
          Applies the coordinate filter damping factor specified by
          azoteq,bottom-beta regardless of the speed of movement.

      azoteq,use-prox:
        type: boolean
        description:
          Directs the slider to respond to the proximity states of the selected
          channels instead of their corresponding touch states. Note the slider
          cannot report granular coordinates during a state of proximity.

      linux,axis:
        $ref: /schemas/types.yaml#/definitions/uint32
        description:
          Specifies the absolute axis to which coordinates are mapped. Specify
          ABS_WHEEL to operate the slider as a wheel (IQS7222C only).

    patternProperties:
      "^event-(press|tap|(swipe|flick)-(pos|neg))$":
        type: object
        $ref: input.yaml#
        description:
          Represents a press or gesture (IQS7222A only) event reported by
          the slider.

        properties:
          linux,code: true

          azoteq,gesture-max-ms:
            multipleOf: 16
            minimum: 0
            maximum: 4080
            description:
              Specifies the length of time (in ms) within which a tap, swipe
              or flick gesture must be completed in order to be acknowledged
              by the device. The number specified for any one swipe or flick
              gesture applies to all remaining swipe or flick gestures.

          azoteq,gesture-min-ms:
            multipleOf: 16
            minimum: 0
            maximum: 496
            description:
              Specifies the length of time (in ms) for which a tap gesture must
              be held in order to be acknowledged by the device.

          azoteq,gesture-dist:
            $ref: /schemas/types.yaml#/definitions/uint32
            multipleOf: 16
            minimum: 0
            maximum: 4080
            description:
              Specifies the distance (in coordinates) across which a swipe or
              flick gesture must travel in order to be acknowledged by the
              device. The number specified for any one swipe or flick gesture
              applies to all remaining swipe or flick gestures.

          azoteq,gpio-select:
            $ref: /schemas/types.yaml#/definitions/uint32-array
            minItems: 1
            maxItems: 3
            items:
              minimum: 0
              maximum: 2
            description: |
              Specifies one or more GPIO mapped to the event as follows:
              0: GPIO0
              1: GPIO3
              2: GPIO4

              Note that although multiple events can be mapped to a single
              GPIO, they must all be of the same type (proximity, touch or
              slider gesture).

        additionalProperties: false

    required:
      - azoteq,channel-select

    additionalProperties: false

  "^gpio-[0-2]$":
    type: object
    description: |
      Represents a GPIO mapped to one or more events as follows:
      gpio-0: GPIO0
      gpio-1: GPIO3
      gpio-2: GPIO4

    allOf:
      - $ref: /schemas/pinctrl/pincfg-node.yaml#

    properties:
      drive-open-drain: true

    additionalProperties: false

allOf:
  - $ref: touchscreen/touchscreen.yaml#

  - if:
      properties:
        compatible:
          contains:
            enum:
              - azoteq,iqs7222a
              - azoteq,iqs7222b
              - azoteq,iqs7222c

    then:
      properties:
        touchscreen-size-x: false
        touchscreen-size-y: false
        touchscreen-inverted-x: false
        touchscreen-inverted-y: false
        touchscreen-swapped-x-y: false

        trackpad: false

      patternProperties:
        "^channel-([0-9]|1[0-9])$":
          properties:
            azoteq,counts-filt-enable: false

  - if:
      properties:
        compatible:
          contains:
            enum:
              - azoteq,iqs7222b
              - azoteq,iqs7222c

    then:
      patternProperties:
        "^channel-([0-9]|1[0-9])$":
          properties:
            azoteq,ulp-allow: false

  - if:
      properties:
        compatible:
          contains:
            enum:
              - azoteq,iqs7222b
              - azoteq,iqs7222d

    then:
      patternProperties:
        "^cycle-[0-9]$":
          properties:
            azoteq,iref-enable: false

        "^channel-([0-9]|1[0-9])$":
          properties:
            azoteq,ref-select: false

        "^slider-[0-1]$": false

  - if:
      properties:
        compatible:
          contains:
            const: azoteq,iqs7222b

    then:
      patternProperties:
        "^channel-([0-9]|1[0-9])$":
          patternProperties:
            "^event-(prox|touch)$":
              properties:
                azoteq,gpio-select: false

        "^gpio-[0-2]$": false

  - if:
      properties:
        compatible:
          contains:
            const: azoteq,iqs7222a

    then:
      patternProperties:
        "^channel-([0-9]|1[0-9])$":
          patternProperties:
            "^event-(prox|touch)$":
              properties:
                azoteq,gpio-select:
                  maxItems: 1
                  items:
                    maximum: 0

        "^slider-[0-1]$":
          properties:
            azoteq,slider-size:
              multipleOf: 16
              minimum: 16
              maximum: 4080

            azoteq,top-speed:
              multipleOf: 4
              maximum: 1020

          patternProperties:
            "^event-(press|tap|(swipe|flick)-(pos|neg))$":
              properties:
                azoteq,gpio-select:
                  maxItems: 1
                  items:
                    maximum: 0

    else:
      patternProperties:
        "^slider-[0-1]$":
          patternProperties:
            "^event-(press|tap|(swipe|flick)-(pos|neg))$":
              properties:
                azoteq,gesture-max-ms: false

                azoteq,gesture-min-ms: false

                azoteq,gesture-dist: false

required:
  - compatible
  - reg
  - irq-gpios

additionalProperties: false

examples:
  - |
    #include <dt-bindings/gpio/gpio.h>
    #include <dt-bindings/input/input.h>

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

            iqs7222a@44 {
                    compatible = "azoteq,iqs7222a";
                    reg = <0x44>;
                    irq-gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
                    azoteq,lta-beta-lp = <7>;
                    azoteq,lta-beta-np = <8>;
                    azoteq,counts-beta-lp = <2>;
                    azoteq,counts-beta-np = <3>;
                    azoteq,lta-fast-beta-lp = <3>;
                    azoteq,lta-fast-beta-np = <4>;

                    cycle-0 {
                            azoteq,conv-period = <5>;
                            azoteq,conv-frac = <127>;
                            azoteq,tx-enable = <1>, <2>, <4>, <5>;
                            azoteq,dead-time-enable;
                            azoteq,sense-mode = <2>;
                    };

                    cycle-1 {
                            azoteq,conv-period = <5>;
                            azoteq,conv-frac = <127>;
                            azoteq,tx-enable = <5>;
                            azoteq,dead-time-enable;
                            azoteq,sense-mode = <2>;
                    };

                    cycle-2 {
                            azoteq,conv-period = <5>;
                            azoteq,conv-frac = <127>;
                            azoteq,tx-enable = <4>;
                            azoteq,dead-time-enable;
                            azoteq,sense-mode = <2>;
                    };

                    cycle-3 {
                            azoteq,conv-period = <5>;
                            azoteq,conv-frac = <127>;
                            azoteq,tx-enable = <2>;
                            azoteq,dead-time-enable;
                            azoteq,sense-mode = <2>;
                    };

                    cycle-4 {
                            azoteq,conv-period = <5>;
                            azoteq,conv-frac = <127>;
                            azoteq,tx-enable = <1>;
                            azoteq,dead-time-enable;
                            azoteq,sense-mode = <2>;
                    };

                    cycle-5 {
                            azoteq,conv-period = <2>;
                            azoteq,conv-frac = <0>;
                    };

                    cycle-6 {
                            azoteq,conv-period = <2>;
                            azoteq,conv-frac = <0>;
                    };

                    channel-0 {
                            azoteq,ulp-allow;
                            azoteq,global-halt;
                            azoteq,invert-enable;
                            azoteq,rx-enable = <3>;
                            azoteq,ati-target = <800>;
                            azoteq,ati-base = <208>;
                            azoteq,ati-mode = <5>;
                    };

                    channel-1 {
                            azoteq,global-halt;
                            azoteq,invert-enable;
                            azoteq,rx-enable = <3>;
                            azoteq,ati-target = <496>;
                            azoteq,ati-base = <208>;
                            azoteq,ati-mode = <5>;
                    };

                    channel-2 {
                            azoteq,global-halt;
                            azoteq,invert-enable;
                            azoteq,rx-enable = <3>;
                            azoteq,ati-target = <496>;
                            azoteq,ati-base = <208>;
                            azoteq,ati-mode = <5>;
                    };

                    channel-3 {
                            azoteq,global-halt;
                            azoteq,invert-enable;
                            azoteq,rx-enable = <3>;
                            azoteq,ati-target = <496>;
                            azoteq,ati-base = <208>;
                            azoteq,ati-mode = <5>;
                    };

                    channel-4 {
                            azoteq,global-halt;
                            azoteq,invert-enable;
                            azoteq,rx-enable = <3>;
                            azoteq,ati-target = <496>;
                            azoteq,ati-base = <208>;
                            azoteq,ati-mode = <5>;
                    };

                    channel-5 {
                            azoteq,ulp-allow;
                            azoteq,global-halt;
                            azoteq,invert-enable;
                            azoteq,rx-enable = <6>;
                            azoteq,ati-target = <800>;
                            azoteq,ati-base = <144>;
                            azoteq,ati-mode = <5>;
                    };

                    channel-6 {
                            azoteq,global-halt;
                            azoteq,invert-enable;
                            azoteq,rx-enable = <6>;
                            azoteq,ati-target = <496>;
                            azoteq,ati-base = <160>;
                            azoteq,ati-mode = <5>;

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

                    channel-7 {
                            azoteq,global-halt;
                            azoteq,invert-enable;
                            azoteq,rx-enable = <6>;
                            azoteq,ati-target = <496>;
                            azoteq,ati-base = <160>;
                            azoteq,ati-mode = <5>;

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

                    channel-8 {
                            azoteq,global-halt;
                            azoteq,invert-enable;
                            azoteq,rx-enable = <6>;
                            azoteq,ati-target = <496>;
                            azoteq,ati-base = <160>;
                            azoteq,ati-mode = <5>;

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

                    channel-9 {
                            azoteq,global-halt;
                            azoteq,invert-enable;
                            azoteq,rx-enable = <6>;
                            azoteq,ati-target = <496>;
                            azoteq,ati-base = <160>;
                            azoteq,ati-mode = <5>;

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

                    channel-10 {
                            azoteq,ulp-allow;
                            azoteq,ati-target = <496>;
                            azoteq,ati-base = <112>;

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

                    channel-11 {
                            azoteq,ati-target = <496>;
                            azoteq,ati-base = <112>;
                    };

                    slider-0 {
                            azoteq,channel-select = <1>, <2>, <3>, <4>;
                            azoteq,slider-size = <4080>;
                            azoteq,upper-cal = <50>;
                            azoteq,lower-cal = <30>;
                            azoteq,top-speed = <200>;
                            azoteq,bottom-speed = <1>;
                            azoteq,bottom-beta = <3>;

                            event-tap {
                                    linux,code = <KEY_PLAYPAUSE>;
                                    azoteq,gesture-max-ms = <400>;
                                    azoteq,gesture-min-ms = <32>;
                            };

                            event-flick-pos {
                                    linux,code = <KEY_NEXTSONG>;
                                    azoteq,gesture-max-ms = <800>;
                                    azoteq,gesture-dist = <800>;
                            };

                            event-flick-neg {
                                    linux,code = <KEY_PREVIOUSSONG>;
                            };
                    };
            };
    };

...
