[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