From: Santosh Shilimkar <santosh.shilimkar@ti.com>
To: Tarun Kanti DebBarma <tarun.kanti@ti.com>
Cc: linux-omap@vger.kernel.org
Subject: Re: [PATCH v13 11/11] OMAP: dmtimer: convert to a driver
Date: Fri, 29 Apr 2011 16:21:45 +0530 [thread overview]
Message-ID: <4DBA9841.1080508@ti.com> (raw)
In-Reply-To: <1302969063-8231-12-git-send-email-tarun.kanti@ti.com>
Tarun,
On 4/16/2011 9:21 PM, Tarun Kanti DebBarma wrote:
> Make plat-omap/dmtimer.c a normal driver. It is moved to drivers/misc
> as timer-omap.c and the corresponding header file has been moved to
> include/linux as timer-omap.h. Files which included plat/dmtimer.h
> are changed to include linux/timer-omap.h now.
>
> Signed-off-by: Tarun Kanti DebBarma<tarun.kanti@ti.com>
> ---
> arch/arm/mach-omap1/dmtimer.c | 3 +-
> arch/arm/mach-omap1/pm.c | 2 +-
> arch/arm/mach-omap1/timer32k.c | 2 +-
> arch/arm/mach-omap2/omap_hwmod_2420_data.c | 3 +-
> arch/arm/mach-omap2/omap_hwmod_2430_data.c | 3 +-
> arch/arm/mach-omap2/omap_hwmod_3xxx_data.c | 3 +-
> arch/arm/mach-omap2/omap_hwmod_44xx_data.c | 2 +-
> arch/arm/mach-omap2/pm-debug.c | 2 +-
> arch/arm/mach-omap2/timer.c | 2 +-
> arch/arm/plat-omap/Makefile | 1 -
> drivers/misc/Makefile | 1 +
> drivers/misc/timer-omap.c | 643 ++++++++++++++++++++++++++++
> drivers/tty/serial/omap-serial.c | 2 +-
> include/linux/timer-omap.h | 351 +++++++++++++++
> 14 files changed, 1008 insertions(+), 12 deletions(-)
> create mode 100644 drivers/misc/timer-omap.c
> create mode 100644 include/linux/timer-omap.h
>
[...]
> diff --git a/drivers/misc/timer-omap.c b/drivers/misc/timer-omap.c
> new file mode 100644
> index 0000000..4ee0571
> --- /dev/null
> +++ b/drivers/misc/timer-omap.c
[...]
> +
> +#if defined(CONFIG_ARCH_OMAP1)
Well this is suppose to be device driver so no place
for SOC #ifdef. You should remove this ...
> +
> +/**
> + * omap_dm_timer_modify_idlect_mask - Check if any running timers use ARMXOR
> + * @inputmask: current value of idlect mask
> + */
> +__u32 omap_dm_timer_modify_idlect_mask(__u32 inputmask)
> +{
> + int i = 0;
> + struct omap_dm_timer *timer = NULL;
> +
> + /* If ARMXOR cannot be idled this function call is unnecessary */
> + if (!(inputmask& (1<< 1)))
> + return inputmask;
> +
[...]
> + * omap_dm_timer_probe - probe function called for every registered device
> + * @pdev: pointer to current timer platform device
> + *
> + * Called by driver framework at the end of device registration for all
> + * timer devices.
> + */
> +static int __devinit omap_dm_timer_probe(struct platform_device *pdev)
> +{
> + int ret;
> + struct omap_dm_timer *timer;
> + struct resource *mem, *irq, *ioarea;
> + struct dmtimer_platform_data *pdata = pdev->dev.platform_data;
> +
> + if (!pdata) {
> + dev_err(&pdev->dev, "%s: no platform data.\n", __func__);
> + return -ENODEV;
> + }
> +
> + irq = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
> + if (unlikely(!irq)) {
> + dev_err(&pdev->dev, "%s: no IRQ resource.\n", __func__);
> + ret = -ENODEV;
> + goto err_free_pdev;
> + }
> +
> + mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> + if (unlikely(!mem)) {
> + dev_err(&pdev->dev, "%s: no memory resource.\n", __func__);
> + ret = -ENODEV;
> + goto err_free_pdev;
> + }
> +
> + ioarea = request_mem_region(mem->start, resource_size(mem),
> + pdev->name);
> + if (!ioarea) {
> + dev_err(&pdev->dev, "%s: region already claimed.\n", __func__);
> + ret = -EBUSY;
> + goto err_free_pdev;
> + }
> +
> + timer = kzalloc(sizeof(struct omap_dm_timer), GFP_KERNEL);
> + if (!timer) {
> + dev_err(&pdev->dev, "%s: no memory for omap_dm_timer.\n",
> + __func__);
> + ret = -ENOMEM;
> + goto err_release_ioregion;
> + }
> +
> + timer->io_base = ioremap(mem->start, resource_size(mem));
> + if (!timer->io_base) {
> + dev_err(&pdev->dev, "%s: ioremap failed.\n", __func__);
> + ret = -ENOMEM;
> + goto err_free_mem;
> + }
> +
> + if (pdata->timer_ip_type == OMAP_TIMER_IP_VERSION_2) {
> + timer->func_offset = VERSION2_TIMER_WAKEUP_EN_REG_OFFSET;
> + timer->intr_offset = VERSION2_TIMER_STAT_REG_OFFSET;
> + } else {
> + timer->func_offset = 0;
> + timer->intr_offset = 0;
> + }
> +
> + timer->id = pdev->id;
> + timer->irq = irq->start;
> + timer->pdev = pdev;
> +#if defined(CONFIG_ARCH_OMAP2)
This one too ..
[...]
> diff --git a/include/linux/timer-omap.h b/include/linux/timer-omap.h
> new file mode 100644
> index 0000000..a6b4cac
> --- /dev/null
> +++ b/include/linux/timer-omap.h
> @@ -0,0 +1,351 @@
> +/*
> + * include/linux/timer-omap.h
> + *
> + * OMAP Dual-Mode Timers
> + *
[...]
> +/* register offsets */
> +#define _OMAP_TIMER_ID_OFFSET 0x00
> +#define _OMAP_TIMER_OCP_CFG_OFFSET 0x10
> +#define _OMAP_TIMER_SYS_STAT_OFFSET 0x14
> +#define _OMAP_TIMER_STAT_OFFSET 0x18
> +#define _OMAP_TIMER_INT_EN_OFFSET 0x1c
> +#define _OMAP_TIMER_WAKEUP_EN_OFFSET 0x20
> +#define _OMAP_TIMER_CTRL_OFFSET 0x24
> +#define OMAP_TIMER_CTRL_GPOCFG (1<< 14)
> +#define OMAP_TIMER_CTRL_CAPTMODE (1<< 13)
> +#define OMAP_TIMER_CTRL_PT (1<< 12)
> +#define OMAP_TIMER_CTRL_TCM_LOWTOHIGH (0x1<< 8)
> +#define OMAP_TIMER_CTRL_TCM_HIGHTOLOW (0x2<< 8)
> +#define OMAP_TIMER_CTRL_TCM_BOTHEDGES (0x3<< 8)
> +#define OMAP_TIMER_CTRL_SCPWM (1<< 7)
> +#define OMAP_TIMER_CTRL_CE (1<< 6) /* compare enable */
> +#define OMAP_TIMER_CTRL_PRE (1<< 5) /* prescaler enable */
> +#define OMAP_TIMER_CTRL_PTV_SHIFT 2 /* prescaler value shift */
> +#define OMAP_TIMER_CTRL_POSTED (1<< 2)
> +#define OMAP_TIMER_CTRL_AR (1<< 1) /* auto-reload enable */
> +#define OMAP_TIMER_CTRL_ST (1<< 0) /* start timer */
Fix the indentation above and in rest of the file.
Regards
Santosh
next prev parent reply other threads:[~2011-04-29 10:52 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-04-16 15:50 [PATCH v13 00/11] dmtimer adaptation to platform_driver Tarun Kanti DebBarma
2011-04-16 15:50 ` [PATCH v13 01/11] OMAP2+: dmtimer: add device names to flck nodes Tarun Kanti DebBarma
2011-04-16 15:50 ` [PATCH v13 02/11] OMAP4: hwmod data: add dmtimer version information Tarun Kanti DebBarma
2011-04-16 15:50 ` [PATCH v13 03/11] OMAP1: dmtimer: conversion to platform devices Tarun Kanti DebBarma
2011-04-16 15:50 ` [PATCH v13 04/11] OMAP2+: dmtimer: convert " Tarun Kanti DebBarma
2011-04-25 9:38 ` DebBarma, Tarun Kanti
2011-04-29 10:45 ` Santosh Shilimkar
2011-04-16 15:50 ` [PATCH v13 05/11] OMAP: dmtimer: platform driver Tarun Kanti DebBarma
2011-04-16 15:50 ` [PATCH v13 06/11] dmtimer: switch-over to platform device driver Tarun Kanti DebBarma
2011-04-16 15:50 ` [PATCH v13 07/11] OMAP: dmtimer: pm_runtime support Tarun Kanti DebBarma
2011-04-16 15:51 ` [PATCH v13 08/11] OMAP: dmtimer: add timeout to low-level routines Tarun Kanti DebBarma
2011-04-16 15:51 ` [PATCH v13 09/11] OMAP: dmtimer: use mutex instead of spinlock Tarun Kanti DebBarma
2011-04-16 15:51 ` [PATCH v13 10/11] OMAP: dmtimer: mark clocksource and clockevent timers reserved Tarun Kanti DebBarma
2011-04-17 6:12 ` Santosh Shilimkar
2011-04-18 5:50 ` DebBarma, Tarun Kanti
2011-04-25 9:41 ` DebBarma, Tarun Kanti
2011-04-29 10:40 ` Santosh Shilimkar
2011-04-16 15:51 ` [PATCH v13 11/11] OMAP: dmtimer: convert to a driver Tarun Kanti DebBarma
2011-04-29 10:51 ` Santosh Shilimkar [this message]
2011-04-29 11:05 ` [PATCH v13 00/11] dmtimer adaptation to platform_driver Santosh Shilimkar
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4DBA9841.1080508@ti.com \
--to=santosh.shilimkar@ti.com \
--cc=linux-omap@vger.kernel.org \
--cc=tarun.kanti@ti.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.