clk: qcom: gcc-sdm845: use device tree match data
authorRichard Acayan <mailingradian@gmail.com>
Wed, 14 Sep 2022 01:39:21 +0000 (21:39 -0400)
committerBjorn Andersson <andersson@kernel.org>
Wed, 14 Sep 2022 02:20:34 +0000 (21:20 -0500)
This driver will support more than one SoC's set of clocks, and set of
GDSCs. This behavior would be unclean with hard-coded static variables.
Support it by grabbing clocks, GDSCs, and BCRs in the match data.

Signed-off-by: Richard Acayan <mailingradian@gmail.com>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20220914013922.198778-3-mailingradian@gmail.com
drivers/clk/qcom/gcc-sdm845.c

index 58aa3ec..cd6e4e4 100644 (file)
@@ -3574,7 +3574,7 @@ static const struct qcom_cc_desc gcc_sdm845_desc = {
 };
 
 static const struct of_device_id gcc_sdm845_match_table[] = {
-       { .compatible = "qcom,gcc-sdm845" },
+       { .compatible = "qcom,gcc-sdm845", .data = &gcc_sdm845_desc },
        { }
 };
 MODULE_DEVICE_TABLE(of, gcc_sdm845_match_table);
@@ -3600,6 +3600,7 @@ static const struct clk_rcg_dfs_data gcc_dfs_clocks[] = {
 
 static int gcc_sdm845_probe(struct platform_device *pdev)
 {
+       const struct qcom_cc_desc *gcc_desc;
        struct regmap *regmap;
        int ret;
 
@@ -3616,7 +3617,8 @@ static int gcc_sdm845_probe(struct platform_device *pdev)
        if (ret)
                return ret;
 
-       return qcom_cc_really_probe(pdev, &gcc_sdm845_desc, regmap);
+       gcc_desc = of_device_get_match_data(&pdev->dev);
+       return qcom_cc_really_probe(pdev, gcc_desc, regmap);
 }
 
 static struct platform_driver gcc_sdm845_driver = {