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];
 | |
| 	};
 | |
| };
 | 
