iqs626a.yaml 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878
  1. # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
  2. %YAML 1.2
  3. ---
  4. $id: http://devicetree.org/schemas/input/iqs626a.yaml#
  5. $schema: http://devicetree.org/meta-schemas/core.yaml#
  6. title: Azoteq IQS626A Capacitive Touch Controller
  7. maintainers:
  8. - Jeff LaBundy <jeff@labundy.com>
  9. description: |
  10. The Azoteq IQS626A is a 14-channel capacitive touch controller that features
  11. additional Hall-effect and inductive sensing capabilities.
  12. Link to datasheet: https://www.azoteq.com/
  13. allOf:
  14. - $ref: touchscreen/touchscreen.yaml#
  15. properties:
  16. compatible:
  17. const: azoteq,iqs626a
  18. reg:
  19. maxItems: 1
  20. interrupts:
  21. maxItems: 1
  22. "#address-cells":
  23. const: 1
  24. "#size-cells":
  25. const: 0
  26. azoteq,suspend-mode:
  27. $ref: /schemas/types.yaml#/definitions/uint32
  28. enum: [0, 1, 2, 3]
  29. default: 0
  30. description: |
  31. Specifies the power mode during suspend as follows:
  32. 0: Automatic (same as normal runtime, i.e. suspend/resume disabled)
  33. 1: Low power (all sensing at a reduced reporting rate)
  34. 2: Ultra-low power (ULP channel proximity sensing)
  35. 3: Halt (no sensing)
  36. azoteq,clk-div:
  37. type: boolean
  38. description: Divides the device's core clock by a factor of 4.
  39. azoteq,ulp-enable:
  40. type: boolean
  41. description:
  42. Permits the device to automatically enter ultra-low-power mode from low-
  43. power mode.
  44. azoteq,ulp-update:
  45. $ref: /schemas/types.yaml#/definitions/uint32
  46. enum: [0, 1, 2, 3, 4, 5, 6, 7]
  47. default: 3
  48. description: |
  49. Specifies the rate at which the trackpad, generic and Hall channels are
  50. updated during ultra-low-power mode as follows:
  51. 0: 8
  52. 1: 13
  53. 2: 28
  54. 3: 54
  55. 4: 89
  56. 5: 135
  57. 6: 190
  58. 7: 256
  59. azoteq,ati-band-disable:
  60. type: boolean
  61. description: Disables the ATI band check.
  62. azoteq,ati-lp-only:
  63. type: boolean
  64. description: Limits automatic ATI to low-power mode.
  65. azoteq,gpio3-select:
  66. $ref: /schemas/types.yaml#/definitions/uint32
  67. enum: [0, 1, 2, 3, 4, 5, 6, 7]
  68. default: 1
  69. description: |
  70. Selects the channel or group of channels for which the GPIO3 pin
  71. represents touch state as follows:
  72. 0: None
  73. 1: ULP channel
  74. 2: Trackpad
  75. 3: Trackpad
  76. 4: Generic channel 0
  77. 5: Generic channel 1
  78. 6: Generic channel 2
  79. 7: Hall channel
  80. azoteq,reseed-select:
  81. $ref: /schemas/types.yaml#/definitions/uint32
  82. enum: [0, 1, 2, 3]
  83. default: 0
  84. description: |
  85. Specifies the event(s) that prompt the device to reseed (i.e. reset the
  86. long-term average) of an associated channel as follows:
  87. 0: None
  88. 1: Proximity
  89. 2: Proximity or touch
  90. 3: Proximity, touch or deep touch
  91. azoteq,thresh-extend:
  92. type: boolean
  93. description: Multiplies all touch and deep-touch thresholds by 4.
  94. azoteq,tracking-enable:
  95. type: boolean
  96. description:
  97. Enables all associated channels to track their respective reference
  98. channels.
  99. azoteq,reseed-offset:
  100. type: boolean
  101. description:
  102. Applies an 8-count offset to all long-term averages upon either ATI or
  103. reseed events.
  104. azoteq,rate-np-ms:
  105. minimum: 0
  106. maximum: 255
  107. default: 150
  108. description: Specifies the report rate (in ms) during normal-power mode.
  109. azoteq,rate-lp-ms:
  110. minimum: 0
  111. maximum: 255
  112. default: 150
  113. description: Specifies the report rate (in ms) during low-power mode.
  114. azoteq,rate-ulp-ms:
  115. multipleOf: 16
  116. minimum: 0
  117. maximum: 4080
  118. default: 0
  119. description: Specifies the report rate (in ms) during ultra-low-power mode.
  120. azoteq,timeout-pwr-ms:
  121. multipleOf: 512
  122. minimum: 0
  123. maximum: 130560
  124. default: 2560
  125. description:
  126. Specifies the length of time (in ms) to wait for an event before moving
  127. from normal-power mode to low-power mode, or (if 'azoteq,ulp-enable' is
  128. present) from low-power mode to ultra-low-power mode.
  129. azoteq,timeout-lta-ms:
  130. multipleOf: 512
  131. minimum: 0
  132. maximum: 130560
  133. default: 40960
  134. description:
  135. Specifies the length of time (in ms) to wait before resetting the long-
  136. term average of all channels. Specify the maximum timeout to disable it
  137. altogether.
  138. touchscreen-inverted-x: true
  139. touchscreen-inverted-y: true
  140. touchscreen-swapped-x-y: true
  141. patternProperties:
  142. "^ulp-0|generic-[0-2]|hall$":
  143. type: object
  144. description:
  145. Represents a single sensing channel. A channel is active if defined and
  146. inactive otherwise.
  147. properties:
  148. azoteq,ati-exclude:
  149. type: boolean
  150. description:
  151. Prevents the channel from participating in an ATI event that is
  152. manually triggered during initialization.
  153. azoteq,reseed-disable:
  154. type: boolean
  155. description:
  156. Prevents the channel from being reseeded if the long-term average
  157. timeout (defined in 'azoteq,timeout-lta') expires.
  158. azoteq,meas-cap-decrease:
  159. type: boolean
  160. description:
  161. Decreases the internal measurement capacitance from 60 pF to 15 pF.
  162. azoteq,rx-inactive:
  163. $ref: /schemas/types.yaml#/definitions/uint32
  164. enum: [0, 1, 2]
  165. default: 0
  166. description: |
  167. Specifies how inactive CRX pins are to be terminated as follows:
  168. 0: VSS
  169. 1: Floating
  170. 2: VREG (generic channels only)
  171. azoteq,linearize:
  172. type: boolean
  173. description:
  174. Enables linearization of the channel's counts (generic and Hall
  175. channels) or inverts the polarity of the channel's proximity or
  176. touch states (ULP channel).
  177. azoteq,dual-direction:
  178. type: boolean
  179. description:
  180. Specifies that the channel's long-term average is to freeze in the
  181. presence of either increasing or decreasing counts, thereby permit-
  182. ting events to be reported in either direction.
  183. azoteq,filt-disable:
  184. type: boolean
  185. description: Disables raw count filtering for the channel.
  186. azoteq,ati-mode:
  187. $ref: /schemas/types.yaml#/definitions/uint32
  188. enum: [0, 1, 2, 3]
  189. description: |
  190. Specifies the channel's ATI mode as follows:
  191. 0: Disabled
  192. 1: Semi-partial
  193. 2: Partial
  194. 3: Full
  195. The default value is a function of the channel and the device's reset
  196. user interface (RUI); reference the datasheet for further information
  197. about the available RUI options.
  198. azoteq,ati-base:
  199. $ref: /schemas/types.yaml#/definitions/uint32
  200. enum: [75, 100, 150, 200]
  201. description:
  202. Specifies the channel's ATI base. The default value is a function
  203. of the channel and the device's RUI.
  204. azoteq,ati-target:
  205. $ref: /schemas/types.yaml#/definitions/uint32
  206. multipleOf: 32
  207. minimum: 0
  208. maximum: 2016
  209. description:
  210. Specifies the channel's ATI target. The default value is a function
  211. of the channel and the device's RUI.
  212. azoteq,cct-increase:
  213. $ref: /schemas/types.yaml#/definitions/uint32
  214. minimum: 0
  215. maximum: 16
  216. default: 0
  217. description:
  218. Specifies the degree to which the channel's charge cycle time is to
  219. be increased, with 0 representing no increase. The maximum value is
  220. limited to 4 in the case of the ULP channel, and the property is un-
  221. available entirely in the case of the Hall channel.
  222. azoteq,proj-bias:
  223. $ref: /schemas/types.yaml#/definitions/uint32
  224. enum: [0, 1, 2, 3]
  225. default: 0
  226. description: |
  227. Specifies the bias current applied during projected-capacitance
  228. sensing as follows:
  229. 0: 2.5 uA
  230. 1: 5 uA
  231. 2: 10 uA
  232. 3: 20 uA
  233. This property is unavailable in the case of the Hall channel.
  234. azoteq,sense-freq:
  235. $ref: /schemas/types.yaml#/definitions/uint32
  236. enum: [0, 1, 2, 3]
  237. description: |
  238. Specifies the channel's sensing frequency as follows (parenthesized
  239. numbers represent the frequency if 'azoteq,clk-div' is present):
  240. 0: 4 MHz (1 MHz)
  241. 1: 2 MHz (500 kHz)
  242. 2: 1 MHz (250 kHz)
  243. 3: 500 kHz (125 kHz)
  244. This property is unavailable in the case of the Hall channel. The
  245. default value is a function of the channel and the device's RUI.
  246. azoteq,ati-band-tighten:
  247. type: boolean
  248. description:
  249. Tightens the ATI band from 1/8 to 1/16 of the desired target (ULP and
  250. generic channels only).
  251. azoteq,proj-enable:
  252. type: boolean
  253. description: Enables projected-capacitance sensing (ULP channel only).
  254. azoteq,filt-str-np-cnt:
  255. $ref: /schemas/types.yaml#/definitions/uint32
  256. enum: [0, 1, 2, 3]
  257. default: 0
  258. description:
  259. Specifies the raw count filter strength during normal-power mode (ULP
  260. and generic channels only).
  261. azoteq,filt-str-lp-cnt:
  262. $ref: /schemas/types.yaml#/definitions/uint32
  263. enum: [0, 1, 2, 3]
  264. default: 0
  265. description:
  266. Specifies the raw count filter strength during low-power mode (ULP and
  267. generic channels only).
  268. azoteq,filt-str-np-lta:
  269. $ref: /schemas/types.yaml#/definitions/uint32
  270. enum: [0, 1, 2, 3]
  271. default: 0
  272. description:
  273. Specifies the long-term average filter strength during normal-power
  274. mode (ULP and generic channels only).
  275. azoteq,filt-str-lp-lta:
  276. $ref: /schemas/types.yaml#/definitions/uint32
  277. enum: [0, 1, 2, 3]
  278. default: 0
  279. description:
  280. Specifies the long-term average filter strength during low-power mode
  281. (ULP and generic channels only).
  282. azoteq,rx-enable:
  283. $ref: /schemas/types.yaml#/definitions/uint32-array
  284. minItems: 1
  285. maxItems: 8
  286. items:
  287. minimum: 0
  288. maximum: 7
  289. description:
  290. Specifies the CRX pin(s) associated with the channel.
  291. This property is unavailable in the case of the Hall channel. The
  292. default value is a function of the channel and the device's RUI.
  293. azoteq,tx-enable:
  294. $ref: /schemas/types.yaml#/definitions/uint32-array
  295. minItems: 1
  296. maxItems: 8
  297. items:
  298. minimum: 0
  299. maximum: 7
  300. description:
  301. Specifies the TX pin(s) associated with the channel.
  302. This property is unavailable in the case of the Hall channel. The
  303. default value is a function of the channel and the device's RUI.
  304. azoteq,local-cap-size:
  305. $ref: /schemas/types.yaml#/definitions/uint32
  306. enum: [0, 1, 2, 3, 4]
  307. default: 0
  308. description: |
  309. Specifies the capacitance to be added to the channel as follows:
  310. 0: 0 pF
  311. 1: 0.5 pF
  312. 2: 1.0 pF
  313. 3: 1.5 pF
  314. 4: 2.0 pF
  315. This property is unavailable in the case of the ULP or Hall channels.
  316. azoteq,sense-mode:
  317. $ref: /schemas/types.yaml#/definitions/uint32
  318. enum: [0, 1, 8, 9, 12, 14, 15]
  319. description: |
  320. Specifies the channel's sensing mode as follows:
  321. 0: Self capacitance
  322. 1: Projected capacitance
  323. 8: Self inductance
  324. 9: Mutual inductance
  325. 12: External
  326. 14: Hall effect
  327. 15: Temperature
  328. This property is unavailable in the case of the ULP or Hall channels.
  329. The default value is a function of the channel and the device's RUI.
  330. azoteq,tx-freq:
  331. $ref: /schemas/types.yaml#/definitions/uint32
  332. enum: [0, 1, 2, 3]
  333. default: 0
  334. description: |
  335. Specifies the inductive sensing excitation frequency as follows
  336. (parenthesized numbers represent the frequency if 'azoteq,clk-div'
  337. is present):
  338. 0: 16 MHz (4 MHz)
  339. 1: 8 MHz (2 MHz)
  340. 2: 4 MHz (1 MHz)
  341. 3: 2 MHz (500 kHz)
  342. This property is unavailable in the case of the ULP or Hall channels.
  343. azoteq,invert-enable:
  344. type: boolean
  345. description:
  346. Inverts the polarity of the states reported for proximity, touch and
  347. deep-touch events relative to their respective thresholds (generic
  348. channels only).
  349. azoteq,comp-disable:
  350. type: boolean
  351. description:
  352. Disables compensation for the channel (generic channels only).
  353. azoteq,static-enable:
  354. type: boolean
  355. description:
  356. Enables the static front-end for the channel (generic channels only).
  357. azoteq,assoc-select:
  358. $ref: /schemas/types.yaml#/definitions/string-array
  359. minItems: 1
  360. maxItems: 6
  361. items:
  362. enum:
  363. - ulp-0
  364. - trackpad-3x2
  365. - trackpad-3x3
  366. - generic-0
  367. - generic-1
  368. - generic-2
  369. - hall
  370. description:
  371. Specifies the associated channels for which the channel serves as a
  372. reference channel. By default, no channels are selected. This prop-
  373. erty is only available for the generic channels.
  374. azoteq,assoc-weight:
  375. $ref: /schemas/types.yaml#/definitions/uint32
  376. minimum: 0
  377. maximum: 255
  378. default: 0
  379. description:
  380. Specifies the channel's impact weight if it acts as an associated
  381. channel (0 = 0% impact, 255 = 200% impact). This property is only
  382. available for the generic channels.
  383. patternProperties:
  384. "^event-(prox|touch|deep)(-alt)?$":
  385. type: object
  386. $ref: input.yaml#
  387. description:
  388. Represents a proximity, touch or deep-touch event reported by the
  389. channel in response to a decrease in counts. Node names suffixed with
  390. '-alt' instead correspond to an increase in counts.
  391. By default, the long-term average tracks an increase in counts such
  392. that only events corresponding to a decrease in counts are reported
  393. (refer to the datasheet for more information).
  394. Specify 'azoteq,dual-direction' to freeze the long-term average when
  395. the counts increase or decrease such that events of either direction
  396. can be reported. Alternatively, specify 'azoteq,invert-enable' to in-
  397. vert the polarity of the states reported by the channel.
  398. Complementary events (e.g. event-touch and event-touch-alt) can both
  399. be present and specify different key or switch codes, but not differ-
  400. ent thresholds or hysteresis (if applicable).
  401. Proximity events are unavailable in the case of the Hall channel, and
  402. deep-touch events are only available for the generic channels. Unless
  403. otherwise specified, default values are a function of the channel and
  404. the device's RUI.
  405. properties:
  406. azoteq,thresh:
  407. $ref: /schemas/types.yaml#/definitions/uint32
  408. minimum: 0
  409. maximum: 255
  410. description: Specifies the threshold for the event.
  411. azoteq,hyst:
  412. $ref: /schemas/types.yaml#/definitions/uint32
  413. minimum: 0
  414. maximum: 15
  415. description:
  416. Specifies the hysteresis for the event (touch and deep-touch
  417. events only).
  418. linux,code: true
  419. linux,input-type:
  420. enum: [1, 5]
  421. description:
  422. Specifies whether the event is to be interpreted as a key (1) or
  423. a switch (5). By default, Hall-channel events are interpreted as
  424. switches and all others are interpreted as keys.
  425. additionalProperties: false
  426. dependencies:
  427. azoteq,assoc-weight: ["azoteq,assoc-select"]
  428. additionalProperties: false
  429. "^trackpad-3x[2-3]$":
  430. type: object
  431. $ref: input.yaml#
  432. description:
  433. Represents all channels associated with the trackpad. The channels are
  434. collectively active if the trackpad is defined and inactive otherwise.
  435. properties:
  436. azoteq,ati-exclude:
  437. type: boolean
  438. description:
  439. Prevents the trackpad channels from participating in an ATI event
  440. that is manually triggered during initialization.
  441. azoteq,reseed-disable:
  442. type: boolean
  443. description:
  444. Prevents the trackpad channels from being reseeded if the long-term
  445. average timeout (defined in 'azoteq,timeout-lta') expires.
  446. azoteq,meas-cap-decrease:
  447. type: boolean
  448. description:
  449. Decreases the internal measurement capacitance from 60 pF to 15 pF.
  450. azoteq,rx-inactive:
  451. $ref: /schemas/types.yaml#/definitions/uint32
  452. enum: [0, 1]
  453. default: 0
  454. description: |
  455. Specifies how inactive CRX pins are to be terminated as follows:
  456. 0: VSS
  457. 1: Floating
  458. azoteq,linearize:
  459. type: boolean
  460. description: Inverts the polarity of the trackpad's touch state.
  461. azoteq,dual-direction:
  462. type: boolean
  463. description:
  464. Specifies that the trackpad's long-term averages are to freeze in
  465. the presence of either increasing or decreasing counts, thereby
  466. permitting events to be reported in either direction.
  467. azoteq,filt-disable:
  468. type: boolean
  469. description: Disables raw count filtering for the trackpad channels.
  470. azoteq,ati-mode:
  471. $ref: /schemas/types.yaml#/definitions/uint32
  472. enum: [0, 1, 2, 3]
  473. default: 0
  474. description: |
  475. Specifies the trackpad's ATI mode as follows:
  476. 0: Disabled
  477. 1: Semi-partial
  478. 2: Partial
  479. 3: Full
  480. azoteq,ati-target:
  481. $ref: /schemas/types.yaml#/definitions/uint32
  482. multipleOf: 32
  483. minimum: 0
  484. maximum: 2016
  485. default: 0
  486. description: Specifies the trackpad's ATI target.
  487. azoteq,cct-increase:
  488. $ref: /schemas/types.yaml#/definitions/uint32
  489. minimum: 0
  490. maximum: 4
  491. default: 0
  492. description:
  493. Specifies the degree to which the trackpad's charge cycle time is to
  494. be increased, with 0 representing no increase.
  495. azoteq,proj-bias:
  496. $ref: /schemas/types.yaml#/definitions/uint32
  497. enum: [0, 1, 2, 3]
  498. default: 0
  499. description: |
  500. Specifies the bias current applied during projected-capacitance
  501. sensing as follows:
  502. 0: 2.5 uA
  503. 1: 5 uA
  504. 2: 10 uA
  505. 3: 20 uA
  506. azoteq,sense-freq:
  507. $ref: /schemas/types.yaml#/definitions/uint32
  508. enum: [0, 1, 2, 3]
  509. default: 0
  510. description: |
  511. Specifies the trackpad's sensing frequency as follows (parenthesized
  512. numbers represent the frequency if 'azoteq,clk-div' is present):
  513. 0: 4 MHz (1 MHz)
  514. 1: 2 MHz (500 kHz)
  515. 2: 1 MHz (250 kHz)
  516. 3: 500 kHz (125 kHz)
  517. azoteq,ati-band-tighten:
  518. type: boolean
  519. description:
  520. Tightens the ATI band from 1/8 to 1/16 of the desired target.
  521. azoteq,hyst:
  522. $ref: /schemas/types.yaml#/definitions/uint32
  523. minimum: 0
  524. maximum: 15
  525. default: 0
  526. description: Specifies the trackpad's touch hysteresis.
  527. azoteq,lta-update:
  528. $ref: /schemas/types.yaml#/definitions/uint32
  529. enum: [0, 1, 2, 3, 4, 5, 6, 7]
  530. default: 0
  531. description: |
  532. Specifies the update rate of the trackpad's long-term average during
  533. ultra-low-power mode as follows:
  534. 0: 2
  535. 1: 4
  536. 2: 8
  537. 3: 16
  538. 4: 32
  539. 5: 64
  540. 6: 128
  541. 7: 255
  542. azoteq,filt-str-trackpad:
  543. $ref: /schemas/types.yaml#/definitions/uint32
  544. enum: [0, 1, 2, 3]
  545. default: 0
  546. description: Specifies the trackpad coordinate filter strength.
  547. azoteq,filt-str-np-cnt:
  548. $ref: /schemas/types.yaml#/definitions/uint32
  549. enum: [0, 1, 2, 3]
  550. default: 0
  551. description:
  552. Specifies the raw count filter strength during normal-power mode.
  553. azoteq,filt-str-lp-cnt:
  554. $ref: /schemas/types.yaml#/definitions/uint32
  555. enum: [0, 1, 2, 3]
  556. default: 0
  557. description:
  558. Specifies the raw count filter strength during low-power mode.
  559. linux,keycodes:
  560. minItems: 1
  561. maxItems: 6
  562. description: |
  563. Specifies the numeric keycodes associated with each available gesture
  564. in the following order (enter 0 for unused gestures):
  565. 0: Positive flick or swipe in X direction
  566. 1: Negative flick or swipe in X direction
  567. 2: Positive flick or swipe in Y direction
  568. 3: Negative flick or swipe in Y direction
  569. 4: Tap
  570. 5: Hold
  571. azoteq,gesture-swipe:
  572. type: boolean
  573. description:
  574. Directs the device to interpret axial gestures as a swipe (finger
  575. remains on trackpad) instead of a flick (finger leaves trackpad).
  576. azoteq,timeout-tap-ms:
  577. multipleOf: 16
  578. minimum: 0
  579. maximum: 4080
  580. default: 0
  581. description:
  582. Specifies the length of time (in ms) within which a trackpad touch
  583. must be released in order to be interpreted as a tap.
  584. azoteq,timeout-swipe-ms:
  585. multipleOf: 16
  586. minimum: 0
  587. maximum: 4080
  588. default: 0
  589. description:
  590. Specifies the length of time (in ms) within which an axial gesture
  591. must be completed in order to be interpreted as a flick or swipe.
  592. azoteq,thresh-swipe:
  593. $ref: /schemas/types.yaml#/definitions/uint32
  594. minimum: 0
  595. maximum: 255
  596. default: 0
  597. description:
  598. Specifies the number of points across which an axial gesture must
  599. travel in order to be interpreted as a flick or swipe.
  600. patternProperties:
  601. "^channel-[0-8]$":
  602. type: object
  603. description: Represents a single trackpad channel.
  604. properties:
  605. azoteq,thresh:
  606. $ref: /schemas/types.yaml#/definitions/uint32
  607. minimum: 0
  608. maximum: 255
  609. default: 0
  610. description: Specifies the threshold for the channel.
  611. azoteq,ati-base:
  612. $ref: /schemas/types.yaml#/definitions/uint32
  613. minimum: 45
  614. maximum: 300
  615. default: 45
  616. description: Specifies the channel's ATI base.
  617. additionalProperties: false
  618. dependencies:
  619. azoteq,gesture-swipe: ["linux,keycodes"]
  620. azoteq,timeout-tap-ms: ["linux,keycodes"]
  621. azoteq,timeout-swipe-ms: ["linux,keycodes"]
  622. azoteq,thresh-swipe: ["linux,keycodes"]
  623. additionalProperties: false
  624. required:
  625. - compatible
  626. - reg
  627. - interrupts
  628. - "#address-cells"
  629. - "#size-cells"
  630. additionalProperties: false
  631. examples:
  632. - |
  633. #include <dt-bindings/input/input.h>
  634. #include <dt-bindings/interrupt-controller/irq.h>
  635. i2c {
  636. #address-cells = <1>;
  637. #size-cells = <0>;
  638. touch@44 {
  639. #address-cells = <1>;
  640. #size-cells = <0>;
  641. compatible = "azoteq,iqs626a";
  642. reg = <0x44>;
  643. interrupt-parent = <&gpio>;
  644. interrupts = <17 IRQ_TYPE_LEVEL_LOW>;
  645. azoteq,rate-np-ms = <16>;
  646. azoteq,rate-lp-ms = <160>;
  647. azoteq,timeout-pwr-ms = <2560>;
  648. azoteq,timeout-lta-ms = <32768>;
  649. ulp-0 {
  650. azoteq,meas-cap-decrease;
  651. azoteq,ati-base = <75>;
  652. azoteq,ati-target = <1024>;
  653. azoteq,rx-enable = <2>, <3>, <4>,
  654. <5>, <6>, <7>;
  655. event-prox {
  656. linux,code = <KEY_POWER>;
  657. };
  658. };
  659. trackpad-3x3 {
  660. azoteq,filt-str-np-cnt = <1>;
  661. azoteq,filt-str-lp-cnt = <1>;
  662. azoteq,hyst = <4>;
  663. azoteq,ati-mode = <3>;
  664. azoteq,ati-target = <512>;
  665. azoteq,proj-bias = <1>;
  666. azoteq,sense-freq = <2>;
  667. linux,keycodes = <KEY_VOLUMEUP>,
  668. <KEY_VOLUMEDOWN>,
  669. <KEY_NEXTSONG>,
  670. <KEY_PREVIOUSSONG>,
  671. <KEY_PLAYPAUSE>,
  672. <KEY_STOPCD>;
  673. azoteq,gesture-swipe;
  674. azoteq,timeout-swipe-ms = <800>;
  675. azoteq,timeout-tap-ms = <400>;
  676. azoteq,thresh-swipe = <40>;
  677. channel-0 {
  678. azoteq,thresh = <35>;
  679. azoteq,ati-base = <195>;
  680. };
  681. channel-1 {
  682. azoteq,thresh = <40>;
  683. azoteq,ati-base = <195>;
  684. };
  685. channel-2 {
  686. azoteq,thresh = <40>;
  687. azoteq,ati-base = <195>;
  688. };
  689. channel-3 {
  690. azoteq,thresh = <38>;
  691. azoteq,ati-base = <195>;
  692. };
  693. channel-4 {
  694. azoteq,thresh = <33>;
  695. azoteq,ati-base = <195>;
  696. };
  697. channel-5 {
  698. azoteq,thresh = <38>;
  699. azoteq,ati-base = <195>;
  700. };
  701. channel-6 {
  702. azoteq,thresh = <35>;
  703. azoteq,ati-base = <195>;
  704. };
  705. channel-7 {
  706. azoteq,thresh = <35>;
  707. azoteq,ati-base = <195>;
  708. };
  709. channel-8 {
  710. azoteq,thresh = <35>;
  711. azoteq,ati-base = <195>;
  712. };
  713. };
  714. /*
  715. * Preserve the default register settings for
  716. * the temperature-tracking channel leveraged
  717. * by reset user interface (RUI) 1.
  718. *
  719. * Scalar properties (e.g. ATI mode) are left
  720. * untouched by simply omitting them; boolean
  721. * properties must be specified explicitly as
  722. * needed.
  723. */
  724. generic-2 {
  725. azoteq,reseed-disable;
  726. azoteq,meas-cap-decrease;
  727. azoteq,dual-direction;
  728. azoteq,comp-disable;
  729. azoteq,static-enable;
  730. };
  731. hall {
  732. azoteq,reseed-disable;
  733. azoteq,meas-cap-decrease;
  734. event-touch {
  735. linux,code = <SW_LID>;
  736. };
  737. };
  738. };
  739. };
  740. ...