[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 20/25] hw/watchdog/cmsdk-apb-watchdog: Convert to use Clock i
From: |
Luc Michel |
Subject: |
Re: [PATCH 20/25] hw/watchdog/cmsdk-apb-watchdog: Convert to use Clock input |
Date: |
Fri, 22 Jan 2021 21:51:15 +0100 |
On 19:06 Thu 21 Jan , Peter Maydell wrote:
> Switch the CMSDK APB watchdog device over to using its Clock input;
> the wdogclk_frq property is now ignored.
>
> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Luc Michel <luc@lmichel.fr>
> ---
> hw/watchdog/cmsdk-apb-watchdog.c | 18 ++++++++++++++----
> 1 file changed, 14 insertions(+), 4 deletions(-)
>
> diff --git a/hw/watchdog/cmsdk-apb-watchdog.c
> b/hw/watchdog/cmsdk-apb-watchdog.c
> index b03bcb73628..9cad0c67da4 100644
> --- a/hw/watchdog/cmsdk-apb-watchdog.c
> +++ b/hw/watchdog/cmsdk-apb-watchdog.c
> @@ -310,6 +310,15 @@ static void cmsdk_apb_watchdog_reset(DeviceState *dev)
> ptimer_transaction_commit(s->timer);
> }
>
> +static void cmsdk_apb_watchdog_clk_update(void *opaque)
> +{
> + CMSDKAPBWatchdog *s = CMSDK_APB_WATCHDOG(opaque);
> +
> + ptimer_transaction_begin(s->timer);
> + ptimer_set_period_from_clock(s->timer, s->wdogclk, 1);
> + ptimer_transaction_commit(s->timer);
> +}
> +
> static void cmsdk_apb_watchdog_init(Object *obj)
> {
> SysBusDevice *sbd = SYS_BUS_DEVICE(obj);
> @@ -319,7 +328,8 @@ static void cmsdk_apb_watchdog_init(Object *obj)
> s, "cmsdk-apb-watchdog", 0x1000);
> sysbus_init_mmio(sbd, &s->iomem);
> sysbus_init_irq(sbd, &s->wdogint);
> - s->wdogclk = qdev_init_clock_in(DEVICE(s), "WDOGCLK", NULL, NULL);
> + s->wdogclk = qdev_init_clock_in(DEVICE(s), "WDOGCLK",
> + cmsdk_apb_watchdog_clk_update, s);
>
> s->is_luminary = false;
> s->id = cmsdk_apb_watchdog_id;
> @@ -329,9 +339,9 @@ static void cmsdk_apb_watchdog_realize(DeviceState *dev,
> Error **errp)
> {
> CMSDKAPBWatchdog *s = CMSDK_APB_WATCHDOG(dev);
>
> - if (s->wdogclk_frq == 0) {
> + if (!clock_has_source(s->wdogclk)) {
> error_setg(errp,
> - "CMSDK APB watchdog: wdogclk-frq property must be set");
> + "CMSDK APB watchdog: WDOGCLK clock must be connected");
> return;
> }
>
> @@ -342,7 +352,7 @@ static void cmsdk_apb_watchdog_realize(DeviceState *dev,
> Error **errp)
> PTIMER_POLICY_NO_COUNTER_ROUND_DOWN);
>
> ptimer_transaction_begin(s->timer);
> - ptimer_set_freq(s->timer, s->wdogclk_frq);
> + ptimer_set_period_from_clock(s->timer, s->wdogclk, 1);
> ptimer_transaction_commit(s->timer);
> }
>
> --
> 2.20.1
>
--
- Re: [PATCH 19/25] hw/timer/cmsdk-apb-dualtimer: Convert to use Clock input, (continued)
Re: [PATCH 19/25] hw/timer/cmsdk-apb-dualtimer: Convert to use Clock input, Philippe Mathieu-Daudé, 2021/01/27
[PATCH 16/25] hw/arm/stellaris: Convert SSYS to QOM device, Peter Maydell, 2021/01/21
Re: [PATCH 16/25] hw/arm/stellaris: Convert SSYS to QOM device, Luc Michel, 2021/01/22
[PATCH 20/25] hw/watchdog/cmsdk-apb-watchdog: Convert to use Clock input, Peter Maydell, 2021/01/21
[PATCH 21/25] tests/qtest/cmsdk-apb-watchdog-test: Test clock changes, Peter Maydell, 2021/01/21
[PATCH 22/25] hw/arm/armsse: Use Clock to set system_clock_scale, Peter Maydell, 2021/01/21
[PATCH 25/25] hw/arm/stellaris: Remove board-creation reset of STELLARIS_SYS, Peter Maydell, 2021/01/21