Re: [PATCH 0/6] 32-bit Meson: add the ARM TWD and Global Timers
From: Kevin Hilman
Date: Tue Dec 04 2018 - 19:51:38 EST
Martin Blumenstingl <martin.blumenstingl@xxxxxxxxxxxxxx> writes:
> The 32-bit Meson SoCs use Cortex-A9 or Cortex-A5 cores. These come
> with the ARM TWD ("Timer Watchdog") which contains a timer and a
> watchdog as well as the ARM Global Timer.
>
> This enables the corresponding configs for the 32-bit Meson target.
> Additionally this adds and enables the ARM TWD timer. The Global
> Timer is added but currently disabled because it's clock input is
> the PERIPH clock which is derived from the CPU clock. Thus the rate
> of the PERIPH clock will change when changing the CPU frequency.
> Unfortunately the Global Timer driver doesn't handle clocks with
> changing rates yet (unlike the TWD timer), thus we keep it disabled
> for now.
>
> The whole series is inspired by an almost 3 year old patch from
> Carlo: [0]
>
>
> Dependencies:
> - I build this on top of my other series "ARM: dts: meson: add the
> timer interrupts and clocks" from [1]
> - CLKID_PERIPH requires updated clock driver headers. Neil provided
> a tag which includes the updated headers: [2]
I pulled this branch into v4.21/dt
> - There is no runtime dependency on the PERIPH clock as we don't
> have CPU frequency scaling support enabled yet. In case the TWD
> timer driver can't find the clock it falls back to auto-detecting
> the clock rate at boot time. This is safe as long as we don't have
> .dts patches in place which allow changing the CPU clock rate. Once
> we enable CPU frequency scaling support for the PERIPH clock becomes
> mandatory so the TWD timer driver knows about changes to the PERIPH
> clock (which is derived from the CPU clock).
>
>
> [0] https://patchwork.kernel.org/patch/7797581/
> [1] https://patchwork.kernel.org/cover/10687005/
> [2] http://lists.infradead.org/pipermail/linux-amlogic/2018-November/009136.html
>
>
> Martin Blumenstingl (6):
> ARM: meson: select HAVE_ARM_TWD and ARM_GLOBAL_TIMER
Applied to v4.21/defconfig
> ARM: dts: meson: group the Cortex-A5 / Cortex-A9 peripherals
> ARM: dts: meson8: add the ARM TWD timer
> ARM: dts: meson8: add the Cortex-A9 global timer
> ARM: dts: meson8b: add the ARM TWD timer
> ARM: dts: meson8b: add the Cortex-A5 global timer
Applied to v4.21/dt
Kevin