-
Notifications
You must be signed in to change notification settings - Fork 6.8k
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: uart: uart_max32: Add asynchronous mode support #84126
base: main
Are you sure you want to change the base?
Conversation
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.
Please make sure to use #ifdef
or #if defined()
for kconfigs.
57b4023
to
382f4dd
Compare
This commit adds asynchronous mode support to MAX32 UART driver. Each direction uses a single DMA channel that is assigned in devicetree configuration. Asynchronous mode also depends on interrupts to refresh receive timeouts. Signed-off-by: Tahsin Mutlugun <[email protected]>
When using asynchronous API, transfer will fail if the source buffer is located in a region that cannot be accessed by DMA. This could happen when a buffer is declared const, and placed in flash memory, for example. Workaround this problem by loading the data into a set of temporary caches before passing them to DMA. Signed-off-by: Tahsin Mutlugun <[email protected]>
Support following boards in asynchronous UART tests: - MAX32655EVKIT - MAX32655FTHR - MAX32666EVKIT - MAX32666FTHR - MAX32670EVKIT - MAX32690EVKIT Signed-off-by: Tahsin Mutlugun <[email protected]>
382f4dd
to
4e72368
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.
Twister failure on the hifive_unleashed
board looks unrelated
Ya, that test is flaky. I've just re-run the failed job, this should do the trick |
... and it did |
Add asynchronous mode support for MAX32 UART driver. Enable tests for several MAX32 boards.