162306a36Sopenharmony_ciMessage unit node: 262306a36Sopenharmony_ci 362306a36Sopenharmony_ciFor SRIO controllers that implement the message unit as part of the controller 462306a36Sopenharmony_cithis node is required. For devices with RMAN this node should NOT exist. The 562306a36Sopenharmony_cinode is composed of three types of sub-nodes ("fsl-srio-msg-unit", 662306a36Sopenharmony_ci"fsl-srio-dbell-unit" and "fsl-srio-port-write-unit"). 762306a36Sopenharmony_ci 862306a36Sopenharmony_ciSee srio.txt for more details about generic SRIO controller details. 962306a36Sopenharmony_ci 1062306a36Sopenharmony_ci - compatible 1162306a36Sopenharmony_ci Usage: required 1262306a36Sopenharmony_ci Value type: <string> 1362306a36Sopenharmony_ci Definition: Must include "fsl,srio-rmu-vX.Y", "fsl,srio-rmu". 1462306a36Sopenharmony_ci 1562306a36Sopenharmony_ci The version X.Y should match the general SRIO controller's IP Block 1662306a36Sopenharmony_ci revision register's Major(X) and Minor (Y) value. 1762306a36Sopenharmony_ci 1862306a36Sopenharmony_ci - reg 1962306a36Sopenharmony_ci Usage: required 2062306a36Sopenharmony_ci Value type: <prop-encoded-array> 2162306a36Sopenharmony_ci Definition: A standard property. Specifies the physical address and 2262306a36Sopenharmony_ci length of the SRIO configuration registers for message units 2362306a36Sopenharmony_ci and doorbell units. 2462306a36Sopenharmony_ci 2562306a36Sopenharmony_ci - fsl,liodn 2662306a36Sopenharmony_ci Usage: optional-but-recommended (for devices with PAMU) 2762306a36Sopenharmony_ci Value type: <prop-encoded-array> 2862306a36Sopenharmony_ci Definition: The logical I/O device number for the PAMU (IOMMU) to be 2962306a36Sopenharmony_ci correctly configured for SRIO accesses. The property should 3062306a36Sopenharmony_ci not exist on devices that do not support PAMU. 3162306a36Sopenharmony_ci 3262306a36Sopenharmony_ci The LIODN value is associated with all RMU transactions 3362306a36Sopenharmony_ci (msg-unit, doorbell, port-write). 3462306a36Sopenharmony_ci 3562306a36Sopenharmony_ciSub-Nodes for RMU: The RMU node is composed of multiple sub-nodes that 3662306a36Sopenharmony_cicorrespond to the actual sub-controllers in the RMU. The manual for a given 3762306a36Sopenharmony_ciSoC will detail which and how many of these sub-controllers are implemented. 3862306a36Sopenharmony_ci 3962306a36Sopenharmony_ciMessage Unit: 4062306a36Sopenharmony_ci 4162306a36Sopenharmony_ci - compatible 4262306a36Sopenharmony_ci Usage: required 4362306a36Sopenharmony_ci Value type: <string> 4462306a36Sopenharmony_ci Definition: Must include "fsl,srio-msg-unit-vX.Y", "fsl,srio-msg-unit". 4562306a36Sopenharmony_ci 4662306a36Sopenharmony_ci The version X.Y should match the general SRIO controller's IP Block 4762306a36Sopenharmony_ci revision register's Major(X) and Minor (Y) value. 4862306a36Sopenharmony_ci 4962306a36Sopenharmony_ci - reg 5062306a36Sopenharmony_ci Usage: required 5162306a36Sopenharmony_ci Value type: <prop-encoded-array> 5262306a36Sopenharmony_ci Definition: A standard property. Specifies the physical address and 5362306a36Sopenharmony_ci length of the SRIO configuration registers for message units 5462306a36Sopenharmony_ci and doorbell units. 5562306a36Sopenharmony_ci 5662306a36Sopenharmony_ci - interrupts 5762306a36Sopenharmony_ci Usage: required 5862306a36Sopenharmony_ci Value type: <prop_encoded-array> 5962306a36Sopenharmony_ci Definition: Specifies the interrupts generated by this device. The 6062306a36Sopenharmony_ci value of the interrupts property consists of one interrupt 6162306a36Sopenharmony_ci specifier. The format of the specifier is defined by the 6262306a36Sopenharmony_ci binding document describing the node's interrupt parent. 6362306a36Sopenharmony_ci 6462306a36Sopenharmony_ci A pair of IRQs are specified in this property. The first 6562306a36Sopenharmony_ci element is associated with the transmit (TX) interrupt and the 6662306a36Sopenharmony_ci second element is associated with the receive (RX) interrupt. 6762306a36Sopenharmony_ci 6862306a36Sopenharmony_ciDoorbell Unit: 6962306a36Sopenharmony_ci 7062306a36Sopenharmony_ci - compatible 7162306a36Sopenharmony_ci Usage: required 7262306a36Sopenharmony_ci Value type: <string> 7362306a36Sopenharmony_ci Definition: Must include: 7462306a36Sopenharmony_ci "fsl,srio-dbell-unit-vX.Y", "fsl,srio-dbell-unit" 7562306a36Sopenharmony_ci 7662306a36Sopenharmony_ci The version X.Y should match the general SRIO controller's IP Block 7762306a36Sopenharmony_ci revision register's Major(X) and Minor (Y) value. 7862306a36Sopenharmony_ci 7962306a36Sopenharmony_ci - reg 8062306a36Sopenharmony_ci Usage: required 8162306a36Sopenharmony_ci Value type: <prop-encoded-array> 8262306a36Sopenharmony_ci Definition: A standard property. Specifies the physical address and 8362306a36Sopenharmony_ci length of the SRIO configuration registers for message units 8462306a36Sopenharmony_ci and doorbell units. 8562306a36Sopenharmony_ci 8662306a36Sopenharmony_ci - interrupts 8762306a36Sopenharmony_ci Usage: required 8862306a36Sopenharmony_ci Value type: <prop_encoded-array> 8962306a36Sopenharmony_ci Definition: Specifies the interrupts generated by this device. The 9062306a36Sopenharmony_ci value of the interrupts property consists of one interrupt 9162306a36Sopenharmony_ci specifier. The format of the specifier is defined by the 9262306a36Sopenharmony_ci binding document describing the node's interrupt parent. 9362306a36Sopenharmony_ci 9462306a36Sopenharmony_ci A pair of IRQs are specified in this property. The first 9562306a36Sopenharmony_ci element is associated with the transmit (TX) interrupt and the 9662306a36Sopenharmony_ci second element is associated with the receive (RX) interrupt. 9762306a36Sopenharmony_ci 9862306a36Sopenharmony_ciPort-Write Unit: 9962306a36Sopenharmony_ci 10062306a36Sopenharmony_ci - compatible 10162306a36Sopenharmony_ci Usage: required 10262306a36Sopenharmony_ci Value type: <string> 10362306a36Sopenharmony_ci Definition: Must include: 10462306a36Sopenharmony_ci "fsl,srio-port-write-unit-vX.Y", "fsl,srio-port-write-unit" 10562306a36Sopenharmony_ci 10662306a36Sopenharmony_ci The version X.Y should match the general SRIO controller's IP Block 10762306a36Sopenharmony_ci revision register's Major(X) and Minor (Y) value. 10862306a36Sopenharmony_ci 10962306a36Sopenharmony_ci - reg 11062306a36Sopenharmony_ci Usage: required 11162306a36Sopenharmony_ci Value type: <prop-encoded-array> 11262306a36Sopenharmony_ci Definition: A standard property. Specifies the physical address and 11362306a36Sopenharmony_ci length of the SRIO configuration registers for message units 11462306a36Sopenharmony_ci and doorbell units. 11562306a36Sopenharmony_ci 11662306a36Sopenharmony_ci - interrupts 11762306a36Sopenharmony_ci Usage: required 11862306a36Sopenharmony_ci Value type: <prop_encoded-array> 11962306a36Sopenharmony_ci Definition: Specifies the interrupts generated by this device. The 12062306a36Sopenharmony_ci value of the interrupts property consists of one interrupt 12162306a36Sopenharmony_ci specifier. The format of the specifier is defined by the 12262306a36Sopenharmony_ci binding document describing the node's interrupt parent. 12362306a36Sopenharmony_ci 12462306a36Sopenharmony_ci A single IRQ that handles port-write conditions is 12562306a36Sopenharmony_ci specified by this property. (Typically shared with error). 12662306a36Sopenharmony_ci 12762306a36Sopenharmony_ci Note: All other standard properties (see the Devicetree Specification) 12862306a36Sopenharmony_ci are allowed but are optional. 12962306a36Sopenharmony_ci 13062306a36Sopenharmony_ciExample: 13162306a36Sopenharmony_ci rmu: rmu@d3000 { 13262306a36Sopenharmony_ci compatible = "fsl,srio-rmu"; 13362306a36Sopenharmony_ci reg = <0xd3000 0x400>; 13462306a36Sopenharmony_ci ranges = <0x0 0xd3000 0x400>; 13562306a36Sopenharmony_ci fsl,liodn = <0xc8>; 13662306a36Sopenharmony_ci 13762306a36Sopenharmony_ci message-unit@0 { 13862306a36Sopenharmony_ci compatible = "fsl,srio-msg-unit"; 13962306a36Sopenharmony_ci reg = <0x0 0x100>; 14062306a36Sopenharmony_ci interrupts = < 14162306a36Sopenharmony_ci 60 2 0 0 /* msg1_tx_irq */ 14262306a36Sopenharmony_ci 61 2 0 0>;/* msg1_rx_irq */ 14362306a36Sopenharmony_ci }; 14462306a36Sopenharmony_ci message-unit@100 { 14562306a36Sopenharmony_ci compatible = "fsl,srio-msg-unit"; 14662306a36Sopenharmony_ci reg = <0x100 0x100>; 14762306a36Sopenharmony_ci interrupts = < 14862306a36Sopenharmony_ci 62 2 0 0 /* msg2_tx_irq */ 14962306a36Sopenharmony_ci 63 2 0 0>;/* msg2_rx_irq */ 15062306a36Sopenharmony_ci }; 15162306a36Sopenharmony_ci doorbell-unit@400 { 15262306a36Sopenharmony_ci compatible = "fsl,srio-dbell-unit"; 15362306a36Sopenharmony_ci reg = <0x400 0x80>; 15462306a36Sopenharmony_ci interrupts = < 15562306a36Sopenharmony_ci 56 2 0 0 /* bell_outb_irq */ 15662306a36Sopenharmony_ci 57 2 0 0>;/* bell_inb_irq */ 15762306a36Sopenharmony_ci }; 15862306a36Sopenharmony_ci port-write-unit@4e0 { 15962306a36Sopenharmony_ci compatible = "fsl,srio-port-write-unit"; 16062306a36Sopenharmony_ci reg = <0x4e0 0x20>; 16162306a36Sopenharmony_ci interrupts = <16 2 1 11>; 16262306a36Sopenharmony_ci }; 16362306a36Sopenharmony_ci }; 164