diff options
Diffstat (limited to 'arch/arm/mach-at91/at91_pmc_ll.c')
-rw-r--r-- | arch/arm/mach-at91/at91_pmc_ll.c | 19 |
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; |