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