aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRené Bürgel <r.buergel@unicontrol.de>2008-04-03 04:58:37 -0400
committerPaul Mackerras <paulus@samba.org>2008-04-03 07:11:12 -0400
commit8d813941b17626a7610342325be63435282bac02 (patch)
treebec234d73fde8109e2bdbdfd9ce7d86739e18004
parent115e1adca3b75a82f24da8b2cc9386eb5b7e2cff (diff)
[POWERPC] Fix MPC5200 (not B!) device tree so FEC ethernet works
This gets the FEC ethernet driver working again on the lite5200 platform. The FEC driver is also compatible with the MPC5200, not only with the MPC5200B, so this adds a suitable entry to the driver's match list. Furthermore this adds the settings for the PHY in the dts file for the Lite5200. Note, that this is not exactly the same as in the Lite5200B, because the PHY is located at f0003000:01 for the 5200, and at :00 for the 5200B. This was tested on a Lite5200 and a Lite5200B, both booted a kernel via tftp and mounted the root via nfs successfully. Signed-off-by: René Bürgel <r.buergel@unicontrol.de> Acked-by: Grant Likely <grant.likely@secretlab.ca> Signed-off-by: Paul Mackerras <paulus@samba.org>
-rw-r--r--arch/powerpc/boot/dts/lite5200.dts15
-rw-r--r--drivers/net/fec_mpc52xx.c1
-rw-r--r--drivers/net/fec_mpc52xx_phy.c1
3 files changed, 17 insertions, 0 deletions
diff --git a/arch/powerpc/boot/dts/lite5200.dts b/arch/powerpc/boot/dts/lite5200.dts
index 0d701c1bf539..09b4e16154d6 100644
--- a/arch/powerpc/boot/dts/lite5200.dts
+++ b/arch/powerpc/boot/dts/lite5200.dts
@@ -258,6 +258,21 @@
258 local-mac-address = [ 00 00 00 00 00 00 ]; 258 local-mac-address = [ 00 00 00 00 00 00 ];
259 interrupts = <2 5 0>; 259 interrupts = <2 5 0>;
260 interrupt-parent = <&mpc5200_pic>; 260 interrupt-parent = <&mpc5200_pic>;
261 phy-handle = <&phy0>;
262 };
263
264 mdio@3000 {
265 #address-cells = <1>;
266 #size-cells = <0>;
267 compatible = "fsl,mpc5200-mdio";
268 reg = <3000 400>; // fec range, since we need to setup fec interrupts
269 interrupts = <2 5 0>; // these are for "mii command finished", not link changes & co.
270 interrupt-parent = <&mpc5200_pic>;
271
272 phy0:ethernet-phy@1 {
273 device_type = "ethernet-phy";
274 reg = <1>;
275 };
261 }; 276 };
262 277
263 ata@3a00 { 278 ata@3a00 {
diff --git a/drivers/net/fec_mpc52xx.c b/drivers/net/fec_mpc52xx.c
index 58b71e60204e..fe59c27c09e3 100644
--- a/drivers/net/fec_mpc52xx.c
+++ b/drivers/net/fec_mpc52xx.c
@@ -1057,6 +1057,7 @@ static int mpc52xx_fec_of_resume(struct of_device *op)
1057#endif 1057#endif
1058 1058
1059static struct of_device_id mpc52xx_fec_match[] = { 1059static struct of_device_id mpc52xx_fec_match[] = {
1060 { .type = "network", .compatible = "fsl,mpc5200b-fec", },
1060 { .type = "network", .compatible = "fsl,mpc5200-fec", }, 1061 { .type = "network", .compatible = "fsl,mpc5200-fec", },
1061 { .type = "network", .compatible = "mpc5200-fec", }, 1062 { .type = "network", .compatible = "mpc5200-fec", },
1062 { } 1063 { }
diff --git a/drivers/net/fec_mpc52xx_phy.c b/drivers/net/fec_mpc52xx_phy.c
index 6a3ac4ea97e9..1d0cd1dd955e 100644
--- a/drivers/net/fec_mpc52xx_phy.c
+++ b/drivers/net/fec_mpc52xx_phy.c
@@ -179,6 +179,7 @@ static int mpc52xx_fec_mdio_remove(struct of_device *of)
179 179
180static struct of_device_id mpc52xx_fec_mdio_match[] = { 180static struct of_device_id mpc52xx_fec_mdio_match[] = {
181 { .compatible = "fsl,mpc5200b-mdio", }, 181 { .compatible = "fsl,mpc5200b-mdio", },
182 { .compatible = "fsl,mpc5200-mdio", },
182 { .compatible = "mpc5200b-fec-phy", }, 183 { .compatible = "mpc5200b-fec-phy", },
183 {} 184 {}
184}; 185};