-
Notifications
You must be signed in to change notification settings - Fork 6.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
drivers: input: pinnacle: add driver for Cirque Pinnacle 1CA027 based trackpads #69438
drivers: input: pinnacle: add driver for Cirque Pinnacle 1CA027 based trackpads #69438
Conversation
ec84e34
to
b1fa8b0
Compare
@akscram I'm so sorry, just misclicked on my phone and inadvertently marked this as ready for review :( |
@kartben, no problem at all. I think the PR is more or less ready for the first round of review, if it's okay to implement more features, such as the relative mode, taps detection and so on, in follow up PRs. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
hi, just a couple initial comments on spotted code that can be dropped
cc @petejohanson, there's some existing work on zmkfirmware/zmk#2035 for this, ideally we'd converge on a common solution, not looking for features right now just a solid base, also I got a TM040040 myself as well. :-) |
b1fa8b0
to
adb45b8
Compare
@fabiobaltieri, thank you for the early review. Your comments should be addressed now. |
samples/subsys/input/input_dump/boards/nrf52dk_nrf52832.overlay
Outdated
Show resolved
Hide resolved
59f4643
to
b50f78c
Compare
b50f78c
to
1de3d09
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I addressed several comments but I still have some left on which I'm working on.
drivers/input/input_pinnacle.c
Outdated
input_report_abs(dev, INPUT_ABS_X, sample->x, false, K_FOREVER); | ||
input_report_abs(dev, INPUT_ABS_Y, sample->y, false, K_FOREVER); | ||
input_report_abs(dev, INPUT_ABS_Z, sample->z, true, K_FOREVER); | ||
#elif defined(CONFIG_INPUT_PINNACLE_DATA_MODE_RELATIVE) | ||
input_report_abs(dev, INPUT_REL_X, sample->x, false, K_FOREVER); | ||
input_report_abs(dev, INPUT_REL_Y, sample->y, true, K_FOREVER); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The controller indeed supports swapping X and Y (90 degrees rotation, by default the rotation is 0 degrees). I will need to try this out before I could come up with a proper configuration.
I'm not sure I fully understand what exactly you're asking to make configurable. Are you suggesting to make the swapping of axes configurable?
d2fdd3d
to
98d60e5
Compare
98d60e5
to
39d2a06
Compare
2929bfb
to
321a1ee
Compare
@fabiobaltieri, could you please take another look? |
73e577e
to
5929844
Compare
43b2d08
to
5372963
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good stuff.
The initial version of an input driver for Cirque Pinnacle ASIC supports: * Setting sensitivity * Choosing between relative and absolute modes * Relative mode * Primary tap * Swapping X and Y * Absolute mode * Setting number of idle packets * Clipping coordinates outside of active range * Scaling coordinates * Inverting X and Y coordinates Signed-off-by: Ilia Kharin <[email protected]>
5372963
to
503c676
Compare
Hi @akscram! To celebrate this milestone and showcase your contribution, we'd love to award you the Zephyr Technical Contributor badge. If you're interested, please claim your badge by filling out this form: Claim Your Zephyr Badge. Thank you for your valuable input, and we look forward to seeing more of your contributions in the future! 🪁 |
Introduce an initial version of an input driver for Cirque Pinnacle GlidePoint circle trackpads connected via SPI, such as TM035035 and similar. The driver support only the absolute mode in which an absolute coordinates are reported. The relative mode is going to be the next step.