]> git.ipfire.org Git - thirdparty/linux.git/commit
PM / devfreq: rockchip-dfi: add support for LPDDR5
authorNicolas Frattaroli <nicolas.frattaroli@collabora.com>
Fri, 30 May 2025 13:38:09 +0000 (15:38 +0200)
committerChanwoo Choi <cw00.choi@samsung.com>
Tue, 9 Sep 2025 14:37:39 +0000 (23:37 +0900)
commiteddb5ba91b289faa15117d4fc1c2fb223f3493c2
tree98d5ed97b6a203c62c64d82177e671255c03ede7
parentf89c7fb83ae95578e355bed1a7aeea5f3ca5a067
PM / devfreq: rockchip-dfi: add support for LPDDR5

The Rockchip RK3588 SoC can also support LPDDR5 memory. This type of
memory needs some special case handling in the rockchip-dfi driver.

Add support for it in rockchip-dfi, as well as the needed GRF register
definitions.

This has been tested as returning both the right cycle count and
bandwidth on a LPDDR5 board where the CKR bit is 1. I couldn't test
whether the values are correct on a system where CKR is 0, as I'm not
savvy enough with the Rockchip tooling to know whether this can be set
in the DDR init blob.

Downstream has some special case handling for a hardware version where
not just the control bits differ, but also the register. Since I don't
know whether that hardware version is in any production silicon, it's
left unimplemented for now, with an error message urging users to report
if they have such a system.

There is a slight change of behaviour for non-LPDDR5 systems: instead of
writing 0 as the control flags to the control register and pretending
everything is alright if the memory type is unknown, we now explicitly
return an error.

Signed-off-by: Nicolas Frattaroli <nicolas.frattaroli@collabora.com>
Reviewed-by: Sascha Hauer <s.hauer@pengutronix.de>
Acked-by: Heiko Stuebner <heiko@sntech.de>
Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
Link: https://patchwork.kernel.org/project/linux-pm/patch/20250530-rk3588-dfi-improvements-v1-2-6e077c243a95@collabora.com/
drivers/devfreq/event/rockchip-dfi.c
include/soc/rockchip/rk3588_grf.h
include/soc/rockchip/rockchip_grf.h