-
Notifications
You must be signed in to change notification settings - Fork 8.3k
drivers: mbox: Add support for TI OMAP mailbox #71241
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
Conversation
183229f to
9ce32b6
Compare
dnltz
left a comment
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.
Some feedback but looks good. I have one question. Why did you call this driver omap while we called the gpio driver davinci? What's the difference and what would be the reason to call a driver davanci or omap? As an external, non-TI engineer, I think it would make more sense to call all drivers identical to make it easier to identify them. But maybe you have a good explanation to choose omap.
Thank you for the feedback @dnltz I will work on your review comments, the reason behind naming these drivers with these legacy names is to match the driver names and compatibles in Linux kernel, for example the mailbox driver is here : https://github.com/torvalds/linux/blob/master/drivers/mailbox/omap-mailbox.c , the idea is to make some reuse from the upstream Linux offering, so that adding future nodes in Zephyr becomes easier and the Linux device tree can be taken as reference, an exact 1:1 match is not always possible but the idea is to keep the differences in compatible/bindings .etc same to enable reuse, same was the case for gpio-davinci driver. |
4032c3a to
2b4dc06
Compare
2b4dc06 to
36488c6
Compare
gramsay0
left a comment
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.
It might be worth adding TI omap regex's to maintainers.yml as well.
Great work!
50aba94 to
6ed9d69
Compare
cfriedt
left a comment
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.
LGTM
|
Ping @carlocaione |
|
@vaishnavachath this need to be rebased, please. |
TI OMAP mailbox is the inter-processor mailbox IP found in TI K3 devices (AM62X, AM64X, J721E .etc). The mailbox hardware uses a queued mailbox interrupt mechanism that provides a communication channel between processors through a set of registers and their associated interrupt signals by sending and receiving messages. The interrupt/bank associated with each processor entity is found through the usr_id property from device tree. Signed-off-by: Vaishnav Achath <[email protected]>
Add TI OMAP interprocessor mailbox nodes for AM62X M4, the user ID assignment is as per thec corresponding mailbox interrupt assignment for the core. More details can be found in the device TRM Mailbox section: https://www.ti.com/lit/ug/spruiv7a/spruiv7a.pdf Signed-off-by: Vaishnav Achath <[email protected]>
Add TI OMAP interprocessor mailbox nodes for AM62X A53, the user ID assignment is as per thec corresponding mailbox interrupt assignment for the core. Also while at it update the supported feature list in corresponding boards. More details can be found in the device TRM Mailbox section: https://www.ti.com/lit/ug/spruiv7a/spruiv7a.pdf Signed-off-by: Vaishnav Achath <[email protected]>
TI Platform drivers are named according to coresponding names in Linux kernel, thus add the legacy drivers (DaVinci, OMAP) also under TI K3 platforms. Signed-off-by: Vaishnav Achath <[email protected]>
6ed9d69 to
0709fe5
Compare
|
@kartben Can this PR be picked? did not hear any comments from @carlocaione so far. |
TI OMAP mailbox is the inter-processor mailbox IP found in TI K3 devices (AM62X, AM64X, J721E .etc). The mailbox hardware uses a queued mailbox interrupt mechanism that provides a communication channel between processors through a set of registers and their associated interrupt signals by sending and receiving messages. The interrupt/bank associated with each processor entity is found through the usr_id property from device tree.
The bindings and implementation are kept similar to the implementation in Linux, driver implementation logic is similar to other drivers in mbox subsystem.
Tested on AM62X SK for MBOX ping and MBOX Data sample between A53 and M4 running Zephyr :
https://pastebin.com/f88f7NQJ