interconnect: qcom: Define RPM bus clocks
authorKonrad Dybcio <konrad.dybcio@linaro.org>
Mon, 19 Jun 2023 13:04:35 +0000 (15:04 +0200)
committerBjorn Andersson <andersson@kernel.org>
Sat, 15 Jul 2023 16:54:44 +0000 (09:54 -0700)
Add the definitions for RPM bus clocks that will be used by many
different platforms.

Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Acked-by: Georgi Djakov <djakov@kernel.org>
Link: https://lore.kernel.org/r/20230526-topic-smd_icc-v7-10-09c78c175546@linaro.org
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
drivers/interconnect/qcom/Makefile
drivers/interconnect/qcom/icc-rpm-clocks.c [new file with mode: 0644]
drivers/interconnect/qcom/icc-rpm.h

index ab988926433c7348be9b5af09306f1863f6b418d..80d9d2da95d1436fd038df970f1c670a3010e649 100644 (file)
@@ -29,7 +29,7 @@ qnoc-sm8250-objs                      := sm8250.o
 qnoc-sm8350-objs                       := sm8350.o
 qnoc-sm8450-objs                       := sm8450.o
 qnoc-sm8550-objs                       := sm8550.o
-icc-smd-rpm-objs                       := smd-rpm.o icc-rpm.o
+icc-smd-rpm-objs                       := smd-rpm.o icc-rpm.o icc-rpm-clocks.o
 
 obj-$(CONFIG_INTERCONNECT_QCOM_BCM_VOTER) += icc-bcm-voter.o
 obj-$(CONFIG_INTERCONNECT_QCOM_MSM8916) += qnoc-msm8916.o
diff --git a/drivers/interconnect/qcom/icc-rpm-clocks.c b/drivers/interconnect/qcom/icc-rpm-clocks.c
new file mode 100644 (file)
index 0000000..63c82a9
--- /dev/null
@@ -0,0 +1,77 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright (C) 2023 Linaro Ltd
+ */
+
+#include <linux/soc/qcom/smd-rpm.h>
+
+#include "icc-rpm.h"
+
+const struct rpm_clk_resource aggre1_clk = {
+       .resource_type = QCOM_SMD_RPM_AGGR_CLK,
+       .clock_id = 1,
+};
+EXPORT_SYMBOL_GPL(aggre1_clk);
+
+const struct rpm_clk_resource aggre2_clk = {
+       .resource_type = QCOM_SMD_RPM_AGGR_CLK,
+       .clock_id = 2,
+};
+EXPORT_SYMBOL_GPL(aggre2_clk);
+
+const struct rpm_clk_resource bimc_clk = {
+       .resource_type = QCOM_SMD_RPM_MEM_CLK,
+       .clock_id = 0,
+};
+EXPORT_SYMBOL_GPL(bimc_clk);
+
+const struct rpm_clk_resource bus_0_clk = {
+       .resource_type = QCOM_SMD_RPM_BUS_CLK,
+       .clock_id = 0,
+};
+EXPORT_SYMBOL_GPL(bus_0_clk);
+
+const struct rpm_clk_resource bus_1_clk = {
+       .resource_type = QCOM_SMD_RPM_BUS_CLK,
+       .clock_id = 1,
+};
+EXPORT_SYMBOL_GPL(bus_1_clk);
+
+const struct rpm_clk_resource bus_2_clk = {
+       .resource_type = QCOM_SMD_RPM_BUS_CLK,
+       .clock_id = 2,
+};
+EXPORT_SYMBOL_GPL(bus_2_clk);
+
+const struct rpm_clk_resource mmaxi_0_clk = {
+       .resource_type = QCOM_SMD_RPM_MMAXI_CLK,
+       .clock_id = 0,
+};
+EXPORT_SYMBOL_GPL(mmaxi_0_clk);
+
+const struct rpm_clk_resource mmaxi_1_clk = {
+       .resource_type = QCOM_SMD_RPM_MMAXI_CLK,
+       .clock_id = 1,
+};
+EXPORT_SYMBOL_GPL(mmaxi_1_clk);
+
+const struct rpm_clk_resource qup_clk = {
+       .resource_type = QCOM_SMD_RPM_QUP_CLK,
+       .clock_id = 0,
+};
+EXPORT_SYMBOL_GPL(qup_clk);
+
+/* Branch clocks */
+const struct rpm_clk_resource aggre1_branch_clk = {
+       .resource_type = QCOM_SMD_RPM_AGGR_CLK,
+       .clock_id = 1,
+       .branch = true,
+};
+EXPORT_SYMBOL_GPL(aggre1_branch_clk);
+
+const struct rpm_clk_resource aggre2_branch_clk = {
+       .resource_type = QCOM_SMD_RPM_AGGR_CLK,
+       .clock_id = 2,
+       .branch = true,
+};
+EXPORT_SYMBOL_GPL(aggre2_branch_clk);
index 5c43a8023ffa914345aa69ebf62823c974bf55fb..ecd6104335a77912e856d6f3079dc5f91b9fe9f8 100644 (file)
@@ -137,6 +137,19 @@ enum qos_mode {
        NOC_QOS_MODE_BYPASS,
 };
 
+extern const struct rpm_clk_resource aggre1_clk;
+extern const struct rpm_clk_resource aggre2_clk;
+extern const struct rpm_clk_resource bimc_clk;
+extern const struct rpm_clk_resource bus_0_clk;
+extern const struct rpm_clk_resource bus_1_clk;
+extern const struct rpm_clk_resource bus_2_clk;
+extern const struct rpm_clk_resource mmaxi_0_clk;
+extern const struct rpm_clk_resource mmaxi_1_clk;
+extern const struct rpm_clk_resource qup_clk;
+
+extern const struct rpm_clk_resource aggre1_branch_clk;
+extern const struct rpm_clk_resource aggre2_branch_clk;
+
 int qnoc_probe(struct platform_device *pdev);
 int qnoc_remove(struct platform_device *pdev);