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