Add initial support for new target with the initial patch for ethernet support using pending upstream patches for PCS UNIPHY, PPE and EDMA. Only initramfs currently working as support for new SPI/NAND implementation, USB, CPUFreq and other devices is still unfinished and needs to be evaluated. Link: https://github.com/openwrt/openwrt/pull/17725 Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
107 lines
4.1 KiB
Diff
107 lines
4.1 KiB
Diff
From 23711cabe122ef55bcb2e5c3e3835b5a2a688fc0 Mon Sep 17 00:00:00 2001
|
|
From: Varadarajan Narayanan <quic_varada@quicinc.com>
|
|
Date: Tue, 30 Apr 2024 12:12:13 +0530
|
|
Subject: [PATCH] clk: qcom: ipq9574: Use icc-clk for enabling NoC related
|
|
clocks
|
|
|
|
Use the icc-clk framework to enable few clocks to be able to
|
|
create paths and use the peripherals connected on those NoCs.
|
|
|
|
Signed-off-by: Varadarajan Narayanan <quic_varada@quicinc.com>
|
|
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
|
|
Link: https://lore.kernel.org/r/20240430064214.2030013-6-quic_varada@quicinc.com
|
|
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
|
|
---
|
|
drivers/clk/qcom/Kconfig | 2 ++
|
|
drivers/clk/qcom/gcc-ipq9574.c | 33 +++++++++++++++++++++++++++++++++
|
|
2 files changed, 35 insertions(+)
|
|
|
|
diff --git a/drivers/clk/qcom/Kconfig b/drivers/clk/qcom/Kconfig
|
|
index 1231eae51556..11ae28430dad 100644
|
|
--- a/drivers/clk/qcom/Kconfig
|
|
+++ b/drivers/clk/qcom/Kconfig
|
|
@@ -14,6 +14,8 @@ menuconfig COMMON_CLK_QCOM
|
|
select RATIONAL
|
|
select REGMAP_MMIO
|
|
select RESET_CONTROLLER
|
|
+ select INTERCONNECT
|
|
+ select INTERCONNECT_CLK
|
|
|
|
if COMMON_CLK_QCOM
|
|
|
|
diff --git a/drivers/clk/qcom/gcc-ipq9574.c b/drivers/clk/qcom/gcc-ipq9574.c
|
|
index bc3e17f34295..f08a447370bd 100644
|
|
--- a/drivers/clk/qcom/gcc-ipq9574.c
|
|
+++ b/drivers/clk/qcom/gcc-ipq9574.c
|
|
@@ -4,6 +4,8 @@
|
|
*/
|
|
|
|
#include <linux/clk-provider.h>
|
|
+#include <linux/interconnect-clk.h>
|
|
+#include <linux/interconnect-provider.h>
|
|
#include <linux/kernel.h>
|
|
#include <linux/module.h>
|
|
#include <linux/of.h>
|
|
@@ -12,6 +14,7 @@
|
|
|
|
#include <dt-bindings/clock/qcom,ipq9574-gcc.h>
|
|
#include <dt-bindings/reset/qcom,ipq9574-gcc.h>
|
|
+#include <dt-bindings/interconnect/qcom,ipq9574.h>
|
|
|
|
#include "clk-alpha-pll.h"
|
|
#include "clk-branch.h"
|
|
@@ -4377,6 +4380,32 @@ static const struct qcom_reset_map gcc_ipq9574_resets[] = {
|
|
[GCC_WCSS_Q6_TBU_BCR] = { 0x12054, 0 },
|
|
};
|
|
|
|
+#define IPQ_APPS_ID 9574 /* some unique value */
|
|
+
|
|
+static struct qcom_icc_hws_data icc_ipq9574_hws[] = {
|
|
+ { MASTER_ANOC_PCIE0, SLAVE_ANOC_PCIE0, GCC_ANOC_PCIE0_1LANE_M_CLK },
|
|
+ { MASTER_SNOC_PCIE0, SLAVE_SNOC_PCIE0, GCC_SNOC_PCIE0_1LANE_S_CLK },
|
|
+ { MASTER_ANOC_PCIE1, SLAVE_ANOC_PCIE1, GCC_ANOC_PCIE1_1LANE_M_CLK },
|
|
+ { MASTER_SNOC_PCIE1, SLAVE_SNOC_PCIE1, GCC_SNOC_PCIE1_1LANE_S_CLK },
|
|
+ { MASTER_ANOC_PCIE2, SLAVE_ANOC_PCIE2, GCC_ANOC_PCIE2_2LANE_M_CLK },
|
|
+ { MASTER_SNOC_PCIE2, SLAVE_SNOC_PCIE2, GCC_SNOC_PCIE2_2LANE_S_CLK },
|
|
+ { MASTER_ANOC_PCIE3, SLAVE_ANOC_PCIE3, GCC_ANOC_PCIE3_2LANE_M_CLK },
|
|
+ { MASTER_SNOC_PCIE3, SLAVE_SNOC_PCIE3, GCC_SNOC_PCIE3_2LANE_S_CLK },
|
|
+ { MASTER_USB, SLAVE_USB, GCC_SNOC_USB_CLK },
|
|
+ { MASTER_USB_AXI, SLAVE_USB_AXI, GCC_ANOC_USB_AXI_CLK },
|
|
+ { MASTER_NSSNOC_NSSCC, SLAVE_NSSNOC_NSSCC, GCC_NSSNOC_NSSCC_CLK },
|
|
+ { MASTER_NSSNOC_SNOC_0, SLAVE_NSSNOC_SNOC_0, GCC_NSSNOC_SNOC_CLK },
|
|
+ { MASTER_NSSNOC_SNOC_1, SLAVE_NSSNOC_SNOC_1, GCC_NSSNOC_SNOC_1_CLK },
|
|
+ { MASTER_NSSNOC_PCNOC_1, SLAVE_NSSNOC_PCNOC_1, GCC_NSSNOC_PCNOC_1_CLK },
|
|
+ { MASTER_NSSNOC_QOSGEN_REF, SLAVE_NSSNOC_QOSGEN_REF, GCC_NSSNOC_QOSGEN_REF_CLK },
|
|
+ { MASTER_NSSNOC_TIMEOUT_REF, SLAVE_NSSNOC_TIMEOUT_REF, GCC_NSSNOC_TIMEOUT_REF_CLK },
|
|
+ { MASTER_NSSNOC_XO_DCD, SLAVE_NSSNOC_XO_DCD, GCC_NSSNOC_XO_DCD_CLK },
|
|
+ { MASTER_NSSNOC_ATB, SLAVE_NSSNOC_ATB, GCC_NSSNOC_ATB_CLK },
|
|
+ { MASTER_MEM_NOC_NSSNOC, SLAVE_MEM_NOC_NSSNOC, GCC_MEM_NOC_NSSNOC_CLK },
|
|
+ { MASTER_NSSNOC_MEMNOC, SLAVE_NSSNOC_MEMNOC, GCC_NSSNOC_MEMNOC_CLK },
|
|
+ { MASTER_NSSNOC_MEM_NOC_1, SLAVE_NSSNOC_MEM_NOC_1, GCC_NSSNOC_MEM_NOC_1_CLK },
|
|
+};
|
|
+
|
|
static const struct of_device_id gcc_ipq9574_match_table[] = {
|
|
{ .compatible = "qcom,ipq9574-gcc" },
|
|
{ }
|
|
@@ -4399,6 +4428,9 @@ static const struct qcom_cc_desc gcc_ipq9574_desc = {
|
|
.num_resets = ARRAY_SIZE(gcc_ipq9574_resets),
|
|
.clk_hws = gcc_ipq9574_hws,
|
|
.num_clk_hws = ARRAY_SIZE(gcc_ipq9574_hws),
|
|
+ .icc_hws = icc_ipq9574_hws,
|
|
+ .num_icc_hws = ARRAY_SIZE(icc_ipq9574_hws),
|
|
+ .icc_first_node_id = IPQ_APPS_ID,
|
|
};
|
|
|
|
static int gcc_ipq9574_probe(struct platform_device *pdev)
|
|
@@ -4411,6 +4443,7 @@ static struct platform_driver gcc_ipq9574_driver = {
|
|
.driver = {
|
|
.name = "qcom,gcc-ipq9574",
|
|
.of_match_table = gcc_ipq9574_match_table,
|
|
+ .sync_state = icc_sync_state,
|
|
},
|
|
};
|
|
|
|
--
|
|
2.45.2
|
|
|