cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

azoteq,iqs7222.yaml (30416B)


      1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
      2%YAML 1.2
      3---
      4$id: http://devicetree.org/schemas/input/azoteq,iqs7222.yaml#
      5$schema: http://devicetree.org/meta-schemas/core.yaml#
      6
      7title: Azoteq IQS7222A/B/C Capacitive Touch Controller
      8
      9maintainers:
     10  - Jeff LaBundy <jeff@labundy.com>
     11
     12description: |
     13  The Azoteq IQS7222A, IQS7222B and IQS7222C are multichannel capacitive touch
     14  controllers that feature additional sensing capabilities.
     15
     16  Link to datasheets: https://www.azoteq.com/
     17
     18properties:
     19  compatible:
     20    enum:
     21      - azoteq,iqs7222a
     22      - azoteq,iqs7222b
     23      - azoteq,iqs7222c
     24
     25  reg:
     26    maxItems: 1
     27
     28  irq-gpios:
     29    maxItems: 1
     30    description:
     31      Specifies the GPIO connected to the device's active-low RDY output.
     32
     33  reset-gpios:
     34    maxItems: 1
     35    description:
     36      Specifies the GPIO connected to the device's active-low MCLR input. The
     37      device is temporarily held in hardware reset prior to initialization if
     38      this property is present.
     39
     40  azoteq,rf-filt-enable:
     41    type: boolean
     42    description: Enables the device's internal RF filter.
     43
     44  azoteq,max-counts:
     45    $ref: /schemas/types.yaml#/definitions/uint32
     46    enum: [0, 1, 2, 3]
     47    description: |
     48      Specifies the maximum number of conversion periods (counts) that can be
     49      reported as follows:
     50      0: 1023
     51      1: 2047
     52      2: 4095
     53      3: 16384
     54
     55  azoteq,auto-mode:
     56    $ref: /schemas/types.yaml#/definitions/uint32
     57    enum: [0, 1, 2, 3]
     58    description: |
     59      Specifies the number of conversions to occur before an interrupt is
     60      generated as follows:
     61      0: 4
     62      1: 8
     63      2: 16
     64      3: 32
     65
     66  azoteq,ati-frac-div-fine:
     67    $ref: /schemas/types.yaml#/definitions/uint32
     68    minimum: 0
     69    maximum: 31
     70    description: Specifies the preloaded ATI fine fractional divider.
     71
     72  azoteq,ati-frac-div-coarse:
     73    $ref: /schemas/types.yaml#/definitions/uint32
     74    minimum: 0
     75    maximum: 31
     76    description: Specifies the preloaded ATI coarse fractional divider.
     77
     78  azoteq,ati-comp-select:
     79    $ref: /schemas/types.yaml#/definitions/uint32
     80    minimum: 0
     81    maximum: 1023
     82    description: Specifies the preloaded ATI compensation selection.
     83
     84  azoteq,lta-beta-lp:
     85    $ref: /schemas/types.yaml#/definitions/uint32
     86    minimum: 0
     87    maximum: 15
     88    description:
     89      Specifies the long-term average filter damping factor to be applied during
     90      low-power mode.
     91
     92  azoteq,lta-beta-np:
     93    $ref: /schemas/types.yaml#/definitions/uint32
     94    minimum: 0
     95    maximum: 15
     96    description:
     97      Specifies the long-term average filter damping factor to be applied during
     98      normal-power mode.
     99
    100  azoteq,counts-beta-lp:
    101    $ref: /schemas/types.yaml#/definitions/uint32
    102    minimum: 0
    103    maximum: 15
    104    description:
    105      Specifies the counts filter damping factor to be applied during low-power
    106      mode.
    107
    108  azoteq,counts-beta-np:
    109    $ref: /schemas/types.yaml#/definitions/uint32
    110    minimum: 0
    111    maximum: 15
    112    description:
    113      Specifies the counts filter damping factor to be applied during normal-
    114      power mode.
    115
    116  azoteq,lta-fast-beta-lp:
    117    $ref: /schemas/types.yaml#/definitions/uint32
    118    minimum: 0
    119    maximum: 15
    120    description:
    121      Specifies the long-term average filter fast damping factor to be applied
    122      during low-power mode.
    123
    124  azoteq,lta-fast-beta-np:
    125    $ref: /schemas/types.yaml#/definitions/uint32
    126    minimum: 0
    127    maximum: 15
    128    description:
    129      Specifies the long-term average filter fast damping factor to be applied
    130      during normal-power mode.
    131
    132  azoteq,timeout-ati-ms:
    133    multipleOf: 500
    134    minimum: 0
    135    maximum: 32767500
    136    description:
    137      Specifies the delay (in ms) before ATI is retried following an ATI error.
    138
    139  azoteq,rate-ati-ms:
    140    minimum: 0
    141    maximum: 65535
    142    description: Specifies the rate (in ms) at which ATI status is evaluated.
    143
    144  azoteq,timeout-np-ms:
    145    minimum: 0
    146    maximum: 65535
    147    description:
    148      Specifies the length of time (in ms) to wait for an event before moving
    149      from normal-power mode to low-power mode.
    150
    151  azoteq,rate-np-ms:
    152    minimum: 0
    153    maximum: 3000
    154    description: Specifies the report rate (in ms) during normal-power mode.
    155
    156  azoteq,timeout-lp-ms:
    157    minimum: 0
    158    maximum: 65535
    159    description:
    160      Specifies the length of time (in ms) to wait for an event before moving
    161      from low-power mode to ultra-low-power mode.
    162
    163  azoteq,rate-lp-ms:
    164    minimum: 0
    165    maximum: 3000
    166    description: Specifies the report rate (in ms) during low-power mode.
    167
    168  azoteq,timeout-ulp-ms:
    169    minimum: 0
    170    maximum: 65535
    171    description:
    172      Specifies the rate (in ms) at which channels not regularly sampled during
    173      ultra-low-power mode are updated.
    174
    175  azoteq,rate-ulp-ms:
    176    minimum: 0
    177    maximum: 3000
    178    description: Specifies the report rate (in ms) during ultra-low-power mode.
    179
    180patternProperties:
    181  "^cycle-[0-9]$":
    182    type: object
    183    description: Represents a conversion cycle serving two sensing channels.
    184
    185    properties:
    186      azoteq,conv-period:
    187        $ref: /schemas/types.yaml#/definitions/uint32
    188        minimum: 0
    189        maximum: 255
    190        description: Specifies the cycle's conversion period.
    191
    192      azoteq,conv-frac:
    193        $ref: /schemas/types.yaml#/definitions/uint32
    194        minimum: 0
    195        maximum: 255
    196        description: Specifies the cycle's conversion frequency fraction.
    197
    198      azoteq,tx-enable:
    199        $ref: /schemas/types.yaml#/definitions/uint32-array
    200        minItems: 1
    201        maxItems: 9
    202        items:
    203          minimum: 0
    204          maximum: 8
    205        description: Specifies the CTx pin(s) associated with the cycle.
    206
    207      azoteq,rx-float-inactive:
    208        type: boolean
    209        description: Floats any inactive CRx pins instead of grounding them.
    210
    211      azoteq,dead-time-enable:
    212        type: boolean
    213        description:
    214          Increases the denominator of the conversion frequency formula by one.
    215
    216      azoteq,tx-freq-fosc:
    217        type: boolean
    218        description:
    219          Fixes the conversion frequency to that of the device's core clock.
    220
    221      azoteq,vbias-enable:
    222        type: boolean
    223        description: Enables the bias voltage for use during inductive sensing.
    224
    225      azoteq,sense-mode:
    226        $ref: /schemas/types.yaml#/definitions/uint32
    227        enum: [0, 1, 2, 3]
    228        description: |
    229          Specifies the cycle's sensing mode as follows:
    230          0: None
    231          1: Self capacitive
    232          2: Mutual capacitive
    233          3: Inductive
    234
    235          Note that in the case of IQS7222A, cycles 5 and 6 are restricted to
    236          Hall-effect sensing.
    237
    238      azoteq,iref-enable:
    239        type: boolean
    240        description:
    241          Enables the current reference for use during various sensing modes.
    242
    243      azoteq,iref-level:
    244        $ref: /schemas/types.yaml#/definitions/uint32
    245        minimum: 0
    246        maximum: 15
    247        description: Specifies the cycle's current reference level.
    248
    249      azoteq,iref-trim:
    250        $ref: /schemas/types.yaml#/definitions/uint32
    251        minimum: 0
    252        maximum: 15
    253        description: Specifies the cycle's current reference trim.
    254
    255    dependencies:
    256      azoteq,iref-level: ["azoteq,iref-enable"]
    257      azoteq,iref-trim: ["azoteq,iref-enable"]
    258
    259    additionalProperties: false
    260
    261  "^channel-([0-9]|1[0-9])$":
    262    type: object
    263    description:
    264      Represents a single sensing channel. A channel is active if defined and
    265      inactive otherwise.
    266
    267      Note that in the case of IQS7222A, channels 10 and 11 are restricted to
    268      Hall-effect sensing with events reported on channel 10 only.
    269
    270    properties:
    271      azoteq,ulp-allow:
    272        type: boolean
    273        description:
    274          Permits the device to enter ultra-low-power mode while the channel
    275          lies in a state of touch or proximity.
    276
    277      azoteq,ref-select:
    278        $ref: /schemas/types.yaml#/definitions/uint32
    279        minimum: 0
    280        maximum: 9
    281        description: Specifies a separate reference channel to be followed.
    282
    283      azoteq,ref-weight:
    284        $ref: /schemas/types.yaml#/definitions/uint32
    285        minimum: 0
    286        maximum: 65535
    287        description: Specifies the relative weight of the reference channel.
    288
    289      azoteq,use-prox:
    290        type: boolean
    291        description:
    292          Activates the reference channel in response to proximity events
    293          instead of touch events.
    294
    295      azoteq,ati-band:
    296        $ref: /schemas/types.yaml#/definitions/uint32
    297        enum: [0, 1, 2, 3]
    298        description: |
    299          Specifies the channel's ATI band as a fraction of its ATI target as
    300          follows:
    301          0: 1/16
    302          1: 1/8
    303          2: 1/4
    304          3: 1/2
    305
    306      azoteq,global-halt:
    307        type: boolean
    308        description:
    309          Specifies that the channel's long-term average is to freeze if any
    310          other participating channel lies in a proximity or touch state.
    311
    312      azoteq,invert-enable:
    313        type: boolean
    314        description:
    315          Inverts the polarity of the states reported for proximity and touch
    316          events relative to their respective thresholds.
    317
    318      azoteq,dual-direction:
    319        type: boolean
    320        description:
    321          Specifies that the channel's long-term average is to freeze in the
    322          presence of either increasing or decreasing counts, thereby permit-
    323          ting events to be reported in either direction.
    324
    325      azoteq,rx-enable:
    326        $ref: /schemas/types.yaml#/definitions/uint32-array
    327        minItems: 1
    328        maxItems: 4
    329        items:
    330          minimum: 0
    331          maximum: 7
    332        description: Specifies the CRx pin(s) associated with the channel.
    333
    334      azoteq,samp-cap-double:
    335        type: boolean
    336        description: Doubles the sampling capacitance from 40 pF to 80 pF.
    337
    338      azoteq,vref-half:
    339        type: boolean
    340        description: Halves the discharge threshold from 1.0 V to 0.5 V.
    341
    342      azoteq,proj-bias:
    343        $ref: /schemas/types.yaml#/definitions/uint32
    344        enum: [0, 1, 2, 3]
    345        description: |
    346          Specifies the bias current applied during mutual (projected)
    347          capacitive sensing as follows:
    348          0: 2 uA
    349          1: 5 uA
    350          2: 7 uA
    351          3: 10 uA
    352
    353      azoteq,ati-target:
    354        $ref: /schemas/types.yaml#/definitions/uint32
    355        multipleOf: 8
    356        minimum: 0
    357        maximum: 2040
    358        description: Specifies the channel's ATI target.
    359
    360      azoteq,ati-base:
    361        $ref: /schemas/types.yaml#/definitions/uint32
    362        multipleOf: 16
    363        minimum: 0
    364        maximum: 496
    365        description: Specifies the channel's ATI base.
    366
    367      azoteq,ati-mode:
    368        $ref: /schemas/types.yaml#/definitions/uint32
    369        enum: [0, 1, 2, 3, 4, 5]
    370        description: |
    371          Specifies the channel's ATI mode as follows:
    372          0: Disabled
    373          1: Compensation
    374          2: Compensation divider
    375          3: Fine fractional divider
    376          4: Coarse fractional divider
    377          5: Full
    378
    379      azoteq,ati-frac-div-fine:
    380        $ref: /schemas/types.yaml#/definitions/uint32
    381        minimum: 0
    382        maximum: 31
    383        description: Specifies the channel's ATI fine fractional divider.
    384
    385      azoteq,ati-frac-mult-coarse:
    386        $ref: /schemas/types.yaml#/definitions/uint32
    387        minimum: 0
    388        maximum: 15
    389        description: Specifies the channel's ATI coarse fractional multiplier.
    390
    391      azoteq,ati-frac-div-coarse:
    392        $ref: /schemas/types.yaml#/definitions/uint32
    393        minimum: 0
    394        maximum: 31
    395        description: Specifies the channel's ATI coarse fractional divider.
    396
    397      azoteq,ati-comp-div:
    398        $ref: /schemas/types.yaml#/definitions/uint32
    399        minimum: 0
    400        maximum: 31
    401        description: Specifies the channel's ATI compensation divider.
    402
    403      azoteq,ati-comp-select:
    404        $ref: /schemas/types.yaml#/definitions/uint32
    405        minimum: 0
    406        maximum: 1023
    407        description: Specifies the channel's ATI compensation selection.
    408
    409      azoteq,debounce-enter:
    410        $ref: /schemas/types.yaml#/definitions/uint32
    411        minimum: 0
    412        maximum: 15
    413        description: Specifies the channel's debounce entrance factor.
    414
    415      azoteq,debounce-exit:
    416        $ref: /schemas/types.yaml#/definitions/uint32
    417        minimum: 0
    418        maximum: 15
    419        description: Specifies the channel's debounce exit factor.
    420
    421    patternProperties:
    422      "^event-(prox|touch)$":
    423        type: object
    424        description:
    425          Represents a proximity or touch event reported by the channel.
    426
    427        properties:
    428          azoteq,gpio-select:
    429            $ref: /schemas/types.yaml#/definitions/uint32-array
    430            minItems: 1
    431            maxItems: 3
    432            items:
    433              minimum: 0
    434              maximum: 2
    435            description: |
    436              Specifies one or more GPIO mapped to the event as follows:
    437              0: GPIO0
    438              1: GPIO3 (IQS7222C only)
    439              2: GPIO4 (IQS7222C only)
    440
    441              Note that although multiple events can be mapped to a single
    442              GPIO, they must all be of the same type (proximity, touch or
    443              slider gesture).
    444
    445          azoteq,thresh:
    446            $ref: /schemas/types.yaml#/definitions/uint32
    447            description:
    448              Specifies the threshold for the event. Valid entries range from
    449              0-127 and 0-255 for proximity and touch events, respectively.
    450
    451          azoteq,hyst:
    452            $ref: /schemas/types.yaml#/definitions/uint32
    453            minimum: 0
    454            maximum: 255
    455            description:
    456              Specifies the hysteresis for the event (touch events only).
    457
    458          azoteq,timeout-press-ms:
    459            multipleOf: 500
    460            minimum: 0
    461            maximum: 127500
    462            description:
    463              Specifies the length of time (in ms) to wait before automatically
    464              releasing a press event. Specify zero to allow the press state to
    465              persist indefinitely.
    466
    467              The IQS7222B does not feature channel-specific timeouts; the time-
    468              out specified for any one channel applies to all channels.
    469
    470          linux,code:
    471            $ref: /schemas/types.yaml#/definitions/uint32
    472            description:
    473              Numeric key or switch code associated with the event. Specify
    474              KEY_RESERVED (0) to opt out of event reporting.
    475
    476          linux,input-type:
    477            $ref: /schemas/types.yaml#/definitions/uint32
    478            enum: [1, 5]
    479            default: 1
    480            description:
    481              Specifies whether the event is to be interpreted as a key (1)
    482              or a switch (5).
    483
    484        required:
    485          - linux,code
    486
    487        additionalProperties: false
    488
    489    dependencies:
    490      azoteq,ref-weight: ["azoteq,ref-select"]
    491      azoteq,use-prox: ["azoteq,ref-select"]
    492
    493    additionalProperties: false
    494
    495  "^slider-[0-1]$":
    496    type: object
    497    description: Represents a slider comprising three or four channels.
    498
    499    properties:
    500      azoteq,channel-select:
    501        $ref: /schemas/types.yaml#/definitions/uint32-array
    502        minItems: 3
    503        maxItems: 4
    504        items:
    505          minimum: 0
    506          maximum: 9
    507        description:
    508          Specifies the order of the channels that participate in the slider.
    509
    510      azoteq,slider-size:
    511        $ref: /schemas/types.yaml#/definitions/uint32
    512        minimum: 0
    513        maximum: 65535
    514        description:
    515          Specifies the slider's one-dimensional resolution, equal to the
    516          maximum coordinate plus one.
    517
    518      azoteq,lower-cal:
    519        $ref: /schemas/types.yaml#/definitions/uint32
    520        minimum: 0
    521        maximum: 255
    522        description: Specifies the slider's lower starting point.
    523
    524      azoteq,upper-cal:
    525        $ref: /schemas/types.yaml#/definitions/uint32
    526        minimum: 0
    527        maximum: 255
    528        description: Specifies the slider's upper starting point.
    529
    530      azoteq,top-speed:
    531        $ref: /schemas/types.yaml#/definitions/uint32
    532        minimum: 0
    533        maximum: 65535
    534        description:
    535          Specifies the speed of movement after which coordinate filtering is
    536          no longer applied.
    537
    538      azoteq,bottom-speed:
    539        $ref: /schemas/types.yaml#/definitions/uint32
    540        multipleOf: 4
    541        minimum: 0
    542        maximum: 1020
    543        description:
    544          Specifies the speed of movement after which coordinate filtering is
    545          linearly reduced.
    546
    547      azoteq,bottom-beta:
    548        $ref: /schemas/types.yaml#/definitions/uint32
    549        minimum: 0
    550        maximum: 7
    551        description:
    552          Specifies the coordinate filter damping factor to be applied
    553          while the speed of movement is below that which is specified
    554          by azoteq,bottom-speed.
    555
    556      azoteq,static-beta:
    557        type: boolean
    558        description:
    559          Applies the coordinate filter damping factor specified by
    560          azoteq,bottom-beta regardless of the speed of movement.
    561
    562      azoteq,use-prox:
    563        type: boolean
    564        description:
    565          Directs the slider to respond to the proximity states of the selected
    566          channels instead of their corresponding touch states. Note the slider
    567          cannot report granular coordinates during a state of proximity.
    568
    569      linux,axis:
    570        $ref: /schemas/types.yaml#/definitions/uint32
    571        description:
    572          Specifies the absolute axis to which coordinates are mapped. Specify
    573          ABS_WHEEL to operate the slider as a wheel (IQS7222C only).
    574
    575    patternProperties:
    576      "^event-(press|tap|(swipe|flick)-(pos|neg))$":
    577        type: object
    578        description:
    579          Represents a press or gesture (IQS7222A only) event reported by
    580          the slider.
    581
    582        properties:
    583          linux,code:
    584            $ref: /schemas/types.yaml#/definitions/uint32
    585            description: Numeric key code associated with the event.
    586
    587          azoteq,gesture-max-ms:
    588            multipleOf: 4
    589            minimum: 0
    590            maximum: 1020
    591            description:
    592              Specifies the length of time (in ms) within which a tap, swipe
    593              or flick gesture must be completed in order to be acknowledged
    594              by the device. The number specified for any one swipe or flick
    595              gesture applies to all remaining swipe or flick gestures.
    596
    597          azoteq,gesture-min-ms:
    598            multipleOf: 4
    599            minimum: 0
    600            maximum: 124
    601            description:
    602              Specifies the length of time (in ms) for which a tap gesture must
    603              be held in order to be acknowledged by the device.
    604
    605          azoteq,gesture-dist:
    606            $ref: /schemas/types.yaml#/definitions/uint32
    607            multipleOf: 16
    608            minimum: 0
    609            maximum: 4080
    610            description:
    611              Specifies the distance across which a swipe or flick gesture must
    612              travel in order to be acknowledged by the device. The number spec-
    613              ified for any one swipe or flick gesture applies to all remaining
    614              swipe or flick gestures.
    615
    616          azoteq,gpio-select:
    617            $ref: /schemas/types.yaml#/definitions/uint32-array
    618            minItems: 1
    619            maxItems: 1
    620            items:
    621              minimum: 0
    622              maximum: 0
    623            description: |
    624              Specifies an individual GPIO mapped to a tap, swipe or flick
    625              gesture as follows:
    626              0: GPIO0
    627              1: GPIO3 (reserved)
    628              2: GPIO4 (reserved)
    629
    630              Note that although multiple events can be mapped to a single
    631              GPIO, they must all be of the same type (proximity, touch or
    632              slider gesture).
    633
    634        required:
    635          - linux,code
    636
    637        additionalProperties: false
    638
    639    required:
    640      - azoteq,channel-select
    641
    642    additionalProperties: false
    643
    644  "^gpio-[0-2]$":
    645    type: object
    646    description: |
    647      Represents a GPIO mapped to one or more events as follows:
    648      gpio-0: GPIO0
    649      gpio-1: GPIO3 (IQS7222C only)
    650      gpio-2: GPIO4 (IQS7222C only)
    651
    652    allOf:
    653      - $ref: ../pinctrl/pincfg-node.yaml#
    654
    655    properties:
    656      drive-open-drain: true
    657
    658    additionalProperties: false
    659
    660allOf:
    661  - if:
    662      properties:
    663        compatible:
    664          contains:
    665            const: azoteq,iqs7222b
    666
    667    then:
    668      patternProperties:
    669        "^cycle-[0-9]$":
    670          properties:
    671            azoteq,iref-enable: false
    672
    673        "^channel-([0-9]|1[0-9])$":
    674          properties:
    675            azoteq,ref-select: false
    676
    677          patternProperties:
    678            "^event-(prox|touch)$":
    679              properties:
    680                azoteq,gpio-select: false
    681
    682        "^slider-[0-1]$": false
    683
    684        "^gpio-[0-2]$": false
    685
    686  - if:
    687      properties:
    688        compatible:
    689          contains:
    690            const: azoteq,iqs7222a
    691
    692    then:
    693      patternProperties:
    694        "^channel-([0-9]|1[0-9])$":
    695          patternProperties:
    696            "^event-(prox|touch)$":
    697              properties:
    698                azoteq,gpio-select:
    699                  maxItems: 1
    700                  items:
    701                    maximum: 0
    702
    703        "^slider-[0-1]$":
    704          properties:
    705            azoteq,slider-size:
    706              multipleOf: 16
    707              maximum: 4080
    708
    709            azoteq,top-speed:
    710              multipleOf: 4
    711              maximum: 1020
    712
    713    else:
    714      patternProperties:
    715        "^channel-([0-9]|1[0-9])$":
    716          properties:
    717            azoteq,ulp-allow: false
    718
    719        "^slider-[0-1]$":
    720          patternProperties:
    721            "^event-(press|tap|(swipe|flick)-(pos|neg))$":
    722              properties:
    723                azoteq,gesture-max-ms: false
    724
    725                azoteq,gesture-min-ms: false
    726
    727                azoteq,gesture-dist: false
    728
    729                azoteq,gpio-select: false
    730
    731required:
    732  - compatible
    733  - reg
    734  - irq-gpios
    735
    736additionalProperties: false
    737
    738examples:
    739  - |
    740    #include <dt-bindings/gpio/gpio.h>
    741    #include <dt-bindings/input/input.h>
    742
    743    i2c {
    744            #address-cells = <1>;
    745            #size-cells = <0>;
    746
    747            iqs7222a@44 {
    748                    compatible = "azoteq,iqs7222a";
    749                    reg = <0x44>;
    750                    irq-gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
    751                    azoteq,lta-beta-lp = <7>;
    752                    azoteq,lta-beta-np = <8>;
    753                    azoteq,counts-beta-lp = <2>;
    754                    azoteq,counts-beta-np = <3>;
    755                    azoteq,lta-fast-beta-lp = <3>;
    756                    azoteq,lta-fast-beta-np = <4>;
    757
    758                    cycle-0 {
    759                            azoteq,conv-period = <5>;
    760                            azoteq,conv-frac = <127>;
    761                            azoteq,tx-enable = <1>, <2>, <4>, <5>;
    762                            azoteq,dead-time-enable;
    763                            azoteq,sense-mode = <2>;
    764                    };
    765
    766                    cycle-1 {
    767                            azoteq,conv-period = <5>;
    768                            azoteq,conv-frac = <127>;
    769                            azoteq,tx-enable = <5>;
    770                            azoteq,dead-time-enable;
    771                            azoteq,sense-mode = <2>;
    772                    };
    773
    774                    cycle-2 {
    775                            azoteq,conv-period = <5>;
    776                            azoteq,conv-frac = <127>;
    777                            azoteq,tx-enable = <4>;
    778                            azoteq,dead-time-enable;
    779                            azoteq,sense-mode = <2>;
    780                    };
    781
    782                    cycle-3 {
    783                            azoteq,conv-period = <5>;
    784                            azoteq,conv-frac = <127>;
    785                            azoteq,tx-enable = <2>;
    786                            azoteq,dead-time-enable;
    787                            azoteq,sense-mode = <2>;
    788                    };
    789
    790                    cycle-4 {
    791                            azoteq,conv-period = <5>;
    792                            azoteq,conv-frac = <127>;
    793                            azoteq,tx-enable = <1>;
    794                            azoteq,dead-time-enable;
    795                            azoteq,sense-mode = <2>;
    796                    };
    797
    798                    cycle-5 {
    799                            azoteq,conv-period = <2>;
    800                            azoteq,conv-frac = <0>;
    801                    };
    802
    803                    cycle-6 {
    804                            azoteq,conv-period = <2>;
    805                            azoteq,conv-frac = <0>;
    806                    };
    807
    808                    channel-0 {
    809                            azoteq,ulp-allow;
    810                            azoteq,global-halt;
    811                            azoteq,invert-enable;
    812                            azoteq,rx-enable = <3>;
    813                            azoteq,ati-target = <800>;
    814                            azoteq,ati-base = <208>;
    815                            azoteq,ati-mode = <5>;
    816                    };
    817
    818                    channel-1 {
    819                            azoteq,global-halt;
    820                            azoteq,invert-enable;
    821                            azoteq,rx-enable = <3>;
    822                            azoteq,ati-target = <496>;
    823                            azoteq,ati-base = <208>;
    824                            azoteq,ati-mode = <5>;
    825                    };
    826
    827                    channel-2 {
    828                            azoteq,global-halt;
    829                            azoteq,invert-enable;
    830                            azoteq,rx-enable = <3>;
    831                            azoteq,ati-target = <496>;
    832                            azoteq,ati-base = <208>;
    833                            azoteq,ati-mode = <5>;
    834                    };
    835
    836                    channel-3 {
    837                            azoteq,global-halt;
    838                            azoteq,invert-enable;
    839                            azoteq,rx-enable = <3>;
    840                            azoteq,ati-target = <496>;
    841                            azoteq,ati-base = <208>;
    842                            azoteq,ati-mode = <5>;
    843                    };
    844
    845                    channel-4 {
    846                            azoteq,global-halt;
    847                            azoteq,invert-enable;
    848                            azoteq,rx-enable = <3>;
    849                            azoteq,ati-target = <496>;
    850                            azoteq,ati-base = <208>;
    851                            azoteq,ati-mode = <5>;
    852                    };
    853
    854                    channel-5 {
    855                            azoteq,ulp-allow;
    856                            azoteq,global-halt;
    857                            azoteq,invert-enable;
    858                            azoteq,rx-enable = <6>;
    859                            azoteq,ati-target = <800>;
    860                            azoteq,ati-base = <144>;
    861                            azoteq,ati-mode = <5>;
    862                    };
    863
    864                    channel-6 {
    865                            azoteq,global-halt;
    866                            azoteq,invert-enable;
    867                            azoteq,rx-enable = <6>;
    868                            azoteq,ati-target = <496>;
    869                            azoteq,ati-base = <160>;
    870                            azoteq,ati-mode = <5>;
    871
    872                            event-touch {
    873                                    linux,code = <KEY_MUTE>;
    874                            };
    875                    };
    876
    877                    channel-7 {
    878                            azoteq,global-halt;
    879                            azoteq,invert-enable;
    880                            azoteq,rx-enable = <6>;
    881                            azoteq,ati-target = <496>;
    882                            azoteq,ati-base = <160>;
    883                            azoteq,ati-mode = <5>;
    884
    885                            event-touch {
    886                                    linux,code = <KEY_VOLUMEDOWN>;
    887                            };
    888                    };
    889
    890                    channel-8 {
    891                            azoteq,global-halt;
    892                            azoteq,invert-enable;
    893                            azoteq,rx-enable = <6>;
    894                            azoteq,ati-target = <496>;
    895                            azoteq,ati-base = <160>;
    896                            azoteq,ati-mode = <5>;
    897
    898                            event-touch {
    899                                    linux,code = <KEY_VOLUMEUP>;
    900                            };
    901                    };
    902
    903                    channel-9 {
    904                            azoteq,global-halt;
    905                            azoteq,invert-enable;
    906                            azoteq,rx-enable = <6>;
    907                            azoteq,ati-target = <496>;
    908                            azoteq,ati-base = <160>;
    909                            azoteq,ati-mode = <5>;
    910
    911                            event-touch {
    912                                    linux,code = <KEY_POWER>;
    913                            };
    914                    };
    915
    916                    channel-10 {
    917                            azoteq,ulp-allow;
    918                            azoteq,ati-target = <496>;
    919                            azoteq,ati-base = <112>;
    920
    921                            event-touch {
    922                                    linux,code = <SW_LID>;
    923                                    linux,input-type = <EV_SW>;
    924                            };
    925                    };
    926
    927                    channel-11 {
    928                            azoteq,ati-target = <496>;
    929                            azoteq,ati-base = <112>;
    930                    };
    931
    932                    slider-0 {
    933                            azoteq,channel-select = <1>, <2>, <3>, <4>;
    934                            azoteq,slider-size = <4080>;
    935                            azoteq,upper-cal = <50>;
    936                            azoteq,lower-cal = <30>;
    937                            azoteq,top-speed = <200>;
    938                            azoteq,bottom-speed = <1>;
    939                            azoteq,bottom-beta = <3>;
    940
    941                            event-tap {
    942                                    linux,code = <KEY_PLAYPAUSE>;
    943                                    azoteq,gesture-max-ms = <600>;
    944                                    azoteq,gesture-min-ms = <24>;
    945                            };
    946
    947                            event-flick-pos {
    948                                    linux,code = <KEY_NEXTSONG>;
    949                                    azoteq,gesture-max-ms = <600>;
    950                                    azoteq,gesture-dist = <816>;
    951                            };
    952
    953                            event-flick-neg {
    954                                    linux,code = <KEY_PREVIOUSSONG>;
    955                            };
    956                    };
    957            };
    958    };
    959
    960...