forked from geeksville/zmk_driver_azoteq
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathazoteq,tps43-common.yaml
More file actions
408 lines (355 loc) · 12.4 KB
/
Copy pathazoteq,tps43-common.yaml
File metadata and controls
408 lines (355 loc) · 12.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
properties:
rdy-gpios:
type: phandle-array
required: false
description: GPIO pin for RDY interrupt signal (Ready)
rst-gpios:
type: phandle-array
required: false
description: GPIO pin for RST reset signal (Reset)
filter-settings:
type: int
default: 0x0F
description: |
Bit definitions:
- Bit 0 (0x01): IIR filter - infinite impulse response filter for
coordinate smoothing. Reduces high-frequency noise and jitter.
- Bit 1 (0x02): MAV filter - moving average filter for coordinate
stabilization. Removes outliers and averages recent measurements.
- Bit 2 (0x04): IIR select - When set, uses fixed IIR coefficient.
When clear (default), uses dynamic IIR that adapts to movement speed.
- Bit 3 (0x08): ALP count filter - Adaptive Learning Process filter
for noise suppression. Filters unwanted touch events based on learned patterns.
Common configurations:
- 0x0B: IIR + MAV + ALP enabled, dynamic IIR.
Good balance of stability and responsiveness.
- 0x0F (default): All filters enabled including fixed IIR select.
Maximum smoothing, may introduce increased latency.
- 0x03: IIR + MAV only. Basic smoothing without ALP filtering.
- 0x01: IIR only. Minimal filtering, lowest latency.
- 0x00: All filters disabled. Raw sensor data, may have noise.
Values can be combined using bitwise OR (e.g., 0x01 | 0x02 = 0x03).
filter-dynamic-bottom:
type: int
required: false
description: |
XY dynamic filter bottom beta
Controls the minimum filtering applied to touch coordinates.
Lower values reduce smoothing at low speeds, improving responsiveness.
See datasheet section 5.9.2.1. Only written if explicitly set.
filter-dynamic-lower:
type: int
required: false
description: |
XY dynamic filter lower speed threshold
Defines the speed below which the bottom beta filter coefficient is used.
Only written if explicitly set.
filter-dynamic-upper:
type: int
required: false
description: |
XY dynamic filter upper speed threshold
Defines the speed above which maximum filtering is applied.
Only written if explicitly set.
x-resolution:
type: int
required: false
description: |
X axis resolution in pixels
Sets the trackpad X resolution. Only written if explicitly set.
y-resolution:
type: int
required: false
description: |
Y axis resolution in pixels
Sets the trackpad Y resolution. Only written if explicitly set.
sensitivity:
type: int
required: false
default: 100
description: Touch sensitivity percentage (100 = normal, higher = more sensitive)
scroll-sensitivity:
type: int
required: false
default: 50
description: Scroll sensitivity percentage (100 = normal, higher = more sensitive)
zoom-sensitivity:
type: int
required: false
default: 100
description: Zoom sensitivity percentage (100 = normal, higher = more sensitive)
enable-power-management:
type: boolean
required: false
description: Enable automatic power management (suspend/resume)
idle-sleep:
type: boolean
required: false
description: |
If set, the trackpad is put to sleep when ZMK transitions to the IDLE
activity state. If not set (default), only the SLEEP activity state puts
the trackpad to sleep; IDLE leaves the trackpad active.
single-tap:
type: boolean
required: false
description: Enable single tap gesture
two-finger-tap:
type: boolean
required: false
description: Enable two-finger tap gesture
scroll:
type: boolean
required: false
description: Enable scroll gesture
zoom:
type: boolean
required: false
description: Enable zoom gesture (pinch-to-zoom)
swipes:
type: boolean
required: false
description: Enable swipe processing. When enabled, tracks swipes as INPUT_BTN_NORTH/SOUTH/EAST/WEST.
switch-xy:
type: boolean
required: false
description: Swap X and Y axes
press-and-hold:
type: boolean
required: false
description: Enable press and hold gesture
invert-x:
type: boolean
description: If present, invert X coordinate values.
invert-y:
type: boolean
description: If present, invert Y coordinate values.
invert-scroll-x:
type: boolean
description: If present, invert X scroll values.
invert-scroll-y:
type: boolean
description: If present, invert Y scroll values.
swipe-initial-distance:
type: int
required: false
description: |
Swipe initial distance in pixels.
Sets the minimum distance a finger must travel to trigger a swipe gesture.
Written to the SWIPE_INITIAL_DISTANCE register (0x06C1).
Only written if explicitly set.
swipe-initial-time:
type: int
required: false
description: |
Swipe initial time in milliseconds.
Sets the maximum time allowed for the initial swipe movement.
Written to the SWIPE_INITIAL_TIME register (0x06BF).
Only written if explicitly set.
swipe-angle:
type: int
required: false
description: |
Swipe angle in degrees.
Sets the maximum deviation angle for a swipe gesture.
The value is specified in degrees and internally converted to
64*tan(angle) before writing to the SWIPE_ANGLE register (0x06C7).
Only written if explicitly set.
swipe-consecutive-distance:
type: int
required: false
description: |
Swipe consecutive distance in pixels.
Sets the distance threshold for consecutive swipe segments.
Written to the SWIPE_CONSECUTIVE_DISTANCE register (0x06C5).
Only written if explicitly set.
swipe-consecutive-time:
type: int
required: false
description: |
Swipe consecutive time in milliseconds.
Sets the time threshold for consecutive swipe segments.
Written to the SWIPE_CONSECUTIVE_TIME register (0x06C3).
Only written if explicitly set.
scroll-initial-distance:
type: int
required: false
description: |
Scroll initial distance in pixels.
Sets the minimum distance for a scroll gesture to trigger.
Written to the SCROLL_INITIAL_DISTANCE register (0x06C8).
Only written if explicitly set.
scroll-angle:
type: int
required: false
description: |
Scroll angle in degrees.
Sets the maximum deviation angle for a scroll gesture.
The value is specified in degrees and internally converted to
64*tan(angle) before writing to the SCROLL_ANGLE register (0x06CA).
Only written if explicitly set.
zoom-initial-distance:
type: int
required: false
description: |
Zoom initial distance in pixels.
Sets the minimum distance for a zoom gesture to trigger.
Written to the ZOOM_INITIAL_DISTANCE register (0x06CB).
Only written if explicitly set.
zoom-consecutive-distance:
type: int
required: false
description: |
Zoom consecutive distance in pixels.
Sets the distance threshold for consecutive zoom segments.
Written to the ZOOM_CONSECUTIVE_DISTANCE register (0x06CD).
Only written if explicitly set.
ati-target:
type: int
required: false
description: |
ATI target value (2 bytes).
Sets the target count for the ATI (Automatic Tuning Implementation) process.
Written to the ATI_TARGET register (0x056D).
Only written if explicitly set.
ref-drift-limit:
type: int
required: false
description: |
ATI reference drift limit (1 byte).
Controls the allowed drift of the reference level before re-ATI is triggered.
Written to the REF_DRIFT_LIMIT register (0x0571).
Only written if explicitly set.
reati-lower-limit:
type: int
required: false
description: |
Re-ATI lower count limit (1 byte).
Sets the lower threshold for triggering automatic re-ATI.
Written to the REATI_LOWER_LIMIT register (0x0573).
Only written if explicitly set.
reati-upper-limit:
type: int
required: false
description: |
Re-ATI upper count limit (1 byte).
Sets the upper threshold for triggering automatic re-ATI.
Written to the REATI_UPPER_LIMIT register (0x0574).
Only written if explicitly set.
max-count-limit:
type: int
required: false
description: |
ATI max count limit (2 bytes).
Sets the maximum count value allowed during ATI.
Written to the MAX_COUNT_LIMIT register (0x0575).
Only written if explicitly set.
ati-retry-time:
type: int
required: false
description: |
ATI retry time in seconds (1 byte).
Sets the minimum time between automatic re-ATI attempts.
Written to the ATI_RETRY_TIME register (0x0577).
Only written if explicitly set.
report-rate-active:
type: int
required: false
description: |
Report rate in active mode in milliseconds (2 bytes).
Controls how frequently the device reports data when actively touched.
Written to the REPORT_RATE_ACTIVE register (0x057A).
Only written if explicitly set.
report-rate-idle-touch:
type: int
required: false
description: |
Report rate in idle-touch mode in milliseconds (2 bytes).
Controls the reporting frequency when idle with touch contact.
Written to the REPORT_RATE_IDLE_TOUCH register (0x057C).
Only written if explicitly set.
report-rate-idle:
type: int
required: false
description: |
Report rate in idle mode in milliseconds (2 bytes).
Controls the reporting frequency in idle mode (no touch).
Written to the REPORT_RATE_IDLE register (0x057E).
Only written if explicitly set.
report-rate-lp1:
type: int
required: false
description: |
Report rate in low-power mode 1 in milliseconds (2 bytes).
Written to the REPORT_RATE_LP1 register (0x0580).
Only written if explicitly set.
report-rate-lp2:
type: int
required: false
description: |
Report rate in low-power mode 2 in milliseconds (2 bytes).
Written to the REPORT_RATE_LP2 register (0x0582).
Only written if explicitly set.
timeout-active:
type: int
required: false
description: |
Timeout for active mode in seconds (1 byte).
Time before transitioning from active to idle-touch mode.
Written to the TIMEOUT_ACTIVE register (0x0584).
Only written if explicitly set.
timeout-idle-touch:
type: int
required: false
description: |
Timeout for idle-touch mode in seconds (1 byte).
Time before transitioning from idle-touch to idle mode.
Written to the TIMEOUT_IDLE_TOUCH register (0x0585).
Only written if explicitly set.
timeout-idle:
type: int
required: false
description: |
Timeout for idle mode in seconds (1 byte).
Time before transitioning from idle to LP1 mode.
Written to the TIMEOUT_IDLE register (0x0586).
Only written if explicitly set.
timeout-lp1:
type: int
required: false
description: |
Timeout for low-power mode 1 in 20 sec units (1 byte). i.e. 3 means 60 seconds.
Time before transitioning from LP1 to LP2 mode.
Written to the TIMEOUT_LP1 register (0x0587).
Only written if explicitly set.
ref-update-time:
type: int
required: false
description: |
Reference update time in seconds (1 byte).
Controls how frequently the reference level is updated.
Written to the REF_UPDATE_TIME register (0x0588).
Only written if explicitly set.
tap-time:
type: int
required: false
description: |
Maximum time for a tap gesture in milliseconds (2 bytes).
Sets the maximum duration a finger can be in contact for a tap to register.
Written to the TAP_TIME register (0x06B9).
Only written if explicitly set.
tap-distance:
type: int
required: false
description: |
Maximum distance for a tap gesture in pixels (2 bytes).
Sets the maximum finger movement allowed during a tap gesture.
Written to the TAP_DISTANCE register (0x06BB).
Only written if explicitly set.
hold-time:
type: int
required: false
description: |
Minimum time for a press-and-hold gesture in milliseconds (2 bytes).
Sets the minimum duration a finger must be held to trigger a hold gesture.
Written to the HOLD_TIME register (0x06BD).
Only written if explicitly set.