[U-Boot-Users] [PATCH 1/1] Add support for ATMELAT91SAM9G20EKboard

Haavard Skinnemoen haavard.skinnemoen at atmel.com
Mon Jul 28 11:24:29 CEST 2008


"Hong Xu" <hongxu.cn at gmail.com> wrote:
> Per J's suggestion, use  CONFIG_MACB_INCLK or some other thing to
> simplify the *big* ifdef in driver/net/macb.c
> From the existing code, it seems that some boards (AT91CAP9,
> AT91SAM926[0,3]) need the CLKEN bit of EMAC_USRIO to be set, but
> others(if exist) do not need to. So in all boards that need this bit
> to be set, use a new CONFIG_MACB_XXX to denote this.

The problem is that CONFIG_MACB_INCLK is a completely nonsensical name.
The difference isn't _only_ the CLKEN bit, it's the MII/RMII bit
polarity as well. So if we want a completely "meaningful" define, we
have to use something along the lines of
CONFIG_MACB_HAS_CLKEN_AND_RMII_IS_ACTIVE_HIGH.

Let's stop the overengineering already. How about the patch below?

Haavard

===============[cut here]===============
From c63fe984e1a8d18c83119bbc3c575ac5175e61af Mon Sep 17 00:00:00 2001
From: Haavard Skinnemoen <haavard.skinnemoen at atmel.com>
Date: Mon, 28 Jul 2008 11:12:33 +0200
Subject: [PATCH] macb: Simplify AT91 vs AVR32 #ifdefs

The AT91 and AVR32 platforms assign different meanings to the bits in
USRIO. Until now, this has been handled with two big #ifdefs listing all
the various AT91 variants, with the #else branch handling AVR32.

Since there's no catch-all CONFIG_AT91 define, switch the #ifdefs around
and use CONFIG_AVR32 instead. The result is identical to what we already
have, assuming all AT91 devices behave the same way.

Signed-off-by: Haavard Skinnemoen <haavard.skinnemoen at atmel.com>
---
 drivers/net/macb.c |   14 ++++++--------
 1 files changed, 6 insertions(+), 8 deletions(-)

diff --git a/drivers/net/macb.c b/drivers/net/macb.c
index aa39284..49e81d9 100644
--- a/drivers/net/macb.c
+++ b/drivers/net/macb.c
@@ -414,18 +414,16 @@ 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)
-	macb_writel(macb, USRIO, MACB_BIT(RMII) | MACB_BIT(CLKEN));
-#else
+#ifdef CONFIG_AVR32
 	macb_writel(macb, USRIO, 0);
-#endif
 #else
-#if defined(CONFIG_AT91CAP9) || defined(CONFIG_AT91SAM9260) || \
-    defined(CONFIG_AT91SAM9263)
-	macb_writel(macb, USRIO, MACB_BIT(CLKEN));
+	macb_writel(macb, USRIO, MACB_BIT(RMII) | MACB_BIT(CLKEN));
+#endif
 #else
+#ifdef CONFIG_AVR32
 	macb_writel(macb, USRIO, MACB_BIT(MII));
+#else
+	macb_writel(macb, USRIO, MACB_BIT(CLKEN));
 #endif
 #endif /* CONFIG_RMII */
 
-- 
1.5.6.2





More information about the U-Boot mailing list