84 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			84 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
Marvell Orion/Discovery ethernet controller
 | 
						|
=============================================
 | 
						|
 | 
						|
The Marvell Discovery ethernet controller can be found on Marvell Orion SoCs
 | 
						|
(Kirkwood, Dove, Orion5x, and Discovery Innovation) and as part of Marvell
 | 
						|
Discovery system controller chips (mv64[345]60).
 | 
						|
 | 
						|
The Discovery ethernet controller is described with two levels of nodes. The
 | 
						|
first level describes the ethernet controller itself and the second level
 | 
						|
describes up to 3 ethernet port nodes within that controller. The reason for
 | 
						|
the multiple levels is that the port registers are interleaved within a single
 | 
						|
set of controller registers. Each port node describes port-specific properties.
 | 
						|
 | 
						|
Note: The above separation is only true for Discovery system controllers.
 | 
						|
For Orion SoCs we stick to the separation, although there each controller has
 | 
						|
only one port associated. Multiple ports are implemented as multiple single-port
 | 
						|
controllers. As Kirkwood has some issues with proper initialization after reset,
 | 
						|
an extra compatible string is added for it.
 | 
						|
 | 
						|
* Ethernet controller node
 | 
						|
 | 
						|
Required controller properties:
 | 
						|
 - #address-cells: shall be 1.
 | 
						|
 - #size-cells: shall be 0.
 | 
						|
 - compatible: shall be one of "marvell,orion-eth", "marvell,kirkwood-eth".
 | 
						|
 - reg: address and length of the controller registers.
 | 
						|
 | 
						|
Optional controller properties:
 | 
						|
 - clocks: phandle reference to the controller clock.
 | 
						|
 - marvell,tx-checksum-limit: max tx packet size for hardware checksum.
 | 
						|
 | 
						|
* Ethernet port node
 | 
						|
 | 
						|
Required port properties:
 | 
						|
 - compatible: shall be one of "marvell,orion-eth-port",
 | 
						|
      "marvell,kirkwood-eth-port".
 | 
						|
 - reg: port number relative to ethernet controller, shall be 0, 1, or 2.
 | 
						|
 - interrupts: port interrupt.
 | 
						|
 - local-mac-address: See ethernet.txt file in the same directory.
 | 
						|
 | 
						|
Optional port properties:
 | 
						|
 - marvell,tx-queue-size: size of the transmit ring buffer.
 | 
						|
 - marvell,tx-sram-addr: address of transmit descriptor buffer located in SRAM.
 | 
						|
 - marvell,tx-sram-size: size of transmit descriptor buffer located in SRAM.
 | 
						|
 - marvell,rx-queue-size: size of the receive ring buffer.
 | 
						|
 - marvell,rx-sram-addr: address of receive descriptor buffer located in SRAM.
 | 
						|
 - marvell,rx-sram-size: size of receive descriptor buffer located in SRAM.
 | 
						|
 | 
						|
and
 | 
						|
 | 
						|
 - phy-handle: See ethernet.txt file in the same directory.
 | 
						|
 - phy-mode: See ethernet.txt file in the same directory.
 | 
						|
 | 
						|
or
 | 
						|
 | 
						|
 - speed: port speed if no PHY connected.
 | 
						|
 - duplex: port mode if no PHY connected.
 | 
						|
 | 
						|
* Node example:
 | 
						|
 | 
						|
mdio-bus {
 | 
						|
	...
 | 
						|
	ethphy: ethernet-phy@8 {
 | 
						|
		...
 | 
						|
	};
 | 
						|
};
 | 
						|
 | 
						|
eth: ethernet-controller@72000 {
 | 
						|
	compatible = "marvell,orion-eth";
 | 
						|
	#address-cells = <1>;
 | 
						|
	#size-cells = <0>;
 | 
						|
	reg = <0x72000 0x2000>;
 | 
						|
	clocks = <&gate_clk 2>;
 | 
						|
	marvell,tx-checksum-limit = <1600>;
 | 
						|
 | 
						|
	ethernet@0 {
 | 
						|
		compatible = "marvell,orion-eth-port";
 | 
						|
		reg = <0>;
 | 
						|
		interrupts = <29>;
 | 
						|
		phy-handle = <ðphy>;
 | 
						|
		local-mac-address = [00 00 00 00 00 00];
 | 
						|
	};
 | 
						|
};
 |