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