mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-11-01 00:48:50 +00:00
fd33b2447b
The MAC is capable of RGMII mode and that is probably a more typical connection type than GMII today (eg it is used by Marvell Reference designs for several SOCs). Let DT users specify the standard phy-connection-type = "rgmii-id"; On a phy node. Signed-off-by: Jason Gunthorpe <jgunthorpe@obsidianresearch.com> Reviewed-by: Florian Fainelli <f.fainelli@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
83 lines
2.8 KiB
Text
83 lines
2.8 KiB
Text
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];
|
|
};
|
|
};
|