clk: samsung: gs101: register cmu_misc clocks early
authorPeter Griffin <peter.griffin@linaro.org>
Fri, 22 Dec 2023 16:53:54 +0000 (16:53 +0000)
committerKrzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Mon, 22 Jan 2024 11:01:54 +0000 (12:01 +0100)
Update cmu_misc so it is registered early, as it contains
the gate which clocks the Multi Core Timer (MCT). This clock
is required early in boot, otherwise exynos_mct will fail
obtaining the clock.

Note this wasn't previously an issue as exynos_mct wasn't
enabled.

Signed-off-by: Peter Griffin <peter.griffin@linaro.org>
Reviewed-by: Sam Protsenko <semen.protsenko@linaro.org>
Link: https://lore.kernel.org/r/20231222165355.1462740-3-peter.griffin@linaro.org
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
drivers/clk/samsung/clk-gs101.c

index 782993951fff8f7cc209329fc84af7f825fee143..559c86e1299221879e246677de9ded4295a73dba 100644 (file)
@@ -2478,6 +2478,15 @@ static const struct samsung_cmu_info misc_cmu_info __initconst = {
        .clk_name               = "bus",
 };
 
+static void __init gs101_cmu_misc_init(struct device_node *np)
+{
+       exynos_arm64_register_cmu(NULL, np, &misc_cmu_info);
+}
+
+/* Register CMU_MISC early, as it's needed for MCT timer */
+CLK_OF_DECLARE(gs101_cmu_misc, "google,gs101-cmu-misc",
+              gs101_cmu_misc_init);
+
 /* ---- platform_driver ----------------------------------------------------- */
 
 static int __init gs101_cmu_probe(struct platform_device *pdev)
@@ -2495,9 +2504,6 @@ static const struct of_device_id gs101_cmu_of_match[] = {
        {
                .compatible = "google,gs101-cmu-apm",
                .data = &apm_cmu_info,
-       }, {
-               .compatible = "google,gs101-cmu-misc",
-               .data = &misc_cmu_info,
        }, {
        },
 };