RE: [PATCHv3 2/17] dmtimer: infrastructure to support hwmod

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Benoit,

> -----Original Message-----
> From: Cousson, Benoit
> Sent: Friday, October 01, 2010 1:57 AM
> To: DebBarma, Tarun Kanti
> Cc: linux-omap@xxxxxxxxxxxxxxx; Basak, Partha; Gopinath, Thara; Paul
> Walmsley; Kevin Hilman; Tony Lindgren
> Subject: Re: [PATCHv3 2/17] dmtimer: infrastructure to support hwmod
> 
> 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@xxxxxx>
> > Signed-off-by: Partha Basak<p-basak2@xxxxxx>
> > Signed-off-by: Thara Gopinath<thara@xxxxxx>
> > Cc: Cousson, Benoit<b-cousson@xxxxxx>
> > Cc: Paul Walmsley<paul@xxxxxxxxx>
> > Cc: Kevin Hilman<khilman@xxxxxxxxxxxxxxxxxxx>
> > Cc: Tony Lindgren<tony@xxxxxxxxxxx>
> > ---
> >   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@xxxxxx>
> > + * Tarun Kanti DebBarma<tarun.kanti@xxxxxx>
> > + *
> > + * 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
Ok, I will take care.

> 
> > + */
> > +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@xxxxxx>
> >    *
> > + * Copyright (C) 2010 Texas Instruments, Inc.
> > + * Thara Gopinath<thara@xxxxxx>
> > + * Tarun Kanti DebBarma<tarun.kanti@xxxxxx>
> > + * - 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:-)
I will elaborate and I agree the present description is too simple which confuses more than anything.

> 
> 
> > + *
> >    * 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?
Initially I kept 6. Later I changed to 3 while forgetting to change the comment.

> 
> > +
> > +
> > +/**
> > + * 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.
> 
Ok.
-tarun

> 
> > +};
> > +
> >   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@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux