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