forked from kumamuk-git/zmk-pmw3610-driver
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathKconfig
More file actions
194 lines (157 loc) · 5.07 KB
/
Kconfig
File metadata and controls
194 lines (157 loc) · 5.07 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
# Sensor data simulator
#
# Copyright (c) 2019 Nordic Semiconductor
#
# SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
#
menuconfig PMW3610
bool "PMW3610 mouse optical sensor"
select SPI
help
Enable PMW3610 mouse optical sensor.
if PMW3610
config PMW3610_SMART_ALGORITHM
bool "Enable an algorithm of PMW3610 to enhance surface coverage"
default y
help
Enable the integration of the smart algorithm as the datasheet implementation.
The algorithm is used to extend the tracking acrocss a wider range of surfaces
such as graniles and tiles.
config PMW3610_CPI
int "PMW3610's default CPI"
default 800
range 200 3200
help
Default CPI value, with 200 step
config PMW3610_CPI_DIVIDOR
int "PMW3610's default CPI dividor"
default 1
range 1 100
help
Default CPI dividor value.
config PMW3610_SNIPE_CPI
int "PMW3610's CPI in snipe mode"
default 200
range 200 3200
help
Snipe CPI value, with 200 step
config PMW3610_SNIPE_CPI_DIVIDOR
int "PMW3610's CPI dividor in snipe mode"
default 1
range 1 100
help
Snipe CPI dividor value.
config PMW3610_SCROLL_TICK
int "PMW3610's required ticks to produce a scroll report"
default 20
help
Scroll tick value.
choice
prompt "Select PMW3610's polling rate"
default PMW3610_POLLING_RATE_250
config PMW3610_POLLING_RATE_250
bool "250 Hz"
config PMW3610_POLLING_RATE_125
bool "125 Hz"
config PMW3610_POLLING_RATE_125_SW
bool "125 Hz with software implementation"
endchoice
config PMW3610_FORCE_AWAKE
bool "PMW3610 forced awake mode"
help
This setting forces the sensor to always be in the RUN state.
config PMW3610_RUN_DOWNSHIFT_TIME_MS
int "PMW3610's default RUN mode downshift time"
default 128
range 13 3264
help
Default RUN mode downshift down time in milliseconds.
Time after which sensor goes from RUN to REST1 mode.
config PMW3610_REST1_SAMPLE_TIME_MS
int "PMW3610's sample time in REST1 stage"
default 40
range 10 2550
help
Default REST1 mode sample period in millisecond
config PMW3610_REST1_DOWNSHIFT_TIME_MS
int "PMW3610's default REST1 mode downshift time"
default 9600
help
Default REST1 mode downshift down time in milliseconds.
Time after which sensor goes from REST1 to REST2 mode.
config PMW3610_REST2_SAMPLE_TIME_MS
int "PMW3610's sample time in REST2 stage"
default 0
range 0 2550
help
Default REST2 mode sample period in millisecond.
Minimum value is 10.
No optimal value provided by datasheet.
config PMW3610_REST2_DOWNSHIFT_TIME_MS
int "PMW3610's default REST2 mode downshift time"
default 0
help
Default REST2 mode downshift down time in milliseconds.
Time after which sensor goes from REST2 to REST3 mode.
No optimal value provided by datasheet.
config PMW3610_REST3_SAMPLE_TIME_MS
int "PMW3610's sample time in REST3 stage"
default 0
range 0 2550
help
Default REST2 mode sample period in millisecond.
Minimum value is 10.
No optimal value provided by datasheet.
choice
prompt "Select PMW3610 sensor orientation"
default PMW3610_ORIENTATION_0
config PMW3610_ORIENTATION_0
bool "PMW3610 not rotated"
config PMW3610_ORIENTATION_90
bool "PMW3610 rotated 90 deg clockwise"
config PMW3610_ORIENTATION_180
bool "PMW3610 rotated 180 deg clockwise"
config PMW3610_ORIENTATION_270
bool "PMW3610 rotated 270 deg clockwise"
endchoice
config PMW3610_INVERT_X
bool "Invert the X axis of PMW3610 sensor"
config PMW3610_INVERT_Y
bool "Invert the Y axis of PMW3610 sensor"
config PMW3610_INVERT_SCROLL_X
bool "Invert the X axis of the scroll"
default PMW3610_INVERT_X
config PMW3610_INVERT_SCROLL_Y
bool "Invert the Y axis of the scroll"
default PMW3610_INVERT_Y
config PMW3610_AUTOMOUSE_TIMEOUT_MS
int "Amount of milliseconds the mouse layer will be active after using the trackball"
default 400
config PMW3610_MOVEMENT_THRESHOLD
int "Movement threshold for automatic mouse layer activation"
default 5
help
The threshold for trackball movement that triggers the automatic mouse layer.
A higher value means more movement is required to activate the mouse layer.
This helps prevent accidental activation during typing.
config PMW3610_BALL_ACTION_TICK
int "PMW3610's required ticks to trigger a ball action"
default 20
help
Ball action tick value. Higher values require more movement to trigger a ball action.
config PMW3610_SCROLL_ACCELERATION
bool "Enable scroll acceleration"
default n
help
Enable acceleration for scrolling based on movement speed.
config PMW3610_SCROLL_ACCELERATION_SENSITIVITY
int "Scroll acceleration sensitivity (1-10)"
default 3
range 1 10
depends on PMW3610_SCROLL_ACCELERATION
help
Scrolling acceleration sensitivity. Higher values make scrolling more responsive with stronger acceleration.
module = PMW3610
module-str = PMW3610
source "${ZEPHYR_BASE}/subsys/logging/Kconfig.template.log_config"
endif #PMW3610