mirror of
https://github.com/torvalds/linux.git
synced 2024-12-27 13:22:23 +00:00
86 lines
2.8 KiB
Plaintext
86 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:
|
||
|
- device_type: shall be "network".
|
||
|
- 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: 6 bytes MAC address.
|
||
|
|
||
|
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: phandle reference to ethernet PHY.
|
||
|
|
||
|
or
|
||
|
|
||
|
- speed: port speed if no PHY connected.
|
||
|
- duplex: port mode if no PHY connected.
|
||
|
|
||
|
* Node example:
|
||
|
|
||
|
mdio-bus {
|
||
|
...
|
||
|
ethphy: ethernet-phy@8 {
|
||
|
device_type = "ethernet-phy";
|
||
|
...
|
||
|
};
|
||
|
};
|
||
|
|
||
|
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 {
|
||
|
device_type = "network";
|
||
|
compatible = "marvell,orion-eth-port";
|
||
|
reg = <0>;
|
||
|
interrupts = <29>;
|
||
|
phy-handle = <ðphy>;
|
||
|
local-mac-address = [00 00 00 00 00 00];
|
||
|
};
|
||
|
};
|