|
@@ -12,7 +12,6 @@
|
|
#include <asm/arch/at91sam9_smc.h>
|
|
#include <asm/arch/at91sam9_smc.h>
|
|
#include <asm/arch/at91_common.h>
|
|
#include <asm/arch/at91_common.h>
|
|
#include <asm/arch/at91_pmc.h>
|
|
#include <asm/arch/at91_pmc.h>
|
|
-#include <asm/arch/at91_rstc.h>
|
|
|
|
#include <asm/arch/at91_matrix.h>
|
|
#include <asm/arch/at91_matrix.h>
|
|
#include <asm/arch/at91_pio.h>
|
|
#include <asm/arch/at91_pio.h>
|
|
#include <asm/arch/clk.h>
|
|
#include <asm/arch/clk.h>
|
|
@@ -82,10 +81,9 @@ static void at91sam9263ek_nand_hw_init(void)
|
|
#ifdef CONFIG_MACB
|
|
#ifdef CONFIG_MACB
|
|
static void at91sam9263ek_macb_hw_init(void)
|
|
static void at91sam9263ek_macb_hw_init(void)
|
|
{
|
|
{
|
|
- unsigned long erstl;
|
|
|
|
at91_pmc_t *pmc = (at91_pmc_t *) ATMEL_BASE_PMC;
|
|
at91_pmc_t *pmc = (at91_pmc_t *) ATMEL_BASE_PMC;
|
|
at91_pio_t *pio = (at91_pio_t *) ATMEL_BASE_PIO;
|
|
at91_pio_t *pio = (at91_pio_t *) ATMEL_BASE_PIO;
|
|
- at91_rstc_t *rstc = (at91_rstc_t *) ATMEL_BASE_RSTC;
|
|
|
|
|
|
+
|
|
/* Enable clock */
|
|
/* Enable clock */
|
|
writel(1 << ATMEL_ID_EMAC, &pmc->pcer);
|
|
writel(1 << ATMEL_ID_EMAC, &pmc->pcer);
|
|
|
|
|
|
@@ -97,23 +95,10 @@ static void at91sam9263ek_macb_hw_init(void)
|
|
*
|
|
*
|
|
* PHY has internal pull-down
|
|
* PHY has internal pull-down
|
|
*/
|
|
*/
|
|
-
|
|
|
|
writel(1 << 25, &pio->pioc.pudr);
|
|
writel(1 << 25, &pio->pioc.pudr);
|
|
writel((1 << 25) | (1 <<26), &pio->pioe.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 */
|
|
/* Re-enable pull-up */
|
|
writel(1 << 25, &pio->pioc.puer);
|
|
writel(1 << 25, &pio->pioc.puer);
|