Re: [PATCH] clocksource/drivers/fttmr010: Fix aspeed-2500 initialization

2017-05-29 Thread Joel Stanley
On Mon, May 29, 2017 at 5:15 PM, Daniel Lezcano
 wrote:
> On 29/05/2017 08:05, Andrew Jeffery wrote:
>> On Fri, 2017-05-26 at 10:48 +0200, Daniel Lezcano wrote:
>>> The recent changes made the fttmr010 to be more generic and support 
>>> different
>>> timers with a very few differences like moxart or aspeed.
>>>
>>> The aspeed timer uses a countdown and there is a test against the aspeed2400
>>> compatible string to set a flag.
>>>
>>> With the previous patch, we added the aspeed2500 compatible string but 
>>> without
>>> taking care of setting the countdown flag.
>>>
>>> Fix this by specifiying a init function and pass the aspeed flag to a common
>>> init function.
>>>
>>> Signed-off-by: Daniel Lezcano 
>>
>> Tested-by: Andrew Jeffery 
>> Reviewed-by: Andrew Jeffery 

Thanks everyone.

Acked-by: Joel Stanley 

Andrew, I think you had to fix up the clock device tree entries in the
Aspeed device tree. Can you please send me a patch for that?

Cheers,

Joel



>>
>
> Thanks for testing.
>
>   -- Daniel
>
>
> --
>   Linaro.org │ Open source software for ARM SoCs
>
> Follow Linaro:   Facebook |
>  Twitter |
>  Blog
>


Re: [PATCH] clocksource/drivers/fttmr010: Fix aspeed-2500 initialization

2017-05-29 Thread Joel Stanley
On Mon, May 29, 2017 at 5:15 PM, Daniel Lezcano
 wrote:
> On 29/05/2017 08:05, Andrew Jeffery wrote:
>> On Fri, 2017-05-26 at 10:48 +0200, Daniel Lezcano wrote:
>>> The recent changes made the fttmr010 to be more generic and support 
>>> different
>>> timers with a very few differences like moxart or aspeed.
>>>
>>> The aspeed timer uses a countdown and there is a test against the aspeed2400
>>> compatible string to set a flag.
>>>
>>> With the previous patch, we added the aspeed2500 compatible string but 
>>> without
>>> taking care of setting the countdown flag.
>>>
>>> Fix this by specifiying a init function and pass the aspeed flag to a common
>>> init function.
>>>
>>> Signed-off-by: Daniel Lezcano 
>>
>> Tested-by: Andrew Jeffery 
>> Reviewed-by: Andrew Jeffery 

Thanks everyone.

Acked-by: Joel Stanley 

Andrew, I think you had to fix up the clock device tree entries in the
Aspeed device tree. Can you please send me a patch for that?

Cheers,

Joel



>>
>
> Thanks for testing.
>
>   -- Daniel
>
>
> --
>   Linaro.org │ Open source software for ARM SoCs
>
> Follow Linaro:   Facebook |
>  Twitter |
>  Blog
>


Re: [PATCH] clocksource/drivers/fttmr010: Fix aspeed-2500 initialization

2017-05-29 Thread Daniel Lezcano
On 29/05/2017 08:05, Andrew Jeffery wrote:
> On Fri, 2017-05-26 at 10:48 +0200, Daniel Lezcano wrote:
>> The recent changes made the fttmr010 to be more generic and support different
>> timers with a very few differences like moxart or aspeed.
>>
>> The aspeed timer uses a countdown and there is a test against the aspeed2400
>> compatible string to set a flag.
>>
>> With the previous patch, we added the aspeed2500 compatible string but 
>> without
>> taking care of setting the countdown flag.
>>
>> Fix this by specifiying a init function and pass the aspeed flag to a common
>> init function.
>>
>> Signed-off-by: Daniel Lezcano 
> 
> Tested-by: Andrew Jeffery 
> Reviewed-by: Andrew Jeffery 
> 

Thanks for testing.

  -- Daniel


-- 
  Linaro.org │ Open source software for ARM SoCs

Follow Linaro:   Facebook |
 Twitter |
 Blog



Re: [PATCH] clocksource/drivers/fttmr010: Fix aspeed-2500 initialization

2017-05-29 Thread Daniel Lezcano
On 29/05/2017 08:05, Andrew Jeffery wrote:
> On Fri, 2017-05-26 at 10:48 +0200, Daniel Lezcano wrote:
>> The recent changes made the fttmr010 to be more generic and support different
>> timers with a very few differences like moxart or aspeed.
>>
>> The aspeed timer uses a countdown and there is a test against the aspeed2400
>> compatible string to set a flag.
>>
>> With the previous patch, we added the aspeed2500 compatible string but 
>> without
>> taking care of setting the countdown flag.
>>
>> Fix this by specifiying a init function and pass the aspeed flag to a common
>> init function.
>>
>> Signed-off-by: Daniel Lezcano 
> 
> Tested-by: Andrew Jeffery 
> Reviewed-by: Andrew Jeffery 
> 

Thanks for testing.

  -- Daniel


-- 
  Linaro.org │ Open source software for ARM SoCs

Follow Linaro:   Facebook |
 Twitter |
 Blog



Re: [PATCH] clocksource/drivers/fttmr010: Fix aspeed-2500 initialization

2017-05-29 Thread Andrew Jeffery
On Fri, 2017-05-26 at 10:48 +0200, Daniel Lezcano wrote:
> The recent changes made the fttmr010 to be more generic and support different
> timers with a very few differences like moxart or aspeed.
> 
> The aspeed timer uses a countdown and there is a test against the aspeed2400
> compatible string to set a flag.
> 
> With the previous patch, we added the aspeed2500 compatible string but without
> taking care of setting the countdown flag.
> 
> Fix this by specifiying a init function and pass the aspeed flag to a common
> init function.
> 
> Signed-off-by: Daniel Lezcano 

Tested-by: Andrew Jeffery 
Reviewed-by: Andrew Jeffery 

> ---
>  drivers/clocksource/timer-fttmr010.c | 23 ---
>  1 file changed, 16 insertions(+), 7 deletions(-)
> 
> diff --git a/drivers/clocksource/timer-fttmr010.c 
> b/drivers/clocksource/timer-fttmr010.c
> index 68982ad..d96190e 100644
> --- a/drivers/clocksource/timer-fttmr010.c
> +++ b/drivers/clocksource/timer-fttmr010.c
> @@ -210,10 +210,9 @@ static irqreturn_t fttmr010_timer_interrupt(int irq, 
> void *dev_id)
> >     return IRQ_HANDLED;
>  }
>  
> -static int __init fttmr010_timer_init(struct device_node *np)
> +static int __init fttmr010_common_init(struct device_node *np, bool 
> is_aspeed)
>  {
> >     struct fttmr010 *fttmr010;
> > -   bool is_ast2400;
> >     int irq;
> >     struct clk *clk;
> >     int ret;
> @@ -260,8 +259,7 @@ static int __init fttmr010_timer_init(struct device_node 
> *np)
> >      * The Aspeed AST2400 moves bits around in the control register,
> >      * otherwise it works the same.
> >      */
> > -   is_ast2400 = of_device_is_compatible(np, "aspeed,ast2400-timer");
> > -   if (is_ast2400) {
> > +   if (is_aspeed) {
> >     fttmr010->t1_enable_val = TIMER_1_CR_ASPEED_ENABLE |
> >     TIMER_1_CR_ASPEED_INT;
> >     /* Downward not available */
> @@ -280,7 +278,7 @@ static int __init fttmr010_timer_init(struct device_node 
> *np)
> >      * Enable timer 1 count up, timer 2 count up, except on Aspeed,
> >      * where everything just counts down.
> >      */
> > -   if (is_ast2400)
> > +   if (is_aspeed)
> >     val = TIMER_2_CR_ASPEED_ENABLE;
> >     else {
> >     val = TIMER_2_CR_ENABLE;
> @@ -355,8 +353,19 @@ static int __init fttmr010_timer_init(struct device_node 
> *np)
>  
> >     return ret;
>  }
> +
> +static __init int aspeed_timer_init(struct device_node *np)
> +{
> > +   return fttmr010_common_init(np, true);
> +}
> +
> +static __init int fttmr010_timer_init(struct device_node *np)
> +{
> > +   return fttmr010_common_init(np, false);
> +}
> +
>  CLOCKSOURCE_OF_DECLARE(fttmr010, "faraday,fttmr010", fttmr010_timer_init);
>  CLOCKSOURCE_OF_DECLARE(gemini, "cortina,gemini-timer", fttmr010_timer_init);
>  CLOCKSOURCE_OF_DECLARE(moxart, "moxa,moxart-timer", fttmr010_timer_init);
> -CLOCKSOURCE_OF_DECLARE(ast2400, "aspeed,ast2400-timer", fttmr010_timer_init);
> -CLOCKSOURCE_OF_DECLARE(ast2500, "aspeed,ast2500-timer", fttmr010_timer_init);
> +CLOCKSOURCE_OF_DECLARE(ast2400, "aspeed,ast2400-timer", aspeed_timer_init);
> +CLOCKSOURCE_OF_DECLARE(ast2500, "aspeed,ast2500-timer", aspeed_timer_init);

signature.asc
Description: This is a digitally signed message part


Re: [PATCH] clocksource/drivers/fttmr010: Fix aspeed-2500 initialization

2017-05-29 Thread Andrew Jeffery
On Fri, 2017-05-26 at 10:48 +0200, Daniel Lezcano wrote:
> The recent changes made the fttmr010 to be more generic and support different
> timers with a very few differences like moxart or aspeed.
> 
> The aspeed timer uses a countdown and there is a test against the aspeed2400
> compatible string to set a flag.
> 
> With the previous patch, we added the aspeed2500 compatible string but without
> taking care of setting the countdown flag.
> 
> Fix this by specifiying a init function and pass the aspeed flag to a common
> init function.
> 
> Signed-off-by: Daniel Lezcano 

Tested-by: Andrew Jeffery 
Reviewed-by: Andrew Jeffery 

> ---
>  drivers/clocksource/timer-fttmr010.c | 23 ---
>  1 file changed, 16 insertions(+), 7 deletions(-)
> 
> diff --git a/drivers/clocksource/timer-fttmr010.c 
> b/drivers/clocksource/timer-fttmr010.c
> index 68982ad..d96190e 100644
> --- a/drivers/clocksource/timer-fttmr010.c
> +++ b/drivers/clocksource/timer-fttmr010.c
> @@ -210,10 +210,9 @@ static irqreturn_t fttmr010_timer_interrupt(int irq, 
> void *dev_id)
> >     return IRQ_HANDLED;
>  }
>  
> -static int __init fttmr010_timer_init(struct device_node *np)
> +static int __init fttmr010_common_init(struct device_node *np, bool 
> is_aspeed)
>  {
> >     struct fttmr010 *fttmr010;
> > -   bool is_ast2400;
> >     int irq;
> >     struct clk *clk;
> >     int ret;
> @@ -260,8 +259,7 @@ static int __init fttmr010_timer_init(struct device_node 
> *np)
> >      * The Aspeed AST2400 moves bits around in the control register,
> >      * otherwise it works the same.
> >      */
> > -   is_ast2400 = of_device_is_compatible(np, "aspeed,ast2400-timer");
> > -   if (is_ast2400) {
> > +   if (is_aspeed) {
> >     fttmr010->t1_enable_val = TIMER_1_CR_ASPEED_ENABLE |
> >     TIMER_1_CR_ASPEED_INT;
> >     /* Downward not available */
> @@ -280,7 +278,7 @@ static int __init fttmr010_timer_init(struct device_node 
> *np)
> >      * Enable timer 1 count up, timer 2 count up, except on Aspeed,
> >      * where everything just counts down.
> >      */
> > -   if (is_ast2400)
> > +   if (is_aspeed)
> >     val = TIMER_2_CR_ASPEED_ENABLE;
> >     else {
> >     val = TIMER_2_CR_ENABLE;
> @@ -355,8 +353,19 @@ static int __init fttmr010_timer_init(struct device_node 
> *np)
>  
> >     return ret;
>  }
> +
> +static __init int aspeed_timer_init(struct device_node *np)
> +{
> > +   return fttmr010_common_init(np, true);
> +}
> +
> +static __init int fttmr010_timer_init(struct device_node *np)
> +{
> > +   return fttmr010_common_init(np, false);
> +}
> +
>  CLOCKSOURCE_OF_DECLARE(fttmr010, "faraday,fttmr010", fttmr010_timer_init);
>  CLOCKSOURCE_OF_DECLARE(gemini, "cortina,gemini-timer", fttmr010_timer_init);
>  CLOCKSOURCE_OF_DECLARE(moxart, "moxa,moxart-timer", fttmr010_timer_init);
> -CLOCKSOURCE_OF_DECLARE(ast2400, "aspeed,ast2400-timer", fttmr010_timer_init);
> -CLOCKSOURCE_OF_DECLARE(ast2500, "aspeed,ast2500-timer", fttmr010_timer_init);
> +CLOCKSOURCE_OF_DECLARE(ast2400, "aspeed,ast2400-timer", aspeed_timer_init);
> +CLOCKSOURCE_OF_DECLARE(ast2500, "aspeed,ast2500-timer", aspeed_timer_init);

signature.asc
Description: This is a digitally signed message part


Re: [PATCH] clocksource/drivers/fttmr010: Fix aspeed-2500 initialization

2017-05-28 Thread Linus Walleij
On Fri, May 26, 2017 at 10:48 AM, Daniel Lezcano
 wrote:

> The recent changes made the fttmr010 to be more generic and support different
> timers with a very few differences like moxart or aspeed.
>
> The aspeed timer uses a countdown and there is a test against the aspeed2400
> compatible string to set a flag.
>
> With the previous patch, we added the aspeed2500 compatible string but without
> taking care of setting the countdown flag.
>
> Fix this by specifiying a init function and pass the aspeed flag to a common
> init function.
>
> Signed-off-by: Daniel Lezcano 

Sorry for the mistake :(
I don't have the Aspeed systems myself but I bet this works.

Reviewed-by: Linus Walleij 

Yours,
Linus Walleij


Re: [PATCH] clocksource/drivers/fttmr010: Fix aspeed-2500 initialization

2017-05-28 Thread Linus Walleij
On Fri, May 26, 2017 at 10:48 AM, Daniel Lezcano
 wrote:

> The recent changes made the fttmr010 to be more generic and support different
> timers with a very few differences like moxart or aspeed.
>
> The aspeed timer uses a countdown and there is a test against the aspeed2400
> compatible string to set a flag.
>
> With the previous patch, we added the aspeed2500 compatible string but without
> taking care of setting the countdown flag.
>
> Fix this by specifiying a init function and pass the aspeed flag to a common
> init function.
>
> Signed-off-by: Daniel Lezcano 

Sorry for the mistake :(
I don't have the Aspeed systems myself but I bet this works.

Reviewed-by: Linus Walleij 

Yours,
Linus Walleij


[PATCH] clocksource/drivers/fttmr010: Fix aspeed-2500 initialization

2017-05-26 Thread Daniel Lezcano
The recent changes made the fttmr010 to be more generic and support different
timers with a very few differences like moxart or aspeed.

The aspeed timer uses a countdown and there is a test against the aspeed2400
compatible string to set a flag.

With the previous patch, we added the aspeed2500 compatible string but without
taking care of setting the countdown flag.

Fix this by specifiying a init function and pass the aspeed flag to a common
init function.

Signed-off-by: Daniel Lezcano 
---
 drivers/clocksource/timer-fttmr010.c | 23 ---
 1 file changed, 16 insertions(+), 7 deletions(-)

diff --git a/drivers/clocksource/timer-fttmr010.c 
b/drivers/clocksource/timer-fttmr010.c
index 68982ad..d96190e 100644
--- a/drivers/clocksource/timer-fttmr010.c
+++ b/drivers/clocksource/timer-fttmr010.c
@@ -210,10 +210,9 @@ static irqreturn_t fttmr010_timer_interrupt(int irq, void 
*dev_id)
return IRQ_HANDLED;
 }
 
-static int __init fttmr010_timer_init(struct device_node *np)
+static int __init fttmr010_common_init(struct device_node *np, bool is_aspeed)
 {
struct fttmr010 *fttmr010;
-   bool is_ast2400;
int irq;
struct clk *clk;
int ret;
@@ -260,8 +259,7 @@ static int __init fttmr010_timer_init(struct device_node 
*np)
 * The Aspeed AST2400 moves bits around in the control register,
 * otherwise it works the same.
 */
-   is_ast2400 = of_device_is_compatible(np, "aspeed,ast2400-timer");
-   if (is_ast2400) {
+   if (is_aspeed) {
fttmr010->t1_enable_val = TIMER_1_CR_ASPEED_ENABLE |
TIMER_1_CR_ASPEED_INT;
/* Downward not available */
@@ -280,7 +278,7 @@ static int __init fttmr010_timer_init(struct device_node 
*np)
 * Enable timer 1 count up, timer 2 count up, except on Aspeed,
 * where everything just counts down.
 */
-   if (is_ast2400)
+   if (is_aspeed)
val = TIMER_2_CR_ASPEED_ENABLE;
else {
val = TIMER_2_CR_ENABLE;
@@ -355,8 +353,19 @@ static int __init fttmr010_timer_init(struct device_node 
*np)
 
return ret;
 }
+
+static __init int aspeed_timer_init(struct device_node *np)
+{
+   return fttmr010_common_init(np, true);
+}
+
+static __init int fttmr010_timer_init(struct device_node *np)
+{
+   return fttmr010_common_init(np, false);
+}
+
 CLOCKSOURCE_OF_DECLARE(fttmr010, "faraday,fttmr010", fttmr010_timer_init);
 CLOCKSOURCE_OF_DECLARE(gemini, "cortina,gemini-timer", fttmr010_timer_init);
 CLOCKSOURCE_OF_DECLARE(moxart, "moxa,moxart-timer", fttmr010_timer_init);
-CLOCKSOURCE_OF_DECLARE(ast2400, "aspeed,ast2400-timer", fttmr010_timer_init);
-CLOCKSOURCE_OF_DECLARE(ast2500, "aspeed,ast2500-timer", fttmr010_timer_init);
+CLOCKSOURCE_OF_DECLARE(ast2400, "aspeed,ast2400-timer", aspeed_timer_init);
+CLOCKSOURCE_OF_DECLARE(ast2500, "aspeed,ast2500-timer", aspeed_timer_init);
-- 
2.7.4



[PATCH] clocksource/drivers/fttmr010: Fix aspeed-2500 initialization

2017-05-26 Thread Daniel Lezcano
The recent changes made the fttmr010 to be more generic and support different
timers with a very few differences like moxart or aspeed.

The aspeed timer uses a countdown and there is a test against the aspeed2400
compatible string to set a flag.

With the previous patch, we added the aspeed2500 compatible string but without
taking care of setting the countdown flag.

Fix this by specifiying a init function and pass the aspeed flag to a common
init function.

Signed-off-by: Daniel Lezcano 
---
 drivers/clocksource/timer-fttmr010.c | 23 ---
 1 file changed, 16 insertions(+), 7 deletions(-)

diff --git a/drivers/clocksource/timer-fttmr010.c 
b/drivers/clocksource/timer-fttmr010.c
index 68982ad..d96190e 100644
--- a/drivers/clocksource/timer-fttmr010.c
+++ b/drivers/clocksource/timer-fttmr010.c
@@ -210,10 +210,9 @@ static irqreturn_t fttmr010_timer_interrupt(int irq, void 
*dev_id)
return IRQ_HANDLED;
 }
 
-static int __init fttmr010_timer_init(struct device_node *np)
+static int __init fttmr010_common_init(struct device_node *np, bool is_aspeed)
 {
struct fttmr010 *fttmr010;
-   bool is_ast2400;
int irq;
struct clk *clk;
int ret;
@@ -260,8 +259,7 @@ static int __init fttmr010_timer_init(struct device_node 
*np)
 * The Aspeed AST2400 moves bits around in the control register,
 * otherwise it works the same.
 */
-   is_ast2400 = of_device_is_compatible(np, "aspeed,ast2400-timer");
-   if (is_ast2400) {
+   if (is_aspeed) {
fttmr010->t1_enable_val = TIMER_1_CR_ASPEED_ENABLE |
TIMER_1_CR_ASPEED_INT;
/* Downward not available */
@@ -280,7 +278,7 @@ static int __init fttmr010_timer_init(struct device_node 
*np)
 * Enable timer 1 count up, timer 2 count up, except on Aspeed,
 * where everything just counts down.
 */
-   if (is_ast2400)
+   if (is_aspeed)
val = TIMER_2_CR_ASPEED_ENABLE;
else {
val = TIMER_2_CR_ENABLE;
@@ -355,8 +353,19 @@ static int __init fttmr010_timer_init(struct device_node 
*np)
 
return ret;
 }
+
+static __init int aspeed_timer_init(struct device_node *np)
+{
+   return fttmr010_common_init(np, true);
+}
+
+static __init int fttmr010_timer_init(struct device_node *np)
+{
+   return fttmr010_common_init(np, false);
+}
+
 CLOCKSOURCE_OF_DECLARE(fttmr010, "faraday,fttmr010", fttmr010_timer_init);
 CLOCKSOURCE_OF_DECLARE(gemini, "cortina,gemini-timer", fttmr010_timer_init);
 CLOCKSOURCE_OF_DECLARE(moxart, "moxa,moxart-timer", fttmr010_timer_init);
-CLOCKSOURCE_OF_DECLARE(ast2400, "aspeed,ast2400-timer", fttmr010_timer_init);
-CLOCKSOURCE_OF_DECLARE(ast2500, "aspeed,ast2500-timer", fttmr010_timer_init);
+CLOCKSOURCE_OF_DECLARE(ast2400, "aspeed,ast2400-timer", aspeed_timer_init);
+CLOCKSOURCE_OF_DECLARE(ast2500, "aspeed,ast2500-timer", aspeed_timer_init);
-- 
2.7.4