linux/Documentation/devicetree/bindings/net/marvell-orion-net.txt
<<
>>
Prefs
   1Marvell Orion/Discovery ethernet controller
   2=============================================
   3
   4The Marvell Discovery ethernet controller can be found on Marvell Orion SoCs
   5(Kirkwood, Dove, Orion5x, and Discovery Innovation) and as part of Marvell
   6Discovery system controller chips (mv64[345]60).
   7
   8The Discovery ethernet controller is described with two levels of nodes. The
   9first level describes the ethernet controller itself and the second level
  10describes up to 3 ethernet port nodes within that controller. The reason for
  11the multiple levels is that the port registers are interleaved within a single
  12set of controller registers. Each port node describes port-specific properties.
  13
  14Note: The above separation is only true for Discovery system controllers.
  15For Orion SoCs we stick to the separation, although there each controller has
  16only one port associated. Multiple ports are implemented as multiple single-port
  17controllers. As Kirkwood has some issues with proper initialization after reset,
  18an extra compatible string is added for it.
  19
  20* Ethernet controller node
  21
  22Required controller properties:
  23 - #address-cells: shall be 1.
  24 - #size-cells: shall be 0.
  25 - compatible: shall be one of "marvell,orion-eth", "marvell,kirkwood-eth".
  26 - reg: address and length of the controller registers.
  27
  28Optional controller properties:
  29 - clocks: phandle reference to the controller clock.
  30 - marvell,tx-checksum-limit: max tx packet size for hardware checksum.
  31
  32* Ethernet port node
  33
  34Required port properties:
  35 - device_type: shall be "network".
  36 - compatible: shall be one of "marvell,orion-eth-port",
  37      "marvell,kirkwood-eth-port".
  38 - reg: port number relative to ethernet controller, shall be 0, 1, or 2.
  39 - interrupts: port interrupt.
  40 - local-mac-address: 6 bytes MAC address.
  41
  42Optional port properties:
  43 - marvell,tx-queue-size: size of the transmit ring buffer.
  44 - marvell,tx-sram-addr: address of transmit descriptor buffer located in SRAM.
  45 - marvell,tx-sram-size: size of transmit descriptor buffer located in SRAM.
  46 - marvell,rx-queue-size: size of the receive ring buffer.
  47 - marvell,rx-sram-addr: address of receive descriptor buffer located in SRAM.
  48 - marvell,rx-sram-size: size of receive descriptor buffer located in SRAM.
  49
  50and
  51
  52 - phy-handle: phandle reference to ethernet PHY.
  53
  54or
  55
  56 - speed: port speed if no PHY connected.
  57 - duplex: port mode if no PHY connected.
  58
  59* Node example:
  60
  61mdio-bus {
  62        ...
  63        ethphy: ethernet-phy@8 {
  64                device_type = "ethernet-phy";
  65                ...
  66        };
  67};
  68
  69eth: ethernet-controller@72000 {
  70        compatible = "marvell,orion-eth";
  71        #address-cells = <1>;
  72        #size-cells = <0>;
  73        reg = <0x72000 0x2000>;
  74        clocks = <&gate_clk 2>;
  75        marvell,tx-checksum-limit = <1600>;
  76
  77        ethernet@0 {
  78                device_type = "network";
  79                compatible = "marvell,orion-eth-port";
  80                reg = <0>;
  81                interrupts = <29>;
  82                phy-handle = <&ethphy>;
  83                local-mac-address = [00 00 00 00 00 00];
  84        };
  85};
  86