2012-11-13 00:03:47 +08:00
|
|
|
* Marvell MDIO Ethernet Controller interface
|
|
|
|
|
|
|
|
The Ethernet controllers of the Marvel Kirkwood, Dove, Orion5x,
|
2017-06-15 22:43:25 +08:00
|
|
|
MV78xx0, Armada 370, Armada XP, Armada 7k and Armada 8k have an
|
|
|
|
identical unit that provides an interface with the MDIO bus.
|
|
|
|
Additionally, Armada 7k and Armada 8k has a second unit which
|
|
|
|
provides an interface with the xMDIO bus. This driver handles
|
|
|
|
these interfaces.
|
2012-11-13 00:03:47 +08:00
|
|
|
|
|
|
|
Required properties:
|
2017-06-15 22:43:25 +08:00
|
|
|
- compatible: "marvell,orion-mdio" or "marvell,xmdio"
|
2017-04-10 23:28:15 +08:00
|
|
|
- reg: address and length of the MDIO registers. When an interrupt is
|
|
|
|
not present, the length is the size of the SMI register (4 bytes)
|
|
|
|
otherwise it must be 0x84 bytes to cover the interrupt control
|
|
|
|
registers.
|
2012-11-13 00:03:47 +08:00
|
|
|
|
2013-03-22 11:39:27 +08:00
|
|
|
Optional properties:
|
|
|
|
- interrupts: interrupt line number for the SMI error/done interrupt
|
2017-04-10 23:28:25 +08:00
|
|
|
- clocks: phandle for up to three required clocks for the MDIO instance
|
2013-03-22 11:39:27 +08:00
|
|
|
|
2012-11-13 00:03:47 +08:00
|
|
|
The child nodes of the MDIO driver are the individual PHY devices
|
|
|
|
connected to this MDIO bus. They must have a "reg" property given the
|
|
|
|
PHY address on the MDIO bus.
|
|
|
|
|
2017-04-10 23:28:15 +08:00
|
|
|
Example at the SoC level without an interrupt property:
|
2012-11-13 00:03:47 +08:00
|
|
|
|
|
|
|
mdio {
|
|
|
|
#address-cells = <1>;
|
|
|
|
#size-cells = <0>;
|
|
|
|
compatible = "marvell,orion-mdio";
|
|
|
|
reg = <0xd0072004 0x4>;
|
|
|
|
};
|
|
|
|
|
2017-04-10 23:28:15 +08:00
|
|
|
Example with an interrupt property:
|
|
|
|
|
|
|
|
mdio {
|
|
|
|
#address-cells = <1>;
|
|
|
|
#size-cells = <0>;
|
|
|
|
compatible = "marvell,orion-mdio";
|
|
|
|
reg = <0xd0072004 0x84>;
|
|
|
|
interrupts = <30>;
|
|
|
|
};
|
|
|
|
|
2012-11-13 00:03:47 +08:00
|
|
|
And at the board level:
|
|
|
|
|
|
|
|
mdio {
|
|
|
|
phy0: ethernet-phy@0 {
|
|
|
|
reg = <0>;
|
|
|
|
};
|
|
|
|
|
|
|
|
phy1: ethernet-phy@1 {
|
|
|
|
reg = <1>;
|
|
|
|
};
|
|
|
|
}
|