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

Commit 631e55f9 authored by Russell King's avatar Russell King
Browse files

ARM: realview: use new init_early for clock tree and sched_clock init



Initialize the clock tree and our sched_clock() early.

Acked-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent ad3bb19c
Loading
Loading
Loading
Loading
+6 −13
Original line number Diff line number Diff line
@@ -360,18 +360,19 @@ static struct clk_lookup lookups[] = {
	}
};

static int __init clk_init(void)
void __init realview_init_early(void)
{
	void __iomem *sys = __io_address(REALVIEW_SYS_BASE);

	if (machine_is_realview_pb1176())
		oscvco_clk.vcoreg = __io_address(REALVIEW_SYS_BASE) + REALVIEW_SYS_OSC0_OFFSET;
		oscvco_clk.vcoreg = sys + REALVIEW_SYS_OSC0_OFFSET;
	else
		oscvco_clk.vcoreg = __io_address(REALVIEW_SYS_BASE) + REALVIEW_SYS_OSC4_OFFSET;
		oscvco_clk.vcoreg = sys + REALVIEW_SYS_OSC4_OFFSET;

	clkdev_add_table(lookups, ARRAY_SIZE(lookups));

	return 0;
	versatile_sched_clock_init(sys + REALVIEW_SYS_24MHz_OFFSET, 24000000);
}
core_initcall(clk_init);

/*
 * CLCD support.
@@ -509,12 +510,6 @@ void realview_leds_event(led_event_t ledevt)
}
#endif	/* CONFIG_LEDS */

/*
 * The sched_clock counter
 */
#define REFCOUNTER		(__io_address(REALVIEW_SYS_BASE) + \
				 REALVIEW_SYS_24MHz_OFFSET)

/*
 * Where is the timer (VA)?
 */
@@ -530,8 +525,6 @@ void __init realview_timer_init(unsigned int timer_irq)
{
	u32 val;

	versatile_sched_clock_init(REFCOUNTER, 24000000);

	/* 
	 * set clock frequency: 
	 *	REALVIEW_REFCLK is 32KHz
+1 −0
Original line number Diff line number Diff line
@@ -63,6 +63,7 @@ extern void realview_timer_init(unsigned int timer_irq);
extern int realview_flash_register(struct resource *res, u32 num);
extern int realview_eth_register(const char *name, struct resource *res);
extern int realview_usb_register(struct resource *res);
extern void realview_init_early(void);
extern void realview_fixup(struct machine_desc *mdesc, struct tag *tags,
			   char **from, struct meminfo *meminfo);
extern void (*realview_reset)(char);
+1 −0
Original line number Diff line number Diff line
@@ -487,6 +487,7 @@ MACHINE_START(REALVIEW_EB, "ARM-RealView EB")
	.boot_params	= PHYS_OFFSET + 0x00000100,
	.fixup		= realview_fixup,
	.map_io		= realview_eb_map_io,
	.init_early	= realview_init_early,
	.init_irq	= gic_init_irq,
	.timer		= &realview_eb_timer,
	.init_machine	= realview_eb_init,
+1 −0
Original line number Diff line number Diff line
@@ -382,6 +382,7 @@ MACHINE_START(REALVIEW_PB1176, "ARM-RealView PB1176")
	.boot_params	= PHYS_OFFSET + 0x00000100,
	.fixup		= realview_pb1176_fixup,
	.map_io		= realview_pb1176_map_io,
	.init_early	= realview_init_early,
	.init_irq	= gic_init_irq,
	.timer		= &realview_pb1176_timer,
	.init_machine	= realview_pb1176_init,
+1 −0
Original line number Diff line number Diff line
@@ -384,6 +384,7 @@ MACHINE_START(REALVIEW_PB11MP, "ARM-RealView PB11MPCore")
	.boot_params	= PHYS_OFFSET + 0x00000100,
	.fixup		= realview_fixup,
	.map_io		= realview_pb11mp_map_io,
	.init_early	= realview_init_early,
	.init_irq	= gic_init_irq,
	.timer		= &realview_pb11mp_timer,
	.init_machine	= realview_pb11mp_init,
Loading