[RFC PATCH 07/16] ARM: local timers: move OMAP4 to LOCAL_TIMER_DEVICES/ARM_SMP_TWD

Santosh Shilimkar santosh.shilimkar at ti.com
Fri Jun 17 04:42:58 EDT 2011


On 6/17/2011 2:09 PM, Marc Zyngier wrote:
> Hi Santosh,
>
> On 17/06/11 09:16, Santosh Shilimkar wrote:
>> On 6/17/2011 12:36 AM, Marc Zyngier wrote:
>>> Convert the OMAP4 platforms to use the new arm_smp_twd driver.
>>> Add the platform device and register it as early platform device.
>>>
>>> Tested on a Pandaboard.
>>>
>>> Cc: Tony Lindgren<tony at atomide.com>
>>> Cc: Santosh Shilimkar<santosh.shilimkar at ti.com>
>>> Signed-off-by: Marc Zyngier<marc.zyngier at arm.com>
>>> ---
>>>    arch/arm/mach-omap2/Kconfig     |    3 +-
>>>    arch/arm/mach-omap2/Makefile    |    1 -
>>>    arch/arm/mach-omap2/timer-gp.c  |   40 ++++++++++++++++++++++++++++++++------
>>>    arch/arm/mach-omap2/timer-mpu.c |   40 ---------------------------------------
>>>    4 files changed, 35 insertions(+), 49 deletions(-)
>>>    delete mode 100644 arch/arm/mach-omap2/timer-mpu.c
>>>
>>> diff --git a/arch/arm/mach-omap2/Kconfig b/arch/arm/mach-omap2/Kconfig
>>> index 19d5891..805d7b9 100644
>>> --- a/arch/arm/mach-omap2/Kconfig
>>> +++ b/arch/arm/mach-omap2/Kconfig
>>> @@ -44,7 +44,8 @@ config ARCH_OMAP4
>>>    	depends on ARCH_OMAP2PLUS
>>>    	select CPU_V7
>>>    	select ARM_GIC
>>> -	select LOCAL_TIMERS if SMP
>>> +	select LOCAL_TIMER_DEVICES if SMP
>>> +	select ARM_SMP_TWD
>>>    	select PL310_ERRATA_588369
>>>    	select PL310_ERRATA_727915
>>>    	select ARM_ERRATA_720789
>>> diff --git a/arch/arm/mach-omap2/Makefile b/arch/arm/mach-omap2/Makefile
>>> index b148077..f48c989 100644
>>> --- a/arch/arm/mach-omap2/Makefile
>>> +++ b/arch/arm/mach-omap2/Makefile
>>> @@ -22,7 +22,6 @@ obj-$(CONFIG_TWL4030_CORE) += omap_twl.o
>>>
>>>    # SMP support ONLY available for OMAP4
>>>    obj-$(CONFIG_SMP)			+= omap-smp.o omap-headsmp.o
>>> -obj-$(CONFIG_LOCAL_TIMERS)		+= timer-mpu.o
>>>    obj-$(CONFIG_HOTPLUG_CPU)		+= omap-hotplug.o
>>>    obj-$(CONFIG_ARCH_OMAP4)		+= omap44xx-smc.o omap4-common.o
>>>
>>> diff --git a/arch/arm/mach-omap2/timer-gp.c b/arch/arm/mach-omap2/timer-gp.c
>>> index 3b9cf85..f2f0db6 100644
>>> --- a/arch/arm/mach-omap2/timer-gp.c
>>> +++ b/arch/arm/mach-omap2/timer-gp.c
>>> @@ -35,10 +35,10 @@
>>>    #include<linux/irq.h>
>>>    #include<linux/clocksource.h>
>>>    #include<linux/clockchips.h>
>>> +#include<linux/platform_device.h>
>>>
>>>    #include<asm/mach/time.h>
>>>    #include<plat/dmtimer.h>
>>> -#include<asm/localtimer.h>
>>>    #include<asm/sched_clock.h>
>>>    #include<plat/common.h>
>>>    #include<plat/omap_hwmod.h>
>>> @@ -247,18 +247,44 @@ static void __init omap2_gp_clocksource_init(void)
>>>    }
>>>    #endif
>>>
>>> +#ifdef CONFIG_ARM_SMP_TWD
>>> +static struct resource omap2_gp_twd_resources[] = {
>>> +	{
>>> +		.start	= OMAP44XX_LOCAL_TWD_BASE,
>>> +		.end	= OMAP44XX_LOCAL_TWD_BASE + 0x10,
>>> +		.flags	= IORESOURCE_MEM,
>>> +	},
>>> +	{
>>> +		.start	= OMAP44XX_IRQ_LOCALTIMER,
>>> +		.end	= OMAP44XX_IRQ_LOCALTIMER,
>>> +		.flags	= IORESOURCE_IRQ,
>>> +	},
>>> +};
>>> +
>>> +static struct platform_device omap2_gp_twd_device = {
>>> +	.name		= "arm_smp_twd",
>>> +	.id		= -1,
>> Why is the id set to -1 ?
>
> This is the normal way of indicating that there is only one such device
> in the system. The device ends being called "arm_smp_twd" instead of
> "arm_smp_twd.0". See Documentation/driver-model/platform.txt for details.
>
Thanks. It's clear to me.

Regards
Santosh



More information about the linux-arm-kernel mailing list