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