18c2ecf20Sopenharmony_ciTexas Instruments' Message Manager Driver
28c2ecf20Sopenharmony_ci========================================
38c2ecf20Sopenharmony_ci
48c2ecf20Sopenharmony_ciThe Texas Instruments' Message Manager is a mailbox controller that has
58c2ecf20Sopenharmony_ciconfigurable queues selectable at SoC(System on Chip) integration. The Message
68c2ecf20Sopenharmony_cimanager is broken up into queues in different address regions that are called
78c2ecf20Sopenharmony_ci"proxies" - each instance is unidirectional and is instantiated at SoC
88c2ecf20Sopenharmony_ciintegration level to indicate receive or transmit path.
98c2ecf20Sopenharmony_ci
108c2ecf20Sopenharmony_ciMessage Manager Device Node:
118c2ecf20Sopenharmony_ci===========================
128c2ecf20Sopenharmony_ciRequired properties:
138c2ecf20Sopenharmony_ci--------------------
148c2ecf20Sopenharmony_ci- compatible:		Shall be: "ti,k2g-message-manager"
158c2ecf20Sopenharmony_ci- reg-names 		queue_proxy_region - Map the queue proxy region.
168c2ecf20Sopenharmony_ci			queue_state_debug_region - Map the queue state debug
178c2ecf20Sopenharmony_ci			region.
188c2ecf20Sopenharmony_ci- reg:			Contains the register map per reg-names.
198c2ecf20Sopenharmony_ci- #mbox-cells		Shall be 2. Contains the queue ID and proxy ID in that
208c2ecf20Sopenharmony_ci		        order referring to the transfer path.
218c2ecf20Sopenharmony_ci- interrupt-names:	Contains interrupt names matching the rx transfer path
228c2ecf20Sopenharmony_ci			for a given SoC. Receive interrupts shall be of the
238c2ecf20Sopenharmony_ci			format: "rx_<QID>".
248c2ecf20Sopenharmony_ci			For ti,k2g-message-manager, this shall contain:
258c2ecf20Sopenharmony_ci				"rx_005", "rx_057"
268c2ecf20Sopenharmony_ci- interrupts:		Contains the interrupt information corresponding to
278c2ecf20Sopenharmony_ci			interrupt-names property.
288c2ecf20Sopenharmony_ci
298c2ecf20Sopenharmony_ciExample(K2G):
308c2ecf20Sopenharmony_ci------------
318c2ecf20Sopenharmony_ci
328c2ecf20Sopenharmony_ci	msgmgr: msgmgr@2a00000 {
338c2ecf20Sopenharmony_ci		compatible = "ti,k2g-message-manager";
348c2ecf20Sopenharmony_ci		#mbox-cells = <2>;
358c2ecf20Sopenharmony_ci		reg-names = "queue_proxy_region", "queue_state_debug_region";
368c2ecf20Sopenharmony_ci		reg = <0x02a00000 0x400000>, <0x028c3400 0x400>;
378c2ecf20Sopenharmony_ci		interrupt-names = "rx_005", "rx_057";
388c2ecf20Sopenharmony_ci		interrupts = <GIC_SPI 324 IRQ_TYPE_LEVEL_HIGH>,
398c2ecf20Sopenharmony_ci			     <GIC_SPI 327 IRQ_TYPE_LEVEL_HIGH>;
408c2ecf20Sopenharmony_ci	};
418c2ecf20Sopenharmony_ci
428c2ecf20Sopenharmony_ci	pmmc: pmmc {
438c2ecf20Sopenharmony_ci		[...]
448c2ecf20Sopenharmony_ci		mbox-names = "rx", "tx";
458c2ecf20Sopenharmony_ci		# RX queue ID is 5, proxy ID is 2
468c2ecf20Sopenharmony_ci		# TX queue ID is 0, proxy ID is 0
478c2ecf20Sopenharmony_ci		mboxes= <&msgmgr 5 2>,
488c2ecf20Sopenharmony_ci			<&msgmgr 0 0>;
498c2ecf20Sopenharmony_ci		[...]
508c2ecf20Sopenharmony_ci	};
51