xref: /openbmc/linux/Documentation/devicetree/bindings/powerpc/fsl/srio-rmu.txt (revision c25141062a82ae8bddced1b3ce2b57a1c0efabe0)
191610d83SLiu GangMessage unit node:
291610d83SLiu Gang
391610d83SLiu GangFor SRIO controllers that implement the message unit as part of the controller
491610d83SLiu Gangthis node is required.  For devices with RMAN this node should NOT exist.  The
591610d83SLiu Gangnode is composed of three types of sub-nodes ("fsl-srio-msg-unit",
691610d83SLiu Gang"fsl-srio-dbell-unit" and "fsl-srio-port-write-unit").
791610d83SLiu Gang
891610d83SLiu GangSee srio.txt for more details about generic SRIO controller details.
991610d83SLiu Gang
1091610d83SLiu Gang   - compatible
1191610d83SLiu Gang	Usage: required
1291610d83SLiu Gang	Value type: <string>
1391610d83SLiu Gang	Definition: Must include "fsl,srio-rmu-vX.Y", "fsl,srio-rmu".
1491610d83SLiu Gang
1591610d83SLiu Gang	The version X.Y should match the general SRIO controller's IP Block
1691610d83SLiu Gang	revision register's Major(X) and Minor (Y) value.
1791610d83SLiu Gang
1891610d83SLiu Gang   - reg
1991610d83SLiu Gang	Usage: required
2091610d83SLiu Gang	Value type: <prop-encoded-array>
2191610d83SLiu Gang	Definition: A standard property.  Specifies the physical address and
2291610d83SLiu Gang		length of the SRIO configuration registers for message units
2391610d83SLiu Gang		and doorbell units.
2491610d83SLiu Gang
2591610d83SLiu Gang   - fsl,liodn
2691610d83SLiu Gang	Usage: optional-but-recommended (for devices with PAMU)
2791610d83SLiu Gang	Value type: <prop-encoded-array>
2891610d83SLiu Gang	Definition: The logical I/O device number for the PAMU (IOMMU) to be
2991610d83SLiu Gang		correctly configured for SRIO accesses.  The property should
3091610d83SLiu Gang		not exist on devices that do not support PAMU.
3191610d83SLiu Gang
3291610d83SLiu Gang		The LIODN value is associated with all RMU transactions
3391610d83SLiu Gang		(msg-unit, doorbell, port-write).
3491610d83SLiu Gang
3591610d83SLiu GangSub-Nodes for RMU:  The RMU node is composed of multiple sub-nodes that
3691610d83SLiu Gangcorrespond to the actual sub-controllers in the RMU.  The manual for a given
3791610d83SLiu GangSoC will detail which and how many of these sub-controllers are implemented.
3891610d83SLiu Gang
3991610d83SLiu GangMessage Unit:
4091610d83SLiu Gang
4191610d83SLiu Gang   - compatible
4291610d83SLiu Gang	Usage: required
4391610d83SLiu Gang	Value type: <string>
4491610d83SLiu Gang	Definition: Must include "fsl,srio-msg-unit-vX.Y", "fsl,srio-msg-unit".
4591610d83SLiu Gang
4691610d83SLiu Gang	The version X.Y should match the general SRIO controller's IP Block
4791610d83SLiu Gang	revision register's Major(X) and Minor (Y) value.
4891610d83SLiu Gang
4991610d83SLiu Gang   - reg
5091610d83SLiu Gang	Usage: required
5191610d83SLiu Gang	Value type: <prop-encoded-array>
5291610d83SLiu Gang	Definition: A standard property.  Specifies the physical address and
5391610d83SLiu Gang		length of the SRIO configuration registers for message units
5491610d83SLiu Gang		and doorbell units.
5591610d83SLiu Gang
5691610d83SLiu Gang   - interrupts
5791610d83SLiu Gang	Usage: required
5891610d83SLiu Gang	Value type: <prop_encoded-array>
5991610d83SLiu Gang	Definition:  Specifies the interrupts generated by this device.  The
6091610d83SLiu Gang		value of the interrupts property consists of one interrupt
6191610d83SLiu Gang		specifier. The format of the specifier is defined by the
6291610d83SLiu Gang		binding document describing the node's interrupt parent.
6391610d83SLiu Gang
6491610d83SLiu Gang		A pair of IRQs are specified in this property.  The first
6591610d83SLiu Gang		element is associated with the transmit (TX) interrupt and the
6691610d83SLiu Gang		second element is associated with the receive (RX) interrupt.
6791610d83SLiu Gang
6891610d83SLiu GangDoorbell Unit:
6991610d83SLiu Gang
7091610d83SLiu Gang   - compatible
7191610d83SLiu Gang	Usage: required
7291610d83SLiu Gang	Value type: <string>
7391610d83SLiu Gang	Definition: Must include:
7491610d83SLiu Gang		"fsl,srio-dbell-unit-vX.Y", "fsl,srio-dbell-unit"
7591610d83SLiu Gang
7691610d83SLiu Gang	The version X.Y should match the general SRIO controller's IP Block
7791610d83SLiu Gang	revision register's Major(X) and Minor (Y) value.
7891610d83SLiu Gang
7991610d83SLiu Gang   - reg
8091610d83SLiu Gang	Usage: required
8191610d83SLiu Gang	Value type: <prop-encoded-array>
8291610d83SLiu Gang	Definition: A standard property.  Specifies the physical address and
8391610d83SLiu Gang		length of the SRIO configuration registers for message units
8491610d83SLiu Gang		and doorbell units.
8591610d83SLiu Gang
8691610d83SLiu Gang   - interrupts
8791610d83SLiu Gang	Usage: required
8891610d83SLiu Gang	Value type: <prop_encoded-array>
8991610d83SLiu Gang	Definition:  Specifies the interrupts generated by this device.  The
9091610d83SLiu Gang		value of the interrupts property consists of one interrupt
9191610d83SLiu Gang		specifier. The format of the specifier is defined by the
9291610d83SLiu Gang		binding document describing the node's interrupt parent.
9391610d83SLiu Gang
9491610d83SLiu Gang		A pair of IRQs are specified in this property.  The first
9591610d83SLiu Gang		element is associated with the transmit (TX) interrupt and the
9691610d83SLiu Gang		second element is associated with the receive (RX) interrupt.
9791610d83SLiu Gang
9891610d83SLiu GangPort-Write Unit:
9991610d83SLiu Gang
10091610d83SLiu Gang   - compatible
10191610d83SLiu Gang	Usage: required
10291610d83SLiu Gang	Value type: <string>
10391610d83SLiu Gang	Definition: Must include:
10491610d83SLiu Gang		 "fsl,srio-port-write-unit-vX.Y", "fsl,srio-port-write-unit"
10591610d83SLiu Gang
10691610d83SLiu Gang	The version X.Y should match the general SRIO controller's IP Block
10791610d83SLiu Gang	revision register's Major(X) and Minor (Y) value.
10891610d83SLiu Gang
10991610d83SLiu Gang   - reg
11091610d83SLiu Gang	Usage: required
11191610d83SLiu Gang	Value type: <prop-encoded-array>
11291610d83SLiu Gang	Definition: A standard property.  Specifies the physical address and
11391610d83SLiu Gang		length of the SRIO configuration registers for message units
11491610d83SLiu Gang		and doorbell units.
11591610d83SLiu Gang
11691610d83SLiu Gang   - interrupts
11791610d83SLiu Gang	Usage: required
11891610d83SLiu Gang	Value type: <prop_encoded-array>
11991610d83SLiu Gang	Definition:  Specifies the interrupts generated by this device.  The
12091610d83SLiu Gang		value of the interrupts property consists of one interrupt
12191610d83SLiu Gang		specifier. The format of the specifier is defined by the
12291610d83SLiu Gang		binding document describing the node's interrupt parent.
12391610d83SLiu Gang
12491610d83SLiu Gang		A single IRQ that handles port-write conditions is
12591610d83SLiu Gang		specified by this property.  (Typically shared with error).
12691610d83SLiu Gang
127*076fb0c4SFrank Rowand   Note: All other standard properties (see the Devicetree Specification)
128*076fb0c4SFrank Rowand   are allowed but are optional.
12991610d83SLiu Gang
13091610d83SLiu GangExample:
13191610d83SLiu Gang	rmu: rmu@d3000 {
13291610d83SLiu Gang		compatible = "fsl,srio-rmu";
13391610d83SLiu Gang		reg = <0xd3000 0x400>;
13491610d83SLiu Gang		ranges = <0x0 0xd3000 0x400>;
13591610d83SLiu Gang		fsl,liodn = <0xc8>;
13691610d83SLiu Gang
13791610d83SLiu Gang		message-unit@0 {
13891610d83SLiu Gang			compatible = "fsl,srio-msg-unit";
13991610d83SLiu Gang			reg = <0x0 0x100>;
14091610d83SLiu Gang			interrupts = <
14191610d83SLiu Gang				60 2 0 0  /* msg1_tx_irq */
14291610d83SLiu Gang				61 2 0 0>;/* msg1_rx_irq */
14391610d83SLiu Gang		};
14491610d83SLiu Gang		message-unit@100 {
14591610d83SLiu Gang			compatible = "fsl,srio-msg-unit";
14691610d83SLiu Gang			reg = <0x100 0x100>;
14791610d83SLiu Gang			interrupts = <
14891610d83SLiu Gang				62 2 0 0  /* msg2_tx_irq */
14991610d83SLiu Gang				63 2 0 0>;/* msg2_rx_irq */
15091610d83SLiu Gang		};
15191610d83SLiu Gang		doorbell-unit@400 {
15291610d83SLiu Gang			compatible = "fsl,srio-dbell-unit";
15391610d83SLiu Gang			reg = <0x400 0x80>;
15491610d83SLiu Gang			interrupts = <
15591610d83SLiu Gang				56 2 0 0  /* bell_outb_irq */
15691610d83SLiu Gang				57 2 0 0>;/* bell_inb_irq */
15791610d83SLiu Gang		};
15891610d83SLiu Gang		port-write-unit@4e0 {
15991610d83SLiu Gang			compatible = "fsl,srio-port-write-unit";
16091610d83SLiu Gang			reg = <0x4e0 0x20>;
16191610d83SLiu Gang			interrupts = <16 2 1 11>;
16291610d83SLiu Gang		};
16391610d83SLiu Gang	};
164