Re: [PATCH V2 4/4] ARM: OMAP2+: AM43x: Use gptimer as clocksource

2014-02-28 Thread Tony Lindgren
* Lokesh Vutla  [140224 05:08]:
> Hi Tony,
> On Friday 14 February 2014 02:16 PM, Rajendra Nayak wrote:
> > On Friday 14 February 2014 04:49 AM, Tony Lindgren wrote:
> >> * Lokesh Vutla  [140207 02:24]:
> >>> From: Rajendra Nayak 
> >>>
> >>> The SyncTimer in AM43x is clocked using the following two sources:
> >>> 1) An inaccuarte 32k clock (CLK_32KHZ) derived from PER DPLL, causing 
> >>> system
> >>>time to go slowly (~10% deviation).
> >>> 2) external 32KHz RTC clock, which may not always be available on board 
> >>> like
> >>>in the case of ePOS EVM
> >>>
> >>> Use gptimer as clocksource instead, as is done in the case of AM335x
> >>> (which does not have a SyncTimer). With this, system time keeping works
> >>> accurately.
> >>
> >> Hmm doesn't this also mean that PM for any deeper idle states won't
> >> work properly?
> > 
> > Thats true. This would mean we cannot put the peripheral/core domain down
> > in idle. Suspend however can still work if suspend/resume callbacks are 
> > added
> > to the clockevent and clocksource code to shut the non-wakeup domain timer.
> This is a platform level limitation that only MPU domain can be put down in 
> idle, just like AM335x.

OK applying all four into omap-for-v3.15/soc thanks.

Tony
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH V2 4/4] ARM: OMAP2+: AM43x: Use gptimer as clocksource

2014-02-24 Thread Lokesh Vutla
Hi Tony,
On Friday 14 February 2014 02:16 PM, Rajendra Nayak wrote:
> On Friday 14 February 2014 04:49 AM, Tony Lindgren wrote:
>> * Lokesh Vutla  [140207 02:24]:
>>> From: Rajendra Nayak 
>>>
>>> The SyncTimer in AM43x is clocked using the following two sources:
>>> 1) An inaccuarte 32k clock (CLK_32KHZ) derived from PER DPLL, causing system
>>>time to go slowly (~10% deviation).
>>> 2) external 32KHz RTC clock, which may not always be available on board like
>>>in the case of ePOS EVM
>>>
>>> Use gptimer as clocksource instead, as is done in the case of AM335x
>>> (which does not have a SyncTimer). With this, system time keeping works
>>> accurately.
>>
>> Hmm doesn't this also mean that PM for any deeper idle states won't
>> work properly?
> 
> Thats true. This would mean we cannot put the peripheral/core domain down
> in idle. Suspend however can still work if suspend/resume callbacks are added
> to the clockevent and clocksource code to shut the non-wakeup domain timer.
This is a platform level limitation that only MPU domain can be put down in 
idle, just like AM335x.

Thanks and regards,
Lokesh
> 
> regards,
> Rajendra
> 
>>
>> Regards,
>>
>> Tony
>>  
>>> Signed-off-by: Rajendra Nayak 
>>> Signed-off-by: Lokesh Vutla 
>>> ---
>>>  arch/arm/mach-omap2/board-generic.c |2 +-
>>>  arch/arm/mach-omap2/timer.c |3 ++-
>>>  2 files changed, 3 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/arch/arm/mach-omap2/board-generic.c 
>>> b/arch/arm/mach-omap2/board-generic.c
>>> index 8e3daa1..5679464a 100644
>>> --- a/arch/arm/mach-omap2/board-generic.c
>>> +++ b/arch/arm/mach-omap2/board-generic.c
>>> @@ -229,7 +229,7 @@ DT_MACHINE_START(AM43_DT, "Generic AM43 (Flattened 
>>> Device Tree)")
>>> .init_late  = am43xx_init_late,
>>> .init_irq   = omap_gic_of_init,
>>> .init_machine   = omap_generic_init,
>>> -   .init_time  = omap3_sync32k_timer_init,
>>> +   .init_time  = omap3_gptimer_timer_init,
>>> .dt_compat  = am43_boards_compat,
>>>  MACHINE_END
>>>  #endif
>>> diff --git a/arch/arm/mach-omap2/timer.c b/arch/arm/mach-omap2/timer.c
>>> index 74044aa..b62de9f 100644
>>> --- a/arch/arm/mach-omap2/timer.c
>>> +++ b/arch/arm/mach-omap2/timer.c
>>> @@ -604,7 +604,8 @@ OMAP_SYS_32K_TIMER_INIT(3_secure, 12, "secure_32k_fck", 
>>> "ti,timer-secure",
>>> 2, "timer_sys_ck", NULL);
>>>  #endif /* CONFIG_ARCH_OMAP3 */
>>>  
>>> -#if defined(CONFIG_ARCH_OMAP3) || defined(CONFIG_SOC_AM33XX)
>>> +#if defined(CONFIG_ARCH_OMAP3) || defined(CONFIG_SOC_AM33XX) || \
>>> +   defined(CONFIG_SOC_AM43XX)
>>>  OMAP_SYS_GP_TIMER_INIT(3, 2, "timer_sys_ck", NULL,
>>>1, "timer_sys_ck", "ti,timer-alwon");
>>>  #endif
>>> -- 
>>> 1.7.9.5
>>>
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH V2 4/4] ARM: OMAP2+: AM43x: Use gptimer as clocksource

2014-02-14 Thread Rajendra Nayak
On Friday 14 February 2014 04:49 AM, Tony Lindgren wrote:
> * Lokesh Vutla  [140207 02:24]:
>> From: Rajendra Nayak 
>>
>> The SyncTimer in AM43x is clocked using the following two sources:
>> 1) An inaccuarte 32k clock (CLK_32KHZ) derived from PER DPLL, causing system
>>time to go slowly (~10% deviation).
>> 2) external 32KHz RTC clock, which may not always be available on board like
>>in the case of ePOS EVM
>>
>> Use gptimer as clocksource instead, as is done in the case of AM335x
>> (which does not have a SyncTimer). With this, system time keeping works
>> accurately.
> 
> Hmm doesn't this also mean that PM for any deeper idle states won't
> work properly?

Thats true. This would mean we cannot put the peripheral/core domain down
in idle. Suspend however can still work if suspend/resume callbacks are added
to the clockevent and clocksource code to shut the non-wakeup domain timer.

regards,
Rajendra

> 
> Regards,
> 
> Tony
>  
>> Signed-off-by: Rajendra Nayak 
>> Signed-off-by: Lokesh Vutla 
>> ---
>>  arch/arm/mach-omap2/board-generic.c |2 +-
>>  arch/arm/mach-omap2/timer.c |3 ++-
>>  2 files changed, 3 insertions(+), 2 deletions(-)
>>
>> diff --git a/arch/arm/mach-omap2/board-generic.c 
>> b/arch/arm/mach-omap2/board-generic.c
>> index 8e3daa1..5679464a 100644
>> --- a/arch/arm/mach-omap2/board-generic.c
>> +++ b/arch/arm/mach-omap2/board-generic.c
>> @@ -229,7 +229,7 @@ DT_MACHINE_START(AM43_DT, "Generic AM43 (Flattened 
>> Device Tree)")
>>  .init_late  = am43xx_init_late,
>>  .init_irq   = omap_gic_of_init,
>>  .init_machine   = omap_generic_init,
>> -.init_time  = omap3_sync32k_timer_init,
>> +.init_time  = omap3_gptimer_timer_init,
>>  .dt_compat  = am43_boards_compat,
>>  MACHINE_END
>>  #endif
>> diff --git a/arch/arm/mach-omap2/timer.c b/arch/arm/mach-omap2/timer.c
>> index 74044aa..b62de9f 100644
>> --- a/arch/arm/mach-omap2/timer.c
>> +++ b/arch/arm/mach-omap2/timer.c
>> @@ -604,7 +604,8 @@ OMAP_SYS_32K_TIMER_INIT(3_secure, 12, "secure_32k_fck", 
>> "ti,timer-secure",
>>  2, "timer_sys_ck", NULL);
>>  #endif /* CONFIG_ARCH_OMAP3 */
>>  
>> -#if defined(CONFIG_ARCH_OMAP3) || defined(CONFIG_SOC_AM33XX)
>> +#if defined(CONFIG_ARCH_OMAP3) || defined(CONFIG_SOC_AM33XX) || \
>> +defined(CONFIG_SOC_AM43XX)
>>  OMAP_SYS_GP_TIMER_INIT(3, 2, "timer_sys_ck", NULL,
>> 1, "timer_sys_ck", "ti,timer-alwon");
>>  #endif
>> -- 
>> 1.7.9.5
>>

--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH V2 4/4] ARM: OMAP2+: AM43x: Use gptimer as clocksource

2014-02-13 Thread Tony Lindgren
* Lokesh Vutla  [140207 02:24]:
> From: Rajendra Nayak 
> 
> The SyncTimer in AM43x is clocked using the following two sources:
> 1) An inaccuarte 32k clock (CLK_32KHZ) derived from PER DPLL, causing system
>time to go slowly (~10% deviation).
> 2) external 32KHz RTC clock, which may not always be available on board like
>in the case of ePOS EVM
> 
> Use gptimer as clocksource instead, as is done in the case of AM335x
> (which does not have a SyncTimer). With this, system time keeping works
> accurately.

Hmm doesn't this also mean that PM for any deeper idle states won't
work properly?

Regards,

Tony
 
> Signed-off-by: Rajendra Nayak 
> Signed-off-by: Lokesh Vutla 
> ---
>  arch/arm/mach-omap2/board-generic.c |2 +-
>  arch/arm/mach-omap2/timer.c |3 ++-
>  2 files changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/arch/arm/mach-omap2/board-generic.c 
> b/arch/arm/mach-omap2/board-generic.c
> index 8e3daa1..5679464a 100644
> --- a/arch/arm/mach-omap2/board-generic.c
> +++ b/arch/arm/mach-omap2/board-generic.c
> @@ -229,7 +229,7 @@ DT_MACHINE_START(AM43_DT, "Generic AM43 (Flattened Device 
> Tree)")
>   .init_late  = am43xx_init_late,
>   .init_irq   = omap_gic_of_init,
>   .init_machine   = omap_generic_init,
> - .init_time  = omap3_sync32k_timer_init,
> + .init_time  = omap3_gptimer_timer_init,
>   .dt_compat  = am43_boards_compat,
>  MACHINE_END
>  #endif
> diff --git a/arch/arm/mach-omap2/timer.c b/arch/arm/mach-omap2/timer.c
> index 74044aa..b62de9f 100644
> --- a/arch/arm/mach-omap2/timer.c
> +++ b/arch/arm/mach-omap2/timer.c
> @@ -604,7 +604,8 @@ OMAP_SYS_32K_TIMER_INIT(3_secure, 12, "secure_32k_fck", 
> "ti,timer-secure",
>   2, "timer_sys_ck", NULL);
>  #endif /* CONFIG_ARCH_OMAP3 */
>  
> -#if defined(CONFIG_ARCH_OMAP3) || defined(CONFIG_SOC_AM33XX)
> +#if defined(CONFIG_ARCH_OMAP3) || defined(CONFIG_SOC_AM33XX) || \
> + defined(CONFIG_SOC_AM43XX)
>  OMAP_SYS_GP_TIMER_INIT(3, 2, "timer_sys_ck", NULL,
>  1, "timer_sys_ck", "ti,timer-alwon");
>  #endif
> -- 
> 1.7.9.5
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH V2 4/4] ARM: OMAP2+: AM43x: Use gptimer as clocksource

2014-02-07 Thread Lokesh Vutla
From: Rajendra Nayak 

The SyncTimer in AM43x is clocked using the following two sources:
1) An inaccuarte 32k clock (CLK_32KHZ) derived from PER DPLL, causing system
   time to go slowly (~10% deviation).
2) external 32KHz RTC clock, which may not always be available on board like
   in the case of ePOS EVM

Use gptimer as clocksource instead, as is done in the case of AM335x
(which does not have a SyncTimer). With this, system time keeping works
accurately.

Signed-off-by: Rajendra Nayak 
Signed-off-by: Lokesh Vutla 
---
 arch/arm/mach-omap2/board-generic.c |2 +-
 arch/arm/mach-omap2/timer.c |3 ++-
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/arch/arm/mach-omap2/board-generic.c 
b/arch/arm/mach-omap2/board-generic.c
index 8e3daa1..5679464a 100644
--- a/arch/arm/mach-omap2/board-generic.c
+++ b/arch/arm/mach-omap2/board-generic.c
@@ -229,7 +229,7 @@ DT_MACHINE_START(AM43_DT, "Generic AM43 (Flattened Device 
Tree)")
.init_late  = am43xx_init_late,
.init_irq   = omap_gic_of_init,
.init_machine   = omap_generic_init,
-   .init_time  = omap3_sync32k_timer_init,
+   .init_time  = omap3_gptimer_timer_init,
.dt_compat  = am43_boards_compat,
 MACHINE_END
 #endif
diff --git a/arch/arm/mach-omap2/timer.c b/arch/arm/mach-omap2/timer.c
index 74044aa..b62de9f 100644
--- a/arch/arm/mach-omap2/timer.c
+++ b/arch/arm/mach-omap2/timer.c
@@ -604,7 +604,8 @@ OMAP_SYS_32K_TIMER_INIT(3_secure, 12, "secure_32k_fck", 
"ti,timer-secure",
2, "timer_sys_ck", NULL);
 #endif /* CONFIG_ARCH_OMAP3 */
 
-#if defined(CONFIG_ARCH_OMAP3) || defined(CONFIG_SOC_AM33XX)
+#if defined(CONFIG_ARCH_OMAP3) || defined(CONFIG_SOC_AM33XX) || \
+   defined(CONFIG_SOC_AM43XX)
 OMAP_SYS_GP_TIMER_INIT(3, 2, "timer_sys_ck", NULL,
   1, "timer_sys_ck", "ti,timer-alwon");
 #endif
-- 
1.7.9.5

--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html