18c2ecf20Sopenharmony_ciMessage unit node:
28c2ecf20Sopenharmony_ci
38c2ecf20Sopenharmony_ciFor SRIO controllers that implement the message unit as part of the controller
48c2ecf20Sopenharmony_cithis node is required.  For devices with RMAN this node should NOT exist.  The
58c2ecf20Sopenharmony_cinode is composed of three types of sub-nodes ("fsl-srio-msg-unit",
68c2ecf20Sopenharmony_ci"fsl-srio-dbell-unit" and "fsl-srio-port-write-unit").
78c2ecf20Sopenharmony_ci
88c2ecf20Sopenharmony_ciSee srio.txt for more details about generic SRIO controller details.
98c2ecf20Sopenharmony_ci
108c2ecf20Sopenharmony_ci   - compatible
118c2ecf20Sopenharmony_ci	Usage: required
128c2ecf20Sopenharmony_ci	Value type: <string>
138c2ecf20Sopenharmony_ci	Definition: Must include "fsl,srio-rmu-vX.Y", "fsl,srio-rmu".
148c2ecf20Sopenharmony_ci
158c2ecf20Sopenharmony_ci	The version X.Y should match the general SRIO controller's IP Block
168c2ecf20Sopenharmony_ci	revision register's Major(X) and Minor (Y) value.
178c2ecf20Sopenharmony_ci
188c2ecf20Sopenharmony_ci   - reg
198c2ecf20Sopenharmony_ci	Usage: required
208c2ecf20Sopenharmony_ci	Value type: <prop-encoded-array>
218c2ecf20Sopenharmony_ci	Definition: A standard property.  Specifies the physical address and
228c2ecf20Sopenharmony_ci		length of the SRIO configuration registers for message units
238c2ecf20Sopenharmony_ci		and doorbell units.
248c2ecf20Sopenharmony_ci
258c2ecf20Sopenharmony_ci   - fsl,liodn
268c2ecf20Sopenharmony_ci	Usage: optional-but-recommended (for devices with PAMU)
278c2ecf20Sopenharmony_ci	Value type: <prop-encoded-array>
288c2ecf20Sopenharmony_ci	Definition: The logical I/O device number for the PAMU (IOMMU) to be
298c2ecf20Sopenharmony_ci		correctly configured for SRIO accesses.  The property should
308c2ecf20Sopenharmony_ci		not exist on devices that do not support PAMU.
318c2ecf20Sopenharmony_ci
328c2ecf20Sopenharmony_ci		The LIODN value is associated with all RMU transactions
338c2ecf20Sopenharmony_ci		(msg-unit, doorbell, port-write).
348c2ecf20Sopenharmony_ci
358c2ecf20Sopenharmony_ciSub-Nodes for RMU:  The RMU node is composed of multiple sub-nodes that
368c2ecf20Sopenharmony_cicorrespond to the actual sub-controllers in the RMU.  The manual for a given
378c2ecf20Sopenharmony_ciSoC will detail which and how many of these sub-controllers are implemented.
388c2ecf20Sopenharmony_ci
398c2ecf20Sopenharmony_ciMessage Unit:
408c2ecf20Sopenharmony_ci
418c2ecf20Sopenharmony_ci   - compatible
428c2ecf20Sopenharmony_ci	Usage: required
438c2ecf20Sopenharmony_ci	Value type: <string>
448c2ecf20Sopenharmony_ci	Definition: Must include "fsl,srio-msg-unit-vX.Y", "fsl,srio-msg-unit".
458c2ecf20Sopenharmony_ci
468c2ecf20Sopenharmony_ci	The version X.Y should match the general SRIO controller's IP Block
478c2ecf20Sopenharmony_ci	revision register's Major(X) and Minor (Y) value.
488c2ecf20Sopenharmony_ci
498c2ecf20Sopenharmony_ci   - reg
508c2ecf20Sopenharmony_ci	Usage: required
518c2ecf20Sopenharmony_ci	Value type: <prop-encoded-array>
528c2ecf20Sopenharmony_ci	Definition: A standard property.  Specifies the physical address and
538c2ecf20Sopenharmony_ci		length of the SRIO configuration registers for message units
548c2ecf20Sopenharmony_ci		and doorbell units.
558c2ecf20Sopenharmony_ci
568c2ecf20Sopenharmony_ci   - interrupts
578c2ecf20Sopenharmony_ci	Usage: required
588c2ecf20Sopenharmony_ci	Value type: <prop_encoded-array>
598c2ecf20Sopenharmony_ci	Definition:  Specifies the interrupts generated by this device.  The
608c2ecf20Sopenharmony_ci		value of the interrupts property consists of one interrupt
618c2ecf20Sopenharmony_ci		specifier. The format of the specifier is defined by the
628c2ecf20Sopenharmony_ci		binding document describing the node's interrupt parent.
638c2ecf20Sopenharmony_ci
648c2ecf20Sopenharmony_ci		A pair of IRQs are specified in this property.  The first
658c2ecf20Sopenharmony_ci		element is associated with the transmit (TX) interrupt and the
668c2ecf20Sopenharmony_ci		second element is associated with the receive (RX) interrupt.
678c2ecf20Sopenharmony_ci
688c2ecf20Sopenharmony_ciDoorbell Unit:
698c2ecf20Sopenharmony_ci
708c2ecf20Sopenharmony_ci   - compatible
718c2ecf20Sopenharmony_ci	Usage: required
728c2ecf20Sopenharmony_ci	Value type: <string>
738c2ecf20Sopenharmony_ci	Definition: Must include:
748c2ecf20Sopenharmony_ci		"fsl,srio-dbell-unit-vX.Y", "fsl,srio-dbell-unit"
758c2ecf20Sopenharmony_ci
768c2ecf20Sopenharmony_ci	The version X.Y should match the general SRIO controller's IP Block
778c2ecf20Sopenharmony_ci	revision register's Major(X) and Minor (Y) value.
788c2ecf20Sopenharmony_ci
798c2ecf20Sopenharmony_ci   - reg
808c2ecf20Sopenharmony_ci	Usage: required
818c2ecf20Sopenharmony_ci	Value type: <prop-encoded-array>
828c2ecf20Sopenharmony_ci	Definition: A standard property.  Specifies the physical address and
838c2ecf20Sopenharmony_ci		length of the SRIO configuration registers for message units
848c2ecf20Sopenharmony_ci		and doorbell units.
858c2ecf20Sopenharmony_ci
868c2ecf20Sopenharmony_ci   - interrupts
878c2ecf20Sopenharmony_ci	Usage: required
888c2ecf20Sopenharmony_ci	Value type: <prop_encoded-array>
898c2ecf20Sopenharmony_ci	Definition:  Specifies the interrupts generated by this device.  The
908c2ecf20Sopenharmony_ci		value of the interrupts property consists of one interrupt
918c2ecf20Sopenharmony_ci		specifier. The format of the specifier is defined by the
928c2ecf20Sopenharmony_ci		binding document describing the node's interrupt parent.
938c2ecf20Sopenharmony_ci
948c2ecf20Sopenharmony_ci		A pair of IRQs are specified in this property.  The first
958c2ecf20Sopenharmony_ci		element is associated with the transmit (TX) interrupt and the
968c2ecf20Sopenharmony_ci		second element is associated with the receive (RX) interrupt.
978c2ecf20Sopenharmony_ci
988c2ecf20Sopenharmony_ciPort-Write Unit:
998c2ecf20Sopenharmony_ci
1008c2ecf20Sopenharmony_ci   - compatible
1018c2ecf20Sopenharmony_ci	Usage: required
1028c2ecf20Sopenharmony_ci	Value type: <string>
1038c2ecf20Sopenharmony_ci	Definition: Must include:
1048c2ecf20Sopenharmony_ci		 "fsl,srio-port-write-unit-vX.Y", "fsl,srio-port-write-unit"
1058c2ecf20Sopenharmony_ci
1068c2ecf20Sopenharmony_ci	The version X.Y should match the general SRIO controller's IP Block
1078c2ecf20Sopenharmony_ci	revision register's Major(X) and Minor (Y) value.
1088c2ecf20Sopenharmony_ci
1098c2ecf20Sopenharmony_ci   - reg
1108c2ecf20Sopenharmony_ci	Usage: required
1118c2ecf20Sopenharmony_ci	Value type: <prop-encoded-array>
1128c2ecf20Sopenharmony_ci	Definition: A standard property.  Specifies the physical address and
1138c2ecf20Sopenharmony_ci		length of the SRIO configuration registers for message units
1148c2ecf20Sopenharmony_ci		and doorbell units.
1158c2ecf20Sopenharmony_ci
1168c2ecf20Sopenharmony_ci   - interrupts
1178c2ecf20Sopenharmony_ci	Usage: required
1188c2ecf20Sopenharmony_ci	Value type: <prop_encoded-array>
1198c2ecf20Sopenharmony_ci	Definition:  Specifies the interrupts generated by this device.  The
1208c2ecf20Sopenharmony_ci		value of the interrupts property consists of one interrupt
1218c2ecf20Sopenharmony_ci		specifier. The format of the specifier is defined by the
1228c2ecf20Sopenharmony_ci		binding document describing the node's interrupt parent.
1238c2ecf20Sopenharmony_ci
1248c2ecf20Sopenharmony_ci		A single IRQ that handles port-write conditions is
1258c2ecf20Sopenharmony_ci		specified by this property.  (Typically shared with error).
1268c2ecf20Sopenharmony_ci
1278c2ecf20Sopenharmony_ci   Note: All other standard properties (see the Devicetree Specification)
1288c2ecf20Sopenharmony_ci   are allowed but are optional.
1298c2ecf20Sopenharmony_ci
1308c2ecf20Sopenharmony_ciExample:
1318c2ecf20Sopenharmony_ci	rmu: rmu@d3000 {
1328c2ecf20Sopenharmony_ci		compatible = "fsl,srio-rmu";
1338c2ecf20Sopenharmony_ci		reg = <0xd3000 0x400>;
1348c2ecf20Sopenharmony_ci		ranges = <0x0 0xd3000 0x400>;
1358c2ecf20Sopenharmony_ci		fsl,liodn = <0xc8>;
1368c2ecf20Sopenharmony_ci
1378c2ecf20Sopenharmony_ci		message-unit@0 {
1388c2ecf20Sopenharmony_ci			compatible = "fsl,srio-msg-unit";
1398c2ecf20Sopenharmony_ci			reg = <0x0 0x100>;
1408c2ecf20Sopenharmony_ci			interrupts = <
1418c2ecf20Sopenharmony_ci				60 2 0 0  /* msg1_tx_irq */
1428c2ecf20Sopenharmony_ci				61 2 0 0>;/* msg1_rx_irq */
1438c2ecf20Sopenharmony_ci		};
1448c2ecf20Sopenharmony_ci		message-unit@100 {
1458c2ecf20Sopenharmony_ci			compatible = "fsl,srio-msg-unit";
1468c2ecf20Sopenharmony_ci			reg = <0x100 0x100>;
1478c2ecf20Sopenharmony_ci			interrupts = <
1488c2ecf20Sopenharmony_ci				62 2 0 0  /* msg2_tx_irq */
1498c2ecf20Sopenharmony_ci				63 2 0 0>;/* msg2_rx_irq */
1508c2ecf20Sopenharmony_ci		};
1518c2ecf20Sopenharmony_ci		doorbell-unit@400 {
1528c2ecf20Sopenharmony_ci			compatible = "fsl,srio-dbell-unit";
1538c2ecf20Sopenharmony_ci			reg = <0x400 0x80>;
1548c2ecf20Sopenharmony_ci			interrupts = <
1558c2ecf20Sopenharmony_ci				56 2 0 0  /* bell_outb_irq */
1568c2ecf20Sopenharmony_ci				57 2 0 0>;/* bell_inb_irq */
1578c2ecf20Sopenharmony_ci		};
1588c2ecf20Sopenharmony_ci		port-write-unit@4e0 {
1598c2ecf20Sopenharmony_ci			compatible = "fsl,srio-port-write-unit";
1608c2ecf20Sopenharmony_ci			reg = <0x4e0 0x20>;
1618c2ecf20Sopenharmony_ci			interrupts = <16 2 1 11>;
1628c2ecf20Sopenharmony_ci		};
1638c2ecf20Sopenharmony_ci	};
164