Re: [PATCH 2/2] Input: nomadik-ske-keypad - start using the apb_pclk

2012-11-05 Thread Linus Walleij
On Mon, Nov 5, 2012 at 1:25 PM, Ulf Hansson  wrote:
> On 4 November 2012 19:12, Linus Walleij  wrote:

>> If I understand correctly, the only "real" solution is to
>> implement the PM domains and have these enable the clocks.
>
> Agree.
>
> Although, since the pm_domain not yet exist, this as a way forward for
> now - to fix what is broken.

True. Fixing regressions is more important.
Acked-by: Linus Walleij 

> When the pm_domain is in place and when we decide to fold in the clock
> handling in there, we can move it.

OK for me.

>> An alternative may be to move this driver over to the AMBA bus,
>> because I think this device actually has primecell registers.
>> Then the bus will take care of the pclk for starters.
>
> You are definitely right, this driver can be converted into using the AMBA 
> bus.
> Although, do you think that should be done _instead_ of going ahead
> with this patch or do you want that to be handled as a next and a
> separate step?

No, just a suggestion of possibilities...

Yours,
Linus Walleij
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH 2/2] Input: nomadik-ske-keypad - start using the apb_pclk

2012-11-05 Thread Ulf Hansson
On 4 November 2012 19:12, Linus Walleij  wrote:
> On Thu, Nov 1, 2012 at 3:20 PM, Ulf Hansson  
> wrote:
>
>> From: Ulf Hansson 
>>
>> Previously this clock was handled internally by the clockdriver,
>> but now this is separate clk. So we need take care of it.
>>
>> Signed-off-by: Ulf Hansson 
>
> So this is a silicon block clock and falls into the category of things
> we've been discussing...
>
> If I understand correctly, the only "real" solution is to
> implement the PM domains and have these enable the clocks.

Agree.

Although, since the pm_domain not yet exist, this as a way forward for
now - to fix what is broken.
When the pm_domain is in place and when we decide to fold in the clock
handling in there, we can move it.

>
> An alternative may be to move this driver over to the AMBA bus,
> because I think this device actually has primecell registers.
> Then the bus will take care of the pclk for starters.

You are definitely right, this driver can be converted into using the AMBA bus.
Although, do you think that should be done _instead_ of going ahead
with this patch or do you want that to be handled as a next and a
separate step?

Kind regards
Ulf Hansson
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH 2/2] Input: nomadik-ske-keypad - start using the apb_pclk

2012-11-05 Thread Ulf Hansson
On 4 November 2012 19:12, Linus Walleij linus.wall...@linaro.org wrote:
 On Thu, Nov 1, 2012 at 3:20 PM, Ulf Hansson ulf.hans...@stericsson.com 
 wrote:

 From: Ulf Hansson ulf.hans...@linaro.org

 Previously this clock was handled internally by the clockdriver,
 but now this is separate clk. So we need take care of it.

 Signed-off-by: Ulf Hansson ulf.hans...@linaro.org

 So this is a silicon block clock and falls into the category of things
 we've been discussing...

 If I understand correctly, the only real solution is to
 implement the PM domains and have these enable the clocks.

Agree.

Although, since the pm_domain not yet exist, this as a way forward for
now - to fix what is broken.
When the pm_domain is in place and when we decide to fold in the clock
handling in there, we can move it.


 An alternative may be to move this driver over to the AMBA bus,
 because I think this device actually has primecell registers.
 Then the bus will take care of the pclk for starters.

You are definitely right, this driver can be converted into using the AMBA bus.
Although, do you think that should be done _instead_ of going ahead
with this patch or do you want that to be handled as a next and a
separate step?

Kind regards
Ulf Hansson
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH 2/2] Input: nomadik-ske-keypad - start using the apb_pclk

2012-11-05 Thread Linus Walleij
On Mon, Nov 5, 2012 at 1:25 PM, Ulf Hansson ulf.hans...@linaro.org wrote:
 On 4 November 2012 19:12, Linus Walleij linus.wall...@linaro.org wrote:

 If I understand correctly, the only real solution is to
 implement the PM domains and have these enable the clocks.

 Agree.

 Although, since the pm_domain not yet exist, this as a way forward for
 now - to fix what is broken.

True. Fixing regressions is more important.
Acked-by: Linus Walleij linus.wall...@linaro.org

 When the pm_domain is in place and when we decide to fold in the clock
 handling in there, we can move it.

OK for me.

 An alternative may be to move this driver over to the AMBA bus,
 because I think this device actually has primecell registers.
 Then the bus will take care of the pclk for starters.

 You are definitely right, this driver can be converted into using the AMBA 
 bus.
 Although, do you think that should be done _instead_ of going ahead
 with this patch or do you want that to be handled as a next and a
 separate step?

No, just a suggestion of possibilities...

Yours,
Linus Walleij
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH 2/2] Input: nomadik-ske-keypad - start using the apb_pclk

2012-11-04 Thread Linus Walleij
On Thu, Nov 1, 2012 at 3:20 PM, Ulf Hansson  wrote:

> From: Ulf Hansson 
>
> Previously this clock was handled internally by the clockdriver,
> but now this is separate clk. So we need take care of it.
>
> Signed-off-by: Ulf Hansson 

So this is a silicon block clock and falls into the category of things
we've been discussing...

If I understand correctly, the only "real" solution is to
implement the PM domains and have these enable the clocks.

An alternative may be to move this driver over to the AMBA bus,
because I think this device actually has primecell registers.
Then the bus will take care of the pclk for starters.

Yours,
Linus Walleij
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH 2/2] Input: nomadik-ske-keypad - start using the apb_pclk

2012-11-04 Thread Linus Walleij
On Thu, Nov 1, 2012 at 3:20 PM, Ulf Hansson ulf.hans...@stericsson.com wrote:

 From: Ulf Hansson ulf.hans...@linaro.org

 Previously this clock was handled internally by the clockdriver,
 but now this is separate clk. So we need take care of it.

 Signed-off-by: Ulf Hansson ulf.hans...@linaro.org

So this is a silicon block clock and falls into the category of things
we've been discussing...

If I understand correctly, the only real solution is to
implement the PM domains and have these enable the clocks.

An alternative may be to move this driver over to the AMBA bus,
because I think this device actually has primecell registers.
Then the bus will take care of the pclk for starters.

Yours,
Linus Walleij
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH 2/2] Input: nomadik-ske-keypad - start using the apb_pclk

2012-11-01 Thread Ulf Hansson
From: Ulf Hansson 

Previously this clock was handled internally by the clockdriver,
but now this is separate clk. So we need take care of it.

Signed-off-by: Ulf Hansson 
---
 drivers/input/keyboard/nomadik-ske-keypad.c |   22 --
 1 file changed, 20 insertions(+), 2 deletions(-)

diff --git a/drivers/input/keyboard/nomadik-ske-keypad.c 
b/drivers/input/keyboard/nomadik-ske-keypad.c
index 95dcc9b..a1a9375 100644
--- a/drivers/input/keyboard/nomadik-ske-keypad.c
+++ b/drivers/input/keyboard/nomadik-ske-keypad.c
@@ -67,6 +67,7 @@ struct ske_keypad {
const struct ske_keypad_platform_data *board;
unsigned short keymap[SKE_KPD_NUM_ROWS * SKE_KPD_NUM_COLS];
struct clk *clk;
+   struct clk *pclk;
spinlock_t ske_keypad_lock;
 };
 
@@ -271,11 +272,18 @@ static int __init ske_keypad_probe(struct platform_device 
*pdev)
goto err_free_mem_region;
}
 
+   keypad->pclk = clk_get(>dev, "apb_pclk");
+   if (IS_ERR(keypad->pclk)) {
+   dev_err(>dev, "failed to get pclk\n");
+   error = PTR_ERR(keypad->pclk);
+   goto err_iounmap;
+   }
+
keypad->clk = clk_get(>dev, NULL);
if (IS_ERR(keypad->clk)) {
dev_err(>dev, "failed to get clk\n");
error = PTR_ERR(keypad->clk);
-   goto err_iounmap;
+   goto err_pclk;
}
 
input->id.bustype = BUS_HOST;
@@ -294,10 +302,16 @@ static int __init ske_keypad_probe(struct platform_device 
*pdev)
if (!plat->no_autorepeat)
__set_bit(EV_REP, input->evbit);
 
+   error = clk_prepare_enable(keypad->pclk);
+   if (error) {
+   dev_err(>dev, "Failed to prepare/enable pclk\n");
+   goto err_clk;
+   }
+
error = clk_prepare_enable(keypad->clk);
if (error) {
dev_err(>dev, "Failed to prepare/enable clk\n");
-   goto err_clk;
+   goto err_pclk_disable;
}
 
 
@@ -336,8 +350,12 @@ err_free_irq:
free_irq(keypad->irq, keypad);
 err_clk_disable:
clk_disable_unprepare(keypad->clk);
+err_pclk_disable:
+   clk_disable_unprepare(keypad->pclk);
 err_clk:
clk_put(keypad->clk);
+err_pclk:
+   clk_put(keypad->pclk);
 err_iounmap:
iounmap(keypad->reg_base);
 err_free_mem_region:
-- 
1.7.10

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


[PATCH 2/2] Input: nomadik-ske-keypad - start using the apb_pclk

2012-11-01 Thread Ulf Hansson
From: Ulf Hansson ulf.hans...@linaro.org

Previously this clock was handled internally by the clockdriver,
but now this is separate clk. So we need take care of it.

Signed-off-by: Ulf Hansson ulf.hans...@linaro.org
---
 drivers/input/keyboard/nomadik-ske-keypad.c |   22 --
 1 file changed, 20 insertions(+), 2 deletions(-)

diff --git a/drivers/input/keyboard/nomadik-ske-keypad.c 
b/drivers/input/keyboard/nomadik-ske-keypad.c
index 95dcc9b..a1a9375 100644
--- a/drivers/input/keyboard/nomadik-ske-keypad.c
+++ b/drivers/input/keyboard/nomadik-ske-keypad.c
@@ -67,6 +67,7 @@ struct ske_keypad {
const struct ske_keypad_platform_data *board;
unsigned short keymap[SKE_KPD_NUM_ROWS * SKE_KPD_NUM_COLS];
struct clk *clk;
+   struct clk *pclk;
spinlock_t ske_keypad_lock;
 };
 
@@ -271,11 +272,18 @@ static int __init ske_keypad_probe(struct platform_device 
*pdev)
goto err_free_mem_region;
}
 
+   keypad-pclk = clk_get(pdev-dev, apb_pclk);
+   if (IS_ERR(keypad-pclk)) {
+   dev_err(pdev-dev, failed to get pclk\n);
+   error = PTR_ERR(keypad-pclk);
+   goto err_iounmap;
+   }
+
keypad-clk = clk_get(pdev-dev, NULL);
if (IS_ERR(keypad-clk)) {
dev_err(pdev-dev, failed to get clk\n);
error = PTR_ERR(keypad-clk);
-   goto err_iounmap;
+   goto err_pclk;
}
 
input-id.bustype = BUS_HOST;
@@ -294,10 +302,16 @@ static int __init ske_keypad_probe(struct platform_device 
*pdev)
if (!plat-no_autorepeat)
__set_bit(EV_REP, input-evbit);
 
+   error = clk_prepare_enable(keypad-pclk);
+   if (error) {
+   dev_err(pdev-dev, Failed to prepare/enable pclk\n);
+   goto err_clk;
+   }
+
error = clk_prepare_enable(keypad-clk);
if (error) {
dev_err(pdev-dev, Failed to prepare/enable clk\n);
-   goto err_clk;
+   goto err_pclk_disable;
}
 
 
@@ -336,8 +350,12 @@ err_free_irq:
free_irq(keypad-irq, keypad);
 err_clk_disable:
clk_disable_unprepare(keypad-clk);
+err_pclk_disable:
+   clk_disable_unprepare(keypad-pclk);
 err_clk:
clk_put(keypad-clk);
+err_pclk:
+   clk_put(keypad-pclk);
 err_iounmap:
iounmap(keypad-reg_base);
 err_free_mem_region:
-- 
1.7.10

--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/