The MACB IP used by AVR32 & AT91 have two different layout for USRIO
register. We have to differentiate this in the driver code.
No more cpu specific #ifdefs in driver: we manage a
configuration variable.

Signed-off-by: Nicolas Ferre <[email protected]>
---
 drivers/net/macb.c |    6 ++----
 drivers/net/macb.h |    7 +++++++
 2 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/drivers/net/macb.c b/drivers/net/macb.c
index 6de0a04..1023315 100644
--- a/drivers/net/macb.c
+++ b/drivers/net/macb.c
@@ -446,15 +446,13 @@ static int macb_init(struct eth_device *netdev, bd_t *bd)
 
        /* choose RMII or MII mode. This depends on the board */
 #ifdef CONFIG_RMII
-#if defined(CONFIG_AT91CAP9) || defined(CONFIG_AT91SAM9260) || \
-    defined(CONFIG_AT91SAM9263) || defined(CONFIG_AT91SAM9G20)
+#if defined(CONFIG_MACB_USRIO_CFG1)
        macb_writel(macb, USRIO, MACB_BIT(RMII) | MACB_BIT(CLKEN));
 #else
        macb_writel(macb, USRIO, 0);
 #endif
 #else
-#if defined(CONFIG_AT91CAP9) || defined(CONFIG_AT91SAM9260) || \
-    defined(CONFIG_AT91SAM9263) || defined(CONFIG_AT91SAM9G20)
+#if defined(CONFIG_MACB_USRIO_CFG1)
        macb_writel(macb, USRIO, MACB_BIT(CLKEN));
 #else
        macb_writel(macb, USRIO, MACB_BIT(MII));
diff --git a/drivers/net/macb.h b/drivers/net/macb.h
index f92a20c..349499c 100644
--- a/drivers/net/macb.h
+++ b/drivers/net/macb.h
@@ -212,6 +212,13 @@
 #define MACB_SOF_OFFSET                                30
 #define MACB_SOF_SIZE                          2
 
+/* MACB IP used by AVR32 & AT91 have two
+ * different layout for USRIO register. */
+#if !defined(CONFIG_AVR32)
+/* Use AT91 USRIO layout */
+#define CONFIG_MACB_USRIO_CFG1 1
+#endif
+
 /* Bitfields in USRIO */
 #define MACB_MII_OFFSET                                0
 #define MACB_MII_SIZE                          1
-- 
1.5.3.7



_______________________________________________
U-Boot mailing list
[email protected]
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to