diff options
| -rw-r--r-- | arch/arm/cpu/at91-common/Makefile | 1 | ||||
| -rw-r--r-- | arch/arm/cpu/at91-common/phy.c | 57 | ||||
| -rw-r--r-- | arch/arm/include/asm/arch-at91/at91_common.h | 1 | ||||
| -rw-r--r-- | board/BuS/vl_ma2sc/vl_ma2sc.c | 18 | ||||
| -rw-r--r-- | board/afeb9260/afeb9260.c | 18 | ||||
| -rw-r--r-- | board/atmel/at91sam9260ek/at91sam9260ek.c | 19 | ||||
| -rw-r--r-- | board/atmel/at91sam9263ek/at91sam9263ek.c | 19 | ||||
| -rw-r--r-- | board/atmel/at91sam9m10g45ek/at91sam9m10g45ek.c | 19 | ||||
| -rw-r--r-- | board/bluewater/snapper9260/snapper9260.c | 16 | ||||
| -rw-r--r-- | board/calao/sbc35_a9g20/sbc35_a9g20.c | 19 | ||||
| -rw-r--r-- | board/eukrea/cpu9260/cpu9260.c | 18 | ||||
| -rw-r--r-- | board/taskit/stamp9g20/stamp9g20.c | 31 | ||||
| -rw-r--r-- | include/configs/afeb9260.h | 2 | ||||
| -rw-r--r-- | include/configs/at91sam9260ek.h | 1 | ||||
| -rw-r--r-- | include/configs/at91sam9263ek.h | 1 | ||||
| -rw-r--r-- | include/configs/at91sam9m10g45ek.h | 1 | ||||
| -rw-r--r-- | include/configs/cpu9260.h | 1 | ||||
| -rw-r--r-- | include/configs/sbc35_a9g20.h | 1 | ||||
| -rw-r--r-- | include/configs/snapper9260.h | 1 | ||||
| -rw-r--r-- | include/configs/stamp9g20.h | 1 | ||||
| -rw-r--r-- | include/configs/vl_ma2sc.h | 1 | 
21 files changed, 79 insertions, 167 deletions
| diff --git a/arch/arm/cpu/at91-common/Makefile b/arch/arm/cpu/at91-common/Makefile index d97053ff0..5b978384e 100644 --- a/arch/arm/cpu/at91-common/Makefile +++ b/arch/arm/cpu/at91-common/Makefile @@ -8,4 +8,5 @@  # SPDX-License-Identifier:	GPL-2.0+  # +obj-$(CONFIG_AT91_WANTS_COMMON_PHY) += phy.o  obj-$(CONFIG_SPL_BUILD) += mpddrc.o spl.o diff --git a/arch/arm/cpu/at91-common/phy.c b/arch/arm/cpu/at91-common/phy.c new file mode 100644 index 000000000..3b6c60ca5 --- /dev/null +++ b/arch/arm/cpu/at91-common/phy.c @@ -0,0 +1,57 @@ +/* + * (C) Copyright 2007-2008 + * Stelian Pop <stelian@popies.net> + * Lead Tech Design <www.leadtechdesign.com> + * + * (C) Copyright 2012 + * Markus Hubig <mhubig@imko.de> + * IMKO GmbH <www.imko.de> + * + * Copyright (C) 2013 DENX Software Engineering, hs@denx.de + * + * SPDX-License-Identifier:	GPL-2.0+ + */ + +#include <common.h> +#include <asm/io.h> +#include <asm/sizes.h> +#include <asm/arch/at91_pmc.h> +#include <asm/arch/at91_rstc.h> +#include <watchdog.h> + +void at91_phy_reset(void) +{ +	unsigned long erstl; +	unsigned long start = get_timer(0); +	unsigned long const timeout = 1000; /* 1000ms */ +	at91_rstc_t *rstc = (at91_rstc_t *)ATMEL_BASE_RSTC; + +	erstl = readl(&rstc->mr) & AT91_RSTC_MR_ERSTL_MASK; + +	/* +	 * Need to reset PHY -> 500ms reset +	 * Reset PHY by pulling the NRST line for 500ms to low. To do so +	 * disable user reset for low level on NRST pin and poll the NRST +	 * level in reset status register. +	 */ +	writel(AT91_RSTC_KEY | AT91_RSTC_MR_ERSTL(0x0D) | +		AT91_RSTC_MR_URSTEN, &rstc->mr); + +	writel(AT91_RSTC_KEY | AT91_RSTC_CR_EXTRST, &rstc->cr); + +	/* Wait for end of hardware reset */ +	while (!(readl(&rstc->sr) & AT91_RSTC_SR_NRSTL)) { +		/* avoid shutdown by watchdog */ +		WATCHDOG_RESET(); +		mdelay(10); + +		/* timeout for not getting stuck in an endless loop */ +		if (get_timer(start) >= timeout) { +			puts("*** ERROR: Timeout waiting for PHY reset!\n"); +			break; +		} +	}; + +	/* Restore NRST value */ +	writel(AT91_RSTC_KEY | erstl | AT91_RSTC_MR_URSTEN, &rstc->mr); +} diff --git a/arch/arm/include/asm/arch-at91/at91_common.h b/arch/arm/include/asm/arch-at91/at91_common.h index 3ca4d5b08..59e2f4391 100644 --- a/arch/arm/include/asm/arch-at91/at91_common.h +++ b/arch/arm/include/asm/arch-at91/at91_common.h @@ -26,5 +26,6 @@ void at91_plla_init(u32 pllar);  void at91_mck_init(u32 mckr);  void at91_pmc_init(void);  void mem_init(void); +void at91_phy_reset(void);  #endif /* AT91_COMMON_H */ diff --git a/board/BuS/vl_ma2sc/vl_ma2sc.c b/board/BuS/vl_ma2sc/vl_ma2sc.c index e2ae6fde6..412ff3b48 100644 --- a/board/BuS/vl_ma2sc/vl_ma2sc.c +++ b/board/BuS/vl_ma2sc/vl_ma2sc.c @@ -16,7 +16,6 @@  #include <asm/arch/at91sam9_smc.h>  #include <asm/arch/at91_pmc.h>  #include <asm/arch/at91_pio.h> -#include <asm/arch/at91_rstc.h>  #include <asm/arch/at91sam9263.h>  #include <asm/arch/gpio.h>  #include <asm/arch/at91_common.h> @@ -76,25 +75,12 @@ static void vl_ma2sc_nand_hw_init(void)  #ifdef CONFIG_MACB  static void vl_ma2sc_macb_hw_init(void)  { -	unsigned long	erstl;  	at91_pmc_t	*pmc	= (at91_pmc_t *) ATMEL_BASE_PMC; -	at91_rstc_t	*rstc	= (at91_rstc_t *) ATMEL_BASE_RSTC; +  	/* Enable clock */  	writel(1 << ATMEL_ID_EMAC, &pmc->pcer); -	erstl = readl(&rstc->mr) & AT91_RSTC_MR_ERSTL_MASK; - -	/* Need to reset PHY -> 500ms reset */ -	writel(AT91_RSTC_KEY | AT91_RSTC_MR_ERSTL(0x0D) | -		AT91_RSTC_MR_URSTEN, &rstc->mr); - -	writel(AT91_RSTC_KEY | AT91_RSTC_CR_EXTRST, &rstc->cr); -	/* Wait for end hardware reset */ -	while (!(readl(&rstc->sr) & AT91_RSTC_SR_NRSTL)) -		; - -	/* Restore NRST value */ -	writel(AT91_RSTC_KEY | erstl | AT91_RSTC_MR_URSTEN, &rstc->mr); +	at91_phy_reset();  	at91_macb_hw_init();  } diff --git a/board/afeb9260/afeb9260.c b/board/afeb9260/afeb9260.c index e1b1c10d5..ea9575d41 100644 --- a/board/afeb9260/afeb9260.c +++ b/board/afeb9260/afeb9260.c @@ -13,7 +13,6 @@  #include <asm/arch/at91sam9_smc.h>  #include <asm/arch/at91_common.h>  #include <asm/arch/at91_pmc.h> -#include <asm/arch/at91_rstc.h>  #include <asm/arch/gpio.h>  #include <asm/io.h>  #include <asm/arch/hardware.h> @@ -67,8 +66,6 @@ static void afeb9260_macb_hw_init(void)  {  	struct at91_pmc *pmc = (struct at91_pmc *)ATMEL_BASE_PMC;  	struct at91_port *pioa = (struct at91_port *)ATMEL_BASE_PIOA; -	struct at91_rstc *rstc = (struct at91_rstc *)ATMEL_BASE_RSTC; -	unsigned long erstl;  	/* Enable EMAC clock */ @@ -94,20 +91,7 @@ static void afeb9260_macb_hw_init(void)  	       pin_to_mask(AT91_PIN_PA28),  	       &pioa->pudr); -	erstl = readl(&rstc->mr) & AT91_RSTC_MR_ERSTL_MASK; - -	/* Need to reset PHY -> 500ms reset */ -	writel(AT91_RSTC_KEY | AT91_RSTC_MR_ERSTL(13) | -		AT91_RSTC_MR_URSTEN, &rstc->mr); -	writel(AT91_RSTC_KEY | AT91_RSTC_CR_EXTRST, &rstc->cr); - -	/* Wait for end hardware reset */ -	while (!(readl(&rstc->sr) & AT91_RSTC_SR_NRSTL)) -		; -	/* Restore NRST value */ -	writel(AT91_RSTC_KEY | erstl | AT91_RSTC_MR_URSTEN, -		&rstc->mr); - +	at91_phy_reset();  	/* Re-enable pull-up */  	writel(pin_to_mask(AT91_PIN_PA14) | diff --git a/board/atmel/at91sam9260ek/at91sam9260ek.c b/board/atmel/at91sam9260ek/at91sam9260ek.c index 263de49c7..7f14af101 100644 --- a/board/atmel/at91sam9260ek/at91sam9260ek.c +++ b/board/atmel/at91sam9260ek/at91sam9260ek.c @@ -12,7 +12,6 @@  #include <asm/arch/at91sam9_smc.h>  #include <asm/arch/at91_common.h>  #include <asm/arch/at91_pmc.h> -#include <asm/arch/at91_rstc.h>  #include <asm/arch/gpio.h>  #include <atmel_mci.h> @@ -73,8 +72,6 @@ static void at91sam9260ek_macb_hw_init(void)  {  	struct at91_pmc *pmc = (struct at91_pmc *)ATMEL_BASE_PMC;  	struct at91_port *pioa = (struct at91_port *)ATMEL_BASE_PIOA; -	struct at91_rstc *rstc = (struct at91_rstc *)ATMEL_BASE_RSTC; -	unsigned long erstl;  	/* Enable EMAC clock */  	writel(1 << ATMEL_ID_EMAC0, &pmc->pcer); @@ -98,21 +95,7 @@ static void at91sam9260ek_macb_hw_init(void)  		pin_to_mask(AT91_PIN_PA28),  		&pioa->pudr); -	erstl = readl(&rstc->mr) & AT91_RSTC_MR_ERSTL_MASK; - -	/* Need to reset PHY -> 500ms reset */ -	writel(AT91_RSTC_KEY | AT91_RSTC_MR_ERSTL(13) | -		AT91_RSTC_MR_URSTEN, &rstc->mr); - -	writel(AT91_RSTC_KEY | AT91_RSTC_CR_EXTRST, &rstc->cr); - -	/* Wait for end hardware reset */ -	while (!(readl(&rstc->sr) & AT91_RSTC_SR_NRSTL)) -		; - -	/* Restore NRST value */ -	writel(AT91_RSTC_KEY | erstl | AT91_RSTC_MR_URSTEN, -		&rstc->mr); +	at91_phy_reset();  	/* Re-enable pull-up */  	writel(pin_to_mask(AT91_PIN_PA14) | diff --git a/board/atmel/at91sam9263ek/at91sam9263ek.c b/board/atmel/at91sam9263ek/at91sam9263ek.c index 2e9246f31..d42a1730c 100644 --- a/board/atmel/at91sam9263ek/at91sam9263ek.c +++ b/board/atmel/at91sam9263ek/at91sam9263ek.c @@ -12,7 +12,6 @@  #include <asm/arch/at91sam9_smc.h>  #include <asm/arch/at91_common.h>  #include <asm/arch/at91_pmc.h> -#include <asm/arch/at91_rstc.h>  #include <asm/arch/at91_matrix.h>  #include <asm/arch/at91_pio.h>  #include <asm/arch/clk.h> @@ -82,10 +81,9 @@ static void at91sam9263ek_nand_hw_init(void)  #ifdef CONFIG_MACB  static void at91sam9263ek_macb_hw_init(void)  { -	unsigned long 	erstl;  	at91_pmc_t	*pmc	= (at91_pmc_t *) ATMEL_BASE_PMC;  	at91_pio_t	*pio	= (at91_pio_t *) ATMEL_BASE_PIO; -	at91_rstc_t	*rstc	= (at91_rstc_t *) ATMEL_BASE_RSTC; +  	/* Enable clock */  	writel(1 << ATMEL_ID_EMAC, &pmc->pcer); @@ -97,23 +95,10 @@ static void at91sam9263ek_macb_hw_init(void)  	 *  	 * PHY has internal pull-down  	 */ -  	writel(1 << 25, &pio->pioc.pudr);  	writel((1 << 25) | (1 <<26), &pio->pioe.pudr); -	erstl = readl(&rstc->mr) & AT91_RSTC_MR_ERSTL_MASK; - -	/* Need to reset PHY -> 500ms reset */ -	writel(AT91_RSTC_KEY | AT91_RSTC_MR_ERSTL(0x0D) | -		AT91_RSTC_MR_URSTEN, &rstc->mr); - -	writel(AT91_RSTC_KEY | AT91_RSTC_CR_EXTRST, &rstc->cr); -	/* Wait for end hardware reset */ -	while (!(readl(&rstc->sr) & AT91_RSTC_SR_NRSTL)) -		; - -	/* Restore NRST value */ -	writel(AT91_RSTC_KEY | erstl | AT91_RSTC_MR_URSTEN, &rstc->mr); +	at91_phy_reset();  	/* Re-enable pull-up */  	writel(1 << 25, &pio->pioc.puer); diff --git a/board/atmel/at91sam9m10g45ek/at91sam9m10g45ek.c b/board/atmel/at91sam9m10g45ek/at91sam9m10g45ek.c index 6a071f6b7..b7e2efd2f 100644 --- a/board/atmel/at91sam9m10g45ek/at91sam9m10g45ek.c +++ b/board/atmel/at91sam9m10g45ek/at91sam9m10g45ek.c @@ -12,7 +12,6 @@  #include <asm/arch/at91sam9_smc.h>  #include <asm/arch/at91_common.h>  #include <asm/arch/at91_pmc.h> -#include <asm/arch/at91_rstc.h>  #include <asm/arch/gpio.h>  #include <asm/arch/clk.h>  #include <lcd.h> @@ -88,8 +87,6 @@ static void at91sam9m10g45ek_macb_hw_init(void)  {  	struct at91_pmc *pmc = (struct at91_pmc *)ATMEL_BASE_PMC;  	struct at91_port *pioa = (struct at91_port *)ATMEL_BASE_PIOA; -	struct at91_rstc *rstc = (struct at91_rstc *)ATMEL_BASE_RSTC; -	unsigned long erstl;  	/* Enable clock */  	writel(1 << ATMEL_ID_EMAC, &pmc->pcer); @@ -107,21 +104,7 @@ static void at91sam9m10g45ek_macb_hw_init(void)  	       pin_to_mask(AT91_PIN_PA13),  	       &pioa->pudr); -	erstl = readl(&rstc->mr) & AT91_RSTC_MR_ERSTL_MASK; - -	/* Need to reset PHY -> 500ms reset */ -	writel(AT91_RSTC_KEY | AT91_RSTC_MR_ERSTL(13) | -		AT91_RSTC_MR_URSTEN, &rstc->mr); - -	writel(AT91_RSTC_KEY | AT91_RSTC_CR_EXTRST, &rstc->cr); - -	/* Wait for end hardware reset */ -	while (!(readl(&rstc->sr) & AT91_RSTC_SR_NRSTL)) -		; - -	/* Restore NRST value */ -	writel(AT91_RSTC_KEY | erstl | AT91_RSTC_MR_URSTEN, -		&rstc->mr); +	at91_phy_reset();  	/* Re-enable pull-up */  	writel(pin_to_mask(AT91_PIN_PA15) | diff --git a/board/bluewater/snapper9260/snapper9260.c b/board/bluewater/snapper9260/snapper9260.c index 8a6919dbb..bfde1291a 100644 --- a/board/bluewater/snapper9260/snapper9260.c +++ b/board/bluewater/snapper9260/snapper9260.c @@ -14,7 +14,6 @@  #include <asm/arch/at91sam9_smc.h>  #include <asm/arch/at91_common.h>  #include <asm/arch/at91_pmc.h> -#include <asm/arch/at91_rstc.h>  #include <asm/arch/gpio.h>  #include <net.h>  #include <netdev.h> @@ -31,8 +30,6 @@ static void macb_hw_init(void)  {  	struct at91_pmc *pmc   = (struct at91_pmc  *)ATMEL_BASE_PMC;  	struct at91_port *pioa = (struct at91_port *)ATMEL_BASE_PIOA; -	struct at91_rstc *rstc = (struct at91_rstc *)ATMEL_BASE_RSTC; -	unsigned long erstl;  	/* Enable clock */  	writel(1 << ATMEL_ID_EMAC0, &pmc->pcer); @@ -54,18 +51,7 @@ static void macb_hw_init(void)  	/* Enable ethernet power */  	pca953x_set_val(0x28, IO_EXP_ETH_POWER, 0); -	/* Need to reset PHY -> 500ms reset */ -	erstl = readl(&rstc->mr) & AT91_RSTC_MR_ERSTL_MASK; -	writel(AT91_RSTC_KEY | AT91_RSTC_MR_ERSTL(13) | -	       AT91_RSTC_MR_URSTEN, &rstc->mr); -	writel(AT91_RSTC_KEY | AT91_RSTC_CR_EXTRST, &rstc->cr); - -	/* Wait for end hardware reset */ -	while (!(readl(&rstc->sr) & AT91_RSTC_SR_NRSTL)) -		; - -	/* Restore NRST value */ -	writel(AT91_RSTC_KEY | erstl | AT91_RSTC_MR_URSTEN, &rstc->mr); +	at91_phy_reset();  	/* Bring the ethernet out of reset */  	pca953x_set_val(0x28, IO_EXP_ETH_RESET, 1); diff --git a/board/calao/sbc35_a9g20/sbc35_a9g20.c b/board/calao/sbc35_a9g20/sbc35_a9g20.c index ecf261c1a..2074a93a1 100644 --- a/board/calao/sbc35_a9g20/sbc35_a9g20.c +++ b/board/calao/sbc35_a9g20/sbc35_a9g20.c @@ -15,7 +15,6 @@  #include <asm/arch/at91sam9_smc.h>  #include <asm/arch/at91_common.h>  #include <asm/arch/at91_pmc.h> -#include <asm/arch/at91_rstc.h>  #include <asm/arch/gpio.h>  #if defined(CONFIG_RESET_PHY_R) && defined(CONFIG_MACB) @@ -77,8 +76,6 @@ static void sbc35_a9g20_macb_hw_init(void)  {  	struct at91_pmc *pmc = (struct at91_pmc *)ATMEL_BASE_PMC;  	struct at91_port *pioa = (struct at91_port *)ATMEL_BASE_PIOA; -	struct at91_rstc *rstc = (struct at91_rstc *)ATMEL_BASE_RSTC; -	unsigned long erstl;  	/* Enable EMAC clock */  	writel(1 << ATMEL_ID_EMAC0, &pmc->pcer); @@ -102,21 +99,7 @@ static void sbc35_a9g20_macb_hw_init(void)  	       pin_to_mask(AT91_PIN_PA28),  	       &pioa->pudr); -	erstl = readl(&rstc->mr) & AT91_RSTC_MR_ERSTL_MASK; - -	/* Need to reset PHY -> 500ms reset */ -	writel(AT91_RSTC_KEY | AT91_RSTC_MR_ERSTL(13) | -		AT91_RSTC_MR_URSTEN, &rstc->mr); - -	writel(AT91_RSTC_KEY | AT91_RSTC_CR_EXTRST, &rstc->cr); - -	/* Wait for end hardware reset */ -	while (!(readl(&rstc->sr) & AT91_RSTC_SR_NRSTL)) -		; - -	/* Restore NRST value */ -	writel(AT91_RSTC_KEY | erstl | AT91_RSTC_MR_URSTEN, -		&rstc->mr); +	at91_phy_reset();  	/* Re-enable pull-up */  	writel(pin_to_mask(AT91_PIN_PA14) | diff --git a/board/eukrea/cpu9260/cpu9260.c b/board/eukrea/cpu9260/cpu9260.c index 5e1524e07..274f72d42 100644 --- a/board/eukrea/cpu9260/cpu9260.c +++ b/board/eukrea/cpu9260/cpu9260.c @@ -17,7 +17,6 @@  #include <asm/arch/at91_common.h>  #include <asm/arch/at91_matrix.h>  #include <asm/arch/at91_pmc.h> -#include <asm/arch/at91_rstc.h>  #include <asm/arch/at91_pio.h>  #include <asm/arch/clk.h>  #include <asm/arch/hardware.h> @@ -89,29 +88,14 @@ static void cpu9260_nand_hw_init(void)  #ifdef CONFIG_MACB  static void cpu9260_macb_hw_init(void)  { -	unsigned long rstcmr;  	at91_pmc_t *pmc = (at91_pmc_t *) ATMEL_BASE_PMC; -	at91_rstc_t *rstc = (at91_rstc_t *) ATMEL_BASE_RSTC;  	/* Enable clock */  	writel(1 << ATMEL_ID_EMAC0, &pmc->pcer);  	at91_set_pio_pullup(AT91_PIO_PORTA, 17, 1); -	rstcmr = readl(&rstc->mr) & AT91_RSTC_MR_ERSTL_MASK; - -	/* Need to reset PHY -> 500ms reset */ -	writel(AT91_RSTC_KEY | AT91_RSTC_MR_ERSTL(0xD) | -				AT91_RSTC_MR_URSTEN, &rstc->mr); - -	writel(AT91_RSTC_KEY | AT91_RSTC_CR_EXTRST, &rstc->cr); - -	/* Wait for end hardware reset */ -	while (!(readl(&rstc->sr) & AT91_RSTC_SR_NRSTL)) -		; - -	/* Restore NRST value */ -	writel(AT91_RSTC_KEY | rstcmr | AT91_RSTC_MR_URSTEN, &rstc->mr); +	at91_phy_reset();  	at91_macb_hw_init();  } diff --git a/board/taskit/stamp9g20/stamp9g20.c b/board/taskit/stamp9g20/stamp9g20.c index 704a63bad..27cdf77f0 100644 --- a/board/taskit/stamp9g20/stamp9g20.c +++ b/board/taskit/stamp9g20/stamp9g20.c @@ -19,7 +19,6 @@  #include <asm/arch/at91sam9_smc.h>  #include <asm/arch/at91_common.h>  #include <asm/arch/at91_pmc.h> -#include <asm/arch/at91_rstc.h>  #include <asm/arch/gpio.h>  #include <watchdog.h> @@ -67,8 +66,6 @@ static void stamp9G20_nand_hw_init(void)  static void stamp9G20_macb_hw_init(void)  {  	struct at91_port *pioa = (struct at91_port *)ATMEL_BASE_PIOA; -	struct at91_rstc *rstc = (struct at91_rstc *)ATMEL_BASE_RSTC; -	unsigned long erstl;  	/* Enable the PHY Chip via PA26 on the Stamp 2 Adaptor */  	at91_set_gpio_output(AT91_PIN_PA26, 0); @@ -91,33 +88,7 @@ static void stamp9G20_macb_hw_init(void)  		pin_to_mask(AT91_PIN_PA28),  		&pioa->pudr); -	erstl = readl(&rstc->mr) & AT91_RSTC_MR_ERSTL_MASK; - -	/* Need to reset PHY -> 500ms reset */ -	writel(AT91_RSTC_KEY | (AT91_RSTC_MR_ERSTL(13) & -				~AT91_RSTC_MR_URSTEN), &rstc->mr); -	writel(AT91_RSTC_KEY | AT91_RSTC_CR_EXTRST, &rstc->cr); - -	/* Wait for end of hardware reset */ -	unsigned long start = get_timer(0); -	unsigned long timeout = 1000; /* 1000ms */ - -	while (!(readl(&rstc->sr) & AT91_RSTC_SR_NRSTL)) { - -		/* avoid shutdown by watchdog */ -		WATCHDOG_RESET(); -		mdelay(10); - -		/* timeout for not getting stuck in an endless loop */ -		if (get_timer(start) >= timeout) { -			puts("*** ERROR: Timeout waiting for PHY reset!\n"); -			break; -		}; -	}; - -	/* Restore NRST value */ -	writel(AT91_RSTC_KEY | erstl | AT91_RSTC_MR_URSTEN, -		&rstc->mr); +	at91_phy_reset();  	/* Re-enable pull-up */  	writel(pin_to_mask(AT91_PIN_PA14) | diff --git a/include/configs/afeb9260.h b/include/configs/afeb9260.h index 5e718980f..14bac155a 100644 --- a/include/configs/afeb9260.h +++ b/include/configs/afeb9260.h @@ -106,7 +106,7 @@  /* Ethernet */  #define CONFIG_MACB  #define CONFIG_RESET_PHY_R - +#define CONFIG_AT91_WANTS_COMMON_PHY  #define CONFIG_NET_RETRY_COUNT		20  /* USB */ diff --git a/include/configs/at91sam9260ek.h b/include/configs/at91sam9260ek.h index 1c4bb812f..73917b0ec 100644 --- a/include/configs/at91sam9260ek.h +++ b/include/configs/at91sam9260ek.h @@ -181,6 +181,7 @@  #define CONFIG_RMII			1  #define CONFIG_NET_RETRY_COUNT		20  #define CONFIG_RESET_PHY_R		1 +#define CONFIG_AT91_WANTS_COMMON_PHY  /* USB */  #define CONFIG_USB_ATMEL diff --git a/include/configs/at91sam9263ek.h b/include/configs/at91sam9263ek.h index 0a1969df9..b9aa03603 100644 --- a/include/configs/at91sam9263ek.h +++ b/include/configs/at91sam9263ek.h @@ -275,6 +275,7 @@  #define CONFIG_RMII			1  #define CONFIG_NET_RETRY_COUNT		20  #define CONFIG_RESET_PHY_R		1 +#define CONFIG_AT91_WANTS_COMMON_PHY  /* USB */  #define CONFIG_USB_ATMEL diff --git a/include/configs/at91sam9m10g45ek.h b/include/configs/at91sam9m10g45ek.h index 395d44e4a..0a4c781d3 100644 --- a/include/configs/at91sam9m10g45ek.h +++ b/include/configs/at91sam9m10g45ek.h @@ -119,6 +119,7 @@  #define CONFIG_RMII  #define CONFIG_NET_RETRY_COUNT		20  #define CONFIG_RESET_PHY_R +#define CONFIG_AT91_WANTS_COMMON_PHY  /* USB */  #define CONFIG_USB_EHCI diff --git a/include/configs/cpu9260.h b/include/configs/cpu9260.h index ccf36a5f9..22c0a0915 100644 --- a/include/configs/cpu9260.h +++ b/include/configs/cpu9260.h @@ -310,6 +310,7 @@  #define CONFIG_RMII  #define CONFIG_NET_RETRY_COUNT			20  #define CONFIG_MACB_SEARCH_PHY +#define CONFIG_AT91_WANTS_COMMON_PHY  /* LEDS */  /* Status LED */ diff --git a/include/configs/sbc35_a9g20.h b/include/configs/sbc35_a9g20.h index cbcd4e16b..7e16c451c 100644 --- a/include/configs/sbc35_a9g20.h +++ b/include/configs/sbc35_a9g20.h @@ -115,6 +115,7 @@  #define CONFIG_NET_RETRY_COUNT		20  #define CONFIG_RESET_PHY_R  #define CONFIG_MACB_SEARCH_PHY +#define CONFIG_AT91_WANTS_COMMON_PHY  /* USB */  #define CONFIG_USB_ATMEL diff --git a/include/configs/snapper9260.h b/include/configs/snapper9260.h index 7ef512516..94a65c4d0 100644 --- a/include/configs/snapper9260.h +++ b/include/configs/snapper9260.h @@ -59,6 +59,7 @@  #define CONFIG_RMII  #define CONFIG_NET_RETRY_COUNT		20  #define CONFIG_RESET_PHY_R +#define CONFIG_AT91_WANTS_COMMON_PHY  #define CONFIG_TFTP_PORT  #define CONFIG_TFTP_TSIZE diff --git a/include/configs/stamp9g20.h b/include/configs/stamp9g20.h index 248e657e4..51339b149 100644 --- a/include/configs/stamp9g20.h +++ b/include/configs/stamp9g20.h @@ -145,6 +145,7 @@  #ifdef CONFIG_MACB  # define CONFIG_RMII			/* use reduced MII inteface */  # define CONFIG_NET_RETRY_COUNT	20      /* # of DHCP/BOOTP retries */ +#define CONFIG_AT91_WANTS_COMMON_PHY  /* BOOTP and DHCP options */  # define CONFIG_BOOTP_BOOTFILESIZE diff --git a/include/configs/vl_ma2sc.h b/include/configs/vl_ma2sc.h index 148908004..aacb84c8b 100644 --- a/include/configs/vl_ma2sc.h +++ b/include/configs/vl_ma2sc.h @@ -330,6 +330,7 @@  #define CONFIG_RMII  #define CONFIG_NET_MULTI  #define CONFIG_NET_RETRY_COUNT		5 +#define CONFIG_AT91_WANTS_COMMON_PHY  #define CONFIG_OVERWRITE_ETHADDR_ONCE |