Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit afd96f83 authored by Olof Johansson's avatar Olof Johansson
Browse files

Merge branch 'ux500-timers' of...

Merge branch 'ux500-timers' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-stericsson into next/soc

* 'ux500-timers' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-stericsson:
  ARM: plat-nomadik: modernize MTU timer
  ARM: plat-nomadik: handle clocking properly
  ARM: plat-nomadik: get rid of global mtu base pointer
parents a5f17d1f a3b86a6d
Loading
Loading
Loading
Loading
+2 −5
Original line number Original line Diff line number Diff line
@@ -27,11 +27,11 @@
#include <asm/mach/arch.h>
#include <asm/mach/arch.h>
#include <asm/mach/irq.h>
#include <asm/mach/irq.h>
#include <asm/mach/flash.h>
#include <asm/mach/flash.h>
#include <asm/mach/time.h>


#include <plat/gpio-nomadik.h>
#include <plat/gpio-nomadik.h>
#include <plat/mtu.h>
#include <plat/mtu.h>


#include <mach/setup.h>
#include <mach/nand.h>
#include <mach/nand.h>
#include <mach/fsmc.h>
#include <mach/fsmc.h>


@@ -246,10 +246,7 @@ static void __init nomadik_timer_init(void)
	src_cr |= SRC_CR_INIT_VAL;
	src_cr |= SRC_CR_INIT_VAL;
	writel(src_cr, io_p2v(NOMADIK_SRC_BASE));
	writel(src_cr, io_p2v(NOMADIK_SRC_BASE));


	/* Save global pointer to mtu, used by platform timer code */
	nmdk_timer_init(io_p2v(NOMADIK_MTU0_BASE));
	mtu_base = io_p2v(NOMADIK_MTU0_BASE);

	nmdk_timer_init();
}
}


static struct sys_timer nomadik_timer = {
static struct sys_timer nomadik_timer = {
+0 −19
Original line number Original line Diff line number Diff line

/*
 * 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 */
+0 −3
Original line number Original line Diff line number Diff line
@@ -27,9 +27,6 @@ extern void __init u5500_sdi_init(void);


extern void __init db5500_dma_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;
struct amba_device;
extern void __init amba_add_devices(struct amba_device *devs[], int num);
extern void __init amba_add_devices(struct amba_device *devs[], int num);


+4 −3
Original line number Original line Diff line number Diff line
@@ -17,19 +17,20 @@


static void __init ux500_timer_init(void)
static void __init ux500_timer_init(void)
{
{
	void __iomem *mtu_timer_base;
	void __iomem *prcmu_timer_base;
	void __iomem *prcmu_timer_base;


	if (cpu_is_u5500()) {
	if (cpu_is_u5500()) {
#ifdef CONFIG_LOCAL_TIMERS
#ifdef CONFIG_LOCAL_TIMERS
		twd_base = __io_address(U5500_TWD_BASE);
		twd_base = __io_address(U5500_TWD_BASE);
#endif
#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);
		prcmu_timer_base = __io_address(U5500_PRCMU_TIMER_3_BASE);
	} else if (cpu_is_u8500()) {
	} else if (cpu_is_u8500()) {
#ifdef CONFIG_LOCAL_TIMERS
#ifdef CONFIG_LOCAL_TIMERS
		twd_base = __io_address(U8500_TWD_BASE);
		twd_base = __io_address(U8500_TWD_BASE);
#endif
#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);
		prcmu_timer_base = __io_address(U8500_PRCMU_TIMER_4_BASE);
	} else {
	} else {
		ux500_unknown_soc();
		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);
	clksrc_dbx500_prcmu_init(prcmu_timer_base);
}
}


+1 −3
Original line number Original line Diff line number Diff line
#ifndef __PLAT_MTU_H
#ifndef __PLAT_MTU_H
#define __PLAT_MTU_H
#define __PLAT_MTU_H


/* should be set by the platform code */
void nmdk_timer_init(void __iomem *base);
extern void __iomem *mtu_base;

void nmdk_clkevt_reset(void);
void nmdk_clkevt_reset(void);
void nmdk_clksrc_reset(void);
void nmdk_clksrc_reset(void);


Loading