Marvell DSA Switch Device Tree Bindings
---------------------------------------

WARNING: This binding is currently unstable. Do not program it into a
FLASH never to be changed again. Once this binding is stable, this
warning will be removed.

If you need a stable binding, use the old dsa.txt binding.

Marvell Switches are MDIO devices. The following properties should be
placed as a child node of an mdio device.

The properties described here are those specific to Marvell devices.
Additional required and optional properties can be found in dsa.txt.

The compatibility string is used only to find an identification register,
which is at a different MDIO base address in different switch families.
- "marvell,mv88e6085"	: Switch has base address 0x10. Use with models:
			  6085, 6095, 6097, 6123, 6131, 6141, 6161, 6165,
			  6171, 6172, 6175, 6176, 6185, 6240, 6320, 6321,
			  6341, 6350, 6351, 6352
- "marvell,mv88e6190"	: Switch has base address 0x00. Use with models:
			  6190, 6190X, 6191, 6290, 6390, 6390X
- "marvell,mv88e6250"	: Switch has base address 0x08 or 0x18. Use with model:
			  6220, 6250

Required properties:
- compatible		: Should be one of "marvell,mv88e6085",
			  "marvell,mv88e6190" or "marvell,mv88e6250" as
			  indicated above
- reg			: Address on the MII bus for the switch.

Optional properties:

- reset-gpios		: Should be a gpio specifier for a reset line
- interrupts		: Interrupt from the switch
- interrupt-controller	: Indicates the switch is itself an interrupt
			  controller. This is used for the PHY interrupts.
#interrupt-cells = <2>	: Controller uses two cells, number and flag
- eeprom-length		: Set to the length of an EEPROM connected to the
			  switch. Must be set if the switch can not detect
			  the presence and/or size of a connected EEPROM,
			  otherwise optional.
- mdio			: Container of PHY and devices on the switches MDIO
			  bus.
- mdio?		: Container of PHYs and devices on the external MDIO
			  bus. The node must contains a compatible string of
			  "marvell,mv88e6xxx-mdio-external"

Example:

	mdio {
		#address-cells = <1>;
		#size-cells = <0>;
		interrupt-parent = <&gpio0>;
		interrupts = <27 IRQ_TYPE_LEVEL_LOW>;
		interrupt-controller;
		#interrupt-cells = <2>;

		switch0: switch@0 {
			compatible = "marvell,mv88e6085";
			reg = <0>;
			reset-gpios = <&gpio5 1 GPIO_ACTIVE_LOW>;

			mdio {
				#address-cells = <1>;
				#size-cells = <0>;
				switch1phy0: switch1phy0@0 {
					reg = <0>;
					interrupt-parent = <&switch0>;
					interrupts = <0 IRQ_TYPE_LEVEL_HIGH>;
				};
			};
		};
	};

	mdio {
		#address-cells = <1>;
		#size-cells = <0>;
		interrupt-parent = <&gpio0>;
		interrupts = <27 IRQ_TYPE_LEVEL_LOW>;
		interrupt-controller;
		#interrupt-cells = <2>;

		switch0: switch@0 {
			compatible = "marvell,mv88e6390";
			reg = <0>;
			reset-gpios = <&gpio5 1 GPIO_ACTIVE_LOW>;

			mdio {
				#address-cells = <1>;
				#size-cells = <0>;
				switch1phy0: switch1phy0@0 {
					reg = <0>;
					interrupt-parent = <&switch0>;
					interrupts = <0 IRQ_TYPE_LEVEL_HIGH>;
				};
			};

			mdio1 {
				compatible = "marvell,mv88e6xxx-mdio-external";
				#address-cells = <1>;
				#size-cells = <0>;
				switch1phy9: switch1phy0@9 {
					reg = <9>;
				};
			};
		};
	};
