68 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			68 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
* Freescale Communications Processor Module
 | 
						|
 | 
						|
NOTE: This is an interim binding, and will likely change slightly,
 | 
						|
as more devices are supported.  The QE bindings especially are
 | 
						|
incomplete.
 | 
						|
 | 
						|
* Root CPM node
 | 
						|
 | 
						|
Properties:
 | 
						|
- compatible : "fsl,cpm1", "fsl,cpm2", or "fsl,qe".
 | 
						|
- reg : A 48-byte region beginning with CPCR.
 | 
						|
 | 
						|
Example:
 | 
						|
     cpm@119c0 {
 | 
						|
	#address-cells = <1>;
 | 
						|
	#size-cells = <1>;
 | 
						|
	#interrupt-cells = <2>;
 | 
						|
	compatible = "fsl,mpc8272-cpm", "fsl,cpm2";
 | 
						|
	reg = <119c0 30>;
 | 
						|
     }
 | 
						|
 | 
						|
* Properties common to multiple CPM/QE devices
 | 
						|
 | 
						|
- fsl,cpm-command : This value is ORed with the opcode and command flag
 | 
						|
                    to specify the device on which a CPM command operates.
 | 
						|
 | 
						|
- fsl,cpm-brg : Indicates which baud rate generator the device
 | 
						|
                is associated with.  If absent, an unused BRG
 | 
						|
                should be dynamically allocated.  If zero, the
 | 
						|
                device uses an external clock rather than a BRG.
 | 
						|
 | 
						|
- reg : Unless otherwise specified, the first resource represents the
 | 
						|
        scc/fcc/ucc registers, and the second represents the device's
 | 
						|
        parameter RAM region (if it has one).
 | 
						|
 | 
						|
* Multi-User RAM (MURAM)
 | 
						|
 | 
						|
The multi-user/dual-ported RAM is expressed as a bus under the CPM node.
 | 
						|
 | 
						|
Ranges must be set up subject to the following restrictions:
 | 
						|
 | 
						|
- Children's reg nodes must be offsets from the start of all muram, even
 | 
						|
  if the user-data area does not begin at zero.
 | 
						|
- If multiple range entries are used, the difference between the parent
 | 
						|
  address and the child address must be the same in all, so that a single
 | 
						|
  mapping can cover them all while maintaining the ability to determine
 | 
						|
  CPM-side offsets with pointer subtraction.  It is recommended that
 | 
						|
  multiple range entries not be used.
 | 
						|
- A child address of zero must be translatable, even if no reg resources
 | 
						|
  contain it.
 | 
						|
 | 
						|
A child "data" node must exist, compatible with "fsl,cpm-muram-data", to
 | 
						|
indicate the portion of muram that is usable by the OS for arbitrary
 | 
						|
purposes.  The data node may have an arbitrary number of reg resources,
 | 
						|
all of which contribute to the allocatable muram pool.
 | 
						|
 | 
						|
Example, based on mpc8272:
 | 
						|
	muram@0 {
 | 
						|
		#address-cells = <1>;
 | 
						|
		#size-cells = <1>;
 | 
						|
		ranges = <0 0 10000>;
 | 
						|
 | 
						|
		data@0 {
 | 
						|
			compatible = "fsl,cpm-muram-data";
 | 
						|
			reg = <0 2000 9800 800>;
 | 
						|
		};
 | 
						|
	};
 |