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