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