Skip to content

Commit 800dce4

Browse files
committed
Merge tag 'icc-6.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/djakov/icc into char-misc-next
Georgi writes: interconnect changes for 6.7 This pull request contains the interconnect changes for the 6.7-rc1 merge window which contains just driver changes with the following highlights: Driver changes: - New interconnect driver for the SDX75 platform. - Support for coefficients to allow node-specific rate adjustments. - Update DT bindings according to the recent changes of how we represent the SMD and RPM bus clocks on Qualcomm platforms. - Misc fixes and cleanups. Signed-off-by: Georgi Djakov <djakov@kernel.org> * tag 'icc-6.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/djakov/icc: (36 commits) interconnect: qcom: Convert to platform remove callback returning void dt-bindings: interconnect: qcom,rpmh: do not require reg on SDX65 MC virt interconnect: imx: Replace inclusion of kernel.h in the header interconnect: fix error handling in qnoc_probe() interconnect: qcom: osm-l3: Replace custom implementation of COUNT_ARGS() interconnect: msm8974: Replace custom implementation of COUNT_ARGS() interconnect: imx: Replace custom implementation of COUNT_ARGS() interconnect: qcom: Add SDX75 interconnect provider driver dt-bindings: interconnect: Add compatibles for SDX75 interconnect: qcom: sm8350: Set ACV enable_mask interconnect: qcom: sm8250: Set ACV enable_mask interconnect: qcom: sm8150: Set ACV enable_mask interconnect: qcom: sm6350: Set ACV enable_mask interconnect: qcom: sdm845: Set ACV enable_mask interconnect: qcom: sdm670: Set ACV enable_mask interconnect: qcom: sc8280xp: Set ACV enable_mask interconnect: qcom: sc8180x: Set ACV enable_mask interconnect: qcom: sc7280: Set ACV enable_mask interconnect: qcom: sc7180: Set ACV enable_mask interconnect: qcom: qdu1000: Set ACV enable_mask ...
2 parents 40ea89f + d4c720a commit 800dce4

40 files changed

Lines changed: 1916 additions & 337 deletions
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/interconnect/qcom,msm8939.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Qualcomm MSM8939 Network-On-Chip interconnect
8+
9+
maintainers:
10+
- Konrad Dybcio <konradybcio@kernel.org>
11+
12+
description: |
13+
The Qualcomm MSM8939 interconnect providers support adjusting the
14+
bandwidth requirements between the various NoC fabrics.
15+
16+
allOf:
17+
- $ref: qcom,rpm-common.yaml#
18+
19+
properties:
20+
compatible:
21+
enum:
22+
- qcom,msm8939-bimc
23+
- qcom,msm8939-pcnoc
24+
- qcom,msm8939-snoc
25+
26+
reg:
27+
maxItems: 1
28+
29+
patternProperties:
30+
'^interconnect-[a-z0-9\-]+$':
31+
type: object
32+
$ref: qcom,rpm-common.yaml#
33+
description:
34+
The interconnect providers do not have a separate QoS register space,
35+
but share parent's space.
36+
37+
allOf:
38+
- $ref: qcom,rpm-common.yaml#
39+
40+
properties:
41+
compatible:
42+
const: qcom,msm8939-snoc-mm
43+
44+
required:
45+
- compatible
46+
47+
unevaluatedProperties: false
48+
49+
required:
50+
- compatible
51+
- reg
52+
53+
unevaluatedProperties: false
54+
55+
examples:
56+
- |
57+
#include <dt-bindings/clock/qcom,rpmcc.h>
58+
59+
snoc: interconnect@580000 {
60+
compatible = "qcom,msm8939-snoc";
61+
reg = <0x00580000 0x14000>;
62+
#interconnect-cells = <1>;
63+
};
64+
65+
bimc: interconnect@400000 {
66+
compatible = "qcom,msm8939-bimc";
67+
reg = <0x00400000 0x62000>;
68+
#interconnect-cells = <1>;
69+
70+
snoc_mm: interconnect-snoc {
71+
compatible = "qcom,msm8939-snoc-mm";
72+
#interconnect-cells = <1>;
73+
};
74+
};
Lines changed: 126 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,126 @@
1+
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/interconnect/qcom,msm8996.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Qualcomm MSM8996 Network-On-Chip interconnect
8+
9+
maintainers:
10+
- Konrad Dybcio <konradybcio@kernel.org>
11+
12+
description: |
13+
The Qualcomm MSM8996 interconnect providers support adjusting the
14+
bandwidth requirements between the various NoC fabrics.
15+
16+
properties:
17+
compatible:
18+
enum:
19+
- qcom,msm8996-a0noc
20+
- qcom,msm8996-a1noc
21+
- qcom,msm8996-a2noc
22+
- qcom,msm8996-bimc
23+
- qcom,msm8996-cnoc
24+
- qcom,msm8996-mnoc
25+
- qcom,msm8996-pnoc
26+
- qcom,msm8996-snoc
27+
28+
reg:
29+
maxItems: 1
30+
31+
clock-names:
32+
minItems: 1
33+
maxItems: 3
34+
35+
clocks:
36+
minItems: 1
37+
maxItems: 3
38+
39+
power-domains:
40+
maxItems: 1
41+
42+
required:
43+
- compatible
44+
- reg
45+
46+
unevaluatedProperties: false
47+
48+
allOf:
49+
- $ref: qcom,rpm-common.yaml#
50+
- if:
51+
properties:
52+
compatible:
53+
const: qcom,msm8996-a0noc
54+
55+
then:
56+
properties:
57+
clocks:
58+
items:
59+
- description: Aggregate0 System NoC AXI Clock.
60+
- description: Aggregate0 Config NoC AHB Clock.
61+
- description: Aggregate0 NoC MPU Clock.
62+
63+
clock-names:
64+
items:
65+
- const: aggre0_snoc_axi
66+
- const: aggre0_cnoc_ahb
67+
- const: aggre0_noc_mpu_cfg
68+
69+
required:
70+
- power-domains
71+
72+
- if:
73+
properties:
74+
compatible:
75+
const: qcom,msm8996-mnoc
76+
77+
then:
78+
properties:
79+
clocks:
80+
items:
81+
- description: CPU-NoC High-performance Bus Clock.
82+
83+
clock-names:
84+
const: iface
85+
86+
- if:
87+
properties:
88+
compatible:
89+
const: qcom,msm8996-a2noc
90+
91+
then:
92+
properties:
93+
clocks:
94+
items:
95+
- description: Aggregate2 NoC UFS AXI Clock
96+
- description: UFS AXI Clock
97+
98+
clock-names:
99+
items:
100+
- const: aggre2_ufs_axi
101+
- const: ufs_axi
102+
103+
examples:
104+
- |
105+
#include <dt-bindings/clock/qcom,gcc-msm8996.h>
106+
#include <dt-bindings/clock/qcom,mmcc-msm8996.h>
107+
#include <dt-bindings/clock/qcom,rpmcc.h>
108+
109+
bimc: interconnect@408000 {
110+
compatible = "qcom,msm8996-bimc";
111+
reg = <0x00408000 0x5a000>;
112+
#interconnect-cells = <1>;
113+
};
114+
115+
a0noc: interconnect@543000 {
116+
compatible = "qcom,msm8996-a0noc";
117+
reg = <0x00543000 0x6000>;
118+
#interconnect-cells = <1>;
119+
clocks = <&gcc GCC_AGGRE0_SNOC_AXI_CLK>,
120+
<&gcc GCC_AGGRE0_CNOC_AHB_CLK>,
121+
<&gcc GCC_AGGRE0_NOC_MPU_CFG_AHB_CLK>;
122+
clock-names = "aggre0_snoc_axi",
123+
"aggre0_cnoc_ahb",
124+
"aggre0_noc_mpu_cfg";
125+
power-domains = <&gcc AGGRE0_NOC_GDSC>;
126+
};

Documentation/devicetree/bindings/interconnect/qcom,qcm2290.yaml

Lines changed: 8 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@ description: |
1313
The Qualcomm QCM2290 interconnect providers support adjusting the
1414
bandwidth requirements between the various NoC fabrics.
1515
16+
allOf:
17+
- $ref: qcom,rpm-common.yaml#
18+
1619
properties:
1720
reg:
1821
maxItems: 1
@@ -23,19 +26,6 @@ properties:
2326
- qcom,qcm2290-cnoc
2427
- qcom,qcm2290-snoc
2528

26-
'#interconnect-cells':
27-
const: 1
28-
29-
clock-names:
30-
items:
31-
- const: bus
32-
- const: bus_a
33-
34-
clocks:
35-
items:
36-
- description: Bus Clock
37-
- description: Bus A Clock
38-
3929
# Child node's properties
4030
patternProperties:
4131
'^interconnect-[a-z0-9]+$':
@@ -44,42 +34,26 @@ patternProperties:
4434
The interconnect providers do not have a separate QoS register space,
4535
but share parent's space.
4636

37+
allOf:
38+
- $ref: qcom,rpm-common.yaml#
39+
4740
properties:
4841
compatible:
4942
enum:
5043
- qcom,qcm2290-qup-virt
5144
- qcom,qcm2290-mmrt-virt
5245
- qcom,qcm2290-mmnrt-virt
5346

54-
'#interconnect-cells':
55-
const: 1
56-
57-
clock-names:
58-
items:
59-
- const: bus
60-
- const: bus_a
61-
62-
clocks:
63-
items:
64-
- description: Bus Clock
65-
- description: Bus A Clock
66-
6747
required:
6848
- compatible
69-
- '#interconnect-cells'
70-
- clock-names
71-
- clocks
7249

73-
additionalProperties: false
50+
unevaluatedProperties: false
7451

7552
required:
7653
- compatible
7754
- reg
78-
- '#interconnect-cells'
79-
- clock-names
80-
- clocks
8155

82-
additionalProperties: false
56+
unevaluatedProperties: false
8357

8458
examples:
8559
- |
@@ -89,49 +63,31 @@ examples:
8963
compatible = "qcom,qcm2290-snoc";
9064
reg = <0x01880000 0x60200>;
9165
#interconnect-cells = <1>;
92-
clock-names = "bus", "bus_a";
93-
clocks = <&rpmcc RPM_SMD_SNOC_CLK>,
94-
<&rpmcc RPM_SMD_SNOC_A_CLK>;
9566
9667
qup_virt: interconnect-qup {
9768
compatible = "qcom,qcm2290-qup-virt";
9869
#interconnect-cells = <1>;
99-
clock-names = "bus", "bus_a";
100-
clocks = <&rpmcc RPM_SMD_QUP_CLK>,
101-
<&rpmcc RPM_SMD_QUP_A_CLK>;
10270
};
10371
10472
mmnrt_virt: interconnect-mmnrt {
10573
compatible = "qcom,qcm2290-mmnrt-virt";
10674
#interconnect-cells = <1>;
107-
clock-names = "bus", "bus_a";
108-
clocks = <&rpmcc RPM_SMD_MMNRT_CLK>,
109-
<&rpmcc RPM_SMD_MMNRT_A_CLK>;
11075
};
11176
11277
mmrt_virt: interconnect-mmrt {
11378
compatible = "qcom,qcm2290-mmrt-virt";
11479
#interconnect-cells = <1>;
115-
clock-names = "bus", "bus_a";
116-
clocks = <&rpmcc RPM_SMD_MMRT_CLK>,
117-
<&rpmcc RPM_SMD_MMRT_A_CLK>;
11880
};
11981
};
12082
12183
cnoc: interconnect@1900000 {
12284
compatible = "qcom,qcm2290-cnoc";
12385
reg = <0x01900000 0x8200>;
12486
#interconnect-cells = <1>;
125-
clock-names = "bus", "bus_a";
126-
clocks = <&rpmcc RPM_SMD_CNOC_CLK>,
127-
<&rpmcc RPM_SMD_CNOC_A_CLK>;
12887
};
12988
13089
bimc: interconnect@4480000 {
13190
compatible = "qcom,qcm2290-bimc";
13291
reg = <0x04480000 0x80000>;
13392
#interconnect-cells = <1>;
134-
clock-names = "bus", "bus_a";
135-
clocks = <&rpmcc RPM_SMD_BIMC_CLK>,
136-
<&rpmcc RPM_SMD_BIMC_A_CLK>;
13793
};
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/interconnect/qcom,rpm-common.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Qualcomm RPMh Network-On-Chip Interconnect
8+
9+
maintainers:
10+
- Konrad Dybcio <konradybcio@kernel.org>
11+
12+
description:
13+
RPM interconnect providers support for managing system bandwidth requirements
14+
through manual requests based on either predefined values or as indicated by
15+
the bus monitor hardware. Each provider node represents a NoC bus master,
16+
driven by a dedicated clock source.
17+
18+
properties:
19+
'#interconnect-cells':
20+
oneOf:
21+
- const: 2
22+
- const: 1
23+
deprecated: true
24+
25+
required:
26+
- '#interconnect-cells'
27+
28+
additionalProperties: true

0 commit comments

Comments
 (0)