clk: qcom: lpasscc-sc7280: Skip qdsp6ss clock registration
authorSrinivasa Rao Mandadapu <quic_srivasam@quicinc.com>
Fri, 7 Apr 2023 09:22:54 +0000 (14:52 +0530)
committerBjorn Andersson <andersson@kernel.org>
Fri, 14 Apr 2023 03:17:12 +0000 (20:17 -0700)
The qdsp6ss memory region is being shared by ADSP remoteproc device and
lpasscc clock device, hence causing memory conflict.
To avoid this, when qdsp6ss clocks are being enabled in remoteproc driver,
skip qdsp6ss clock registration if "qcom,adsp-pil-mode" is enabled and
also assign max_register value.

Fixes: 4ab43d171181 ("clk: qcom: Add lpass clock controller driver for SC7280")
Signed-off-by: Srinivasa Rao Mandadapu <quic_srivasam@quicinc.com>
Signed-off-by: Mohammad Rafi Shaik <quic_mohs@quicinc.com>
Reviewed-by: Stephen Boyd <swboyd@chromium.org>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230407092255.119690-3-quic_mohs@quicinc.com
drivers/clk/qcom/lpasscc-sc7280.c

index 48432010ce247d1c2e7e2c73258b65b1670045b1..0df2b29e95e3195c4b20b04d245104fa23009e27 100644 (file)
@@ -121,14 +121,18 @@ static int lpass_cc_sc7280_probe(struct platform_device *pdev)
                goto destroy_pm_clk;
        }
 
-       lpass_regmap_config.name = "qdsp6ss";
-       desc = &lpass_qdsp6ss_sc7280_desc;
-
-       ret = qcom_cc_probe_by_index(pdev, 0, desc);
-       if (ret)
-               goto destroy_pm_clk;
+       if (!of_property_read_bool(pdev->dev.of_node, "qcom,adsp-pil-mode")) {
+               lpass_regmap_config.name = "qdsp6ss";
+               lpass_regmap_config.max_register = 0x3f;
+               desc = &lpass_qdsp6ss_sc7280_desc;
+
+               ret = qcom_cc_probe_by_index(pdev, 0, desc);
+               if (ret)
+                       goto destroy_pm_clk;
+       }
 
        lpass_regmap_config.name = "top_cc";
+       lpass_regmap_config.max_register = 0x4;
        desc = &lpass_cc_top_sc7280_desc;
 
        ret = qcom_cc_probe_by_index(pdev, 1, desc);