summaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-mvebu
diff options
context:
space:
mode:
authorSebastian Hesselbarth <sebastian.hesselbarth@gmail.com>2014-04-14 10:12:09 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2014-06-24 08:25:04 +0200
commit7e750b691cf5f1e4bab291ca255b0ad7529e7009 (patch)
tree9ab8558ae61314ed7fed75ee913b01bcfb40fdd5 /arch/arm/mach-mvebu
parent5be6482b4842895159bd7ece4cc40e41e40d1f90 (diff)
downloadbarebox-7e750b691cf5f1e4bab291ca255b0ad7529e7009.tar.gz
barebox-7e750b691cf5f1e4bab291ca255b0ad7529e7009.tar.xz
ARM: mvebu: add 25MHz fixed clock for Armada XP
Armada XP timers can be run from a 25MHz fixed clock. Add the corrsponding clock and clock alias to SoC setup. Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
Diffstat (limited to 'arch/arm/mach-mvebu')
-rw-r--r--arch/arm/mach-mvebu/armada-370-xp.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/arch/arm/mach-mvebu/armada-370-xp.c b/arch/arm/mach-mvebu/armada-370-xp.c
index 209be0b603..051323eeb3 100644
--- a/arch/arm/mach-mvebu/armada-370-xp.c
+++ b/arch/arm/mach-mvebu/armada-370-xp.c
@@ -27,6 +27,7 @@
ARMADA_370_XP_UARTn_BASE(CONFIG_MVEBU_CONSOLE_UART)
static struct clk *tclk;
+static struct clk *refclk;
static inline void armada_370_xp_memory_find(unsigned long *phys_base,
unsigned long *phys_size)
@@ -92,6 +93,7 @@ static int armada_xp_init_clocks(void)
{
/* On Armada XP, the TCLK frequency is always 250 Mhz */
tclk = clk_fixed("tclk", 250000000);
+ refclk = clk_fixed("ref25M", 25000000);
return 0;
}
#define armada_370_xp_init_clocks() armada_xp_init_clocks()
@@ -106,6 +108,9 @@ static int armada_370_xp_init_soc(void)
armada_370_xp_init_clocks();
clkdev_add_physbase(tclk, (unsigned int)ARMADA_370_XP_TIMER_BASE, NULL);
+ if (refclk && !IS_ERR(refclk))
+ clkdev_add_physbase(refclk, (u32)ARMADA_370_XP_TIMER_BASE,
+ "fixed");
add_generic_device("mvebu-timer", DEVICE_ID_SINGLE, NULL,
(unsigned int)ARMADA_370_XP_TIMER_BASE, 0x30,
IORESOURCE_MEM, NULL);