On 10/11/26 12:43 PM, Jonas Karlman wrote:
Hi Quentin,
On 10/9/2026 10:35 AM, Quentin Schulz wrote:
Hi Jonas,
On 8/4/26 11:44 PM, Jonas Karlman wrote:
The rockchip_get_cru() helper is used by the sysreset_rockchip to get
the SoC specific CRU base address, and the rockchip_get_pmucru() helper
is only used by the RK3399 specific RAM driver. These helpers may
trigger a full clock driver probe to get the fixed CRU base address from
the clock driver private data, something that can take several ms.
Change to return the fixed RK3568 specific CRU or PMU CRU base address
directly to simplify and remove the unneeded complexity of using runtime
lookup in SoC specific code.
Signed-off-by: Jonas Karlman <[email protected]>
---
.../include/asm/arch-rockchip/cru_rk3568.h | 5 +--
arch/arm/mach-rockchip/rk3568/clk_rk3568.c | 33 ++-----------------
2 files changed, 5 insertions(+), 33 deletions(-)
diff --git a/arch/arm/include/asm/arch-rockchip/cru_rk3568.h
b/arch/arm/include/asm/arch-rockchip/cru_rk3568.h
index d72f241d0150..e2dc3cda5577 100644
--- a/arch/arm/include/asm/arch-rockchip/cru_rk3568.h
+++ b/arch/arm/include/asm/arch-rockchip/cru_rk3568.h
@@ -35,7 +35,6 @@ struct rk3568_clk_info {
bool is_cru;
};
-/* Private data for the clock driver - used by rockchip_get_cru() */
struct rk3568_pmuclk_priv {
struct rk3568_pmucru *pmucru;
ulong ppll_hz;
@@ -120,8 +119,10 @@ struct pll_rate_table {
unsigned int frac;
};
-#define RK3568_PMU_MODE 0x80
+#define RK3568_PMU_CRU_BASE 0xfdd00000
#define RK3568_PMU_PLL_CON(x) ((x) * 0x4)
+#define RK3568_PMU_MODE 0x80
+#define RK3568_CRU_BASE 0xfdd20000
#define RK3568_PLL_CON(x) ((x) * 0x4)
#define RK3568_MODE_CON 0xc0
diff --git a/arch/arm/mach-rockchip/rk3568/clk_rk3568.c b/arch/arm/mach-rockchip/rk3568/clk_rk3568.c
index 1c6b2ece602b..ccd98a91cd16 100644
--- a/arch/arm/mach-rockchip/rk3568/clk_rk3568.c
+++ b/arch/arm/mach-rockchip/rk3568/clk_rk3568.c
@@ -4,10 +4,7 @@
*/
#include <dm.h>
-#include <syscon.h>
-#include <asm/arch-rockchip/clock.h>
#include <asm/arch-rockchip/cru_rk3568.h>
-#include <linux/err.h>
int rockchip_get_clk(struct udevice **devp)
{
There's no user of that function anymore after this patch, so just
squash the patch removing it later in this series with this patch here.
This function is technically a public function declared in
asm/arch-rockchip/clock.h. Removing it in same patch that refactors to
use a constant seem like it would go against your normal stand on not
doing two different things in one patch, and a reason why it was split
to begin with ;-)
Oh well, it was clear in my head this was a case of "it obviously must
be together" but now that you put it into words, I can see an argument
for it. I guess you could say the same for the last driver of a
subsystem, you likely will remove the driver separately from the
subsystem. Eh, pick for yourself for v2 what you want to do, it's not
too important :) This reminds me I probably should start using
Conventional Comments (https://conventionalcomments.org/) to make it
clear what is required to changed/nice-to-haves (obviously, something
marked as an issue/blocker can always be discussed and argued against :) ).
Cheers,
Quentin