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