forked from luck/tmp_suning_uos_patched
ARM: plat-nomadik: get rid of global mtu base pointer
Pass the base offset to the Nomadik MTU timer in the init call instead of keeping a global pointer to be assigned. Acked-by: Alessandro Rubini <rubini@unipv.it> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
This commit is contained in:
parent
dcd6c92267
commit
b9576623c4
|
@ -27,11 +27,11 @@
|
|||
#include <asm/mach/arch.h>
|
||||
#include <asm/mach/irq.h>
|
||||
#include <asm/mach/flash.h>
|
||||
#include <asm/mach/time.h>
|
||||
|
||||
#include <plat/gpio-nomadik.h>
|
||||
#include <plat/mtu.h>
|
||||
|
||||
#include <mach/setup.h>
|
||||
#include <mach/nand.h>
|
||||
#include <mach/fsmc.h>
|
||||
|
||||
|
@ -255,10 +255,7 @@ static void __init nomadik_timer_init(void)
|
|||
src_cr |= SRC_CR_INIT_VAL;
|
||||
writel(src_cr, io_p2v(NOMADIK_SRC_BASE));
|
||||
|
||||
/* Save global pointer to mtu, used by platform timer code */
|
||||
mtu_base = io_p2v(NOMADIK_MTU0_BASE);
|
||||
|
||||
nmdk_timer_init();
|
||||
nmdk_timer_init(io_p2v(NOMADIK_MTU0_BASE));
|
||||
}
|
||||
|
||||
static struct sys_timer nomadik_timer = {
|
||||
|
|
|
@ -1,19 +0,0 @@
|
|||
|
||||
/*
|
||||
* These symbols are needed for board-specific files to call their
|
||||
* own cpu-specific files
|
||||
*/
|
||||
|
||||
#ifndef __ASM_ARCH_SETUP_H
|
||||
#define __ASM_ARCH_SETUP_H
|
||||
|
||||
#include <asm/mach/time.h>
|
||||
#include <linux/init.h>
|
||||
|
||||
#ifdef CONFIG_NOMADIK_8815
|
||||
|
||||
extern void nmdk_timer_init(void);
|
||||
|
||||
#endif /* NOMADIK_8815 */
|
||||
|
||||
#endif /* __ASM_ARCH_SETUP_H */
|
|
@ -27,9 +27,6 @@ extern void __init u5500_sdi_init(void);
|
|||
|
||||
extern void __init db5500_dma_init(void);
|
||||
|
||||
/* We re-use nomadik_timer for this platform */
|
||||
extern void nmdk_timer_init(void);
|
||||
|
||||
struct amba_device;
|
||||
extern void __init amba_add_devices(struct amba_device *devs[], int num);
|
||||
|
||||
|
|
|
@ -17,19 +17,20 @@
|
|||
|
||||
static void __init ux500_timer_init(void)
|
||||
{
|
||||
void __iomem *mtu_timer_base;
|
||||
void __iomem *prcmu_timer_base;
|
||||
|
||||
if (cpu_is_u5500()) {
|
||||
#ifdef CONFIG_LOCAL_TIMERS
|
||||
twd_base = __io_address(U5500_TWD_BASE);
|
||||
#endif
|
||||
mtu_base = __io_address(U5500_MTU0_BASE);
|
||||
mtu_timer_base = __io_address(U5500_MTU0_BASE);
|
||||
prcmu_timer_base = __io_address(U5500_PRCMU_TIMER_3_BASE);
|
||||
} else if (cpu_is_u8500()) {
|
||||
#ifdef CONFIG_LOCAL_TIMERS
|
||||
twd_base = __io_address(U8500_TWD_BASE);
|
||||
#endif
|
||||
mtu_base = __io_address(U8500_MTU0_BASE);
|
||||
mtu_timer_base = __io_address(U8500_MTU0_BASE);
|
||||
prcmu_timer_base = __io_address(U8500_PRCMU_TIMER_4_BASE);
|
||||
} else {
|
||||
ux500_unknown_soc();
|
||||
|
@ -52,7 +53,7 @@ static void __init ux500_timer_init(void)
|
|||
*
|
||||
*/
|
||||
|
||||
nmdk_timer_init();
|
||||
nmdk_timer_init(mtu_timer_base);
|
||||
clksrc_dbx500_prcmu_init(prcmu_timer_base);
|
||||
}
|
||||
|
||||
|
|
|
@ -1,9 +1,7 @@
|
|||
#ifndef __PLAT_MTU_H
|
||||
#define __PLAT_MTU_H
|
||||
|
||||
/* should be set by the platform code */
|
||||
extern void __iomem *mtu_base;
|
||||
|
||||
void nmdk_timer_init(void __iomem *base);
|
||||
void nmdk_clkevt_reset(void);
|
||||
void nmdk_clksrc_reset(void);
|
||||
|
||||
|
|
|
@ -66,12 +66,11 @@
|
|||
#define MTU_PCELL2 0xff8
|
||||
#define MTU_PCELL3 0xffC
|
||||
|
||||
static void __iomem *mtu_base;
|
||||
static bool clkevt_periodic;
|
||||
static u32 clk_prescale;
|
||||
static u32 nmdk_cycle; /* write-once */
|
||||
|
||||
void __iomem *mtu_base; /* Assigned by machine code */
|
||||
|
||||
#ifdef CONFIG_NOMADIK_MTU_SCHED_CLOCK
|
||||
/*
|
||||
* Override the global weak sched_clock symbol with this
|
||||
|
@ -183,11 +182,12 @@ void nmdk_clksrc_reset(void)
|
|||
mtu_base + MTU_CR(0));
|
||||
}
|
||||
|
||||
void __init nmdk_timer_init(void)
|
||||
void __init nmdk_timer_init(void __iomem *base)
|
||||
{
|
||||
unsigned long rate;
|
||||
struct clk *clk0;
|
||||
|
||||
mtu_base = base;
|
||||
clk0 = clk_get_sys("mtu0", NULL);
|
||||
BUG_ON(IS_ERR(clk0));
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user