
Ben,
Ben Warren :
Hi Nicolas,
Nicolas Ferre wrote:
<snip> > diff --git a/drivers/net/macb.c b/drivers/net/macb.c > index af0409b..6de0a04 100644 > --- a/drivers/net/macb.c > +++ b/drivers/net/macb.c > @@ -447,14 +447,14 @@ 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_AT91SAM9263) || defined(CONFIG_AT91SAM9G20) > 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_AT91SAM9263) || defined(CONFIG_AT91SAM9G20) > macb_writel(macb, USRIO, MACB_BIT(CLKEN)); > #else > macb_writel(macb, USRIO, MACB_BIT(MII)); > Please find a more generic way of doing this. There should be no board/cpu specific #ifdefs in common drivers. While you're at it, fix up the existing ones.
Tell me if a configuration variable that I setup in the macb.h file depending on CPU is acceptable ? Here is the snippet : in drivers/net/macb.h
+/* 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
And then I use CONFIG_MACB_USRIO_CFG1 in macb.c
This will prevent me from setting this variable in every CPU config file...
Bye,