-
Notifications
You must be signed in to change notification settings - Fork 7.3k
Enable wakeup with uart shell from PM2 on RW612, fix uart issues #89760
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
base: main
Are you sure you want to change the base?
Conversation
Refactor this code so it has less nesting and is able to share some code between functions, by making a function to find the device constraints object which can be called before doing operations using it. Signed-off-by: Declan Snyder <declan.snyder@nxp.com>
Add an API function that can be used by client code to check if a state disables a device. Signed-off-by: Declan Snyder <declan.snyder@nxp.com>
On RW, normal configuration has all clock generators gated in PM2. Only the LPOSC is available for main clock source since it is a low power clock. Many of the peripherals on the chip are still "on" and do need a main clock source in order to be effective as wakeup sources to the chip as intended. So we should make this switch for PM2 specifically in order to achieve desired wakeup capabilities. Signed-off-by: Declan Snyder <declan.snyder@nxp.com>
Add the feature for the flexcomm uart to be able to be a wakeup source from low power modes. To be able to do this on a relevant platform, the DT node for the UART needs to have the wakeup-source property and define a "sleep" clock. The details of handling the sleep clock and default clock are still platform specific but handled by the clock control driver of the platform, so that this code should be able to be applicable to any platform that follows the same DT definition. Signed-off-by: Declan Snyder <declan.snyder@nxp.com>
Following the new feature in the flexcomm driver to be able to wake up from low power mode, the clock control drivers have to handle the platform specific details, so this commit adds to the already ugly mess that is the LPC syscon driver which is used by RW currently and makes the required devicetree changes. Make the console/shell uart on the FRDM_RW612 take advantage of this by default. Signed-off-by: Declan Snyder <declan.snyder@nxp.com>
There is currently a bug where when entering low power modes, there is a garbage character sent if the UART is in the middle of a transmit when entering low power mode. This is because the fifo interrupt happens when last character is pulled by transmitter from fifo and then we unlock PM constraints at that moment, instead of waiting for actual transmitter to become idle. Fix by adding work item to check for this when needed. Signed-off-by: Declan Snyder <declan.snyder@nxp.com>
@bjarki-andreasen this PR kind of hinges on the new API I added to the power_device_lock interface, which is in the 2nd commit, can I get your feedback about that one before I open this up to wider review and start dealing with compliance/twisters/etc. And the first commit is a refactor in that subsystem file as well so you might also be interested there. The 4th commit is showing the use case I needed something like this for |
|
TODO: I will add a description to this PR on monday, it's pretty late right for me now, and this PR is slightly insane