Re: [PATCH v3] mfd: db8500-prcmu: Support U8420-sysclk firmware

From: Lee Jones
Date: Mon Nov 11 2019 - 03:17:28 EST


On Sat, 26 Oct 2019, Linus Walleij wrote:

> There is a distinct version of the Ux500 U8420 variant
> with "sysclk", as can be seen from the vendor code that
> didn't make it upstream, this firmware lacks the
> ULPPLL (ultra-low power phase locked loop) which in
> effect means that the timer clock is instead wired to
> the 32768 Hz always-on clock.
>
> This has some repercussions when enabling the timer
> clock as the code as it stands will disable the timer
> clock on these platforms (lacking the so-called
> "doze mode") and obtaining the wrong rate of the timer
> clock.
>
> The timer frequency is of course needed very early in
> the boot, and as a consequence, we need to shuffle
> around the early PRCMU init code: whereas in the past
> we did not need to look up the PRCMU firmware version
> in the early init, but now we need to know the version
> before the core system timers are registered so we
> restructure the platform callbacks to the PRCMU so as
> not to take any arguments and instead look up the
> resources it needs directly from the device tree
> when initializing.
>
> As we do not yet support any platforms using this
> firmware it is not a regression, but as PostmarketOS
> is starting to support products with this firmware we
> need to fix this up.
>
> The low rate of 32kHz also makes the MTU timer unsuitable
> as delay timer but this needs to be fixed in a separate
> patch.
>
> Cc: arm@xxxxxxxxxx
> Cc: Lee Jones <lee.jones@xxxxxxxxxx>
> Cc: Stephan Gerhold <stephan@xxxxxxxxxxx>
> Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
> ---
> ChangeLog v2->v3:
> - It's a bad idead to return -ENODEV in a function
> that returns void.
> ChangeLog v1->v2:
> - Change the style of the ULPPLL check function (more
> compact)
> - Fix a missing of_node_put() by actually returning
> with -ENODEV on error.
>
> ARM SoC folks: as this mostly affects the MFD subsystems
> I think it'd be best if Lee can merge it, I do not
> plan any other changes to the ARM core files that the
> patch touches.
> ---
> arch/arm/mach-ux500/cpu-db8500.c | 2 +-
> drivers/mfd/db8500-prcmu.c | 63 ++++++++++++++++++++++----------
> include/linux/mfd/db8500-prcmu.h | 4 +-
> include/linux/mfd/dbx500-prcmu.h | 7 ++--
> 4 files changed, 50 insertions(+), 26 deletions(-)

Applied, thanks.

--
Lee Jones [æçæ]
Linaro Services Technical Lead
Linaro.org â Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog