]> Git Repo - J-u-boot.git/blobdiff - arch/arm/mach-at91/arm926ejs/clock.c
Revert "Merge patch series "arm: dts: am62-beagleplay: Fix Beagleplay Ethernet""
[J-u-boot.git] / arch / arm / mach-at91 / arm926ejs / clock.c
index c8d24ae826508d2cd254c8717cbbad7eaa5125e1..013daf43b742469be895b459185eda00d34430b7 100644 (file)
@@ -1,14 +1,14 @@
+// SPDX-License-Identifier: GPL-2.0+
 /*
  * [origin: Linux kernel linux/arch/arm/mach-at91/clock.c]
  *
  * Copyright (C) 2005 David Brownell
  * Copyright (C) 2005 Ivan Kokshaysky
  * Copyright (C) 2009 Jean-Christophe PLAGNIOL-VILLARD <[email protected]>
- *
- * SPDX-License-Identifier:    GPL-2.0+
  */
 
 #include <common.h>
+#include <asm/global_data.h>
 #include <asm/io.h>
 #include <asm/arch/hardware.h>
 #include <asm/arch/at91_pmc.h>
@@ -26,7 +26,7 @@ static unsigned long at91_css_to_rate(unsigned long css)
 {
        switch (css) {
        case AT91_PMC_MCKR_CSS_SLOW:
-               return CONFIG_SYS_AT91_SLOW_CLOCK;
+               return CFG_SYS_AT91_SLOW_CLOCK;
        case AT91_PMC_MCKR_CSS_MAIN:
                return gd->arch.main_clk_rate_hz;
        case AT91_PMC_MCKR_CSS_PLLA:
@@ -115,7 +115,7 @@ int at91_clock_init(unsigned long main_clock)
 {
        unsigned freq, mckr;
        at91_pmc_t *pmc = (at91_pmc_t *) ATMEL_BASE_PMC;
-#ifndef CONFIG_SYS_AT91_MAIN_CLOCK
+#ifndef CFG_SYS_AT91_MAIN_CLOCK
        unsigned tmp;
        /*
         * When the bootloader initialized the main oscillator correctly,
@@ -128,7 +128,7 @@ int at91_clock_init(unsigned long main_clock)
                        tmp = readl(&pmc->mcfr);
                } while (!(tmp & AT91_PMC_MCFR_MAINRDY));
                tmp &= AT91_PMC_MCFR_MAINF_MASK;
-               main_clock = tmp * (CONFIG_SYS_AT91_SLOW_CLOCK / 16);
+               main_clock = tmp * (CFG_SYS_AT91_SLOW_CLOCK / 16);
        }
 #endif
        gd->arch.main_clk_rate_hz = main_clock;
@@ -162,7 +162,13 @@ int at91_clock_init(unsigned long main_clock)
        gd->arch.mck_rate_hz = at91_css_to_rate(mckr & AT91_PMC_MCKR_CSS_MASK);
        freq = gd->arch.mck_rate_hz;
 
+#if defined(CONFIG_AT91SAM9X5)
+       /* different in prescale on at91sam9x5 */
+       freq /= (1 << ((mckr & AT91_PMC_MCKR_PRES_MASK) >> 4));
+#else
        freq /= (1 << ((mckr & AT91_PMC_MCKR_PRES_MASK) >> 2)); /* prescale */
+#endif
+
 #if defined(CONFIG_AT91SAM9G20)
        /* mdiv ; (x >> 7) = ((x >> 8) * 2) */
        gd->arch.mck_rate_hz = (mckr & AT91_PMC_MCKR_MDIV_MASK) ?
This page took 0.02479 seconds and 4 git commands to generate.