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

Commit 9d2aa8c7 authored by Linus Walleij's avatar Linus Walleij Committed by Arnd Bergmann
Browse files

ARM/clocksource: use automatic DT probing for ux500 PRCMU



The ARM core kernel already calls clocksource_of_init() so why
go to all the trouble of locating and probing this node in the
machine. CLOCKSOURCE_OF_DECLARE() will take care of it in the
clocksource driver, and thus we can also get rid of the
dangling header file <linux/clksrc-dbx500-prcmu.h>

Suggested-by: default avatarArnd Bergmann <arndb@linaro.org>
Acked-by: default avatarThomas Gleixner <tglx@linutronix.de>
Acked-by: default avatarDaniel Lezcano <daniel.lezcano@linaro.org>
Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
parent 75305275
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -2,7 +2,7 @@
# Makefile for the linux kernel, U8500 machine.
#

obj-y				:= cpu.o id.o timer.o pm.o
obj-y				:= cpu.o id.o pm.o
obj-$(CONFIG_CACHE_L2X0)	+= cache-l2x0.o
obj-$(CONFIG_UX500_SOC_DB8500)	+= cpu-db8500.o
obj-$(CONFIG_MACH_MOP500)	+= board-mop500-regulators.o \
+0 −2
Original line number Diff line number Diff line
@@ -156,8 +156,6 @@ static const char * stericsson_dt_platform_compat[] = {
DT_MACHINE_START(U8500_DT, "ST-Ericsson Ux5x0 platform (Device Tree Support)")
	.map_io		= u8500_map_io,
	.init_irq	= ux500_init_irq,
	/* we re-use nomadik timer here */
	.init_time	= ux500_timer_init,
	.init_machine	= u8500_init_machine,
	.init_late	= NULL,
	.dt_compat      = stericsson_dt_platform_compat,
+0 −1
Original line number Diff line number Diff line
@@ -9,7 +9,6 @@
#include <linux/platform_device.h>
#include <linux/io.h>
#include <linux/mfd/dbx500-prcmu.h>
#include <linux/clksrc-dbx500-prcmu.h>
#include <linux/sys_soc.h>
#include <linux/err.h>
#include <linux/slab.h>
+0 −3
Original line number Diff line number Diff line
@@ -12,7 +12,6 @@
#define __ASM_ARCH_SETUP_H

#include <asm/mach/arch.h>
#include <asm/mach/time.h>
#include <linux/init.h>
#include <linux/mfd/abx500/ab8500.h>

@@ -24,8 +23,6 @@ extern void __init ux500_init_irq(void);

extern struct device *ux500_soc_device_init(const char *soc_id);

extern void ux500_timer_init(void);

extern void ux500_cpu_die(unsigned int cpu);

#endif /*  __ASM_ARCH_SETUP_H */

arch/arm/mach-ux500/timer.c

deleted100644 → 0
+0 −48
Original line number Diff line number Diff line
/*
 * Copyright (C) ST-Ericsson SA 2011
 *
 * License Terms: GNU General Public License v2
 * Author: Mattias Wallin <mattias.wallin@stericsson.com> for ST-Ericsson
 */
#include <linux/io.h>
#include <linux/errno.h>
#include <linux/clksrc-dbx500-prcmu.h>
#include <linux/clocksource.h>
#include <linux/of.h>
#include <linux/of_address.h>

#include "setup.h"

#include "db8500-regs.h"
#include "id.h"

static const struct of_device_id prcmu_timer_of_match[] __initconst = {
	{ .compatible = "stericsson,db8500-prcmu-timer-4", },
	{ },
};

void __init ux500_timer_init(void)
{
	void __iomem *prcmu_timer_base;
	void __iomem *tmp_base;
	struct device_node *np;

	if (cpu_is_u8500_family() || cpu_is_ux540_family())
		prcmu_timer_base = __io_address(U8500_PRCMU_TIMER_4_BASE);
	else
		ux500_unknown_soc();

	np = of_find_matching_node(NULL, prcmu_timer_of_match);
	if (!np)
		goto dt_fail;

	tmp_base = of_iomap(np, 0);
	if (!tmp_base)
		goto dt_fail;

	prcmu_timer_base = tmp_base;

dt_fail:
	clksrc_dbx500_prcmu_init(prcmu_timer_base);
	clocksource_probe();
}
Loading