[U-Boot] [PATCH] Network AT91 AVR32: generic way of addressing USRIO register layout

Nicolas Ferre nicolas.ferre at atmel.com
Mon Mar 23 09:58:57 CET 2009


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 <nicolas.ferre at atmel.com>
---
 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





More information about the U-Boot mailing list