On Saturday 28 November 2015 05:22 PM, Bin Meng wrote: > Hi Mugunthan, > > On Fri, Nov 27, 2015 at 4:31 PM, Mugunthan V N <mugunthan...@ti.com> wrote: >> Adding a timer driver for omap devices based on driver model >> and device tree. >> >> Signed-off-by: Mugunthan V N <mugunthan...@ti.com> >> --- >> drivers/timer/Kconfig | 6 +++ >> drivers/timer/Makefile | 1 + >> drivers/timer/omap-timer.c | 108 >> +++++++++++++++++++++++++++++++++++++++++++++ >> 3 files changed, 115 insertions(+) >> create mode 100644 drivers/timer/omap-timer.c >> >> diff --git a/drivers/timer/Kconfig b/drivers/timer/Kconfig >> index 601e493..98ba012 100644 >> --- a/drivers/timer/Kconfig >> +++ b/drivers/timer/Kconfig >> @@ -23,4 +23,10 @@ config SANDBOX_TIMER >> Select this to enable an emulated timer for sandbox. It gets >> time from host os. >> >> +config OMAP_TIMER >> + bool "Omap Timer support" > > nits: Timer -> timer. Please see dm/master branch which has a commit > to fix all these nits in the existing timer drivers.
Will fix it in next revision > >> + depends on TIMER >> + help >> + Select this to enable an timer for Omap devices. >> + >> endmenu >> diff --git a/drivers/timer/Makefile b/drivers/timer/Makefile >> index 300946e..2eb9cfc 100644 >> --- a/drivers/timer/Makefile >> +++ b/drivers/timer/Makefile >> @@ -7,3 +7,4 @@ >> obj-$(CONFIG_TIMER) += timer-uclass.o >> obj-$(CONFIG_ALTERA_TIMER) += altera_timer.o >> obj-$(CONFIG_SANDBOX_TIMER) += sandbox_timer.o >> +obj-$(CONFIG_OMAP_TIMER) += omap-timer.o >> diff --git a/drivers/timer/omap-timer.c b/drivers/timer/omap-timer.c >> new file mode 100644 >> index 0000000..2532e74 >> --- /dev/null >> +++ b/drivers/timer/omap-timer.c >> @@ -0,0 +1,108 @@ >> +/* >> + * TI OMAP Timer driver > > nits: Timer -> timer > >> + * >> + * Copyright (C) 2015, Texas Instruments, Incorporated >> + * >> + * SPDX-License-Identifier: GPL-2.0+ >> + */ >> + >> +#include <common.h> >> +#include <dm.h> >> +#include <errno.h> >> +#include <timer.h> >> +#include <asm/io.h> >> +#include <asm/arch/clock.h> >> + >> +DECLARE_GLOBAL_DATA_PTR; >> + >> +/* Timer register bits */ >> +#define TCLR_START BIT(0) /* Start=1 */ >> +#define TCLR_AUTO_RELOAD BIT(1) /* Auto reload */ >> +#define TCLR_PRE_EN BIT(5) /* Pre-scaler enable */ >> +#define TCLR_PTV_SHIFT (2) /* Pre-scaler shift value */ >> + >> +#define TIMER_CLOCK (V_SCLK / (2 << CONFIG_SYS_PTV)) >> + >> +struct omap_gptimer_regs { >> + unsigned int tidr; /* offset 0x00 */ >> + unsigned char res1[12]; >> + unsigned int tiocp_cfg; /* offset 0x10 */ >> + unsigned char res2[12]; >> + unsigned int tier; /* offset 0x20 */ >> + unsigned int tistatr; /* offset 0x24 */ >> + unsigned int tistat; /* offset 0x28 */ >> + unsigned int tisr; /* offset 0x2c */ >> + unsigned int tcicr; /* offset 0x30 */ >> + unsigned int twer; /* offset 0x34 */ >> + unsigned int tclr; /* offset 0x38 */ >> + unsigned int tcrr; /* offset 0x3c */ >> + unsigned int tldr; /* offset 0x40 */ >> + unsigned int ttgr; /* offset 0x44 */ >> + unsigned int twpc; /* offset 0x48 */ >> + unsigned int tmar; /* offset 0x4c */ >> + unsigned int tcar1; /* offset 0x50 */ >> + unsigned int tscir; /* offset 0x54 */ >> + unsigned int tcar2; /* offset 0x58 */ >> +}; >> + >> +/* Omap Timer Priv */ >> +struct omap_timer_priv { >> + struct omap_gptimer_regs *regs; >> +}; >> + >> +static int omap_timer_get_count(struct udevice *dev, unsigned long *count) > > Please rebase your series on top of dm/master, where this API > parameter 'count' has been changed to u64. Hmmm, will rebase to dm/master and submit my next revision. Regards Mugunthan V N _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot