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

Commit cba13830 authored by Mattias Wallin's avatar Mattias Wallin Committed by Linus Walleij
Browse files

ARM: plat-nomadik: MTU sched_clock as an option



This patch makes it possible to configure away the sched_clock
part of the MTU timer.

Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: default avatarMattias Wallin <mattias.wallin@stericsson.com>
Signed-off-by: default avatarJonas Aberg <jonas.aberg@stericsson.com>
Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
parent d93dc5c4
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -15,10 +15,16 @@ if PLAT_NOMADIK

config HAS_MTU
	bool
	select HAVE_SCHED_CLOCK
	help
	  Support for Multi Timer Unit. MTU provides access
	  to multiple interrupt generating programmable
	  32-bit free running decrementing counters.

config NOMADIK_MTU_SCHED_CLOCK
	bool
	depends on HAS_MTU
	select HAVE_SCHED_CLOCK
	help
	  Use the Multi Timer Unit as the sched_clock.

endif
+4 −4
Original line number Diff line number Diff line
@@ -24,7 +24,7 @@
#include <plat/mtu.h>

void __iomem *mtu_base; /* Assigned by machine code */

#ifdef CONFIG_NOMADIK_MTU_SCHED_CLOCK
/*
 * Override the global weak sched_clock symbol with this
 * local implementation which uses the clocksource to get some
@@ -48,7 +48,7 @@ static void notrace nomadik_update_sched_clock(void)
	u32 cyc = -readl(mtu_base + MTU_VAL(0));
	update_sched_clock(&cd, cyc, (u32)~0);
}

#endif
/* Clockevent device: use one-shot mode */
static void nmdk_clkevt_mode(enum clock_event_mode mode,
			     struct clock_event_device *dev)
@@ -153,9 +153,9 @@ void __init nmdk_timer_init(void)
			rate, 200, 32, clocksource_mmio_readl_down))
		pr_err("timer: failed to initialize clock source %s\n",
		       "mtu_0");

#ifdef CONFIG_NOMADIK_MTU_SCHED_CLOCK
	init_sched_clock(&cd, nomadik_update_sched_clock, 32, rate);

#endif
	/* Timer 1 is used for events */

	clockevents_calc_mult_shift(&nmdk_clkevt, rate, MTU_MIN_RANGE);