xref: /freebsd/sys/contrib/device-tree/Bindings/mailbox/ti,message-manager.txt (revision c66ec88fed842fbaad62c30d510644ceb7bd2d71)
1*c66ec88fSEmmanuel VadotTexas Instruments' Message Manager Driver
2*c66ec88fSEmmanuel Vadot========================================
3*c66ec88fSEmmanuel Vadot
4*c66ec88fSEmmanuel VadotThe Texas Instruments' Message Manager is a mailbox controller that has
5*c66ec88fSEmmanuel Vadotconfigurable queues selectable at SoC(System on Chip) integration. The Message
6*c66ec88fSEmmanuel Vadotmanager is broken up into queues in different address regions that are called
7*c66ec88fSEmmanuel Vadot"proxies" - each instance is unidirectional and is instantiated at SoC
8*c66ec88fSEmmanuel Vadotintegration level to indicate receive or transmit path.
9*c66ec88fSEmmanuel Vadot
10*c66ec88fSEmmanuel VadotMessage Manager Device Node:
11*c66ec88fSEmmanuel Vadot===========================
12*c66ec88fSEmmanuel VadotRequired properties:
13*c66ec88fSEmmanuel Vadot--------------------
14*c66ec88fSEmmanuel Vadot- compatible:		Shall be: "ti,k2g-message-manager"
15*c66ec88fSEmmanuel Vadot- reg-names 		queue_proxy_region - Map the queue proxy region.
16*c66ec88fSEmmanuel Vadot			queue_state_debug_region - Map the queue state debug
17*c66ec88fSEmmanuel Vadot			region.
18*c66ec88fSEmmanuel Vadot- reg:			Contains the register map per reg-names.
19*c66ec88fSEmmanuel Vadot- #mbox-cells		Shall be 2. Contains the queue ID and proxy ID in that
20*c66ec88fSEmmanuel Vadot		        order referring to the transfer path.
21*c66ec88fSEmmanuel Vadot- interrupt-names:	Contains interrupt names matching the rx transfer path
22*c66ec88fSEmmanuel Vadot			for a given SoC. Receive interrupts shall be of the
23*c66ec88fSEmmanuel Vadot			format: "rx_<QID>".
24*c66ec88fSEmmanuel Vadot			For ti,k2g-message-manager, this shall contain:
25*c66ec88fSEmmanuel Vadot				"rx_005", "rx_057"
26*c66ec88fSEmmanuel Vadot- interrupts:		Contains the interrupt information corresponding to
27*c66ec88fSEmmanuel Vadot			interrupt-names property.
28*c66ec88fSEmmanuel Vadot
29*c66ec88fSEmmanuel VadotExample(K2G):
30*c66ec88fSEmmanuel Vadot------------
31*c66ec88fSEmmanuel Vadot
32*c66ec88fSEmmanuel Vadot	msgmgr: msgmgr@2a00000 {
33*c66ec88fSEmmanuel Vadot		compatible = "ti,k2g-message-manager";
34*c66ec88fSEmmanuel Vadot		#mbox-cells = <2>;
35*c66ec88fSEmmanuel Vadot		reg-names = "queue_proxy_region", "queue_state_debug_region";
36*c66ec88fSEmmanuel Vadot		reg = <0x02a00000 0x400000>, <0x028c3400 0x400>;
37*c66ec88fSEmmanuel Vadot		interrupt-names = "rx_005", "rx_057";
38*c66ec88fSEmmanuel Vadot		interrupts = <GIC_SPI 324 IRQ_TYPE_LEVEL_HIGH>,
39*c66ec88fSEmmanuel Vadot			     <GIC_SPI 327 IRQ_TYPE_LEVEL_HIGH>;
40*c66ec88fSEmmanuel Vadot	};
41*c66ec88fSEmmanuel Vadot
42*c66ec88fSEmmanuel Vadot	pmmc: pmmc {
43*c66ec88fSEmmanuel Vadot		[...]
44*c66ec88fSEmmanuel Vadot		mbox-names = "rx", "tx";
45*c66ec88fSEmmanuel Vadot		# RX queue ID is 5, proxy ID is 2
46*c66ec88fSEmmanuel Vadot		# TX queue ID is 0, proxy ID is 0
47*c66ec88fSEmmanuel Vadot		mboxes= <&msgmgr 5 2>,
48*c66ec88fSEmmanuel Vadot			<&msgmgr 0 0>;
49*c66ec88fSEmmanuel Vadot		[...]
50*c66ec88fSEmmanuel Vadot	};
51