On Sun, Feb 10, 2013 at 05:02:35PM +0100, Jean-Christophe PLAGNIOL-VILLARD wrote: > Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@xxxxxxxxxxxx> > --- > drivers/clocksource/Kconfig | 4 ++ > drivers/clocksource/Makefile | 1 + > drivers/clocksource/amba-sp804.c | 89 ++++++++++++++++++++++++++++++++++++++ > 3 files changed, 94 insertions(+) > create mode 100644 drivers/clocksource/amba-sp804.c > > diff --git a/drivers/clocksource/Kconfig b/drivers/clocksource/Kconfig > index 09acdd7..3f27cf2 100644 > --- a/drivers/clocksource/Kconfig > +++ b/drivers/clocksource/Kconfig > @@ -1,3 +1,7 @@ > +config AMBA_SP804 > + bool > + depends on ARM_AMBA > + > config ARM_SMP_TWD > bool > depends on ARM && CPU_V7 > diff --git a/drivers/clocksource/Makefile b/drivers/clocksource/Makefile > index 92d7c13..b0bc8bd 100644 > --- a/drivers/clocksource/Makefile > +++ b/drivers/clocksource/Makefile > @@ -1,3 +1,4 @@ > +obj-$(CONFIG_AMBA_SP804) += amba-sp804.o > obj-$(CONFIG_ARM_SMP_TWD) += arm_smp_twd.o > obj-$(CONFIG_CLOCKSOURCE_BCM2835) += bcm2835.o > obj-$(CONFIG_CLOCKSOURCE_NOMADIK) += nomadik.o > diff --git a/drivers/clocksource/amba-sp804.c b/drivers/clocksource/amba-sp804.c > new file mode 100644 > index 0000000..bb6facc > --- /dev/null > +++ b/drivers/clocksource/amba-sp804.c > @@ -0,0 +1,89 @@ > +/* > + * Copyright (C) 2012 Jean-Christophe PLAGNIOL-VILLARD <plagnio@xxxxxxxxxxxx> > + * > + * Under GPL v2 > + */ > +#include <common.h> > +#include <init.h> > +#include <clock.h> > +#include <io.h> > +#include <driver.h> > +#include <errno.h> > +#include <linux/amba/bus.h> > +#include <linux/clk.h> > +#include <linux/err.h> > + > +#include <asm/hardware/arm_timer.h> > + > +static __iomem void *sp804_base; > +static struct clk *sp804_clk; > + > +static uint64_t sp804_read(void) > +{ > + return ~readl(sp804_base + TIMER_VALUE); > +} > + > +static struct clocksource sp804_clksrc = { > + .read = sp804_read, > + .shift = 20, > + .mask = CLOCKSOURCE_MASK(32), > +}; > + > +static int sp804_probe(struct amba_device *dev, const struct amba_id *id) > +{ > + u32 tick_rate; > + int ret; > + Since this is a single instance driver please protect this driver from being probed twice: if (sp804_base) return -EBUSY; Sascha -- Pengutronix e.K. | | Industrial Linux Solutions | http://www.pengutronix.de/ | Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 | _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox