summaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-at91/at91_pmc_ll.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-at91/at91_pmc_ll.c')
-rw-r--r--arch/arm/mach-at91/at91_pmc_ll.c19
1 files changed, 15 insertions, 4 deletions
diff --git a/arch/arm/mach-at91/at91_pmc_ll.c b/arch/arm/mach-at91/at91_pmc_ll.c
index e561f20755..0101623c8e 100644
--- a/arch/arm/mach-at91/at91_pmc_ll.c
+++ b/arch/arm/mach-at91/at91_pmc_ll.c
@@ -10,10 +10,10 @@
#define pr_fmt(fmt) "at91pmc: " fmt
#include <common.h>
-#include <mach/hardware.h>
-#include <mach/at91_pmc.h>
-#include <mach/at91_pmc_ll.h>
-#include <mach/early_udelay.h>
+#include <mach/at91/hardware.h>
+#include <mach/at91/at91_pmc.h>
+#include <mach/at91/at91_pmc_ll.h>
+#include <mach/at91/early_udelay.h>
#define SFR_UTMICKTRIM 0x30 /* UTMI Clock Trimming Register */
#define AT91_UTMICKTRIM_FREQ 0x03
@@ -157,6 +157,17 @@ void at91_pmc_cfg_plla(void __iomem *pmc_base, u32 pmc_pllar,
;
}
+void at91_pmc_cfg_pllb(void __iomem *pmc_base, u32 pmc_pllbr,
+ unsigned int __always_unused flags)
+{
+ /* Always disable PLL before configuring it */
+ at91_pmc_write(AT91_CKGR_PLLBR, 0);
+ at91_pmc_write(AT91_CKGR_PLLBR, pmc_pllbr);
+
+ while (!(at91_pmc_read(AT91_PMC_SR) & AT91_PMC_LOCKB))
+ ;
+}
+
void at91_pmc_cfg_mck(void __iomem *pmc_base, u32 pmc_mckr, unsigned int flags)
{
u32 tmp;