* [PATCH 02/23] Documentation: dt: atmel-at91: add slow clock to tcb
2015-07-31 9:39 [PATCH 00/23] ARM: at91: Properly handle slow clock Alexandre Belloni
@ 2015-07-31 9:39 ` Alexandre Belloni
2015-07-31 9:39 ` [PATCH 22/23] misc: atmel_tclib: get and use slow clock Alexandre Belloni
` (2 subsequent siblings)
3 siblings, 0 replies; 7+ messages in thread
From: Alexandre Belloni @ 2015-07-31 9:39 UTC (permalink / raw)
To: Nicolas Ferre
Cc: Boris Brezillon, Maxime Ripard, Jean-Christophe Plagniol-Villard,
linux-arm-kernel, linux-kernel, Alexandre Belloni, Daniel Lezcano,
Thomas Gleixner, Arnd Bergmann, Greg Kroah-Hartman,
Thierry Reding, linux-pwm
From: Boris Brezillon <boris.brezillon@free-electrons.com>
The timer counters need the slow clock. It is required as they
will not function without it.
Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
---
Cc: Daniel Lezcano <daniel.lezcano@linaro.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Thierry Reding <thierry.reding@gmail.com>
Cc: linux-pwm@vger.kernel.org
Documentation/devicetree/bindings/arm/atmel-at91.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Documentation/devicetree/bindings/arm/atmel-at91.txt b/Documentation/devicetree/bindings/arm/atmel-at91.txt
index 209710cdf3aa..dc2d0f06d058 100644
--- a/Documentation/devicetree/bindings/arm/atmel-at91.txt
+++ b/Documentation/devicetree/bindings/arm/atmel-at91.txt
@@ -62,7 +62,7 @@ TC/TCLIB Timer required properties:
Note that you can specify several interrupt cells if the TC
block has one interrupt per channel.
- clock-names: tuple listing input clock names.
- Required elements: "t0_clk"
+ Required elements: "t0_clk", "slow_clk"
Optional elements: "t1_clk", "t2_clk"
- clocks: phandles to input clocks.
--
2.1.4
^ permalink raw reply related [flat|nested] 7+ messages in thread* [PATCH 22/23] misc: atmel_tclib: get and use slow clock
2015-07-31 9:39 [PATCH 00/23] ARM: at91: Properly handle slow clock Alexandre Belloni
2015-07-31 9:39 ` [PATCH 02/23] Documentation: dt: atmel-at91: add slow clock to tcb Alexandre Belloni
@ 2015-07-31 9:39 ` Alexandre Belloni
2015-08-05 20:45 ` Greg Kroah-Hartman
2015-07-31 9:59 ` [PATCH 00/23] ARM: at91: Properly handle " Boris Brezillon
2015-07-31 15:21 ` Alexandre Belloni
3 siblings, 1 reply; 7+ messages in thread
From: Alexandre Belloni @ 2015-07-31 9:39 UTC (permalink / raw)
To: Nicolas Ferre
Cc: Boris Brezillon, Maxime Ripard, Jean-Christophe Plagniol-Villard,
linux-arm-kernel, linux-kernel, Alexandre Belloni, Daniel Lezcano,
Thomas Gleixner, Arnd Bergmann, Greg Kroah-Hartman,
Thierry Reding, linux-pwm
From: Boris Brezillon <boris.brezillon@free-electrons.com>
Commit dca1a4b5ff6e ("clk: at91: keep slow clk enabled to prevent system
hang") added a workaround for the slow clock as it is not properly handled
by its users.
Get and use the slow clock as it is necessary for the timer counters.
Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
---
Cc: Daniel Lezcano <daniel.lezcano@linaro.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Thierry Reding <thierry.reding@gmail.com>
Cc: linux-pwm@vger.kernel.org
drivers/clocksource/tcb_clksrc.c | 8 ++++++++
drivers/misc/atmel_tclib.c | 4 ++++
drivers/pwm/pwm-atmel-tcb.c | 23 ++++++++++++++++-------
include/linux/atmel_tc.h | 1 +
4 files changed, 29 insertions(+), 7 deletions(-)
diff --git a/drivers/clocksource/tcb_clksrc.c b/drivers/clocksource/tcb_clksrc.c
index b9b7277173c2..969ba03633b0 100644
--- a/drivers/clocksource/tcb_clksrc.c
+++ b/drivers/clocksource/tcb_clksrc.c
@@ -188,6 +188,13 @@ static int __init setup_clkevents(struct atmel_tc *tc, int clk32k_divisor_idx)
ret = clk_prepare_enable(t2_clk);
if (ret)
return ret;
+
+ ret = clk_prepare_enable(tc->slow_clk);
+ if (ret) {
+ clk_disable_unprepare(t2_clk);
+ return ret;
+ }
+
clk_disable(t2_clk);
clkevt.regs = tc->regs;
@@ -200,6 +207,7 @@ static int __init setup_clkevents(struct atmel_tc *tc, int clk32k_divisor_idx)
ret = request_irq(irq, ch2_irq, IRQF_TIMER, "tc_clkevt", &clkevt);
if (ret) {
clk_unprepare(t2_clk);
+ clk_disable_unprepare(tc->slow_clk);
return ret;
}
diff --git a/drivers/misc/atmel_tclib.c b/drivers/misc/atmel_tclib.c
index 0ca05c3ec8d6..ac24a4bd63f7 100644
--- a/drivers/misc/atmel_tclib.c
+++ b/drivers/misc/atmel_tclib.c
@@ -125,6 +125,10 @@ static int __init tc_probe(struct platform_device *pdev)
if (IS_ERR(clk))
return PTR_ERR(clk);
+ tc->slow_clk = devm_clk_get(&pdev->dev, "slow_clk");
+ if (IS_ERR(tc->slow_clk))
+ return PTR_ERR(tc->slow_clk);
+
r = platform_get_resource(pdev, IORESOURCE_MEM, 0);
tc->regs = devm_ioremap_resource(&pdev->dev, r);
if (IS_ERR(tc->regs))
diff --git a/drivers/pwm/pwm-atmel-tcb.c b/drivers/pwm/pwm-atmel-tcb.c
index d14e0677c92d..070a32a35295 100644
--- a/drivers/pwm/pwm-atmel-tcb.c
+++ b/drivers/pwm/pwm-atmel-tcb.c
@@ -305,7 +305,7 @@ static int atmel_tcb_pwm_config(struct pwm_chip *chip, struct pwm_device *pwm,
*/
if (i == 5) {
i = slowclk;
- rate = 32768;
+ rate = clk_get_rate(tc->slow_clk);
min = div_u64(NSEC_PER_SEC, rate);
max = min << tc->tcb_config->counter_width;
@@ -387,9 +387,9 @@ static int atmel_tcb_pwm_probe(struct platform_device *pdev)
tcbpwm = devm_kzalloc(&pdev->dev, sizeof(*tcbpwm), GFP_KERNEL);
if (tcbpwm == NULL) {
- atmel_tc_free(tc);
+ err = -ENOMEM;
dev_err(&pdev->dev, "failed to allocate memory\n");
- return -ENOMEM;
+ goto err_free_tc;
}
tcbpwm->chip.dev = &pdev->dev;
@@ -400,17 +400,24 @@ static int atmel_tcb_pwm_probe(struct platform_device *pdev)
tcbpwm->chip.npwm = NPWM;
tcbpwm->tc = tc;
+ err = clk_prepare_enable(tc->slow_clk);
+ if (err)
+ goto err_free_tc;
+
spin_lock_init(&tcbpwm->lock);
err = pwmchip_add(&tcbpwm->chip);
- if (err < 0) {
- atmel_tc_free(tc);
- return err;
- }
+ if (err < 0)
+ goto err_free_tc;
platform_set_drvdata(pdev, tcbpwm);
return 0;
+
+err_free_tc:
+ atmel_tc_free(tc);
+
+ return err;
}
static int atmel_tcb_pwm_remove(struct platform_device *pdev)
@@ -418,6 +425,8 @@ static int atmel_tcb_pwm_remove(struct platform_device *pdev)
struct atmel_tcb_pwm_chip *tcbpwm = platform_get_drvdata(pdev);
int err;
+ clk_disable_unprepare(tcbpwm->tc->slow_clk);
+
err = pwmchip_remove(&tcbpwm->chip);
if (err < 0)
return err;
diff --git a/include/linux/atmel_tc.h b/include/linux/atmel_tc.h
index b87c1c7c242a..468fdfa643f0 100644
--- a/include/linux/atmel_tc.h
+++ b/include/linux/atmel_tc.h
@@ -67,6 +67,7 @@ struct atmel_tc {
const struct atmel_tcb_config *tcb_config;
int irq[3];
struct clk *clk[3];
+ struct clk *slow_clk;
struct list_head node;
bool allocated;
};
--
2.1.4
^ permalink raw reply related [flat|nested] 7+ messages in thread* Re: [PATCH 22/23] misc: atmel_tclib: get and use slow clock
2015-07-31 9:39 ` [PATCH 22/23] misc: atmel_tclib: get and use slow clock Alexandre Belloni
@ 2015-08-05 20:45 ` Greg Kroah-Hartman
0 siblings, 0 replies; 7+ messages in thread
From: Greg Kroah-Hartman @ 2015-08-05 20:45 UTC (permalink / raw)
To: Alexandre Belloni
Cc: Nicolas Ferre, Boris Brezillon, Maxime Ripard,
Jean-Christophe Plagniol-Villard, linux-arm-kernel, linux-kernel,
Daniel Lezcano, Thomas Gleixner, Arnd Bergmann, Thierry Reding,
linux-pwm
On Fri, Jul 31, 2015 at 11:39:58AM +0200, Alexandre Belloni wrote:
> From: Boris Brezillon <boris.brezillon@free-electrons.com>
>
> Commit dca1a4b5ff6e ("clk: at91: keep slow clk enabled to prevent system
> hang") added a workaround for the slow clock as it is not properly handled
> by its users.
>
> Get and use the slow clock as it is necessary for the timer counters.
>
> Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
> Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
> ---
> Cc: Daniel Lezcano <daniel.lezcano@linaro.org>
> Cc: Thomas Gleixner <tglx@linutronix.de>
> Cc: Arnd Bergmann <arnd@arndb.de>
> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> Cc: Thierry Reding <thierry.reding@gmail.com>
> Cc: linux-pwm@vger.kernel.org
> drivers/clocksource/tcb_clksrc.c | 8 ++++++++
> drivers/misc/atmel_tclib.c | 4 ++++
> drivers/pwm/pwm-atmel-tcb.c | 23 ++++++++++++++++-------
> include/linux/atmel_tc.h | 1 +
> 4 files changed, 29 insertions(+), 7 deletions(-)
>
Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 00/23] ARM: at91: Properly handle slow clock
2015-07-31 9:39 [PATCH 00/23] ARM: at91: Properly handle slow clock Alexandre Belloni
2015-07-31 9:39 ` [PATCH 02/23] Documentation: dt: atmel-at91: add slow clock to tcb Alexandre Belloni
2015-07-31 9:39 ` [PATCH 22/23] misc: atmel_tclib: get and use slow clock Alexandre Belloni
@ 2015-07-31 9:59 ` Boris Brezillon
2015-07-31 10:20 ` Alexandre Belloni
2015-07-31 15:21 ` Alexandre Belloni
3 siblings, 1 reply; 7+ messages in thread
From: Boris Brezillon @ 2015-07-31 9:59 UTC (permalink / raw)
To: Alexandre Belloni
Cc: Nicolas Ferre, Maxime Ripard, Jean-Christophe Plagniol-Villard,
linux-arm-kernel, linux-kernel, Alessandro Zummo, Arnd Bergmann,
Daniel Lezcano, Dmitry Eremin-Solenikov, Greg Kroah-Hartman,
linux-clk, linux-pm, linux-pwm, linux-watchdog, Michael Turquette,
rtc-linux, Sebastian Reichel, Stephen Boyd, Thierry Reding,
Thomas Gleixner, Wim Van Sebroeck
Hi Alexandre,
On Fri, 31 Jul 2015 11:39:36 +0200
Alexandre Belloni <alexandre.belloni@free-electrons.com> wrote:
> Hi,
>
> It was discovered that all the slow clock user were not properly claiming it.
> This can end up in a system hang because the last registered user is releasing
> it, and it gets disabled.
>
> commit dca1a4b5ff6e ("clk: at91: keep slow clk enabled to prevent system hang")
> was a workaround. This series is adding the slow clock to the necessary drivers
> to avoid the issue and then removes that workaround.
>
> The Documentation updates and DT patches should probably go through the AT91
> tree this cycle to avoid breakage.
>
> Then the other patches can go through each subsystem tree. They are trivial
> enough to also go in this cycle.
>
> The final clk patch depends on the other ones and may be taken for the next
> cycle to avoid synchronization issues.
>
> I've thrown in a cleanup for at91-reset as it avoids adding support for that
> clock to the platform data initialization
I would have squashed commit 5 to 14 into a single patch, but apart
from that it looks good to me.
Acked-by: Boris Brezillon <boris.brezillon@free-electrons.com>
Thanks,
Boris
>
> Changes in v2:
> - statisticize the global in the atmel-st change
> - merge at91_reset_of_probe() in at91_reset_probe()
> - added patches from Boris for the TCB
> - added the slow clock to the TCB
>
> Cc: Alessandro Zummo <a.zummo@towertech.it>
> Cc: Arnd Bergmann <arnd@arndb.de>
> Cc: Daniel Lezcano <daniel.lezcano@linaro.org>
> Cc: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> Cc: linux-clk@vger.kernel.org
> Cc: linux-pm@vger.kernel.org
> Cc: linux-pwm@vger.kernel.org
> Cc: linux-watchdog@vger.kernel.org
> Cc: Michael Turquette <mturquette@baylibre.com>
> Cc: rtc-linux@googlegroups.com
> Cc: Sebastian Reichel <sre@kernel.org>
> Cc: Stephen Boyd <sboyd@codeaurora.org>
> Cc: Thierry Reding <thierry.reding@gmail.com>
> Cc: Thomas Gleixner <tglx@linutronix.de>
> Cc: Wim Van Sebroeck <wim@iguana.be>
>
> Alexandre Belloni (20):
> Documentation: dt: atmel-at91: add clocks to system timer, rstc and
> shdwc
> Documentation: watchdog: at91sam9_wdt: add clocks property
> Documentation: dt: rtc: at91rm9200: add clocks property
> ARM: at91/dt: at91rm9200: use slow clock where necessary
> ARM: at91/dt: at91sam9260: use slow clock where necessary
> ARM: at91/dt: at91sam9261: use slow clock where necessary
> ARM: at91/dt: at91sam9263: use slow clock where necessary
> ARM: at91/dt: at91sam9g45: use slow clock where necessary
> ARM: at91/dt: at91sam9n12: use slow clock where necessary
> ARM: at91/dt: at91sam9rl: use slow clock where necessary
> ARM: at91/dt: at91sam9x5: use slow clock where necessary
> ARM: at91/dt: sama5d3: use slow clock where necessary
> ARM: at91/dt: sama5d4: use slow clock where necessary
> rtc: at91rm9200: get and use slow clock
> watchdog: at91sam9: get and use slow clock
> power/reset: at91-reset: remove useless at91_reset_platform_probe()
> power/reset: at91-reset: get and use slow clock
> power/reset: at91-poweroff: get and use slow clock
> clocksource: atmel-st: get and use slow clock
> clk: at91: Revert "keep slow clk enabled to prevent system hang"
>
> Boris Brezillon (3):
> Documentation: dt: atmel-at91: add slow clock to tcb
> clocksource: tcb_clksrc: fix setup_clkevents error path
> misc: atmel_tclib: get and use slow clock
>
> .../devicetree/bindings/arm/atmel-at91.txt | 13 +++--
> .../bindings/rtc/atmel,at91rm9200-rtc.txt | 2 +
> .../devicetree/bindings/watchdog/atmel-wdt.txt | 2 +
> arch/arm/boot/dts/at91rm9200.dtsi | 10 ++--
> arch/arm/boot/dts/at91sam9260.dtsi | 11 +++--
> arch/arm/boot/dts/at91sam9261.dtsi | 7 ++-
> arch/arm/boot/dts/at91sam9263.dtsi | 7 ++-
> arch/arm/boot/dts/at91sam9g45.dtsi | 12 +++--
> arch/arm/boot/dts/at91sam9n12.dtsi | 12 +++--
> arch/arm/boot/dts/at91sam9rl.dtsi | 8 ++-
> arch/arm/boot/dts/at91sam9x5.dtsi | 12 +++--
> arch/arm/boot/dts/sama5d3.dtsi | 8 ++-
> arch/arm/boot/dts/sama5d3_tcb1.dtsi | 4 +-
> arch/arm/boot/dts/sama5d4.dtsi | 12 +++--
> drivers/clk/at91/clk-slow.c | 27 ----------
> drivers/clocksource/tcb_clksrc.c | 10 +++-
> drivers/clocksource/timer-atmel-st.c | 31 ++++++++----
> drivers/misc/atmel_tclib.c | 4 ++
> drivers/power/reset/at91-poweroff.c | 13 +++++
> drivers/power/reset/at91-reset.c | 57 ++++++----------------
> drivers/pwm/pwm-atmel-tcb.c | 23 ++++++---
> drivers/rtc/rtc-at91rm9200.c | 27 ++++++++--
> drivers/watchdog/at91sam9_wdt.c | 22 ++++++++-
> include/linux/atmel_tc.h | 1 +
> 24 files changed, 206 insertions(+), 129 deletions(-)
>
--
Boris Brezillon, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
^ permalink raw reply [flat|nested] 7+ messages in thread* Re: [PATCH 00/23] ARM: at91: Properly handle slow clock
2015-07-31 9:59 ` [PATCH 00/23] ARM: at91: Properly handle " Boris Brezillon
@ 2015-07-31 10:20 ` Alexandre Belloni
0 siblings, 0 replies; 7+ messages in thread
From: Alexandre Belloni @ 2015-07-31 10:20 UTC (permalink / raw)
To: Boris Brezillon
Cc: Nicolas Ferre, Maxime Ripard, Jean-Christophe Plagniol-Villard,
linux-arm-kernel, linux-kernel, Alessandro Zummo, Arnd Bergmann,
Daniel Lezcano, Dmitry Eremin-Solenikov, Greg Kroah-Hartman,
linux-clk, linux-pm, linux-pwm, linux-watchdog, Michael Turquette,
rtc-linux, Sebastian Reichel, Stephen Boyd, Thierry Reding,
Thomas Gleixner, Wim Van Sebroeck
Hi,
On 31/07/2015 at 11:59:03 +0200, Boris Brezillon wrote :
> I would have squashed commit 5 to 14 into a single patch, but apart
> from that it looks good to me.
>
I wanted to clearly list were the slow clock was needed for each soc. It
actually allowed me to find one that was missing.
--
Alexandre Belloni, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 00/23] ARM: at91: Properly handle slow clock
2015-07-31 9:39 [PATCH 00/23] ARM: at91: Properly handle slow clock Alexandre Belloni
` (2 preceding siblings ...)
2015-07-31 9:59 ` [PATCH 00/23] ARM: at91: Properly handle " Boris Brezillon
@ 2015-07-31 15:21 ` Alexandre Belloni
3 siblings, 0 replies; 7+ messages in thread
From: Alexandre Belloni @ 2015-07-31 15:21 UTC (permalink / raw)
To: Nicolas Ferre
Cc: Boris Brezillon, Maxime Ripard, Jean-Christophe Plagniol-Villard,
linux-arm-kernel, linux-kernel, Alessandro Zummo, Arnd Bergmann,
Daniel Lezcano, Dmitry Eremin-Solenikov, Greg Kroah-Hartman,
linux-clk, linux-pm, linux-pwm, linux-watchdog, Michael Turquette,
rtc-linux, Sebastian Reichel, Stephen Boyd, Thierry Reding,
Thomas Gleixner, Wim Van Sebroeck
Hi,
I realize now that I forgot to add the v2 tag in the subject lines. This
is really v2 :)
On 31/07/2015 at 11:39:36 +0200, Alexandre Belloni wrote :
> Hi,
>
> It was discovered that all the slow clock user were not properly claiming it.
> This can end up in a system hang because the last registered user is releasing
> it, and it gets disabled.
>
> commit dca1a4b5ff6e ("clk: at91: keep slow clk enabled to prevent system hang")
> was a workaround. This series is adding the slow clock to the necessary drivers
> to avoid the issue and then removes that workaround.
>
> The Documentation updates and DT patches should probably go through the AT91
> tree this cycle to avoid breakage.
>
> Then the other patches can go through each subsystem tree. They are trivial
> enough to also go in this cycle.
>
> The final clk patch depends on the other ones and may be taken for the next
> cycle to avoid synchronization issues.
>
> I've thrown in a cleanup for at91-reset as it avoids adding support for that
> clock to the platform data initialization
>
> Changes in v2:
> - statisticize the global in the atmel-st change
> - merge at91_reset_of_probe() in at91_reset_probe()
> - added patches from Boris for the TCB
> - added the slow clock to the TCB
>
> Cc: Alessandro Zummo <a.zummo@towertech.it>
> Cc: Arnd Bergmann <arnd@arndb.de>
> Cc: Daniel Lezcano <daniel.lezcano@linaro.org>
> Cc: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> Cc: linux-clk@vger.kernel.org
> Cc: linux-pm@vger.kernel.org
> Cc: linux-pwm@vger.kernel.org
> Cc: linux-watchdog@vger.kernel.org
> Cc: Michael Turquette <mturquette@baylibre.com>
> Cc: rtc-linux@googlegroups.com
> Cc: Sebastian Reichel <sre@kernel.org>
> Cc: Stephen Boyd <sboyd@codeaurora.org>
> Cc: Thierry Reding <thierry.reding@gmail.com>
> Cc: Thomas Gleixner <tglx@linutronix.de>
> Cc: Wim Van Sebroeck <wim@iguana.be>
>
> Alexandre Belloni (20):
> Documentation: dt: atmel-at91: add clocks to system timer, rstc and
> shdwc
> Documentation: watchdog: at91sam9_wdt: add clocks property
> Documentation: dt: rtc: at91rm9200: add clocks property
> ARM: at91/dt: at91rm9200: use slow clock where necessary
> ARM: at91/dt: at91sam9260: use slow clock where necessary
> ARM: at91/dt: at91sam9261: use slow clock where necessary
> ARM: at91/dt: at91sam9263: use slow clock where necessary
> ARM: at91/dt: at91sam9g45: use slow clock where necessary
> ARM: at91/dt: at91sam9n12: use slow clock where necessary
> ARM: at91/dt: at91sam9rl: use slow clock where necessary
> ARM: at91/dt: at91sam9x5: use slow clock where necessary
> ARM: at91/dt: sama5d3: use slow clock where necessary
> ARM: at91/dt: sama5d4: use slow clock where necessary
> rtc: at91rm9200: get and use slow clock
> watchdog: at91sam9: get and use slow clock
> power/reset: at91-reset: remove useless at91_reset_platform_probe()
> power/reset: at91-reset: get and use slow clock
> power/reset: at91-poweroff: get and use slow clock
> clocksource: atmel-st: get and use slow clock
> clk: at91: Revert "keep slow clk enabled to prevent system hang"
>
> Boris Brezillon (3):
> Documentation: dt: atmel-at91: add slow clock to tcb
> clocksource: tcb_clksrc: fix setup_clkevents error path
> misc: atmel_tclib: get and use slow clock
>
> .../devicetree/bindings/arm/atmel-at91.txt | 13 +++--
> .../bindings/rtc/atmel,at91rm9200-rtc.txt | 2 +
> .../devicetree/bindings/watchdog/atmel-wdt.txt | 2 +
> arch/arm/boot/dts/at91rm9200.dtsi | 10 ++--
> arch/arm/boot/dts/at91sam9260.dtsi | 11 +++--
> arch/arm/boot/dts/at91sam9261.dtsi | 7 ++-
> arch/arm/boot/dts/at91sam9263.dtsi | 7 ++-
> arch/arm/boot/dts/at91sam9g45.dtsi | 12 +++--
> arch/arm/boot/dts/at91sam9n12.dtsi | 12 +++--
> arch/arm/boot/dts/at91sam9rl.dtsi | 8 ++-
> arch/arm/boot/dts/at91sam9x5.dtsi | 12 +++--
> arch/arm/boot/dts/sama5d3.dtsi | 8 ++-
> arch/arm/boot/dts/sama5d3_tcb1.dtsi | 4 +-
> arch/arm/boot/dts/sama5d4.dtsi | 12 +++--
> drivers/clk/at91/clk-slow.c | 27 ----------
> drivers/clocksource/tcb_clksrc.c | 10 +++-
> drivers/clocksource/timer-atmel-st.c | 31 ++++++++----
> drivers/misc/atmel_tclib.c | 4 ++
> drivers/power/reset/at91-poweroff.c | 13 +++++
> drivers/power/reset/at91-reset.c | 57 ++++++----------------
> drivers/pwm/pwm-atmel-tcb.c | 23 ++++++---
> drivers/rtc/rtc-at91rm9200.c | 27 ++++++++--
> drivers/watchdog/at91sam9_wdt.c | 22 ++++++++-
> include/linux/atmel_tc.h | 1 +
> 24 files changed, 206 insertions(+), 129 deletions(-)
>
> --
> 2.1.4
>
--
Alexandre Belloni, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
^ permalink raw reply [flat|nested] 7+ messages in thread