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