* Broadcom BCM7xxx Ethernet Controller (GENET)

Required properties:
- compatible: should contain one of "brcm,genet-v1", "brcm,genet-v2",
  "brcm,genet-v3", "brcm,genet-v4", "brcm,genet-v5", "brcm,bcm2711-genet-v5".
- reg: address and length of the register set for the device
- interrupts and/or interrupts-extended: must be two cells, the first cell
  is the general purpose interrupt line, while the second cell is the
  interrupt for the ring RX and TX queues operating in ring mode.  An
  optional third interrupt cell for Wake-on-LAN can be specified.
  See Documentation/devicetree/bindings/interrupt-controller/interrupts.txt
  for information on the property specifics.
- phy-mode: see ethernet.txt file in the same directory
- #address-cells: should be 1
- #size-cells: should be 1

Optional properties:
- clocks: When provided, must be two phandles to the functional clocks nodes
  of the GENET block. The first phandle is the main GENET clock used during
  normal operation, while the second phandle is the Wake-on-LAN clock.
- clock-names: When provided, names of the functional clock phandles, first
  name should be "enet" and second should be "enet-wol".

- phy-handle: See ethernet.txt file in the same directory; used to describe
  configurations where a PHY (internal or external) is used.

- fixed-link: When the GENET interface is connected to a MoCA hardware block or
  when operating in a RGMII to RGMII type of connection, or when the MDIO bus is
  voluntarily disabled, this property should be used to describe the "fixed link".
  See Documentation/devicetree/bindings/net/fixed-link.txt for information on
  the property specifics

Required child nodes:

- mdio bus node: this node should always be present regardless of the PHY
  configuration of the GENET instance

MDIO bus node required properties:

- compatible: should contain one of "brcm,genet-mdio-v1", "brcm,genet-mdio-v2"
  "brcm,genet-mdio-v3", "brcm,genet-mdio-v4", "brcm,genet-mdio-v5", the version
  has to match the parent node compatible property (e.g: brcm,genet-v4 pairs
  with brcm,genet-mdio-v4)
- reg: address and length relative to the parent node base register address
- #address-cells: address cell for MDIO bus addressing, should be 1
- #size-cells: size of the cells for MDIO bus addressing, should be 0

Ethernet PHY node properties:

See Documentation/devicetree/bindings/net/phy.txt for the list of required and
optional properties.

Internal Gigabit PHY example:

ethernet@f0b60000 {
	phy-mode = "internal";
	phy-handle = <&phy1>;
	mac-address = [ 00 10 18 36 23 1a ];
	compatible = "brcm,genet-v4";
	#address-cells = <0x1>;
	#size-cells = <0x1>;
	reg = <0xf0b60000 0xfc4c>;
	interrupts = <0x0 0x14 0x0>, <0x0 0x15 0x0>;

	mdio@e14 {
		compatible = "brcm,genet-mdio-v4";
		#address-cells = <0x1>;
		#size-cells = <0x0>;
		reg = <0xe14 0x8>;

		phy1: ethernet-phy@1 {
			max-speed = <1000>;
			reg = <0x1>;
			compatible = "ethernet-phy-ieee802.3-c22";
		};
	};
};

MoCA interface / MAC to MAC example:

ethernet@f0b80000 {
	phy-mode = "moca";
	fixed-link = <1 0 1000 0 0>;
	mac-address = [ 00 10 18 36 24 1a ];
	compatible = "brcm,genet-v4";
	#address-cells = <0x1>;
	#size-cells = <0x1>;
	reg = <0xf0b80000 0xfc4c>;
	interrupts = <0x0 0x16 0x0>, <0x0 0x17 0x0>;

	mdio@e14 {
		compatible = "brcm,genet-mdio-v4";
		#address-cells = <0x1>;
		#size-cells = <0x0>;
		reg = <0xe14 0x8>;
	};
};


External MDIO-connected Gigabit PHY/switch:

ethernet@f0ba0000 {
	phy-mode = "rgmii";
	phy-handle = <&phy0>;
	mac-address = [ 00 10 18 36 26 1a ];
	compatible = "brcm,genet-v4";
	#address-cells = <0x1>;
	#size-cells = <0x1>;
	reg = <0xf0ba0000 0xfc4c>;
	interrupts = <0x0 0x18 0x0>, <0x0 0x19 0x0>;

	mdio@e14 {
		compatible = "brcm,genet-mdio-v4";
		#address-cells = <0x1>;
		#size-cells = <0x0>;
		reg = <0xe14 0x8>;

		phy0: ethernet-phy@0 {
			max-speed = <1000>;
			reg = <0x0>;
			compatible = "ethernet-phy-ieee802.3-c22";
		};
	};
};
