]> git.sur5r.net Git - u-boot/blobdiff - arch/arm/mach-at91/arm926ejs/clock.c
pmic: dm: Rewrite pmic_reg_{read|write|clrsetbits} to support 3 bytes transmissions
[u-boot] / arch / arm / mach-at91 / arm926ejs / clock.c
index c8d24ae826508d2cd254c8717cbbad7eaa5125e1..7156185a46fa34cb4e9348111ee307c064fbc4cb 100644 (file)
@@ -1,11 +1,10 @@
+// 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 <plagnioj@jcrosoft.com>
- *
- * SPDX-License-Identifier:    GPL-2.0+
  */
 
 #include <common.h>
@@ -162,7 +161,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) ?