Skip to content
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

kinetis: Add support for LPUART module in parallel with UART module #7362

Merged
merged 1 commit into from
Nov 8, 2017

Conversation

jnohlgard
Copy link
Member

@jnohlgard jnohlgard commented Jul 14, 2017

Depends on #6994

Split from #6994 to make the review easier.

A dispatcher function is implemented for directing writes to the correct
function. The dispatcher is bypassed completely if the CPU only contain
one kind of UART module.

There are at least two different UART hardware modules deployed in
different Kinetis CPU families (or possibly three or more when counting
variations of the UART module). The UART module is an older 8 bit module
with advanced functionality, while the LPUART is a 32 bit module with
focus on low power consumption.

  • The older families in the K series all have UART modules.
  • The K22F family have both UART and LPUART modules in the same CPU.
  • Older L series (e.g. KL25Z) have two variations of the UART module
  • Newer L series (e.g. KL43Z) have LPUART modules, and sometimes
    UART as well.
  • Newer W series (KW41Z) have only LPUART

@jnohlgard jnohlgard added Platform: ARM Platform: This PR/issue effects ARM-based platforms Type: new feature The issue requests / The PR implemements a new feature for RIOT labels Jul 14, 2017
@jnohlgard jnohlgard added this to the Release 2017.10 milestone Jul 14, 2017
@jnohlgard jnohlgard requested a review from haukepetersen July 14, 2017 07:09
@haukepetersen
Copy link
Contributor

haukepetersen commented Jul 17, 2017

On first sight, the changes look legid to me. I will take a final look at the changes one #6994 is merged and this PR is rebased

@haukepetersen
Copy link
Contributor

Ah, and by the way thanks for splitting those PRs!

@jnohlgard jnohlgard force-pushed the pr/kinetis-lpuart branch from b19f9cd to 977444d Compare July 18, 2017 06:55
@jnohlgard
Copy link
Member Author

rebased

@jnohlgard jnohlgard force-pushed the pr/kinetis-lpuart branch from 977444d to 318abd9 Compare July 22, 2017 13:51
@jnohlgard
Copy link
Member Author

ping @haukepetersen

@jnohlgard jnohlgard added the CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR label Aug 1, 2017
@jnohlgard
Copy link
Member Author

(CI was idle)

@jnohlgard jnohlgard force-pushed the pr/kinetis-lpuart branch 2 times, most recently from e2affdc to cd94f6f Compare August 5, 2017 05:52
@jnohlgard
Copy link
Member Author

Updated the UART mode handling to support LPUART as well

@jnohlgard jnohlgard force-pushed the pr/kinetis-lpuart branch 2 times, most recently from 8a08940 to d76c429 Compare August 18, 2017 04:17
@jnohlgard jnohlgard force-pushed the pr/kinetis-lpuart branch 2 times, most recently from 41fd2d8 to 1ea99ef Compare September 4, 2017 10:09
@emmanuelsearch
Copy link
Member

@gebart so is the whole cluster of PRs ready for review from your perspective?
Would be great to merge support for this board now-ish ;)

@jnohlgard
Copy link
Member Author

This PR and the board+CPU PR is ready IMO. The transceiver driver has been stable in my tests, but there may be some clean up needed yet.

@jnohlgard jnohlgard force-pushed the pr/kinetis-lpuart branch 2 times, most recently from f9d2e3d to a2da73b Compare September 25, 2017 05:57
@jnohlgard jnohlgard force-pushed the pr/kinetis-lpuart branch 2 times, most recently from 6b64133 to 531243f Compare September 27, 2017 07:15
@jnohlgard
Copy link
Member Author

@haukepetersen @emmanuelsearch This is ready for review. This is currently blocking #6995 and #7107, and it's a general pain to keep basing all my other working branches on this PR.

A dispatcher function is implemented for directing writes to the correct
function. The dispatcher is bypassed completely if the CPU only contain
one kind of UART module.

There are at least two different UART hardware modules deployed in
different Kinetis CPU families (or possibly three or more when counting
variations of the UART module). The UART module is an older 8 bit module
with advanced functionality, while the LPUART is a 32 bit module with
focus on low power consumption.

 - The older families in the K series all have UART modules.
 - The K22F family have both UART and LPUART modules in the same CPU.
 - Older L series (e.g. KL25Z) have two variations of the UART module
 - Newer L series (e.g. KL43Z) have LPUART modules, and sometimes
   UART as well.
 - Newer W series (KW41Z) have only LPUART
@kYc0o
Copy link
Contributor

kYc0o commented Nov 7, 2017

I have tested and reviewed what I can and found no issues so far.

@kYc0o kYc0o added CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR and removed CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR labels Nov 7, 2017
@kYc0o
Copy link
Contributor

kYc0o commented Nov 7, 2017

Re-trigger murdock just in case...

Copy link
Contributor

@kYc0o kYc0o left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ACK

@miri64 miri64 merged commit 5ce13b3 into RIOT-OS:master Nov 8, 2017
@jnohlgard
Copy link
Member Author

Thanks! 🎉

@jnohlgard jnohlgard deleted the pr/kinetis-lpuart branch November 8, 2017 15:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR Platform: ARM Platform: This PR/issue effects ARM-based platforms Type: new feature The issue requests / The PR implemements a new feature for RIOT
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants