mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-15 23:41:35 -04:00
Merge tag 'icc-7.1-rc1' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/djakov/icc into char-misc-next
Georgi writes: This pull request contains the interconnect changes for the 7.1-rc1 merge window. They are listed below: - New driver for Mahua SoC - New driver for Eliza SoC - Enable QoS support for QCS8300 and QCS615 SoCs - Add L3 cache scaling compatibles for SM8550 and Eliza SoCs - Fix multiple issues in the msm8974 driver - Fix kfree mismatch - Misc cleanups - Add maintainer entry for the interconnect KUnit tests Signed-off-by: Georgi Djakov <djakov@kernel.org> * tag 'icc-7.1-rc1' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/djakov/icc: (22 commits) MAINTAINERS: Add interconnect kunit test entry interconnect: debugfs: fix devm_kstrdup and kfree mismatch interconnect: qcom: msm8974: expand DEFINE_QNODE macros interconnect: qcom: msm8974: switch to the main icc-rpm driver interconnect: qcom: let platforms declare their bugginess interconnect: qcom: define OCMEM bus resource interconnect: qcom: icc-rpm: allow overwriting get_bw callback interconnect: qcom: drop unused is_on flag dt-bindings: interconnect: qcom,msm8974: use qcom,rpm-common dt-bindings: interconnect: qcom,msm8974: drop bus clocks interconnect: qcom: qcs615: enable QoS configuration dt-bindings: interconnect: qcom,qcs615-rpmh: add clocks property to enable QoS interconnect: qcom: Add Eliza interconnect provider driver dt-bindings: interconnect: document the RPMh Network-On-Chip interconnect in Eliza SoC dt-bindings: interconnect: OSM L3: Add Eliza EPSS L3 compatible interconnect: qcom: De-acronymize SoC names dt-bindings: interconnect: qcom,glymur-rpmh: De-acronymize SoC name dt-bindings: interconnect: OSM L3: Document sm8550 OSM L3 compatible interconnect: qcom: qcs8300: enable QoS configuration dt-bindings: interconnect: qcom,qcs8300-rpmh: add clocks property to enable QoS ...
This commit is contained in:
@@ -0,0 +1,142 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/interconnect/qcom,eliza-rpmh.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Qualcomm RPMh Network-On-Chip Interconnect on Eliza SoC
|
||||
|
||||
maintainers:
|
||||
- Odelu Kukatla <odelu.kukatla@oss.qualcomm.com>
|
||||
|
||||
description: |
|
||||
RPMh interconnect providers support system bandwidth requirements through
|
||||
RPMh hardware accelerators known as Bus Clock Manager (BCM). The provider is
|
||||
able to communicate with the BCM through the Resource State Coordinator (RSC)
|
||||
associated with each execution environment. Provider nodes must point to at
|
||||
least one RPMh device child node pertaining to their RSC and each provider
|
||||
can map to multiple RPMh resources.
|
||||
|
||||
See also: include/dt-bindings/interconnect/qcom,eliza-rpmh.h
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- qcom,eliza-aggre1-noc
|
||||
- qcom,eliza-aggre2-noc
|
||||
- qcom,eliza-clk-virt
|
||||
- qcom,eliza-cnoc-cfg
|
||||
- qcom,eliza-cnoc-main
|
||||
- qcom,eliza-gem-noc
|
||||
- qcom,eliza-lpass-ag-noc
|
||||
- qcom,eliza-lpass-lpiaon-noc
|
||||
- qcom,eliza-lpass-lpicx-noc
|
||||
- qcom,eliza-mc-virt
|
||||
- qcom,eliza-mmss-noc
|
||||
- qcom,eliza-nsp-noc
|
||||
- qcom,eliza-pcie-anoc
|
||||
- qcom,eliza-system-noc
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
minItems: 1
|
||||
maxItems: 2
|
||||
|
||||
required:
|
||||
- compatible
|
||||
|
||||
allOf:
|
||||
- $ref: qcom,rpmh-common.yaml#
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
enum:
|
||||
- qcom,eliza-clk-virt
|
||||
- qcom,eliza-mc-virt
|
||||
then:
|
||||
properties:
|
||||
reg: false
|
||||
else:
|
||||
required:
|
||||
- reg
|
||||
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
enum:
|
||||
- qcom,eliza-aggre1-noc
|
||||
then:
|
||||
properties:
|
||||
clocks:
|
||||
items:
|
||||
- description: aggre UFS PHY AXI clock
|
||||
- description: aggre USB3 PRIM AXI clock
|
||||
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
enum:
|
||||
- qcom,eliza-aggre2-noc
|
||||
then:
|
||||
properties:
|
||||
clocks:
|
||||
items:
|
||||
- description: RPMH CC IPA clock
|
||||
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
enum:
|
||||
- qcom,eliza-pcie-anoc
|
||||
then:
|
||||
properties:
|
||||
clocks:
|
||||
items:
|
||||
- description: aggre-NOC PCIe AXI clock
|
||||
- description: cfg-NOC PCIe a-NOC AHB clock
|
||||
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
enum:
|
||||
- qcom,eliza-aggre1-noc
|
||||
- qcom,eliza-aggre2-noc
|
||||
- qcom,eliza-pcie-anoc
|
||||
then:
|
||||
required:
|
||||
- clocks
|
||||
else:
|
||||
properties:
|
||||
clocks: false
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
gem_noc: interconnect@24100000 {
|
||||
compatible = "qcom,eliza-gem-noc";
|
||||
reg = <0x24100000 0x163080>;
|
||||
#interconnect-cells = <2>;
|
||||
qcom,bcm-voters = <&apps_bcm_voter>;
|
||||
};
|
||||
|
||||
mc_virt: interconnect-2 {
|
||||
compatible = "qcom,eliza-mc-virt";
|
||||
#interconnect-cells = <2>;
|
||||
qcom,bcm-voters = <&apps_bcm_voter>;
|
||||
};
|
||||
|
||||
aggre1_noc: interconnect@16e0000 {
|
||||
compatible = "qcom,eliza-aggre1-noc";
|
||||
reg = <0x16e0000 0x16400>;
|
||||
#interconnect-cells = <2>;
|
||||
clocks = <&gcc_phy_axi_clk>, <&gcc_prim_axi_clk>;
|
||||
qcom,bcm-voters = <&apps_bcm_voter>;
|
||||
};
|
||||
@@ -4,7 +4,7 @@
|
||||
$id: http://devicetree.org/schemas/interconnect/qcom,glymur-rpmh.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Qualcomm RPMh Network-On-Chip Interconnect on GLYMUR
|
||||
title: Qualcomm RPMh Network-On-Chip Interconnect on Glymur and Mahua SoCs
|
||||
|
||||
maintainers:
|
||||
- Raviteja Laggyshetty <raviteja.laggyshetty@oss.qualcomm.com>
|
||||
@@ -21,28 +21,98 @@ description: |
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- qcom,glymur-aggre1-noc
|
||||
- qcom,glymur-aggre2-noc
|
||||
- qcom,glymur-aggre3-noc
|
||||
- qcom,glymur-aggre4-noc
|
||||
- qcom,glymur-clk-virt
|
||||
- qcom,glymur-cnoc-cfg
|
||||
- qcom,glymur-cnoc-main
|
||||
- qcom,glymur-hscnoc
|
||||
- qcom,glymur-lpass-ag-noc
|
||||
- qcom,glymur-lpass-lpiaon-noc
|
||||
- qcom,glymur-lpass-lpicx-noc
|
||||
- qcom,glymur-mc-virt
|
||||
- qcom,glymur-mmss-noc
|
||||
- qcom,glymur-nsinoc
|
||||
- qcom,glymur-nsp-noc
|
||||
- qcom,glymur-oobm-ss-noc
|
||||
- qcom,glymur-pcie-east-anoc
|
||||
- qcom,glymur-pcie-east-slv-noc
|
||||
- qcom,glymur-pcie-west-anoc
|
||||
- qcom,glymur-pcie-west-slv-noc
|
||||
- qcom,glymur-system-noc
|
||||
oneOf:
|
||||
- items:
|
||||
- enum:
|
||||
- qcom,mahua-aggre1-noc
|
||||
- const: qcom,glymur-aggre1-noc
|
||||
- items:
|
||||
- enum:
|
||||
- qcom,mahua-aggre2-noc
|
||||
- const: qcom,glymur-aggre2-noc
|
||||
- items:
|
||||
- enum:
|
||||
- qcom,mahua-aggre3-noc
|
||||
- const: qcom,glymur-aggre3-noc
|
||||
- items:
|
||||
- enum:
|
||||
- qcom,mahua-aggre4-noc
|
||||
- const: qcom,glymur-aggre4-noc
|
||||
- items:
|
||||
- enum:
|
||||
- qcom,mahua-clk-virt
|
||||
- const: qcom,glymur-clk-virt
|
||||
- items:
|
||||
- enum:
|
||||
- qcom,mahua-cnoc-main
|
||||
- const: qcom,glymur-cnoc-main
|
||||
- items:
|
||||
- enum:
|
||||
- qcom,mahua-lpass-ag-noc
|
||||
- const: qcom,glymur-lpass-ag-noc
|
||||
- items:
|
||||
- enum:
|
||||
- qcom,mahua-lpass-lpiaon-noc
|
||||
- const: qcom,glymur-lpass-lpiaon-noc
|
||||
- items:
|
||||
- enum:
|
||||
- qcom,mahua-lpass-lpicx-noc
|
||||
- const: qcom,glymur-lpass-lpicx-noc
|
||||
- items:
|
||||
- enum:
|
||||
- qcom,mahua-mmss-noc
|
||||
- const: qcom,glymur-mmss-noc
|
||||
- items:
|
||||
- enum:
|
||||
- qcom,mahua-nsinoc
|
||||
- const: qcom,glymur-nsinoc
|
||||
- items:
|
||||
- enum:
|
||||
- qcom,mahua-nsp-noc
|
||||
- const: qcom,glymur-nsp-noc
|
||||
- items:
|
||||
- enum:
|
||||
- qcom,mahua-oobm-ss-noc
|
||||
- const: qcom,glymur-oobm-ss-noc
|
||||
- items:
|
||||
- enum:
|
||||
- qcom,mahua-pcie-east-anoc
|
||||
- const: qcom,glymur-pcie-east-anoc
|
||||
- items:
|
||||
- enum:
|
||||
- qcom,mahua-pcie-east-slv-noc
|
||||
- const: qcom,glymur-pcie-east-slv-noc
|
||||
- items:
|
||||
- enum:
|
||||
- qcom,mahua-system-noc
|
||||
- const: qcom,glymur-system-noc
|
||||
- enum:
|
||||
- qcom,glymur-aggre1-noc
|
||||
- qcom,glymur-aggre2-noc
|
||||
- qcom,glymur-aggre3-noc
|
||||
- qcom,glymur-aggre4-noc
|
||||
- qcom,glymur-clk-virt
|
||||
- qcom,glymur-cnoc-cfg
|
||||
- qcom,glymur-cnoc-main
|
||||
- qcom,glymur-hscnoc
|
||||
- qcom,glymur-lpass-ag-noc
|
||||
- qcom,glymur-lpass-lpiaon-noc
|
||||
- qcom,glymur-lpass-lpicx-noc
|
||||
- qcom,glymur-mc-virt
|
||||
- qcom,glymur-mmss-noc
|
||||
- qcom,glymur-nsinoc
|
||||
- qcom,glymur-nsp-noc
|
||||
- qcom,glymur-oobm-ss-noc
|
||||
- qcom,glymur-pcie-east-anoc
|
||||
- qcom,glymur-pcie-east-slv-noc
|
||||
- qcom,glymur-pcie-west-anoc
|
||||
- qcom,glymur-pcie-west-slv-noc
|
||||
- qcom,glymur-system-noc
|
||||
- qcom,mahua-cnoc-cfg
|
||||
- qcom,mahua-hscnoc
|
||||
- qcom,mahua-mc-virt
|
||||
- qcom,mahua-pcie-west-anoc
|
||||
- qcom,mahua-pcie-west-slv-noc
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
@@ -63,6 +133,7 @@ allOf:
|
||||
enum:
|
||||
- qcom,glymur-clk-virt
|
||||
- qcom,glymur-mc-virt
|
||||
- qcom,mahua-mc-virt
|
||||
then:
|
||||
properties:
|
||||
reg: false
|
||||
@@ -85,6 +156,20 @@ allOf:
|
||||
- description: aggre PCIE_4 WEST AXI clock
|
||||
- description: aggre PCIE_6 WEST AXI clock
|
||||
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
enum:
|
||||
- qcom,mahua-pcie-west-anoc
|
||||
then:
|
||||
properties:
|
||||
clocks:
|
||||
items:
|
||||
- description: aggre PCIE_3B WEST AXI clock
|
||||
- description: aggre PCIE_4 WEST AXI clock
|
||||
- description: aggre PCIE_6 WEST AXI clock
|
||||
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
@@ -131,10 +216,11 @@ allOf:
|
||||
compatible:
|
||||
contains:
|
||||
enum:
|
||||
- qcom,glymur-pcie-west-anoc
|
||||
- qcom,glymur-pcie-east-anoc
|
||||
- qcom,glymur-aggre2-noc
|
||||
- qcom,glymur-aggre4-noc
|
||||
- qcom,glymur-pcie-east-anoc
|
||||
- qcom,glymur-pcie-west-anoc
|
||||
- qcom,mahua-pcie-west-anoc
|
||||
then:
|
||||
required:
|
||||
- clocks
|
||||
|
||||
@@ -26,27 +26,34 @@ properties:
|
||||
- qcom,msm8974-pnoc
|
||||
- qcom,msm8974-snoc
|
||||
|
||||
'#interconnect-cells':
|
||||
const: 1
|
||||
|
||||
clock-names:
|
||||
items:
|
||||
- const: bus
|
||||
- const: bus_a
|
||||
|
||||
clocks:
|
||||
items:
|
||||
- description: Bus Clock
|
||||
- description: Bus A Clock
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- '#interconnect-cells'
|
||||
- clock-names
|
||||
- clocks
|
||||
|
||||
additionalProperties: false
|
||||
unevaluatedProperties: false
|
||||
|
||||
allOf:
|
||||
- $ref: qcom,rpm-common.yaml#
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
const: qcom,msm8974-mmssnoc
|
||||
then:
|
||||
required:
|
||||
- clocks
|
||||
- clock-names
|
||||
else:
|
||||
properties:
|
||||
clocks: false
|
||||
clock-names: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
@@ -56,7 +63,4 @@ examples:
|
||||
reg = <0xfc380000 0x6a000>;
|
||||
compatible = "qcom,msm8974-bimc";
|
||||
#interconnect-cells = <1>;
|
||||
clock-names = "bus", "bus_a";
|
||||
clocks = <&rpmcc RPM_SMD_BIMC_CLK>,
|
||||
<&rpmcc RPM_SMD_BIMC_A_CLK>;
|
||||
};
|
||||
|
||||
@@ -28,12 +28,14 @@ properties:
|
||||
- const: qcom,osm-l3
|
||||
- items:
|
||||
- enum:
|
||||
- qcom,eliza-epss-l3
|
||||
- qcom,sa8775p-epss-l3
|
||||
- qcom,sc7280-epss-l3
|
||||
- qcom,sc8280xp-epss-l3
|
||||
- qcom,sm6375-cpucp-l3
|
||||
- qcom,sm8250-epss-l3
|
||||
- qcom,sm8350-epss-l3
|
||||
- qcom,sm8550-epss-l3
|
||||
- qcom,sm8650-epss-l3
|
||||
- const: qcom,epss-l3
|
||||
- items:
|
||||
|
||||
@@ -34,6 +34,13 @@ properties:
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
items:
|
||||
- description: aggre UFS PHY AXI clock
|
||||
- description: aggre USB2 SEC AXI clock
|
||||
- description: aggre USB3 PRIM AXI clock
|
||||
- description: RPMH CC IPA clock
|
||||
|
||||
required:
|
||||
- compatible
|
||||
|
||||
@@ -53,6 +60,22 @@ allOf:
|
||||
required:
|
||||
- reg
|
||||
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
enum:
|
||||
- qcom,qcs615-camnoc-virt
|
||||
- qcom,qcs615-config-noc
|
||||
- qcom,qcs615-dc-noc
|
||||
- qcom,qcs615-gem-noc
|
||||
- qcom,qcs615-mc-virt
|
||||
- qcom,qcs615-mmss-noc
|
||||
- qcom,qcs615-system-noc
|
||||
then:
|
||||
properties:
|
||||
clocks: false
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
|
||||
@@ -35,6 +35,10 @@ properties:
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
minItems: 1
|
||||
maxItems: 4
|
||||
|
||||
required:
|
||||
- compatible
|
||||
|
||||
@@ -54,6 +58,64 @@ allOf:
|
||||
required:
|
||||
- reg
|
||||
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
enum:
|
||||
- qcom,qcs8300-aggre1-noc
|
||||
then:
|
||||
properties:
|
||||
clocks:
|
||||
items:
|
||||
- description: aggre UFS PHY AXI clock
|
||||
- description: aggre QUP PRIM AXI clock
|
||||
- description: aggre USB2 PRIM AXI clock
|
||||
- description: aggre USB3 PRIM AXI clock
|
||||
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
enum:
|
||||
- qcom,qcs8300-aggre2-noc
|
||||
then:
|
||||
properties:
|
||||
clocks:
|
||||
items:
|
||||
- description: RPMH CC IPA clock
|
||||
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
enum:
|
||||
- qcom,qcs8300-gem-noc
|
||||
then:
|
||||
properties:
|
||||
clocks:
|
||||
items:
|
||||
- description: GCC DDRSS GPU AXI clock
|
||||
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
enum:
|
||||
- qcom,qcs8300-clk-virt
|
||||
- qcom,qcs8300-config-noc
|
||||
- qcom,qcs8300-dc-noc
|
||||
- qcom,qcs8300-gpdsp-anoc
|
||||
- qcom,qcs8300-lpass-ag-noc
|
||||
- qcom,qcs8300-mc-virt
|
||||
- qcom,qcs8300-mmss-noc
|
||||
- qcom,qcs8300-nspa-noc
|
||||
- qcom,qcs8300-pcie-anoc
|
||||
- qcom,qcs8300-system-noc
|
||||
then:
|
||||
properties:
|
||||
clocks: false
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
@@ -63,6 +125,7 @@ examples:
|
||||
reg = <0x9100000 0xf7080>;
|
||||
#interconnect-cells = <2>;
|
||||
qcom,bcm-voters = <&apps_bcm_voter>;
|
||||
clocks = <&gcc_ddrss_gpu_axi_clk>;
|
||||
};
|
||||
|
||||
clk_virt: interconnect-0 {
|
||||
|
||||
@@ -13352,6 +13352,12 @@ F: include/linux/interconnect-clk.h
|
||||
F: include/linux/interconnect-provider.h
|
||||
F: include/linux/interconnect.h
|
||||
|
||||
INTERCONNECT KUNIT TESTS
|
||||
M: Kuan-Wei Chiu <visitorckw@gmail.com>
|
||||
L: linux-pm@vger.kernel.org
|
||||
S: Maintained
|
||||
F: drivers/interconnect/icc-kunit.c
|
||||
|
||||
INTERRUPT COUNTER DRIVER
|
||||
M: Oleksij Rempel <o.rempel@pengutronix.de>
|
||||
R: Pengutronix Kernel Team <kernel@pengutronix.de>
|
||||
|
||||
@@ -150,10 +150,13 @@ int icc_debugfs_client_init(struct dentry *icc_dir)
|
||||
return ret;
|
||||
}
|
||||
|
||||
src_node = devm_kstrdup(&pdev->dev, "", GFP_KERNEL);
|
||||
dst_node = devm_kstrdup(&pdev->dev, "", GFP_KERNEL);
|
||||
if (!src_node || !dst_node)
|
||||
src_node = kstrdup("", GFP_KERNEL);
|
||||
dst_node = kstrdup("", GFP_KERNEL);
|
||||
if (!src_node || !dst_node) {
|
||||
kfree(dst_node);
|
||||
kfree(src_node);
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
client_dir = debugfs_create_dir("test_client", icc_dir);
|
||||
|
||||
|
||||
@@ -8,8 +8,17 @@ config INTERCONNECT_QCOM
|
||||
config INTERCONNECT_QCOM_BCM_VOTER
|
||||
tristate
|
||||
|
||||
config INTERCONNECT_QCOM_ELIZA
|
||||
tristate "Qualcomm Eliza interconnect driver"
|
||||
depends on INTERCONNECT_QCOM_RPMH_POSSIBLE
|
||||
select INTERCONNECT_QCOM_RPMH
|
||||
select INTERCONNECT_QCOM_BCM_VOTER
|
||||
help
|
||||
This is a driver for the Qualcomm Network-on-Chip on Eliza-based
|
||||
platforms.
|
||||
|
||||
config INTERCONNECT_QCOM_GLYMUR
|
||||
tristate "Qualcomm GLYMUR interconnect driver"
|
||||
tristate "Qualcomm Glymur interconnect driver"
|
||||
depends on INTERCONNECT_QCOM_RPMH_POSSIBLE
|
||||
select INTERCONNECT_QCOM_RPMH
|
||||
select INTERCONNECT_QCOM_BCM_VOTER
|
||||
@@ -18,7 +27,7 @@ config INTERCONNECT_QCOM_GLYMUR
|
||||
platforms.
|
||||
|
||||
config INTERCONNECT_QCOM_KAANAPALI
|
||||
tristate "Qualcomm KAANAPALI interconnect driver"
|
||||
tristate "Qualcomm Kaanapali interconnect driver"
|
||||
depends on INTERCONNECT_QCOM_RPMH_POSSIBLE
|
||||
select INTERCONNECT_QCOM_RPMH
|
||||
select INTERCONNECT_QCOM_BCM_VOTER
|
||||
|
||||
@@ -4,6 +4,7 @@ obj-$(CONFIG_INTERCONNECT_QCOM) += interconnect_qcom.o
|
||||
|
||||
interconnect_qcom-y := icc-common.o
|
||||
icc-bcm-voter-objs := bcm-voter.o
|
||||
qnoc-eliza-objs := eliza.o
|
||||
qnoc-glymur-objs := glymur.o
|
||||
qnoc-kaanapali-objs := kaanapali.o
|
||||
qnoc-milos-objs := milos.o
|
||||
@@ -48,6 +49,7 @@ qnoc-x1e80100-objs := x1e80100.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_ELIZA) += qnoc-eliza.o
|
||||
obj-$(CONFIG_INTERCONNECT_QCOM_GLYMUR) += qnoc-glymur.o
|
||||
obj-$(CONFIG_INTERCONNECT_QCOM_KAANAPALI) += qnoc-kaanapali.o
|
||||
obj-$(CONFIG_INTERCONNECT_QCOM_MILOS) += qnoc-milos.o
|
||||
|
||||
1585
drivers/interconnect/qcom/eliza.c
Normal file
1585
drivers/interconnect/qcom/eliza.c
Normal file
File diff suppressed because it is too large
Load Diff
@@ -9,6 +9,7 @@
|
||||
#include <linux/interconnect-provider.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of_platform.h>
|
||||
#include <linux/property.h>
|
||||
#include <dt-bindings/interconnect/qcom,glymur-rpmh.h>
|
||||
|
||||
#include "bcm-voter.h"
|
||||
@@ -1985,7 +1986,7 @@ static struct qcom_icc_bcm * const cnoc_cfg_bcms[] = {
|
||||
&bcm_cn1,
|
||||
};
|
||||
|
||||
static struct qcom_icc_node * const cnoc_cfg_nodes[] = {
|
||||
static struct qcom_icc_node *cnoc_cfg_nodes[] = {
|
||||
[MASTER_CNOC_CFG] = &qsm_cfg,
|
||||
[SLAVE_AHB2PHY_SOUTH] = &qhs_ahb2phy0,
|
||||
[SLAVE_AHB2PHY_NORTH] = &qhs_ahb2phy1,
|
||||
@@ -2093,7 +2094,7 @@ static struct qcom_icc_bcm * const hscnoc_bcms[] = {
|
||||
&bcm_sh1,
|
||||
};
|
||||
|
||||
static struct qcom_icc_node * const hscnoc_nodes[] = {
|
||||
static struct qcom_icc_node *hscnoc_nodes[] = {
|
||||
[MASTER_GPU_TCU] = &alm_gpu_tcu,
|
||||
[MASTER_PCIE_TCU] = &alm_pcie_qtc,
|
||||
[MASTER_SYS_TCU] = &alm_sys_tcu,
|
||||
@@ -2377,7 +2378,7 @@ static struct qcom_icc_bcm * const pcie_west_anoc_bcms[] = {
|
||||
&bcm_sn6,
|
||||
};
|
||||
|
||||
static struct qcom_icc_node * const pcie_west_anoc_nodes[] = {
|
||||
static struct qcom_icc_node *pcie_west_anoc_nodes[] = {
|
||||
[MASTER_PCIE_WEST_ANOC_CFG] = &qsm_pcie_west_anoc_cfg,
|
||||
[MASTER_PCIE_2] = &xm_pcie_2,
|
||||
[MASTER_PCIE_3A] = &xm_pcie_3a,
|
||||
@@ -2409,7 +2410,7 @@ static struct qcom_icc_bcm * const pcie_west_slv_noc_bcms[] = {
|
||||
&bcm_sn6,
|
||||
};
|
||||
|
||||
static struct qcom_icc_node * const pcie_west_slv_noc_nodes[] = {
|
||||
static struct qcom_icc_node *pcie_west_slv_noc_nodes[] = {
|
||||
[MASTER_HSCNOC_PCIE_WEST] = &qnm_hscnoc_pcie_west,
|
||||
[MASTER_CNOC_PCIE_WEST_SLAVE_CFG] = &qsm_cnoc_pcie_west_slave_cfg,
|
||||
[SLAVE_HSCNOC_PCIE_WEST_MS_MPU_CFG] = &qhs_hscnoc_pcie_west_ms_mpu_cfg,
|
||||
@@ -2470,6 +2471,28 @@ static const struct qcom_icc_desc glymur_system_noc = {
|
||||
.num_bcms = ARRAY_SIZE(system_noc_bcms),
|
||||
};
|
||||
|
||||
static int glymur_qnoc_probe(struct platform_device *pdev)
|
||||
{
|
||||
if (device_is_compatible(&pdev->dev, "qcom,mahua-mc-virt")) {
|
||||
llcc_mc.channels = 8;
|
||||
ebi.channels = 8;
|
||||
} else if (device_is_compatible(&pdev->dev, "qcom,mahua-hscnoc")) {
|
||||
qns_llcc.channels = 8;
|
||||
chm_apps.channels = 4;
|
||||
qnm_pcie_west.buswidth = 32;
|
||||
hscnoc_nodes[MASTER_WLAN_Q6] = NULL;
|
||||
} else if (device_is_compatible(&pdev->dev, "qcom,mahua-pcie-west-anoc")) {
|
||||
qns_pcie_west_mem_noc.buswidth = 32;
|
||||
pcie_west_anoc_nodes[MASTER_PCIE_3A] = NULL;
|
||||
} else if (device_is_compatible(&pdev->dev, "qcom,mahua-cnoc-cfg")) {
|
||||
cnoc_cfg_nodes[SLAVE_PCIE_3A_CFG] = NULL;
|
||||
} else if (device_is_compatible(&pdev->dev, "qcom,mahua-pcie-west-slv-noc")) {
|
||||
pcie_west_slv_noc_nodes[SLAVE_PCIE_3A] = NULL;
|
||||
}
|
||||
|
||||
return qcom_icc_rpmh_probe(pdev);
|
||||
}
|
||||
|
||||
static const struct of_device_id qnoc_of_match[] = {
|
||||
{ .compatible = "qcom,glymur-aggre1-noc", .data = &glymur_aggre1_noc},
|
||||
{ .compatible = "qcom,glymur-aggre2-noc", .data = &glymur_aggre2_noc},
|
||||
@@ -2477,12 +2500,15 @@ static const struct of_device_id qnoc_of_match[] = {
|
||||
{ .compatible = "qcom,glymur-aggre4-noc", .data = &glymur_aggre4_noc},
|
||||
{ .compatible = "qcom,glymur-clk-virt", .data = &glymur_clk_virt},
|
||||
{ .compatible = "qcom,glymur-cnoc-cfg", .data = &glymur_cnoc_cfg},
|
||||
{ .compatible = "qcom,mahua-cnoc-cfg", .data = &glymur_cnoc_cfg},
|
||||
{ .compatible = "qcom,glymur-cnoc-main", .data = &glymur_cnoc_main},
|
||||
{ .compatible = "qcom,glymur-hscnoc", .data = &glymur_hscnoc},
|
||||
{ .compatible = "qcom,mahua-hscnoc", .data = &glymur_hscnoc},
|
||||
{ .compatible = "qcom,glymur-lpass-ag-noc", .data = &glymur_lpass_ag_noc},
|
||||
{ .compatible = "qcom,glymur-lpass-lpiaon-noc", .data = &glymur_lpass_lpiaon_noc},
|
||||
{ .compatible = "qcom,glymur-lpass-lpicx-noc", .data = &glymur_lpass_lpicx_noc},
|
||||
{ .compatible = "qcom,glymur-mc-virt", .data = &glymur_mc_virt},
|
||||
{ .compatible = "qcom,mahua-mc-virt", .data = &glymur_mc_virt},
|
||||
{ .compatible = "qcom,glymur-mmss-noc", .data = &glymur_mmss_noc},
|
||||
{ .compatible = "qcom,glymur-nsinoc", .data = &glymur_nsinoc},
|
||||
{ .compatible = "qcom,glymur-nsp-noc", .data = &glymur_nsp_noc},
|
||||
@@ -2490,14 +2516,16 @@ static const struct of_device_id qnoc_of_match[] = {
|
||||
{ .compatible = "qcom,glymur-pcie-east-anoc", .data = &glymur_pcie_east_anoc},
|
||||
{ .compatible = "qcom,glymur-pcie-east-slv-noc", .data = &glymur_pcie_east_slv_noc},
|
||||
{ .compatible = "qcom,glymur-pcie-west-anoc", .data = &glymur_pcie_west_anoc},
|
||||
{ .compatible = "qcom,mahua-pcie-west-anoc", .data = &glymur_pcie_west_anoc},
|
||||
{ .compatible = "qcom,glymur-pcie-west-slv-noc", .data = &glymur_pcie_west_slv_noc},
|
||||
{ .compatible = "qcom,mahua-pcie-west-slv-noc", .data = &glymur_pcie_west_slv_noc},
|
||||
{ .compatible = "qcom,glymur-system-noc", .data = &glymur_system_noc},
|
||||
{ }
|
||||
};
|
||||
MODULE_DEVICE_TABLE(of, qnoc_of_match);
|
||||
|
||||
static struct platform_driver qnoc_driver = {
|
||||
.probe = qcom_icc_rpmh_probe,
|
||||
.probe = glymur_qnoc_probe,
|
||||
.remove = qcom_icc_rpmh_remove,
|
||||
.driver = {
|
||||
.name = "qnoc-glymur",
|
||||
@@ -2518,5 +2546,5 @@ static void __exit qnoc_driver_exit(void)
|
||||
}
|
||||
module_exit(qnoc_driver_exit);
|
||||
|
||||
MODULE_DESCRIPTION("GLYMUR NoC driver");
|
||||
MODULE_DESCRIPTION("Glymur NoC driver");
|
||||
MODULE_LICENSE("GPL");
|
||||
|
||||
@@ -31,6 +31,12 @@ const struct rpm_clk_resource mem_1_clk = {
|
||||
};
|
||||
EXPORT_SYMBOL_GPL(mem_1_clk);
|
||||
|
||||
const struct rpm_clk_resource gpu_mem_2_clk = {
|
||||
.resource_type = QCOM_SMD_RPM_MEM_CLK,
|
||||
.clock_id = 2,
|
||||
};
|
||||
EXPORT_SYMBOL_GPL(gpu_mem_2_clk);
|
||||
|
||||
const struct rpm_clk_resource bus_0_clk = {
|
||||
.resource_type = QCOM_SMD_RPM_BUS_CLK,
|
||||
.clock_id = 0,
|
||||
|
||||
@@ -204,7 +204,7 @@ static int qcom_icc_qos_set(struct icc_node *node)
|
||||
}
|
||||
}
|
||||
|
||||
static int qcom_icc_rpm_set(struct qcom_icc_node *qn, u64 *bw)
|
||||
static int qcom_icc_rpm_set(struct qcom_icc_node *qn, u64 *bw, bool ignore_enxio)
|
||||
{
|
||||
int ret, rpm_ctx = 0;
|
||||
u64 bw_bps;
|
||||
@@ -222,8 +222,9 @@ static int qcom_icc_rpm_set(struct qcom_icc_node *qn, u64 *bw)
|
||||
bw_bps);
|
||||
if (ret) {
|
||||
pr_err("qcom_icc_rpm_smd_send mas %d error %d\n",
|
||||
qn->mas_rpm_id, ret);
|
||||
return ret;
|
||||
qn->mas_rpm_id, ret);
|
||||
if (ret != -ENXIO || !ignore_enxio)
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -234,8 +235,9 @@ static int qcom_icc_rpm_set(struct qcom_icc_node *qn, u64 *bw)
|
||||
bw_bps);
|
||||
if (ret) {
|
||||
pr_err("qcom_icc_rpm_smd_send slv %d error %d\n",
|
||||
qn->slv_rpm_id, ret);
|
||||
return ret;
|
||||
qn->slv_rpm_id, ret);
|
||||
if (ret != -ENXIO || !ignore_enxio)
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -361,12 +363,12 @@ static int qcom_icc_set(struct icc_node *src, struct icc_node *dst)
|
||||
active_rate = agg_clk_rate[QCOM_SMD_RPM_ACTIVE_STATE];
|
||||
sleep_rate = agg_clk_rate[QCOM_SMD_RPM_SLEEP_STATE];
|
||||
|
||||
ret = qcom_icc_rpm_set(src_qn, src_qn->sum_avg);
|
||||
ret = qcom_icc_rpm_set(src_qn, src_qn->sum_avg, qp->ignore_enxio);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
if (dst_qn) {
|
||||
ret = qcom_icc_rpm_set(dst_qn, dst_qn->sum_avg);
|
||||
ret = qcom_icc_rpm_set(dst_qn, dst_qn->sum_avg, qp->ignore_enxio);
|
||||
if (ret)
|
||||
return ret;
|
||||
}
|
||||
@@ -509,6 +511,7 @@ int qnoc_probe(struct platform_device *pdev)
|
||||
for (i = 0; i < cd_num; i++)
|
||||
qp->intf_clks[i].id = cds[i];
|
||||
|
||||
qp->ignore_enxio = desc->ignore_enxio;
|
||||
qp->keep_alive = desc->keep_alive;
|
||||
qp->type = desc->type;
|
||||
qp->qos_offset = desc->qos_offset;
|
||||
@@ -553,6 +556,7 @@ int qnoc_probe(struct platform_device *pdev)
|
||||
provider->aggregate = qcom_icc_bw_aggregate;
|
||||
provider->xlate_extended = qcom_icc_xlate_extended;
|
||||
provider->data = data;
|
||||
provider->get_bw = desc->get_bw;
|
||||
|
||||
icc_provider_init(provider);
|
||||
|
||||
|
||||
@@ -51,7 +51,7 @@ struct rpm_clk_resource {
|
||||
* @bus_clk: a pointer to a HLOS-owned bus clock
|
||||
* @intf_clks: a clk_bulk_data array of interface clocks
|
||||
* @keep_alive: whether to always keep a minimum vote on the bus clocks
|
||||
* @is_on: whether the bus is powered on
|
||||
* @ignore_enxio: whether to ignore ENXIO errors (for MSM8974)
|
||||
*/
|
||||
struct qcom_icc_provider {
|
||||
struct icc_provider provider;
|
||||
@@ -66,7 +66,7 @@ struct qcom_icc_provider {
|
||||
struct clk *bus_clk;
|
||||
struct clk_bulk_data *intf_clks;
|
||||
bool keep_alive;
|
||||
bool is_on;
|
||||
bool ignore_enxio;
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -137,6 +137,8 @@ struct qcom_icc_desc {
|
||||
unsigned int qos_offset;
|
||||
u16 ab_coeff;
|
||||
u16 ib_coeff;
|
||||
int (*get_bw)(struct icc_node *node, u32 *avg, u32 *peak);
|
||||
bool ignore_enxio;
|
||||
};
|
||||
|
||||
/* Valid for all bus types */
|
||||
@@ -152,6 +154,7 @@ 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 gpu_mem_2_clk;
|
||||
extern const struct rpm_clk_resource mem_1_clk;
|
||||
extern const struct rpm_clk_resource mmaxi_0_clk;
|
||||
extern const struct rpm_clk_resource mmaxi_1_clk;
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -142,6 +142,12 @@ static struct qcom_icc_node qhm_qdss_bam = {
|
||||
.name = "qhm_qdss_bam",
|
||||
.channels = 1,
|
||||
.buswidth = 4,
|
||||
.qosbox = &(const struct qcom_icc_qosbox) {
|
||||
.num_ports = 1,
|
||||
.port_offsets = { 0xc000 },
|
||||
.prio = 2,
|
||||
.urg_fwd = 0,
|
||||
},
|
||||
.num_links = 1,
|
||||
.link_nodes = { &qns_a1noc_snoc },
|
||||
};
|
||||
@@ -150,6 +156,12 @@ static struct qcom_icc_node qhm_qspi = {
|
||||
.name = "qhm_qspi",
|
||||
.channels = 1,
|
||||
.buswidth = 4,
|
||||
.qosbox = &(const struct qcom_icc_qosbox) {
|
||||
.num_ports = 1,
|
||||
.port_offsets = { 0x17000 },
|
||||
.prio = 2,
|
||||
.urg_fwd = 0,
|
||||
},
|
||||
.num_links = 1,
|
||||
.link_nodes = { &qns_a1noc_snoc },
|
||||
};
|
||||
@@ -158,6 +170,12 @@ static struct qcom_icc_node qhm_qup0 = {
|
||||
.name = "qhm_qup0",
|
||||
.channels = 1,
|
||||
.buswidth = 4,
|
||||
.qosbox = &(const struct qcom_icc_qosbox) {
|
||||
.num_ports = 1,
|
||||
.port_offsets = { 0x10000 },
|
||||
.prio = 2,
|
||||
.urg_fwd = 0,
|
||||
},
|
||||
.num_links = 1,
|
||||
.link_nodes = { &qns_a1noc_snoc },
|
||||
};
|
||||
@@ -166,6 +184,12 @@ static struct qcom_icc_node qhm_qup1 = {
|
||||
.name = "qhm_qup1",
|
||||
.channels = 1,
|
||||
.buswidth = 4,
|
||||
.qosbox = &(const struct qcom_icc_qosbox) {
|
||||
.num_ports = 1,
|
||||
.port_offsets = { 0x12000 },
|
||||
.prio = 2,
|
||||
.urg_fwd = 0,
|
||||
},
|
||||
.num_links = 1,
|
||||
.link_nodes = { &qns_a1noc_snoc },
|
||||
};
|
||||
@@ -174,6 +198,12 @@ static struct qcom_icc_node qnm_cnoc = {
|
||||
.name = "qnm_cnoc",
|
||||
.channels = 1,
|
||||
.buswidth = 8,
|
||||
.qosbox = &(const struct qcom_icc_qosbox) {
|
||||
.num_ports = 1,
|
||||
.port_offsets = { 0x4000 },
|
||||
.prio = 2,
|
||||
.urg_fwd = 1,
|
||||
},
|
||||
.num_links = 1,
|
||||
.link_nodes = { &qns_a1noc_snoc },
|
||||
};
|
||||
@@ -182,6 +212,12 @@ static struct qcom_icc_node qxm_crypto = {
|
||||
.name = "qxm_crypto",
|
||||
.channels = 1,
|
||||
.buswidth = 8,
|
||||
.qosbox = &(const struct qcom_icc_qosbox) {
|
||||
.num_ports = 1,
|
||||
.port_offsets = { 0x5000 },
|
||||
.prio = 2,
|
||||
.urg_fwd = 1,
|
||||
},
|
||||
.num_links = 1,
|
||||
.link_nodes = { &qns_a1noc_snoc },
|
||||
};
|
||||
@@ -190,6 +226,12 @@ static struct qcom_icc_node qxm_ipa = {
|
||||
.name = "qxm_ipa",
|
||||
.channels = 1,
|
||||
.buswidth = 8,
|
||||
.qosbox = &(const struct qcom_icc_qosbox) {
|
||||
.num_ports = 1,
|
||||
.port_offsets = { 0x6000 },
|
||||
.prio = 2,
|
||||
.urg_fwd = 1,
|
||||
},
|
||||
.num_links = 1,
|
||||
.link_nodes = { &qns_lpass_snoc },
|
||||
};
|
||||
@@ -198,6 +240,12 @@ static struct qcom_icc_node xm_emac_avb = {
|
||||
.name = "xm_emac_avb",
|
||||
.channels = 1,
|
||||
.buswidth = 8,
|
||||
.qosbox = &(const struct qcom_icc_qosbox) {
|
||||
.num_ports = 1,
|
||||
.port_offsets = { 0xa000 },
|
||||
.prio = 2,
|
||||
.urg_fwd = 0,
|
||||
},
|
||||
.num_links = 1,
|
||||
.link_nodes = { &qns_a1noc_snoc },
|
||||
};
|
||||
@@ -206,6 +254,12 @@ static struct qcom_icc_node xm_pcie = {
|
||||
.name = "xm_pcie",
|
||||
.channels = 1,
|
||||
.buswidth = 8,
|
||||
.qosbox = &(const struct qcom_icc_qosbox) {
|
||||
.num_ports = 1,
|
||||
.port_offsets = { 0x13000 },
|
||||
.prio = 0,
|
||||
.urg_fwd = 0,
|
||||
},
|
||||
.num_links = 1,
|
||||
.link_nodes = { &qns_pcie_snoc },
|
||||
};
|
||||
@@ -214,6 +268,12 @@ static struct qcom_icc_node xm_qdss_etr = {
|
||||
.name = "xm_qdss_etr",
|
||||
.channels = 1,
|
||||
.buswidth = 8,
|
||||
.qosbox = &(const struct qcom_icc_qosbox) {
|
||||
.num_ports = 1,
|
||||
.port_offsets = { 0xb000 },
|
||||
.prio = 2,
|
||||
.urg_fwd = 0,
|
||||
},
|
||||
.num_links = 1,
|
||||
.link_nodes = { &qns_a1noc_snoc },
|
||||
};
|
||||
@@ -222,6 +282,12 @@ static struct qcom_icc_node xm_sdc1 = {
|
||||
.name = "xm_sdc1",
|
||||
.channels = 1,
|
||||
.buswidth = 8,
|
||||
.qosbox = &(const struct qcom_icc_qosbox) {
|
||||
.num_ports = 1,
|
||||
.port_offsets = { 0xe000 },
|
||||
.prio = 2,
|
||||
.urg_fwd = 0,
|
||||
},
|
||||
.num_links = 1,
|
||||
.link_nodes = { &qns_a1noc_snoc },
|
||||
};
|
||||
@@ -230,6 +296,12 @@ static struct qcom_icc_node xm_sdc2 = {
|
||||
.name = "xm_sdc2",
|
||||
.channels = 1,
|
||||
.buswidth = 8,
|
||||
.qosbox = &(const struct qcom_icc_qosbox) {
|
||||
.num_ports = 1,
|
||||
.port_offsets = { 0x16000 },
|
||||
.prio = 2,
|
||||
.urg_fwd = 0,
|
||||
},
|
||||
.num_links = 1,
|
||||
.link_nodes = { &qns_a1noc_snoc },
|
||||
};
|
||||
@@ -238,6 +310,12 @@ static struct qcom_icc_node xm_ufs_mem = {
|
||||
.name = "xm_ufs_mem",
|
||||
.channels = 1,
|
||||
.buswidth = 8,
|
||||
.qosbox = &(const struct qcom_icc_qosbox) {
|
||||
.num_ports = 1,
|
||||
.port_offsets = { 0x11000 },
|
||||
.prio = 2,
|
||||
.urg_fwd = 0,
|
||||
},
|
||||
.num_links = 1,
|
||||
.link_nodes = { &qns_a1noc_snoc },
|
||||
};
|
||||
@@ -246,6 +324,12 @@ static struct qcom_icc_node xm_usb2 = {
|
||||
.name = "xm_usb2",
|
||||
.channels = 1,
|
||||
.buswidth = 8,
|
||||
.qosbox = &(const struct qcom_icc_qosbox) {
|
||||
.num_ports = 1,
|
||||
.port_offsets = { 0x15000 },
|
||||
.prio = 2,
|
||||
.urg_fwd = 0,
|
||||
},
|
||||
.num_links = 1,
|
||||
.link_nodes = { &qns_a1noc_snoc },
|
||||
};
|
||||
@@ -254,6 +338,12 @@ static struct qcom_icc_node xm_usb3_0 = {
|
||||
.name = "xm_usb3_0",
|
||||
.channels = 1,
|
||||
.buswidth = 8,
|
||||
.qosbox = &(const struct qcom_icc_qosbox) {
|
||||
.num_ports = 1,
|
||||
.port_offsets = { 0xd000 },
|
||||
.prio = 2,
|
||||
.urg_fwd = 0,
|
||||
},
|
||||
.num_links = 1,
|
||||
.link_nodes = { &qns_a1noc_snoc },
|
||||
};
|
||||
@@ -356,6 +446,12 @@ static struct qcom_icc_node acm_apps = {
|
||||
.name = "acm_apps",
|
||||
.channels = 1,
|
||||
.buswidth = 16,
|
||||
.qosbox = &(const struct qcom_icc_qosbox) {
|
||||
.num_ports = 2,
|
||||
.port_offsets = { 0x2e000, 0x2e100 },
|
||||
.prio = 0,
|
||||
.urg_fwd = 1,
|
||||
},
|
||||
.num_links = 3,
|
||||
.link_nodes = { &qns_gem_noc_snoc, &qns_llcc,
|
||||
&qns_sys_pcie },
|
||||
@@ -365,6 +461,12 @@ static struct qcom_icc_node acm_gpu_tcu = {
|
||||
.name = "acm_gpu_tcu",
|
||||
.channels = 1,
|
||||
.buswidth = 8,
|
||||
.qosbox = &(const struct qcom_icc_qosbox) {
|
||||
.num_ports = 1,
|
||||
.port_offsets = { 0x36000 },
|
||||
.prio = 6,
|
||||
.urg_fwd = 0,
|
||||
},
|
||||
.num_links = 2,
|
||||
.link_nodes = { &qns_gem_noc_snoc, &qns_llcc },
|
||||
};
|
||||
@@ -373,6 +475,12 @@ static struct qcom_icc_node acm_sys_tcu = {
|
||||
.name = "acm_sys_tcu",
|
||||
.channels = 1,
|
||||
.buswidth = 8,
|
||||
.qosbox = &(const struct qcom_icc_qosbox) {
|
||||
.num_ports = 1,
|
||||
.port_offsets = { 0x37000 },
|
||||
.prio = 6,
|
||||
.urg_fwd = 0,
|
||||
},
|
||||
.num_links = 2,
|
||||
.link_nodes = { &qns_gem_noc_snoc, &qns_llcc },
|
||||
};
|
||||
@@ -389,6 +497,12 @@ static struct qcom_icc_node qnm_gpu = {
|
||||
.name = "qnm_gpu",
|
||||
.channels = 2,
|
||||
.buswidth = 32,
|
||||
.qosbox = &(const struct qcom_icc_qosbox) {
|
||||
.num_ports = 2,
|
||||
.port_offsets = { 0x34000, 0x34080 },
|
||||
.prio = 0,
|
||||
.urg_fwd = 1,
|
||||
},
|
||||
.num_links = 2,
|
||||
.link_nodes = { &qns_gem_noc_snoc, &qns_llcc },
|
||||
};
|
||||
@@ -397,6 +511,12 @@ static struct qcom_icc_node qnm_mnoc_hf = {
|
||||
.name = "qnm_mnoc_hf",
|
||||
.channels = 1,
|
||||
.buswidth = 32,
|
||||
.qosbox = &(const struct qcom_icc_qosbox) {
|
||||
.num_ports = 1,
|
||||
.port_offsets = { 0x2f000 },
|
||||
.prio = 0,
|
||||
.urg_fwd = 1,
|
||||
},
|
||||
.num_links = 1,
|
||||
.link_nodes = { &qns_llcc },
|
||||
};
|
||||
@@ -405,6 +525,12 @@ static struct qcom_icc_node qnm_mnoc_sf = {
|
||||
.name = "qnm_mnoc_sf",
|
||||
.channels = 1,
|
||||
.buswidth = 32,
|
||||
.qosbox = &(const struct qcom_icc_qosbox) {
|
||||
.num_ports = 1,
|
||||
.port_offsets = { 0x35000 },
|
||||
.prio = 0,
|
||||
.urg_fwd = 1,
|
||||
},
|
||||
.num_links = 2,
|
||||
.link_nodes = { &qns_gem_noc_snoc, &qns_llcc },
|
||||
};
|
||||
@@ -413,6 +539,12 @@ static struct qcom_icc_node qnm_snoc_gc = {
|
||||
.name = "qnm_snoc_gc",
|
||||
.channels = 1,
|
||||
.buswidth = 8,
|
||||
.qosbox = &(const struct qcom_icc_qosbox) {
|
||||
.num_ports = 1,
|
||||
.port_offsets = { 0x31000 },
|
||||
.prio = 0,
|
||||
.urg_fwd = 1,
|
||||
},
|
||||
.num_links = 1,
|
||||
.link_nodes = { &qns_llcc },
|
||||
};
|
||||
@@ -421,6 +553,12 @@ static struct qcom_icc_node qnm_snoc_sf = {
|
||||
.name = "qnm_snoc_sf",
|
||||
.channels = 1,
|
||||
.buswidth = 16,
|
||||
.qosbox = &(const struct qcom_icc_qosbox) {
|
||||
.num_ports = 1,
|
||||
.port_offsets = { 0x30000 },
|
||||
.prio = 0,
|
||||
.urg_fwd = 1,
|
||||
},
|
||||
.num_links = 1,
|
||||
.link_nodes = { &qns_llcc },
|
||||
};
|
||||
@@ -445,6 +583,12 @@ static struct qcom_icc_node qxm_camnoc_hf0 = {
|
||||
.name = "qxm_camnoc_hf0",
|
||||
.channels = 1,
|
||||
.buswidth = 32,
|
||||
.qosbox = &(const struct qcom_icc_qosbox) {
|
||||
.num_ports = 1,
|
||||
.port_offsets = { 0xa000 },
|
||||
.prio = 0,
|
||||
.urg_fwd = 1,
|
||||
},
|
||||
.num_links = 1,
|
||||
.link_nodes = { &qns_mem_noc_hf },
|
||||
};
|
||||
@@ -453,6 +597,12 @@ static struct qcom_icc_node qxm_camnoc_hf1 = {
|
||||
.name = "qxm_camnoc_hf1",
|
||||
.channels = 1,
|
||||
.buswidth = 32,
|
||||
.qosbox = &(const struct qcom_icc_qosbox) {
|
||||
.num_ports = 1,
|
||||
.port_offsets = { 0xb000 },
|
||||
.prio = 0,
|
||||
.urg_fwd = 1,
|
||||
},
|
||||
.num_links = 1,
|
||||
.link_nodes = { &qns_mem_noc_hf },
|
||||
};
|
||||
@@ -461,6 +611,12 @@ static struct qcom_icc_node qxm_camnoc_sf = {
|
||||
.name = "qxm_camnoc_sf",
|
||||
.channels = 1,
|
||||
.buswidth = 32,
|
||||
.qosbox = &(const struct qcom_icc_qosbox) {
|
||||
.num_ports = 1,
|
||||
.port_offsets = { 0x9000 },
|
||||
.prio = 0,
|
||||
.urg_fwd = 1,
|
||||
},
|
||||
.num_links = 1,
|
||||
.link_nodes = { &qns2_mem_noc },
|
||||
};
|
||||
@@ -469,6 +625,12 @@ static struct qcom_icc_node qxm_mdp0 = {
|
||||
.name = "qxm_mdp0",
|
||||
.channels = 1,
|
||||
.buswidth = 32,
|
||||
.qosbox = &(const struct qcom_icc_qosbox) {
|
||||
.num_ports = 1,
|
||||
.port_offsets = { 0xc000 },
|
||||
.prio = 0,
|
||||
.urg_fwd = 1,
|
||||
},
|
||||
.num_links = 1,
|
||||
.link_nodes = { &qns_mem_noc_hf },
|
||||
};
|
||||
@@ -477,6 +639,12 @@ static struct qcom_icc_node qxm_rot = {
|
||||
.name = "qxm_rot",
|
||||
.channels = 1,
|
||||
.buswidth = 32,
|
||||
.qosbox = &(const struct qcom_icc_qosbox) {
|
||||
.num_ports = 1,
|
||||
.port_offsets = { 0xe000 },
|
||||
.prio = 0,
|
||||
.urg_fwd = 1,
|
||||
},
|
||||
.num_links = 1,
|
||||
.link_nodes = { &qns2_mem_noc },
|
||||
};
|
||||
@@ -485,6 +653,12 @@ static struct qcom_icc_node qxm_venus0 = {
|
||||
.name = "qxm_venus0",
|
||||
.channels = 1,
|
||||
.buswidth = 32,
|
||||
.qosbox = &(const struct qcom_icc_qosbox) {
|
||||
.num_ports = 1,
|
||||
.port_offsets = { 0xf000 },
|
||||
.prio = 0,
|
||||
.urg_fwd = 1,
|
||||
},
|
||||
.num_links = 1,
|
||||
.link_nodes = { &qns2_mem_noc },
|
||||
};
|
||||
@@ -493,6 +667,12 @@ static struct qcom_icc_node qxm_venus_arm9 = {
|
||||
.name = "qxm_venus_arm9",
|
||||
.channels = 1,
|
||||
.buswidth = 8,
|
||||
.qosbox = &(const struct qcom_icc_qosbox) {
|
||||
.num_ports = 1,
|
||||
.port_offsets = { 0x11000 },
|
||||
.prio = 0,
|
||||
.urg_fwd = 1,
|
||||
},
|
||||
.num_links = 1,
|
||||
.link_nodes = { &qns2_mem_noc },
|
||||
};
|
||||
@@ -559,6 +739,12 @@ static struct qcom_icc_node qxm_pimem = {
|
||||
.name = "qxm_pimem",
|
||||
.channels = 1,
|
||||
.buswidth = 8,
|
||||
.qosbox = &(const struct qcom_icc_qosbox) {
|
||||
.num_ports = 1,
|
||||
.port_offsets = { 0xc000 },
|
||||
.prio = 2,
|
||||
.urg_fwd = 1,
|
||||
},
|
||||
.num_links = 2,
|
||||
.link_nodes = { &qns_memnoc_gc, &qxs_imem },
|
||||
};
|
||||
@@ -567,6 +753,12 @@ static struct qcom_icc_node xm_gic = {
|
||||
.name = "xm_gic",
|
||||
.channels = 1,
|
||||
.buswidth = 8,
|
||||
.qosbox = &(const struct qcom_icc_qosbox) {
|
||||
.num_ports = 1,
|
||||
.port_offsets = { 0xd000 },
|
||||
.prio = 2,
|
||||
.urg_fwd = 1,
|
||||
},
|
||||
.num_links = 2,
|
||||
.link_nodes = { &qns_memnoc_gc, &qxs_imem },
|
||||
};
|
||||
@@ -1213,11 +1405,21 @@ static struct qcom_icc_node * const aggre1_noc_nodes[] = {
|
||||
[SLAVE_SERVICE_A2NOC] = &srvc_aggre2_noc,
|
||||
};
|
||||
|
||||
static const struct regmap_config qcs615_aggre1_noc_regmap_config = {
|
||||
.reg_bits = 32,
|
||||
.reg_stride = 4,
|
||||
.val_bits = 32,
|
||||
.max_register = 0x3f200,
|
||||
.fast_io = true,
|
||||
};
|
||||
|
||||
static const struct qcom_icc_desc qcs615_aggre1_noc = {
|
||||
.config = &qcs615_aggre1_noc_regmap_config,
|
||||
.nodes = aggre1_noc_nodes,
|
||||
.num_nodes = ARRAY_SIZE(aggre1_noc_nodes),
|
||||
.bcms = aggre1_noc_bcms,
|
||||
.num_bcms = ARRAY_SIZE(aggre1_noc_bcms),
|
||||
.qos_requires_clocks = true,
|
||||
};
|
||||
|
||||
static struct qcom_icc_bcm * const camnoc_virt_bcms[] = {
|
||||
@@ -1289,7 +1491,16 @@ static struct qcom_icc_node * const config_noc_nodes[] = {
|
||||
[SLAVE_SERVICE_CNOC] = &srvc_cnoc,
|
||||
};
|
||||
|
||||
static const struct regmap_config qcs615_config_noc_regmap_config = {
|
||||
.reg_bits = 32,
|
||||
.reg_stride = 4,
|
||||
.val_bits = 32,
|
||||
.max_register = 0x5080,
|
||||
.fast_io = true,
|
||||
};
|
||||
|
||||
static const struct qcom_icc_desc qcs615_config_noc = {
|
||||
.config = &qcs615_config_noc_regmap_config,
|
||||
.nodes = config_noc_nodes,
|
||||
.num_nodes = ARRAY_SIZE(config_noc_nodes),
|
||||
.bcms = config_noc_bcms,
|
||||
@@ -1302,7 +1513,16 @@ static struct qcom_icc_node * const dc_noc_nodes[] = {
|
||||
[SLAVE_LLCC_CFG] = &qhs_llcc,
|
||||
};
|
||||
|
||||
static const struct regmap_config qcs615_dc_noc_regmap_config = {
|
||||
.reg_bits = 32,
|
||||
.reg_stride = 4,
|
||||
.val_bits = 32,
|
||||
.max_register = 0x3200,
|
||||
.fast_io = true,
|
||||
};
|
||||
|
||||
static const struct qcom_icc_desc qcs615_dc_noc = {
|
||||
.config = &qcs615_dc_noc_regmap_config,
|
||||
.nodes = dc_noc_nodes,
|
||||
.num_nodes = ARRAY_SIZE(dc_noc_nodes),
|
||||
};
|
||||
@@ -1331,7 +1551,16 @@ static struct qcom_icc_node * const gem_noc_nodes[] = {
|
||||
[SLAVE_SERVICE_GEM_NOC] = &srvc_gemnoc,
|
||||
};
|
||||
|
||||
static const struct regmap_config qcs615_gem_noc_regmap_config = {
|
||||
.reg_bits = 32,
|
||||
.reg_stride = 4,
|
||||
.val_bits = 32,
|
||||
.max_register = 0x3e200,
|
||||
.fast_io = true,
|
||||
};
|
||||
|
||||
static const struct qcom_icc_desc qcs615_gem_noc = {
|
||||
.config = &qcs615_gem_noc_regmap_config,
|
||||
.nodes = gem_noc_nodes,
|
||||
.num_nodes = ARRAY_SIZE(gem_noc_nodes),
|
||||
.bcms = gem_noc_bcms,
|
||||
@@ -1376,7 +1605,16 @@ static struct qcom_icc_node * const mmss_noc_nodes[] = {
|
||||
[SLAVE_SERVICE_MNOC] = &srvc_mnoc,
|
||||
};
|
||||
|
||||
static const struct regmap_config qcs615_mmss_noc_regmap_config = {
|
||||
.reg_bits = 32,
|
||||
.reg_stride = 4,
|
||||
.val_bits = 32,
|
||||
.max_register = 0x1c100,
|
||||
.fast_io = true,
|
||||
};
|
||||
|
||||
static const struct qcom_icc_desc qcs615_mmss_noc = {
|
||||
.config = &qcs615_mmss_noc_regmap_config,
|
||||
.nodes = mmss_noc_nodes,
|
||||
.num_nodes = ARRAY_SIZE(mmss_noc_nodes),
|
||||
.bcms = mmss_noc_bcms,
|
||||
@@ -1418,7 +1656,16 @@ static struct qcom_icc_node * const system_noc_nodes[] = {
|
||||
[SLAVE_TCU] = &xs_sys_tcu_cfg,
|
||||
};
|
||||
|
||||
static const struct regmap_config qcs615_system_noc_regmap_config = {
|
||||
.reg_bits = 32,
|
||||
.reg_stride = 4,
|
||||
.val_bits = 32,
|
||||
.max_register = 0x1f300,
|
||||
.fast_io = true,
|
||||
};
|
||||
|
||||
static const struct qcom_icc_desc qcs615_system_noc = {
|
||||
.config = &qcs615_system_noc_regmap_config,
|
||||
.nodes = system_noc_nodes,
|
||||
.num_nodes = ARRAY_SIZE(system_noc_nodes),
|
||||
.bcms = system_noc_bcms,
|
||||
|
||||
@@ -186,6 +186,13 @@ static struct qcom_icc_node qxm_qup3 = {
|
||||
.name = "qxm_qup3",
|
||||
.channels = 1,
|
||||
.buswidth = 8,
|
||||
.qosbox = &(const struct qcom_icc_qosbox) {
|
||||
.num_ports = 1,
|
||||
.port_offsets = { 0x11000 },
|
||||
.prio_fwd_disable = 1,
|
||||
.prio = 2,
|
||||
.urg_fwd = 0,
|
||||
},
|
||||
.num_links = 1,
|
||||
.link_nodes = { &qns_a1noc_snoc },
|
||||
};
|
||||
@@ -194,6 +201,13 @@ static struct qcom_icc_node xm_emac_0 = {
|
||||
.name = "xm_emac_0",
|
||||
.channels = 1,
|
||||
.buswidth = 8,
|
||||
.qosbox = &(const struct qcom_icc_qosbox) {
|
||||
.num_ports = 1,
|
||||
.port_offsets = { 0x12000 },
|
||||
.prio_fwd_disable = 1,
|
||||
.prio = 2,
|
||||
.urg_fwd = 0,
|
||||
},
|
||||
.num_links = 1,
|
||||
.link_nodes = { &qns_a1noc_snoc },
|
||||
};
|
||||
@@ -202,6 +216,13 @@ static struct qcom_icc_node xm_sdc1 = {
|
||||
.name = "xm_sdc1",
|
||||
.channels = 1,
|
||||
.buswidth = 8,
|
||||
.qosbox = &(const struct qcom_icc_qosbox) {
|
||||
.num_ports = 1,
|
||||
.port_offsets = { 0x14000 },
|
||||
.prio_fwd_disable = 1,
|
||||
.prio = 2,
|
||||
.urg_fwd = 0,
|
||||
},
|
||||
.num_links = 1,
|
||||
.link_nodes = { &qns_a1noc_snoc },
|
||||
};
|
||||
@@ -210,6 +231,13 @@ static struct qcom_icc_node xm_ufs_mem = {
|
||||
.name = "xm_ufs_mem",
|
||||
.channels = 1,
|
||||
.buswidth = 8,
|
||||
.qosbox = &(const struct qcom_icc_qosbox) {
|
||||
.num_ports = 1,
|
||||
.port_offsets = { 0x15000 },
|
||||
.prio_fwd_disable = 1,
|
||||
.prio = 2,
|
||||
.urg_fwd = 0,
|
||||
},
|
||||
.num_links = 1,
|
||||
.link_nodes = { &qns_a1noc_snoc },
|
||||
};
|
||||
@@ -218,6 +246,13 @@ static struct qcom_icc_node xm_usb2_2 = {
|
||||
.name = "xm_usb2_2",
|
||||
.channels = 1,
|
||||
.buswidth = 8,
|
||||
.qosbox = &(const struct qcom_icc_qosbox) {
|
||||
.num_ports = 1,
|
||||
.port_offsets = { 0x16000 },
|
||||
.prio_fwd_disable = 1,
|
||||
.prio = 2,
|
||||
.urg_fwd = 0,
|
||||
},
|
||||
.num_links = 1,
|
||||
.link_nodes = { &qns_a1noc_snoc },
|
||||
};
|
||||
@@ -226,6 +261,13 @@ static struct qcom_icc_node xm_usb3_0 = {
|
||||
.name = "xm_usb3_0",
|
||||
.channels = 1,
|
||||
.buswidth = 8,
|
||||
.qosbox = &(const struct qcom_icc_qosbox) {
|
||||
.num_ports = 1,
|
||||
.port_offsets = { 0x17000 },
|
||||
.prio_fwd_disable = 1,
|
||||
.prio = 2,
|
||||
.urg_fwd = 0,
|
||||
},
|
||||
.num_links = 1,
|
||||
.link_nodes = { &qns_a1noc_snoc },
|
||||
};
|
||||
@@ -234,6 +276,13 @@ static struct qcom_icc_node qhm_qdss_bam = {
|
||||
.name = "qhm_qdss_bam",
|
||||
.channels = 1,
|
||||
.buswidth = 4,
|
||||
.qosbox = &(const struct qcom_icc_qosbox) {
|
||||
.num_ports = 1,
|
||||
.port_offsets = { 0x14000 },
|
||||
.prio_fwd_disable = 1,
|
||||
.prio = 2,
|
||||
.urg_fwd = 0,
|
||||
},
|
||||
.num_links = 1,
|
||||
.link_nodes = { &qns_a2noc_snoc },
|
||||
};
|
||||
@@ -242,6 +291,13 @@ static struct qcom_icc_node qhm_qup0 = {
|
||||
.name = "qhm_qup0",
|
||||
.channels = 1,
|
||||
.buswidth = 4,
|
||||
.qosbox = &(const struct qcom_icc_qosbox) {
|
||||
.num_ports = 1,
|
||||
.port_offsets = { 0x17000 },
|
||||
.prio_fwd_disable = 1,
|
||||
.prio = 2,
|
||||
.urg_fwd = 0,
|
||||
},
|
||||
.num_links = 1,
|
||||
.link_nodes = { &qns_a2noc_snoc },
|
||||
};
|
||||
@@ -250,6 +306,13 @@ static struct qcom_icc_node qhm_qup1 = {
|
||||
.name = "qhm_qup1",
|
||||
.channels = 1,
|
||||
.buswidth = 4,
|
||||
.qosbox = &(const struct qcom_icc_qosbox) {
|
||||
.num_ports = 1,
|
||||
.port_offsets = { 0x12000 },
|
||||
.prio_fwd_disable = 1,
|
||||
.prio = 2,
|
||||
.urg_fwd = 0,
|
||||
},
|
||||
.num_links = 1,
|
||||
.link_nodes = { &qns_a2noc_snoc },
|
||||
};
|
||||
@@ -258,6 +321,13 @@ static struct qcom_icc_node qnm_cnoc_datapath = {
|
||||
.name = "qnm_cnoc_datapath",
|
||||
.channels = 1,
|
||||
.buswidth = 8,
|
||||
.qosbox = &(const struct qcom_icc_qosbox) {
|
||||
.num_ports = 1,
|
||||
.port_offsets = { 0x16000 },
|
||||
.prio_fwd_disable = 1,
|
||||
.prio = 2,
|
||||
.urg_fwd = 0,
|
||||
},
|
||||
.num_links = 1,
|
||||
.link_nodes = { &qns_a2noc_snoc },
|
||||
};
|
||||
@@ -266,6 +336,13 @@ static struct qcom_icc_node qxm_crypto_0 = {
|
||||
.name = "qxm_crypto_0",
|
||||
.channels = 1,
|
||||
.buswidth = 8,
|
||||
.qosbox = &(const struct qcom_icc_qosbox) {
|
||||
.num_ports = 1,
|
||||
.port_offsets = { 0x18000 },
|
||||
.prio_fwd_disable = 1,
|
||||
.prio = 2,
|
||||
.urg_fwd = 0,
|
||||
},
|
||||
.num_links = 1,
|
||||
.link_nodes = { &qns_a2noc_snoc },
|
||||
};
|
||||
@@ -274,6 +351,13 @@ static struct qcom_icc_node qxm_crypto_1 = {
|
||||
.name = "qxm_crypto_1",
|
||||
.channels = 1,
|
||||
.buswidth = 8,
|
||||
.qosbox = &(const struct qcom_icc_qosbox) {
|
||||
.num_ports = 1,
|
||||
.port_offsets = { 0x1a000 },
|
||||
.prio_fwd_disable = 1,
|
||||
.prio = 2,
|
||||
.urg_fwd = 0,
|
||||
},
|
||||
.num_links = 1,
|
||||
.link_nodes = { &qns_a2noc_snoc },
|
||||
};
|
||||
@@ -282,6 +366,13 @@ static struct qcom_icc_node qxm_ipa = {
|
||||
.name = "qxm_ipa",
|
||||
.channels = 1,
|
||||
.buswidth = 8,
|
||||
.qosbox = &(const struct qcom_icc_qosbox) {
|
||||
.num_ports = 1,
|
||||
.port_offsets = { 0x11000 },
|
||||
.prio_fwd_disable = 1,
|
||||
.prio = 2,
|
||||
.urg_fwd = 0,
|
||||
},
|
||||
.num_links = 1,
|
||||
.link_nodes = { &qns_a2noc_snoc },
|
||||
};
|
||||
@@ -290,6 +381,13 @@ static struct qcom_icc_node xm_qdss_etr_0 = {
|
||||
.name = "xm_qdss_etr_0",
|
||||
.channels = 1,
|
||||
.buswidth = 8,
|
||||
.qosbox = &(const struct qcom_icc_qosbox) {
|
||||
.num_ports = 1,
|
||||
.port_offsets = { 0x13000 },
|
||||
.prio_fwd_disable = 1,
|
||||
.prio = 2,
|
||||
.urg_fwd = 0,
|
||||
},
|
||||
.num_links = 1,
|
||||
.link_nodes = { &qns_a2noc_snoc },
|
||||
};
|
||||
@@ -298,6 +396,13 @@ static struct qcom_icc_node xm_qdss_etr_1 = {
|
||||
.name = "xm_qdss_etr_1",
|
||||
.channels = 1,
|
||||
.buswidth = 8,
|
||||
.qosbox = &(const struct qcom_icc_qosbox) {
|
||||
.num_ports = 1,
|
||||
.port_offsets = { 0x19000 },
|
||||
.prio_fwd_disable = 1,
|
||||
.prio = 2,
|
||||
.urg_fwd = 0,
|
||||
},
|
||||
.num_links = 1,
|
||||
.link_nodes = { &qns_a2noc_snoc },
|
||||
};
|
||||
@@ -390,6 +495,13 @@ static struct qcom_icc_node alm_gpu_tcu = {
|
||||
.name = "alm_gpu_tcu",
|
||||
.channels = 1,
|
||||
.buswidth = 8,
|
||||
.qosbox = &(const struct qcom_icc_qosbox) {
|
||||
.num_ports = 1,
|
||||
.port_offsets = { 0xaf000 },
|
||||
.prio_fwd_disable = 1,
|
||||
.prio = 1,
|
||||
.urg_fwd = 0,
|
||||
},
|
||||
.num_links = 2,
|
||||
.link_nodes = { &qns_gem_noc_cnoc, &qns_llcc },
|
||||
};
|
||||
@@ -398,6 +510,13 @@ static struct qcom_icc_node alm_pcie_tcu = {
|
||||
.name = "alm_pcie_tcu",
|
||||
.channels = 1,
|
||||
.buswidth = 8,
|
||||
.qosbox = &(const struct qcom_icc_qosbox) {
|
||||
.num_ports = 1,
|
||||
.port_offsets = { 0xb0000 },
|
||||
.prio_fwd_disable = 1,
|
||||
.prio = 3,
|
||||
.urg_fwd = 0,
|
||||
},
|
||||
.num_links = 2,
|
||||
.link_nodes = { &qns_gem_noc_cnoc, &qns_llcc },
|
||||
};
|
||||
@@ -406,6 +525,13 @@ static struct qcom_icc_node alm_sys_tcu = {
|
||||
.name = "alm_sys_tcu",
|
||||
.channels = 1,
|
||||
.buswidth = 8,
|
||||
.qosbox = &(const struct qcom_icc_qosbox) {
|
||||
.num_ports = 1,
|
||||
.port_offsets = { 0xb1000 },
|
||||
.prio_fwd_disable = 1,
|
||||
.prio = 6,
|
||||
.urg_fwd = 0,
|
||||
},
|
||||
.num_links = 2,
|
||||
.link_nodes = { &qns_gem_noc_cnoc, &qns_llcc },
|
||||
};
|
||||
@@ -423,6 +549,13 @@ static struct qcom_icc_node qnm_cmpnoc0 = {
|
||||
.name = "qnm_cmpnoc0",
|
||||
.channels = 2,
|
||||
.buswidth = 32,
|
||||
.qosbox = &(const struct qcom_icc_qosbox) {
|
||||
.num_ports = 2,
|
||||
.port_offsets = { 0xf6000, 0xf7000 },
|
||||
.prio_fwd_disable = 1,
|
||||
.prio = 0,
|
||||
.urg_fwd = 0,
|
||||
},
|
||||
.num_links = 2,
|
||||
.link_nodes = { &qns_gem_noc_cnoc, &qns_llcc },
|
||||
};
|
||||
@@ -448,6 +581,13 @@ static struct qcom_icc_node qnm_gpu = {
|
||||
.name = "qnm_gpu",
|
||||
.channels = 2,
|
||||
.buswidth = 32,
|
||||
.qosbox = &(const struct qcom_icc_qosbox) {
|
||||
.num_ports = 2,
|
||||
.port_offsets = { 0xf0000, 0xf1000 },
|
||||
.prio_fwd_disable = 1,
|
||||
.prio = 0,
|
||||
.urg_fwd = 0,
|
||||
},
|
||||
.num_links = 2,
|
||||
.link_nodes = { &qns_gem_noc_cnoc, &qns_llcc },
|
||||
};
|
||||
@@ -456,6 +596,13 @@ static struct qcom_icc_node qnm_mnoc_hf = {
|
||||
.name = "qnm_mnoc_hf",
|
||||
.channels = 2,
|
||||
.buswidth = 32,
|
||||
.qosbox = &(const struct qcom_icc_qosbox) {
|
||||
.num_ports = 2,
|
||||
.port_offsets = { 0xf2000, 0xf3000 },
|
||||
.prio_fwd_disable = 0,
|
||||
.prio = 0,
|
||||
.urg_fwd = 1,
|
||||
},
|
||||
.num_links = 2,
|
||||
.link_nodes = { &qns_llcc, &qns_pcie },
|
||||
};
|
||||
@@ -464,6 +611,13 @@ static struct qcom_icc_node qnm_mnoc_sf = {
|
||||
.name = "qnm_mnoc_sf",
|
||||
.channels = 2,
|
||||
.buswidth = 32,
|
||||
.qosbox = &(const struct qcom_icc_qosbox) {
|
||||
.num_ports = 2,
|
||||
.port_offsets = { 0xf4000, 0xf5000 },
|
||||
.prio_fwd_disable = 0,
|
||||
.prio = 0,
|
||||
.urg_fwd = 1,
|
||||
},
|
||||
.num_links = 3,
|
||||
.link_nodes = { &qns_gem_noc_cnoc, &qns_llcc,
|
||||
&qns_pcie },
|
||||
@@ -473,6 +627,13 @@ static struct qcom_icc_node qnm_pcie = {
|
||||
.name = "qnm_pcie",
|
||||
.channels = 1,
|
||||
.buswidth = 32,
|
||||
.qosbox = &(const struct qcom_icc_qosbox) {
|
||||
.num_ports = 1,
|
||||
.port_offsets = { 0xb3000 },
|
||||
.prio_fwd_disable = 1,
|
||||
.prio = 2,
|
||||
.urg_fwd = 0,
|
||||
},
|
||||
.num_links = 2,
|
||||
.link_nodes = { &qns_gem_noc_cnoc, &qns_llcc },
|
||||
};
|
||||
@@ -481,6 +642,13 @@ static struct qcom_icc_node qnm_snoc_gc = {
|
||||
.name = "qnm_snoc_gc",
|
||||
.channels = 1,
|
||||
.buswidth = 8,
|
||||
.qosbox = &(const struct qcom_icc_qosbox) {
|
||||
.num_ports = 1,
|
||||
.port_offsets = { 0xb4000 },
|
||||
.prio_fwd_disable = 0,
|
||||
.prio = 0,
|
||||
.urg_fwd = 1,
|
||||
},
|
||||
.num_links = 1,
|
||||
.link_nodes = { &qns_llcc },
|
||||
};
|
||||
@@ -489,6 +657,13 @@ static struct qcom_icc_node qnm_snoc_sf = {
|
||||
.name = "qnm_snoc_sf",
|
||||
.channels = 1,
|
||||
.buswidth = 16,
|
||||
.qosbox = &(const struct qcom_icc_qosbox) {
|
||||
.num_ports = 1,
|
||||
.port_offsets = { 0xb5000 },
|
||||
.prio_fwd_disable = 0,
|
||||
.prio = 0,
|
||||
.urg_fwd = 1,
|
||||
},
|
||||
.num_links = 3,
|
||||
.link_nodes = { &qns_gem_noc_cnoc, &qns_llcc,
|
||||
&qns_pcie },
|
||||
@@ -541,6 +716,13 @@ static struct qcom_icc_node qnm_camnoc_hf = {
|
||||
.name = "qnm_camnoc_hf",
|
||||
.channels = 1,
|
||||
.buswidth = 32,
|
||||
.qosbox = &(const struct qcom_icc_qosbox) {
|
||||
.num_ports = 1,
|
||||
.port_offsets = { 0xa000 },
|
||||
.prio_fwd_disable = 0,
|
||||
.prio = 0,
|
||||
.urg_fwd = 1,
|
||||
},
|
||||
.num_links = 1,
|
||||
.link_nodes = { &qns_mem_noc_hf },
|
||||
};
|
||||
@@ -549,6 +731,13 @@ static struct qcom_icc_node qnm_camnoc_icp = {
|
||||
.name = "qnm_camnoc_icp",
|
||||
.channels = 1,
|
||||
.buswidth = 8,
|
||||
.qosbox = &(const struct qcom_icc_qosbox) {
|
||||
.num_ports = 1,
|
||||
.port_offsets = { 0x2a000 },
|
||||
.prio_fwd_disable = 0,
|
||||
.prio = 0,
|
||||
.urg_fwd = 1,
|
||||
},
|
||||
.num_links = 1,
|
||||
.link_nodes = { &qns_mem_noc_sf },
|
||||
};
|
||||
@@ -557,6 +746,13 @@ static struct qcom_icc_node qnm_camnoc_sf = {
|
||||
.name = "qnm_camnoc_sf",
|
||||
.channels = 1,
|
||||
.buswidth = 32,
|
||||
.qosbox = &(const struct qcom_icc_qosbox) {
|
||||
.num_ports = 1,
|
||||
.port_offsets = { 0x2a080 },
|
||||
.prio_fwd_disable = 0,
|
||||
.prio = 0,
|
||||
.urg_fwd = 1,
|
||||
},
|
||||
.num_links = 1,
|
||||
.link_nodes = { &qns_mem_noc_sf },
|
||||
};
|
||||
@@ -565,6 +761,13 @@ static struct qcom_icc_node qnm_mdp0_0 = {
|
||||
.name = "qnm_mdp0_0",
|
||||
.channels = 1,
|
||||
.buswidth = 32,
|
||||
.qosbox = &(const struct qcom_icc_qosbox) {
|
||||
.num_ports = 1,
|
||||
.port_offsets = { 0xa080 },
|
||||
.prio_fwd_disable = 0,
|
||||
.prio = 0,
|
||||
.urg_fwd = 1,
|
||||
},
|
||||
.num_links = 1,
|
||||
.link_nodes = { &qns_mem_noc_hf },
|
||||
};
|
||||
@@ -573,6 +776,13 @@ static struct qcom_icc_node qnm_mdp0_1 = {
|
||||
.name = "qnm_mdp0_1",
|
||||
.channels = 1,
|
||||
.buswidth = 32,
|
||||
.qosbox = &(const struct qcom_icc_qosbox) {
|
||||
.num_ports = 1,
|
||||
.port_offsets = { 0xa180 },
|
||||
.prio_fwd_disable = 0,
|
||||
.prio = 0,
|
||||
.urg_fwd = 1,
|
||||
},
|
||||
.num_links = 1,
|
||||
.link_nodes = { &qns_mem_noc_hf },
|
||||
};
|
||||
@@ -597,6 +807,13 @@ static struct qcom_icc_node qnm_video0 = {
|
||||
.name = "qnm_video0",
|
||||
.channels = 1,
|
||||
.buswidth = 32,
|
||||
.qosbox = &(const struct qcom_icc_qosbox) {
|
||||
.num_ports = 1,
|
||||
.port_offsets = { 0x2a100 },
|
||||
.prio_fwd_disable = 0,
|
||||
.prio = 0,
|
||||
.urg_fwd = 1,
|
||||
},
|
||||
.num_links = 1,
|
||||
.link_nodes = { &qns_mem_noc_sf },
|
||||
};
|
||||
@@ -605,6 +822,13 @@ static struct qcom_icc_node qnm_video_cvp = {
|
||||
.name = "qnm_video_cvp",
|
||||
.channels = 1,
|
||||
.buswidth = 32,
|
||||
.qosbox = &(const struct qcom_icc_qosbox) {
|
||||
.num_ports = 1,
|
||||
.port_offsets = { 0x2a200 },
|
||||
.prio_fwd_disable = 0,
|
||||
.prio = 0,
|
||||
.urg_fwd = 1,
|
||||
},
|
||||
.num_links = 1,
|
||||
.link_nodes = { &qns_mem_noc_sf },
|
||||
};
|
||||
@@ -613,6 +837,13 @@ static struct qcom_icc_node qnm_video_v_cpu = {
|
||||
.name = "qnm_video_v_cpu",
|
||||
.channels = 1,
|
||||
.buswidth = 8,
|
||||
.qosbox = &(const struct qcom_icc_qosbox) {
|
||||
.num_ports = 1,
|
||||
.port_offsets = { 0x2a280 },
|
||||
.prio_fwd_disable = 0,
|
||||
.prio = 0,
|
||||
.urg_fwd = 1,
|
||||
},
|
||||
.num_links = 1,
|
||||
.link_nodes = { &qns_mem_noc_sf },
|
||||
};
|
||||
@@ -637,6 +868,13 @@ static struct qcom_icc_node xm_pcie3_0 = {
|
||||
.name = "xm_pcie3_0",
|
||||
.channels = 1,
|
||||
.buswidth = 16,
|
||||
.qosbox = &(const struct qcom_icc_qosbox) {
|
||||
.num_ports = 1,
|
||||
.port_offsets = { 0xb000 },
|
||||
.prio_fwd_disable = 1,
|
||||
.prio = 2,
|
||||
.urg_fwd = 0,
|
||||
},
|
||||
.num_links = 1,
|
||||
.link_nodes = { &qns_pcie_mem_noc },
|
||||
};
|
||||
@@ -645,6 +883,13 @@ static struct qcom_icc_node xm_pcie3_1 = {
|
||||
.name = "xm_pcie3_1",
|
||||
.channels = 1,
|
||||
.buswidth = 32,
|
||||
.qosbox = &(const struct qcom_icc_qosbox) {
|
||||
.num_ports = 1,
|
||||
.port_offsets = { 0xc000 },
|
||||
.prio_fwd_disable = 1,
|
||||
.prio = 2,
|
||||
.urg_fwd = 0,
|
||||
},
|
||||
.num_links = 1,
|
||||
.link_nodes = { &qns_pcie_mem_noc },
|
||||
};
|
||||
@@ -653,6 +898,13 @@ static struct qcom_icc_node qhm_gic = {
|
||||
.name = "qhm_gic",
|
||||
.channels = 1,
|
||||
.buswidth = 4,
|
||||
.qosbox = &(const struct qcom_icc_qosbox) {
|
||||
.num_ports = 1,
|
||||
.port_offsets = { 0x14000 },
|
||||
.prio_fwd_disable = 1,
|
||||
.prio = 2,
|
||||
.urg_fwd = 0,
|
||||
},
|
||||
.num_links = 1,
|
||||
.link_nodes = { &qns_gemnoc_sf },
|
||||
};
|
||||
@@ -677,6 +929,13 @@ static struct qcom_icc_node qnm_lpass_noc = {
|
||||
.name = "qnm_lpass_noc",
|
||||
.channels = 1,
|
||||
.buswidth = 16,
|
||||
.qosbox = &(const struct qcom_icc_qosbox) {
|
||||
.num_ports = 1,
|
||||
.port_offsets = { 0x12000 },
|
||||
.prio_fwd_disable = 0,
|
||||
.prio = 0,
|
||||
.urg_fwd = 1,
|
||||
},
|
||||
.num_links = 1,
|
||||
.link_nodes = { &qns_gemnoc_sf },
|
||||
};
|
||||
@@ -693,6 +952,13 @@ static struct qcom_icc_node qxm_pimem = {
|
||||
.name = "qxm_pimem",
|
||||
.channels = 1,
|
||||
.buswidth = 8,
|
||||
.qosbox = &(const struct qcom_icc_qosbox) {
|
||||
.num_ports = 1,
|
||||
.port_offsets = { 0x13000 },
|
||||
.prio_fwd_disable = 1,
|
||||
.prio = 2,
|
||||
.urg_fwd = 0,
|
||||
},
|
||||
.num_links = 1,
|
||||
.link_nodes = { &qns_gemnoc_gc },
|
||||
};
|
||||
@@ -701,6 +967,13 @@ static struct qcom_icc_node xm_gic = {
|
||||
.name = "xm_gic",
|
||||
.channels = 1,
|
||||
.buswidth = 8,
|
||||
.qosbox = &(const struct qcom_icc_qosbox) {
|
||||
.num_ports = 1,
|
||||
.port_offsets = { 0x15000 },
|
||||
.prio_fwd_disable = 1,
|
||||
.prio = 2,
|
||||
.urg_fwd = 0,
|
||||
},
|
||||
.num_links = 1,
|
||||
.link_nodes = { &qns_gemnoc_gc },
|
||||
};
|
||||
@@ -1599,11 +1872,21 @@ static struct qcom_icc_node * const aggre1_noc_nodes[] = {
|
||||
[SLAVE_A1NOC_SNOC] = &qns_a1noc_snoc,
|
||||
};
|
||||
|
||||
static const struct regmap_config qcs8300_aggre1_noc_regmap_config = {
|
||||
.reg_bits = 32,
|
||||
.reg_stride = 4,
|
||||
.val_bits = 32,
|
||||
.max_register = 0x17080,
|
||||
.fast_io = true,
|
||||
};
|
||||
|
||||
static const struct qcom_icc_desc qcs8300_aggre1_noc = {
|
||||
.config = &qcs8300_aggre1_noc_regmap_config,
|
||||
.nodes = aggre1_noc_nodes,
|
||||
.num_nodes = ARRAY_SIZE(aggre1_noc_nodes),
|
||||
.bcms = aggre1_noc_bcms,
|
||||
.num_bcms = ARRAY_SIZE(aggre1_noc_bcms),
|
||||
.qos_requires_clocks = true,
|
||||
};
|
||||
|
||||
static struct qcom_icc_bcm * const aggre2_noc_bcms[] = {
|
||||
@@ -1624,11 +1907,21 @@ static struct qcom_icc_node * const aggre2_noc_nodes[] = {
|
||||
[SLAVE_A2NOC_SNOC] = &qns_a2noc_snoc,
|
||||
};
|
||||
|
||||
static const struct regmap_config qcs8300_aggre2_noc_regmap_config = {
|
||||
.reg_bits = 32,
|
||||
.reg_stride = 4,
|
||||
.val_bits = 32,
|
||||
.max_register = 0x1a080,
|
||||
.fast_io = true,
|
||||
};
|
||||
|
||||
static const struct qcom_icc_desc qcs8300_aggre2_noc = {
|
||||
.config = &qcs8300_aggre2_noc_regmap_config,
|
||||
.nodes = aggre2_noc_nodes,
|
||||
.num_nodes = ARRAY_SIZE(aggre2_noc_nodes),
|
||||
.bcms = aggre2_noc_bcms,
|
||||
.num_bcms = ARRAY_SIZE(aggre2_noc_bcms),
|
||||
.qos_requires_clocks = true,
|
||||
};
|
||||
|
||||
static struct qcom_icc_bcm * const clk_virt_bcms[] = {
|
||||
@@ -1740,7 +2033,16 @@ static struct qcom_icc_node * const config_noc_nodes[] = {
|
||||
[SLAVE_TCU] = &xs_sys_tcu_cfg,
|
||||
};
|
||||
|
||||
static const struct regmap_config qcs8300_config_noc_regmap_config = {
|
||||
.reg_bits = 32,
|
||||
.reg_stride = 4,
|
||||
.val_bits = 32,
|
||||
.max_register = 0x13080,
|
||||
.fast_io = true,
|
||||
};
|
||||
|
||||
static const struct qcom_icc_desc qcs8300_config_noc = {
|
||||
.config = &qcs8300_config_noc_regmap_config,
|
||||
.nodes = config_noc_nodes,
|
||||
.num_nodes = ARRAY_SIZE(config_noc_nodes),
|
||||
.bcms = config_noc_bcms,
|
||||
@@ -1753,7 +2055,16 @@ static struct qcom_icc_node * const dc_noc_nodes[] = {
|
||||
[SLAVE_GEM_NOC_CFG] = &qns_gemnoc,
|
||||
};
|
||||
|
||||
static const struct regmap_config qcs8300_dc_noc_regmap_config = {
|
||||
.reg_bits = 32,
|
||||
.reg_stride = 4,
|
||||
.val_bits = 32,
|
||||
.max_register = 0x5080,
|
||||
.fast_io = true,
|
||||
};
|
||||
|
||||
static const struct qcom_icc_desc qcs8300_dc_noc = {
|
||||
.config = &qcs8300_dc_noc_regmap_config,
|
||||
.nodes = dc_noc_nodes,
|
||||
.num_nodes = ARRAY_SIZE(dc_noc_nodes),
|
||||
};
|
||||
@@ -1786,11 +2097,21 @@ static struct qcom_icc_node * const gem_noc_nodes[] = {
|
||||
[SLAVE_SERVICE_GEM_NOC2] = &srvc_sys_gemnoc_2,
|
||||
};
|
||||
|
||||
static const struct regmap_config qcs8300_gem_noc_regmap_config = {
|
||||
.reg_bits = 32,
|
||||
.reg_stride = 4,
|
||||
.val_bits = 32,
|
||||
.max_register = 0xf7080,
|
||||
.fast_io = true,
|
||||
};
|
||||
|
||||
static const struct qcom_icc_desc qcs8300_gem_noc = {
|
||||
.config = &qcs8300_gem_noc_regmap_config,
|
||||
.nodes = gem_noc_nodes,
|
||||
.num_nodes = ARRAY_SIZE(gem_noc_nodes),
|
||||
.bcms = gem_noc_bcms,
|
||||
.num_bcms = ARRAY_SIZE(gem_noc_bcms),
|
||||
.qos_requires_clocks = true,
|
||||
};
|
||||
|
||||
static struct qcom_icc_bcm * const gpdsp_anoc_bcms[] = {
|
||||
@@ -1803,7 +2124,16 @@ static struct qcom_icc_node * const gpdsp_anoc_nodes[] = {
|
||||
[SLAVE_GP_DSP_SAIL_NOC] = &qns_gp_dsp_sail_noc,
|
||||
};
|
||||
|
||||
static const struct regmap_config qcs8300_gpdsp_anoc_regmap_config = {
|
||||
.reg_bits = 32,
|
||||
.reg_stride = 4,
|
||||
.val_bits = 32,
|
||||
.max_register = 0xd080,
|
||||
.fast_io = true,
|
||||
};
|
||||
|
||||
static const struct qcom_icc_desc qcs8300_gpdsp_anoc = {
|
||||
.config = &qcs8300_gpdsp_anoc_regmap_config,
|
||||
.nodes = gpdsp_anoc_nodes,
|
||||
.num_nodes = ARRAY_SIZE(gpdsp_anoc_nodes),
|
||||
.bcms = gpdsp_anoc_bcms,
|
||||
@@ -1826,7 +2156,16 @@ static struct qcom_icc_node * const lpass_ag_noc_nodes[] = {
|
||||
[SLAVE_SERVICE_LPASS_AG_NOC] = &srvc_niu_lpass_agnoc,
|
||||
};
|
||||
|
||||
static const struct regmap_config qcs8300_lpass_ag_noc_regmap_config = {
|
||||
.reg_bits = 32,
|
||||
.reg_stride = 4,
|
||||
.val_bits = 32,
|
||||
.max_register = 0x17200,
|
||||
.fast_io = true,
|
||||
};
|
||||
|
||||
static const struct qcom_icc_desc qcs8300_lpass_ag_noc = {
|
||||
.config = &qcs8300_lpass_ag_noc_regmap_config,
|
||||
.nodes = lpass_ag_noc_nodes,
|
||||
.num_nodes = ARRAY_SIZE(lpass_ag_noc_nodes),
|
||||
.bcms = lpass_ag_noc_bcms,
|
||||
@@ -1872,7 +2211,16 @@ static struct qcom_icc_node * const mmss_noc_nodes[] = {
|
||||
[SLAVE_SERVICE_MNOC_SF] = &srvc_mnoc_sf,
|
||||
};
|
||||
|
||||
static const struct regmap_config qcs8300_mmss_noc_regmap_config = {
|
||||
.reg_bits = 32,
|
||||
.reg_stride = 4,
|
||||
.val_bits = 32,
|
||||
.max_register = 0x40000,
|
||||
.fast_io = true,
|
||||
};
|
||||
|
||||
static const struct qcom_icc_desc qcs8300_mmss_noc = {
|
||||
.config = &qcs8300_mmss_noc_regmap_config,
|
||||
.nodes = mmss_noc_nodes,
|
||||
.num_nodes = ARRAY_SIZE(mmss_noc_nodes),
|
||||
.bcms = mmss_noc_bcms,
|
||||
@@ -1892,7 +2240,16 @@ static struct qcom_icc_node * const nspa_noc_nodes[] = {
|
||||
[SLAVE_SERVICE_NSP_NOC] = &service_nsp_noc,
|
||||
};
|
||||
|
||||
static const struct regmap_config qcs8300_nspa_noc_regmap_config = {
|
||||
.reg_bits = 32,
|
||||
.reg_stride = 4,
|
||||
.val_bits = 32,
|
||||
.max_register = 0x16080,
|
||||
.fast_io = true,
|
||||
};
|
||||
|
||||
static const struct qcom_icc_desc qcs8300_nspa_noc = {
|
||||
.config = &qcs8300_nspa_noc_regmap_config,
|
||||
.nodes = nspa_noc_nodes,
|
||||
.num_nodes = ARRAY_SIZE(nspa_noc_nodes),
|
||||
.bcms = nspa_noc_bcms,
|
||||
@@ -1909,7 +2266,16 @@ static struct qcom_icc_node * const pcie_anoc_nodes[] = {
|
||||
[SLAVE_ANOC_PCIE_GEM_NOC] = &qns_pcie_mem_noc,
|
||||
};
|
||||
|
||||
static const struct regmap_config qcs8300_pcie_anoc_regmap_config = {
|
||||
.reg_bits = 32,
|
||||
.reg_stride = 4,
|
||||
.val_bits = 32,
|
||||
.max_register = 0xc080,
|
||||
.fast_io = true,
|
||||
};
|
||||
|
||||
static const struct qcom_icc_desc qcs8300_pcie_anoc = {
|
||||
.config = &qcs8300_pcie_anoc_regmap_config,
|
||||
.nodes = pcie_anoc_nodes,
|
||||
.num_nodes = ARRAY_SIZE(pcie_anoc_nodes),
|
||||
.bcms = pcie_anoc_bcms,
|
||||
@@ -1937,7 +2303,16 @@ static struct qcom_icc_node * const system_noc_nodes[] = {
|
||||
[SLAVE_SERVICE_SNOC] = &srvc_snoc,
|
||||
};
|
||||
|
||||
static const struct regmap_config qcs8300_system_noc_regmap_config = {
|
||||
.reg_bits = 32,
|
||||
.reg_stride = 4,
|
||||
.val_bits = 32,
|
||||
.max_register = 0x15080,
|
||||
.fast_io = true,
|
||||
};
|
||||
|
||||
static const struct qcom_icc_desc qcs8300_system_noc = {
|
||||
.config = &qcs8300_system_noc_regmap_config,
|
||||
.nodes = system_noc_nodes,
|
||||
.num_nodes = ARRAY_SIZE(system_noc_nodes),
|
||||
.bcms = system_noc_bcms,
|
||||
|
||||
136
include/dt-bindings/interconnect/qcom,eliza-rpmh.h
Normal file
136
include/dt-bindings/interconnect/qcom,eliza-rpmh.h
Normal file
@@ -0,0 +1,136 @@
|
||||
/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
|
||||
/*
|
||||
* Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
|
||||
*/
|
||||
|
||||
#ifndef __DT_BINDINGS_INTERCONNECT_QCOM_ELIZA_H
|
||||
#define __DT_BINDINGS_INTERCONNECT_QCOM_ELIZA_H
|
||||
|
||||
#define MASTER_QSPI_0 0
|
||||
#define MASTER_QUP_1 1
|
||||
#define MASTER_UFS_MEM 2
|
||||
#define MASTER_USB3_0 3
|
||||
#define SLAVE_A1NOC_SNOC 4
|
||||
|
||||
#define MASTER_QUP_2 0
|
||||
#define MASTER_CRYPTO 1
|
||||
#define MASTER_IPA 2
|
||||
#define MASTER_SOCCP_AGGR_NOC 3
|
||||
#define MASTER_QDSS_ETR 4
|
||||
#define MASTER_QDSS_ETR_1 5
|
||||
#define MASTER_SDCC_1 6
|
||||
#define MASTER_SDCC_2 7
|
||||
#define SLAVE_A2NOC_SNOC 8
|
||||
|
||||
#define MASTER_QUP_CORE_1 0
|
||||
#define MASTER_QUP_CORE_2 1
|
||||
#define SLAVE_QUP_CORE_1 2
|
||||
#define SLAVE_QUP_CORE_2 3
|
||||
|
||||
#define MASTER_CNOC_CFG 0
|
||||
#define SLAVE_AHB2PHY_SOUTH 1
|
||||
#define SLAVE_AHB2PHY_NORTH 2
|
||||
#define SLAVE_CAMERA_CFG 3
|
||||
#define SLAVE_CLK_CTL 4
|
||||
#define SLAVE_CRYPTO_0_CFG 5
|
||||
#define SLAVE_DISPLAY_CFG 6
|
||||
#define SLAVE_GFX3D_CFG 7
|
||||
#define SLAVE_I3C_IBI0_CFG 8
|
||||
#define SLAVE_I3C_IBI1_CFG 9
|
||||
#define SLAVE_IMEM_CFG 10
|
||||
#define SLAVE_CNOC_MSS 11
|
||||
#define SLAVE_PCIE_0_CFG 12
|
||||
#define SLAVE_PRNG 13
|
||||
#define SLAVE_QDSS_CFG 14
|
||||
#define SLAVE_QSPI_0 15
|
||||
#define SLAVE_QUP_1 16
|
||||
#define SLAVE_QUP_2 17
|
||||
#define SLAVE_SDCC_2 18
|
||||
#define SLAVE_TCSR 19
|
||||
#define SLAVE_TLMM 20
|
||||
#define SLAVE_UFS_MEM_CFG 21
|
||||
#define SLAVE_USB3_0 22
|
||||
#define SLAVE_VENUS_CFG 23
|
||||
#define SLAVE_VSENSE_CTRL_CFG 24
|
||||
#define SLAVE_CNOC_MNOC_HF_CFG 25
|
||||
#define SLAVE_CNOC_MNOC_SF_CFG 26
|
||||
#define SLAVE_PCIE_ANOC_CFG 27
|
||||
#define SLAVE_QDSS_STM 28
|
||||
#define SLAVE_TCU 29
|
||||
|
||||
#define MASTER_GEM_NOC_CNOC 0
|
||||
#define MASTER_GEM_NOC_PCIE_SNOC 1
|
||||
#define SLAVE_AOSS 2
|
||||
#define SLAVE_IPA_CFG 3
|
||||
#define SLAVE_IPC_ROUTER_CFG 4
|
||||
#define SLAVE_SOCCP 5
|
||||
#define SLAVE_TME_CFG 6
|
||||
#define SLAVE_APPSS 7
|
||||
#define SLAVE_CNOC_CFG 8
|
||||
#define SLAVE_DDRSS_CFG 9
|
||||
#define SLAVE_BOOT_IMEM 10
|
||||
#define SLAVE_IMEM 11
|
||||
#define SLAVE_BOOT_IMEM_2 12
|
||||
#define SLAVE_SERVICE_CNOC 13
|
||||
#define SLAVE_PCIE_0 14
|
||||
#define SLAVE_PCIE_1 15
|
||||
|
||||
#define MASTER_GPU_TCU 0
|
||||
#define MASTER_SYS_TCU 1
|
||||
#define MASTER_APPSS_PROC 2
|
||||
#define MASTER_GFX3D 3
|
||||
#define MASTER_LPASS_GEM_NOC 4
|
||||
#define MASTER_MSS_PROC 5
|
||||
#define MASTER_MNOC_HF_MEM_NOC 6
|
||||
#define MASTER_MNOC_SF_MEM_NOC 7
|
||||
#define MASTER_COMPUTE_NOC 8
|
||||
#define MASTER_ANOC_PCIE_GEM_NOC 9
|
||||
#define MASTER_SNOC_SF_MEM_NOC 10
|
||||
#define MASTER_WLAN_Q6 11
|
||||
#define MASTER_GIC 12
|
||||
#define SLAVE_GEM_NOC_CNOC 13
|
||||
#define SLAVE_LLCC 14
|
||||
#define SLAVE_MEM_NOC_PCIE_SNOC 15
|
||||
|
||||
#define MASTER_LPIAON_NOC 0
|
||||
#define SLAVE_LPASS_GEM_NOC 1
|
||||
|
||||
#define MASTER_LPASS_LPINOC 0
|
||||
#define SLAVE_LPIAON_NOC_LPASS_AG_NOC 1
|
||||
|
||||
#define MASTER_LPASS_PROC 0
|
||||
#define SLAVE_LPICX_NOC_LPIAON_NOC 1
|
||||
|
||||
#define MASTER_LLCC 0
|
||||
#define SLAVE_EBI1 1
|
||||
|
||||
#define MASTER_CAMNOC_NRT_ICP_SF 0
|
||||
#define MASTER_CAMNOC_RT_CDM_SF 1
|
||||
#define MASTER_CAMNOC_SF 2
|
||||
#define MASTER_VIDEO_MVP 3
|
||||
#define MASTER_VIDEO_V_PROC 4
|
||||
#define MASTER_CNOC_MNOC_SF_CFG 5
|
||||
#define MASTER_CAMNOC_HF 6
|
||||
#define MASTER_MDP 7
|
||||
#define MASTER_CNOC_MNOC_HF_CFG 8
|
||||
#define SLAVE_MNOC_SF_MEM_NOC 9
|
||||
#define SLAVE_SERVICE_MNOC_SF 10
|
||||
#define SLAVE_MNOC_HF_MEM_NOC 11
|
||||
#define SLAVE_SERVICE_MNOC_HF 12
|
||||
|
||||
#define MASTER_CDSP_PROC 0
|
||||
#define SLAVE_CDSP_MEM_NOC 1
|
||||
|
||||
#define MASTER_PCIE_ANOC_CFG 0
|
||||
#define MASTER_PCIE_0 1
|
||||
#define MASTER_PCIE_1 2
|
||||
#define SLAVE_ANOC_PCIE_GEM_NOC 3
|
||||
#define SLAVE_SERVICE_PCIE_ANOC 4
|
||||
|
||||
#define MASTER_A1NOC_SNOC 0
|
||||
#define MASTER_A2NOC_SNOC 1
|
||||
#define MASTER_CNOC_SNOC 2
|
||||
#define MASTER_NSINOC_SNOC 3
|
||||
#define SLAVE_SNOC_GEM_NOC_SF 4
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user