xref: /OK3568_Linux_fs/kernel/Documentation/devicetree/bindings/mailbox/mailbox.txt (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun* Generic Mailbox Controller and client driver bindings
2*4882a593Smuzhiyun
3*4882a593SmuzhiyunGeneric binding to provide a way for Mailbox controller drivers to
4*4882a593Smuzhiyunassign appropriate mailbox channel to client drivers.
5*4882a593Smuzhiyun
6*4882a593Smuzhiyun* Mailbox Controller
7*4882a593Smuzhiyun
8*4882a593SmuzhiyunRequired property:
9*4882a593Smuzhiyun- #mbox-cells: Must be at least 1. Number of cells in a mailbox
10*4882a593Smuzhiyun		specifier.
11*4882a593Smuzhiyun
12*4882a593SmuzhiyunExample:
13*4882a593Smuzhiyun	mailbox: mailbox {
14*4882a593Smuzhiyun		...
15*4882a593Smuzhiyun		#mbox-cells = <1>;
16*4882a593Smuzhiyun	};
17*4882a593Smuzhiyun
18*4882a593Smuzhiyun
19*4882a593Smuzhiyun* Mailbox Client
20*4882a593Smuzhiyun
21*4882a593SmuzhiyunRequired property:
22*4882a593Smuzhiyun- mboxes: List of phandle and mailbox channel specifiers.
23*4882a593Smuzhiyun
24*4882a593SmuzhiyunOptional property:
25*4882a593Smuzhiyun- mbox-names: List of identifier strings for each mailbox channel.
26*4882a593Smuzhiyun- shmem : List of phandle pointing to the shared memory(SHM) area between the
27*4882a593Smuzhiyun	  users of these mailboxes for IPC, one for each mailbox. This shared
28*4882a593Smuzhiyun	  memory can be part of any memory reserved for the purpose of this
29*4882a593Smuzhiyun	  communication between the mailbox client and the remote.
30*4882a593Smuzhiyun
31*4882a593Smuzhiyun
32*4882a593SmuzhiyunExample:
33*4882a593Smuzhiyun	pwr_cntrl: power {
34*4882a593Smuzhiyun		...
35*4882a593Smuzhiyun		mbox-names = "pwr-ctrl", "rpc";
36*4882a593Smuzhiyun		mboxes = <&mailbox 0 &mailbox 1>;
37*4882a593Smuzhiyun	};
38*4882a593Smuzhiyun
39*4882a593SmuzhiyunExample with shared memory(shmem):
40*4882a593Smuzhiyun
41*4882a593Smuzhiyun	sram: sram@50000000 {
42*4882a593Smuzhiyun		compatible = "mmio-sram";
43*4882a593Smuzhiyun		reg = <0x50000000 0x10000>;
44*4882a593Smuzhiyun
45*4882a593Smuzhiyun		#address-cells = <1>;
46*4882a593Smuzhiyun		#size-cells = <1>;
47*4882a593Smuzhiyun		ranges = <0 0x50000000 0x10000>;
48*4882a593Smuzhiyun
49*4882a593Smuzhiyun		cl_shmem: shmem@0 {
50*4882a593Smuzhiyun			compatible = "client-shmem";
51*4882a593Smuzhiyun			reg = <0x0 0x200>;
52*4882a593Smuzhiyun		};
53*4882a593Smuzhiyun	};
54*4882a593Smuzhiyun
55*4882a593Smuzhiyun	client@2e000000 {
56*4882a593Smuzhiyun		...
57*4882a593Smuzhiyun		mboxes = <&mailbox 0>;
58*4882a593Smuzhiyun		shmem = <&cl_shmem>;
59*4882a593Smuzhiyun		..
60*4882a593Smuzhiyun	};
61