Blackfin: bfin_mac: respect CONFIG_PHY_{ADDR,CLOCK_FREQ}
authorMike Frysinger <vapier@gentoo.org>
Mon, 20 Oct 2008 17:59:51 +0000 (13:59 -0400)
committerMike Frysinger <vapier@gentoo.org>
Mon, 2 Feb 2009 17:24:26 +0000 (12:24 -0500)
Rather than having the on-chip MAC hardcoded to phy address 1 and a speed
of 2.5mhz, use these as defaults if the board doesn't specify otherwise.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Acked-by: Ben Warren <biggerbadderben@gmail.com>
drivers/net/bfin_mac.c
drivers/net/bfin_mac.h

index a622ca174fff01571180e57b68bb4836ebdc71ef..2cdb2f840377172eb5d2b3116fb11fdd5b035d4f 100644 (file)
 
 #include "bfin_mac.h"
 
+#ifndef CONFIG_PHY_ADDR
+# define CONFIG_PHY_ADDR 1
+#endif
+#ifndef CONFIG_PHY_CLOCK_FREQ
+# define CONFIG_PHY_CLOCK_FREQ 2500000
+#endif
+
 #ifdef CONFIG_POST
 #include <post.h>
 #endif
@@ -265,14 +272,14 @@ static int bfin_miiphy_init(struct eth_device *dev, int *opmode)
 
        /* Odd word alignment for Receive Frame DMA word */
        /* Configure checksum support and rcve frame word alignment */
-       bfin_write_EMAC_SYSCTL(RXDWA | RXCKS | SET_MDCDIV(MDC_FREQ_TO_DIV(2500000)));
+       bfin_write_EMAC_SYSCTL(RXDWA | RXCKS | SET_MDCDIV(MDC_FREQ_TO_DIV(CONFIG_PHY_CLOCK_FREQ)));
 
        /* turn on auto-negotiation and wait for link to come up */
-       bfin_miiphy_write(dev->name, PHYADDR, MII_BMCR, BMCR_ANENABLE);
+       bfin_miiphy_write(dev->name, CONFIG_PHY_ADDR, MII_BMCR, BMCR_ANENABLE);
        count = 0;
        while (1) {
                ++count;
-               if (bfin_miiphy_read(dev->name, PHYADDR, MII_BMSR, &phydat))
+               if (bfin_miiphy_read(dev->name, CONFIG_PHY_ADDR, MII_BMSR, &phydat))
                        return -1;
                if (phydat & BMSR_LSTATUS)
                        break;
@@ -284,7 +291,7 @@ static int bfin_miiphy_init(struct eth_device *dev, int *opmode)
        }
 
        /* see what kind of link we have */
-       if (bfin_miiphy_read(dev->name, PHYADDR, MII_LPA, &phydat))
+       if (bfin_miiphy_read(dev->name, CONFIG_PHY_ADDR, MII_LPA, &phydat))
                return -1;
        if (phydat & LPA_DUPLEX)
                *opmode = FDMODE;
index c41b4d4181a62c7d2b577ad0a37852b50494455a..b1623e0408b12e8209fc4e402488af21d6afd671 100644 (file)
@@ -9,7 +9,6 @@
 #ifndef __BFIN_MAC_H__
 #define __BFIN_MAC_H__
 
-#define PHYADDR                        0x01
 #define RECV_BUFSIZE           (0x614)
 
 typedef struct ADI_DMA_CONFIG_REG {