[prev in list] [next in list] [prev in thread] [next in thread]
List: linux-omap
Subject: Re: [PATCHv3 2/17] dmtimer: infrastructure to support hwmod
From: "Cousson, Benoit" <b-cousson () ti ! com>
Date: 2010-09-30 20:27:11
Message-ID: 4CA4F29F.7010908 () ti ! com
[Download RAW message or body]
On 9/21/2010 10:51 AM, DebBarma, Tarun Kanti wrote:
> This patch introduces data structures and new fields on
> existing data structures to support dmtimer conversion
> to platform driver and support hwmod database for the diferent
> OMAP platforms.
>
> Signed-off-by: Tarun Kanti DebBarma<tarun.kanti@ti.com>
> Signed-off-by: Partha Basak<p-basak2@ti.com>
> Signed-off-by: Thara Gopinath<thara@ti.com>
> Cc: Cousson, Benoit<b-cousson@ti.com>
> Cc: Paul Walmsley<paul@pwsan.com>
> Cc: Kevin Hilman<khilman@deeprootsystems.com>
> Cc: Tony Lindgren<tony@atomide.com>
> ---
> arch/arm/mach-omap2/dmtimer.h | 25 +++++++++++++++++
> arch/arm/plat-omap/dmtimer.c | 9 ++++++
> arch/arm/plat-omap/include/plat/dmtimer.h | 42 +++++++++++++++++++++++++++++
> 3 files changed, 76 insertions(+), 0 deletions(-)
> create mode 100644 arch/arm/mach-omap2/dmtimer.h
>
> diff --git a/arch/arm/mach-omap2/dmtimer.h b/arch/arm/mach-omap2/dmtimer.h
> new file mode 100644
> index 0000000..3355725
> --- /dev/null
> +++ b/arch/arm/mach-omap2/dmtimer.h
> @@ -0,0 +1,25 @@
> +/**
> + * linux/arch/arm/mach-omap2/dmtimer.h
> + *
> + * Copyright (C) 2010 Texas Instruments, Inc.
> + * Thara Gopinath<thara@ti.com>
> + * Tarun Kanti DebBarma<tarun.kanti@ti.com>
> + *
> + * OMAP2 Dual-Mode Timers
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License version 2 as
> + * published by the Free Software Foundation.
> + */
> +
> +#ifndef __ASM_ARCH_DMTIMER_H
> +#define __ASM_ARCH_DMTIMER_H
> +
> +/*
> + * dmtimer is required during early part of boot sequence even before
> + * device model and pm_runtime if fully up and running. this function
> + * provides hook to omap2_init_common_hw() which is triggered from
> + * start_kernel()->init_irq() of kernel initalization sequence.
typo
> + */
> +void __init omap2_dm_timer_early_init(void);
> +
> +#endif
> diff --git a/arch/arm/plat-omap/dmtimer.c b/arch/arm/plat-omap/dmtimer.c
> index 44bafda..a7b1679 100644
> --- a/arch/arm/plat-omap/dmtimer.c
> +++ b/arch/arm/plat-omap/dmtimer.c
> @@ -10,6 +10,12 @@
> * Copyright (C) 2009 Texas Instruments
> * Added OMAP4 support - Santosh Shilimkar<santosh.shilimkar@ti.com>
> *
> + * Copyright (C) 2010 Texas Instruments, Inc.
> + * Thara Gopinath<thara@ti.com>
> + * Tarun Kanti DebBarma<tarun.kanti@ti.com>
> + * - hwmod support
> + * - omap4 support
You should try to have a much more uniform history with the previous one
from Santosh.
The funny thing is that Santosh added the omap4 support in 2009 and you
did the same in 2010:-)
> + *
> * This program is free software; you can redistribute it and/or modify it
> * under the terms of the GNU General Public License as published by the
> * Free Software Foundation; either version 2 of the License, or (at your
> @@ -151,6 +157,8 @@
> (_OMAP_TIMER_TICK_INT_MASK_COUNT_OFFSET | (WP_TOWR<< WPSHIFT))
>
> struct omap_dm_timer {
> + int id;
> + unsigned long fclk_rate;
> unsigned long phys_base;
> int irq;
> #ifdef CONFIG_ARCH_OMAP2PLUS
> @@ -160,6 +168,7 @@ struct omap_dm_timer {
> unsigned reserved:1;
> unsigned enabled:1;
> unsigned posted:1;
> + struct platform_device *pdev;
> };
>
> static int dm_timer_count;
> diff --git a/arch/arm/plat-omap/include/plat/dmtimer.h b/arch/arm/plat-omap/include/plat/dmtimer.h
> index 20f1054..3ec17c5 100644
> --- a/arch/arm/plat-omap/include/plat/dmtimer.h
> +++ b/arch/arm/plat-omap/include/plat/dmtimer.h
> @@ -29,6 +29,8 @@
> #ifndef __ASM_ARCH_DMTIMER_H
> #define __ASM_ARCH_DMTIMER_H
>
> +#include<linux/platform_device.h>
> +
> /* clock sources */
> #define OMAP_TIMER_SRC_SYS_CLK 0x00
> #define OMAP_TIMER_SRC_32_KHZ 0x01
> @@ -44,9 +46,49 @@
> #define OMAP_TIMER_TRIGGER_OVERFLOW 0x01
> #define OMAP_TIMER_TRIGGER_OVERFLOW_AND_COMPARE 0x02
>
> +/* timer ip constants */
> +#define OMAP_TIMER_IP_VERSION_1 0x1 /* OMAP1/2/3 timers */
OMAP4 1ms timers are still v1, only the regular ones are in v2.
> +#define OMAP_TIMER_IP_VERSION_2 0x2 /* OMAP4 timers */
> +
> +/*
> + * number of clock sources supported in the current platform.
> + * for the time being keeping it to 6 just to accomodate future.
typo
> + * expansion. currently, only upto a maximum of 3 clock sources
typo
> + * supported on OMAP4.
> + */
> +#define NR_CLK_SOURCES 3
Is that 6 or 3?
> +
> +
> +/**
> + * omap_timer_dev_attr - timer device attribute
> + *
> + * current implementation contains array of clock source names supported
> + * by different timers. for example, in the case of OMAP4, timer[5-8]
> + * supports different set of input clock sources as compared to the rest.
> + * these array of clock names are used during timer initialization to
> + * parse through timer list and obtain their corresponding struct clk*.
> + * this is subsequently used for changing the timer input clock sources
> + * by client drivers.
> + */
> +struct omap_timer_dev_attr {
> + char **clk_names;
> + u32 *reg_map;
I'll comment that in the hwmod data patches, but neither the reg_map nor
the clk_name should be there.
Benoit
> +};
> +
> struct omap_dm_timer;
> struct clk;
>
> +struct dmtimer_platform_data {
> + int (*set_timer_src)
> + (struct platform_device *pdev, int source);
> +#ifdef CONFIG_ARCH_OMAP2PLUS
> + struct clk *source_clocks[NR_CLK_SOURCES];
> +#endif
> + u32 *reg_map;
> + int timer_ip_type;
> + bool is_early_init;
> +};
> +
> int omap_dm_timer_init(void);
>
> struct omap_dm_timer *omap_dm_timer_request(void);
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic