162306a36Sopenharmony_ci* Generic Mailbox Controller and client driver bindings
262306a36Sopenharmony_ci
362306a36Sopenharmony_ciGeneric binding to provide a way for Mailbox controller drivers to
462306a36Sopenharmony_ciassign appropriate mailbox channel to client drivers.
562306a36Sopenharmony_ci
662306a36Sopenharmony_ci* Mailbox Controller
762306a36Sopenharmony_ci
862306a36Sopenharmony_ciRequired property:
962306a36Sopenharmony_ci- #mbox-cells: Must be at least 1. Number of cells in a mailbox
1062306a36Sopenharmony_ci		specifier.
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_ciExample:
1362306a36Sopenharmony_ci	mailbox: mailbox {
1462306a36Sopenharmony_ci		...
1562306a36Sopenharmony_ci		#mbox-cells = <1>;
1662306a36Sopenharmony_ci	};
1762306a36Sopenharmony_ci
1862306a36Sopenharmony_ci
1962306a36Sopenharmony_ci* Mailbox Client
2062306a36Sopenharmony_ci
2162306a36Sopenharmony_ciRequired property:
2262306a36Sopenharmony_ci- mboxes: List of phandle and mailbox channel specifiers.
2362306a36Sopenharmony_ci
2462306a36Sopenharmony_ciOptional property:
2562306a36Sopenharmony_ci- mbox-names: List of identifier strings for each mailbox channel.
2662306a36Sopenharmony_ci- shmem : List of phandle pointing to the shared memory(SHM) area between the
2762306a36Sopenharmony_ci	  users of these mailboxes for IPC, one for each mailbox. This shared
2862306a36Sopenharmony_ci	  memory can be part of any memory reserved for the purpose of this
2962306a36Sopenharmony_ci	  communication between the mailbox client and the remote.
3062306a36Sopenharmony_ci
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_ciExample:
3362306a36Sopenharmony_ci	pwr_cntrl: power {
3462306a36Sopenharmony_ci		...
3562306a36Sopenharmony_ci		mbox-names = "pwr-ctrl", "rpc";
3662306a36Sopenharmony_ci		mboxes = <&mailbox 0 &mailbox 1>;
3762306a36Sopenharmony_ci	};
3862306a36Sopenharmony_ci
3962306a36Sopenharmony_ciExample with shared memory(shmem):
4062306a36Sopenharmony_ci
4162306a36Sopenharmony_ci	sram: sram@50000000 {
4262306a36Sopenharmony_ci		compatible = "mmio-sram";
4362306a36Sopenharmony_ci		reg = <0x50000000 0x10000>;
4462306a36Sopenharmony_ci
4562306a36Sopenharmony_ci		#address-cells = <1>;
4662306a36Sopenharmony_ci		#size-cells = <1>;
4762306a36Sopenharmony_ci		ranges = <0 0x50000000 0x10000>;
4862306a36Sopenharmony_ci
4962306a36Sopenharmony_ci		cl_shmem: shmem@0 {
5062306a36Sopenharmony_ci			compatible = "client-shmem";
5162306a36Sopenharmony_ci			reg = <0x0 0x200>;
5262306a36Sopenharmony_ci		};
5362306a36Sopenharmony_ci	};
5462306a36Sopenharmony_ci
5562306a36Sopenharmony_ci	client@2e000000 {
5662306a36Sopenharmony_ci		...
5762306a36Sopenharmony_ci		mboxes = <&mailbox 0>;
5862306a36Sopenharmony_ci		shmem = <&cl_shmem>;
5962306a36Sopenharmony_ci		..
6062306a36Sopenharmony_ci	};
61