07455e4e43
Many users of the mailbox controllers depend on the shared memory between the two end points to exchange the main data while using simple doorbell mechanism to alert the end points of the presence of a message. This patch defines device tree bindings to represent such shared memory in a generic way. Cc: Mark Rutland <mark.rutland@arm.com> Acked-by: Rob Herring <robh@kernel.org> Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
61 lines
1.3 KiB
Plaintext
61 lines
1.3 KiB
Plaintext
* Generic Mailbox Controller and client driver bindings
|
|
|
|
Generic binding to provide a way for Mailbox controller drivers to
|
|
assign appropriate mailbox channel to client drivers.
|
|
|
|
* Mailbox Controller
|
|
|
|
Required property:
|
|
- #mbox-cells: Must be at least 1. Number of cells in a mailbox
|
|
specifier.
|
|
|
|
Example:
|
|
mailbox: mailbox {
|
|
...
|
|
#mbox-cells = <1>;
|
|
};
|
|
|
|
|
|
* Mailbox Client
|
|
|
|
Required property:
|
|
- mboxes: List of phandle and mailbox channel specifiers.
|
|
|
|
Optional property:
|
|
- mbox-names: List of identifier strings for each mailbox channel.
|
|
- shmem : List of phandle pointing to the shared memory(SHM) area between the
|
|
users of these mailboxes for IPC, one for each mailbox. This shared
|
|
memory can be part of any memory reserved for the purpose of this
|
|
communication between the mailbox client and the remote.
|
|
|
|
|
|
Example:
|
|
pwr_cntrl: power {
|
|
...
|
|
mbox-names = "pwr-ctrl", "rpc";
|
|
mboxes = <&mailbox 0 &mailbox 1>;
|
|
};
|
|
|
|
Example with shared memory(shmem):
|
|
|
|
sram: sram@50000000 {
|
|
compatible = "mmio-sram";
|
|
reg = <0x50000000 0x10000>;
|
|
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
ranges = <0 0x50000000 0x10000>;
|
|
|
|
cl_shmem: shmem@0 {
|
|
compatible = "client-shmem";
|
|
reg = <0x0 0x200>;
|
|
};
|
|
};
|
|
|
|
client@2e000000 {
|
|
...
|
|
mboxes = <&mailbox 0>;
|
|
shmem = <&cl_shmem>;
|
|
..
|
|
};
|