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

Add support for Radxa rock 5b #635

Merged
merged 9 commits into from
Dec 15, 2022
Merged

Conversation

happyme531
Copy link
Contributor

RK3588 is a recent & very powerful SoC with rich peripherals.
This pull request adds the RK3588 Chip and Rock 5B support.
To prevent confusion since many peripherals pin can be muxed to different GPIOs, the periphal pin name is picked directly from the datasheet, Mx means "Mode x"

@tannewt
Copy link
Member

tannewt commented Nov 30, 2022

Typically we wouldn't have pin names for the Mx versions. Instead, you just pass the constructor the pins you want and it'll determine the correct muxing or throw an error.

@happyme531
Copy link
Contributor Author

Typically we wouldn't have pin names for the Mx versions. Instead, you just pass the constructor the pins you want and it'll determine the correct muxing or throw an error.

But then some peripheral pin, eg.UART2_TX will be corresponding to two pins, and there are no default one. So what to do next?

@makermelissa
Copy link
Contributor

makermelissa commented Dec 1, 2022

Typically we wouldn't have pin names for the Mx versions. Instead, you just pass the constructor the pins you want and it'll determine the correct muxing or throw an error.

But then some peripheral pin, eg.UART2_TX will be corresponding to two pins, and there are no default one. So what to do next?

I think what Scott meant is that Blinka doesn't usually handle any muxing itself. Often times the device tree that's loaded determines the mux or possibly it may even be set at the kernel level. It's possible to write a specific Pin implementation to mux the pin correctly, but I don't believe there are currently any boards that do this.

@tannewt
Copy link
Member

tannewt commented Dec 1, 2022

Blinka is meant to be like CircuitPython and in CircuitPython, it is the job of the UART implementation to set the mux for the given mcu pin. Internal peripheral pins aren't referenced in Blinka or CP code.

Copy link
Contributor

@makermelissa makermelissa left a comment

Choose a reason for hiding this comment

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

Looks good. Thanks for adding.

@makermelissa makermelissa merged commit 6d75750 into adafruit:main Dec 15, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants