18c2ecf20Sopenharmony_ci* Generic Mailbox Controller and client driver bindings
28c2ecf20Sopenharmony_ci
38c2ecf20Sopenharmony_ciGeneric binding to provide a way for Mailbox controller drivers to
48c2ecf20Sopenharmony_ciassign appropriate mailbox channel to client drivers.
58c2ecf20Sopenharmony_ci
68c2ecf20Sopenharmony_ci* Mailbox Controller
78c2ecf20Sopenharmony_ci
88c2ecf20Sopenharmony_ciRequired property:
98c2ecf20Sopenharmony_ci- #mbox-cells: Must be at least 1. Number of cells in a mailbox
108c2ecf20Sopenharmony_ci		specifier.
118c2ecf20Sopenharmony_ci
128c2ecf20Sopenharmony_ciExample:
138c2ecf20Sopenharmony_ci	mailbox: mailbox {
148c2ecf20Sopenharmony_ci		...
158c2ecf20Sopenharmony_ci		#mbox-cells = <1>;
168c2ecf20Sopenharmony_ci	};
178c2ecf20Sopenharmony_ci
188c2ecf20Sopenharmony_ci
198c2ecf20Sopenharmony_ci* Mailbox Client
208c2ecf20Sopenharmony_ci
218c2ecf20Sopenharmony_ciRequired property:
228c2ecf20Sopenharmony_ci- mboxes: List of phandle and mailbox channel specifiers.
238c2ecf20Sopenharmony_ci
248c2ecf20Sopenharmony_ciOptional property:
258c2ecf20Sopenharmony_ci- mbox-names: List of identifier strings for each mailbox channel.
268c2ecf20Sopenharmony_ci- shmem : List of phandle pointing to the shared memory(SHM) area between the
278c2ecf20Sopenharmony_ci	  users of these mailboxes for IPC, one for each mailbox. This shared
288c2ecf20Sopenharmony_ci	  memory can be part of any memory reserved for the purpose of this
298c2ecf20Sopenharmony_ci	  communication between the mailbox client and the remote.
308c2ecf20Sopenharmony_ci
318c2ecf20Sopenharmony_ci
328c2ecf20Sopenharmony_ciExample:
338c2ecf20Sopenharmony_ci	pwr_cntrl: power {
348c2ecf20Sopenharmony_ci		...
358c2ecf20Sopenharmony_ci		mbox-names = "pwr-ctrl", "rpc";
368c2ecf20Sopenharmony_ci		mboxes = <&mailbox 0 &mailbox 1>;
378c2ecf20Sopenharmony_ci	};
388c2ecf20Sopenharmony_ci
398c2ecf20Sopenharmony_ciExample with shared memory(shmem):
408c2ecf20Sopenharmony_ci
418c2ecf20Sopenharmony_ci	sram: sram@50000000 {
428c2ecf20Sopenharmony_ci		compatible = "mmio-sram";
438c2ecf20Sopenharmony_ci		reg = <0x50000000 0x10000>;
448c2ecf20Sopenharmony_ci
458c2ecf20Sopenharmony_ci		#address-cells = <1>;
468c2ecf20Sopenharmony_ci		#size-cells = <1>;
478c2ecf20Sopenharmony_ci		ranges = <0 0x50000000 0x10000>;
488c2ecf20Sopenharmony_ci
498c2ecf20Sopenharmony_ci		cl_shmem: shmem@0 {
508c2ecf20Sopenharmony_ci			compatible = "client-shmem";
518c2ecf20Sopenharmony_ci			reg = <0x0 0x200>;
528c2ecf20Sopenharmony_ci		};
538c2ecf20Sopenharmony_ci	};
548c2ecf20Sopenharmony_ci
558c2ecf20Sopenharmony_ci	client@2e000000 {
568c2ecf20Sopenharmony_ci		...
578c2ecf20Sopenharmony_ci		mboxes = <&mailbox 0>;
588c2ecf20Sopenharmony_ci		shmem = <&cl_shmem>;
598c2ecf20Sopenharmony_ci		..
608c2ecf20Sopenharmony_ci	};
61