=================================================================================
Freescale RapidIO Message Manager Device Bindings
Copyright 2015 Freescale Semiconductor Inc.

CONTENTS
  - RMan Node
  - RMan Inbound Block Node
  - RMan Global CFG Node
  - Example

NOTE: The bindings described in this document are preliminary and subject to
change.

=================================================================================
RMan Node

DESCRIPTION

The RapidIO message manager (RMan) supports a message passing programming model
for inter-processor and inter-device communication. Due to the fact RMan has
multiple inbound blocks, the RMan node will have child nodes for each block.
The RMan's revision information can be get from IPBRRO and IPBRR1 registers.

PROPERTIES

  - compatible
	Usage: required
	Value type: <string>
	Definition: Must include "fsl,rman".
	Definition: Must include "fsl,rman" for IP blocks with IP Block
	Revision Register (SRIO IPBRR1) Major ID equal to 0x0a20.

	Optionally, a compatiable string of "fsl,rman-vX.Y" where X is Major
	version in IP Block Revision Register and Y is Minor version.  If this
	compatiable is provided it should be ordered before "fsl,rman".

  - #address-cells
	Usage: required
	Value type: <u32>
	Definition: A standard property. Defines the number of cells for
		representing physical addresses in child nodes. Must have a
		value of 1.

  - #size-cells
	Usage: required
	Value type: <u32>
	Definition: A standard property. Defines the number of cells for
		representing the size of physical addresses in child nodes.
		Must have a value of 1.

  - reg
	Usage: required
	Value type: <prop-encoded-array>
	Definition: A standard property. Specifies the physical address and
		length of the RMan configuration registers within the CCSR
		address space.

  - ranges
	Usage: required
	Value type: <prop-encoded-array>
	Definition: A standard property. Specifies the physical address and=
		length of the RMan memory space.

  - interrupts:
	Usage: required
	Value type: <prop-encoded-array>
	Definition: Interrupt mapping for RMAN error IRQ.

  - fsl,qman-channels-id
	Usage: required
	Value type: <prop-encoded-array>
	Definition: This property represents the ID value for the specific QMan
		dequeue channel(s) asssociate with RMan.  Typically there is a
		dequeue channel per RapidIO port.

=================================================================================
RMan Inbound Block Node

DESCRIPTION

RMan has multiple inbound blocks. Each inbound block has eight classification
units.

PROPERTIES

  - compatible
	Usage: required
	Value type: <string>
	Definition: A standard property. Must include "fsl,rman-inbound-block".

  - reg
	Usage: required
	Value type: <prop-encoded-array>
	Definition: A standard property. Specifies the physical address offset
		and length of the RMan inbound block configuration registers
		within the RMan node's address space.

  - fsl,liodn
	Usage: see definition
	Value type: <u32>
	Definition: The logical I/O device number (LIODN) for this device.  The
		LIODN is a number expressed by this device and used to perform
		look-ups in the IOMMU (PAMU) address table when performing DMAs.
		This property is required if the PAMU is enabled.

Example

inbound-block@0 {
	fsl,liodn = <203>;
	compatible = "fsl,rman-inbound-block";
	reg = <0x0 0x800>;
};

=================================================================================
RMan Global CFG Node

DESCRIPTION

This node describes the RMan global registers located within the first 4K bytes
resource block.

PROPERTIES

  - compatible
	Usage: required
	Value type: <string>
	Definition: A standard property.  Must include "fsl,rman-global-cfg".

  - reg
	Usage: required
	Value type: <prop-encoded-array>
	Definition: A standard property. Specifies the physical address offset
		and length of the RMan global configuration registers within the
		RMan node's address space.

Example

global-cfg@b00 {
	compatible = "fsl,rman-global-cfg";
	reg = <0xb00 0x500>;
};

=================================================================================
Example

rman: rman@1e0000 {
	compatible = "fsl,rman";
	#address-cells = <1>;
	#size-cells = <1>;
	ranges = <0x0 0x1e0000 0x20000>;
	reg = <0x1e0000 0x20000>;
	interrupts = <16 2 1 11>; /* err_irq */
	fsl,qman-channels-id = <0x62 0x63>;
	inbound-block@0 {
		fsl,liodn = <203>;
		compatible = "fsl,rman-inbound-block";
		reg = <0x0 0x800>;
	};
	global-cfg@b00 {
		compatible = "fsl,rman-global-cfg";
		reg = <0xb00 0x500>;
	};
	inbound-block@1000 {
		fsl,liodn = <204>;
		compatible = "fsl,rman-inbound-block";
		reg = <0x1000 0x800>;
	};
	inbound-block@2000 {
		fsl,liodn = <205>;
		compatible = "fsl,rman-inbound-block";
		reg = <0x2000 0x800>;
	};
	inbound-block@3000 {
		fsl,liodn = <206>;
		compatible = "fsl,rman-inbound-block";
		reg = <0x3000 0x800>;
	};
};
