Skip to content

Commit c23ff2a

Browse files
committed
Merge tag 'icc-5.7-rc1' of https://git.linaro.org/people/georgi.djakov/linux into char-misc-next
Georgi writes: interconnect changes for 5.7 Here is a pull request with interconnect changes for the 5.7-rc1 merge window. It contains just driver updates, and these are: - Refactoring of the SDM845 driver, which is now improved to better represent the hardware. - New driver for SC7180 platforms. - New driver for OSM L3 interconnect hardware found on SDM845/SC7180 platforms. Signed-off-by: Georgi Djakov <[email protected]> * tag 'icc-5.7-rc1' of https://git.linaro.org/people/georgi.djakov/linux: interconnect: qcom: Add OSM L3 support on SC7180 dt-bindings: interconnect: Add OSM L3 DT binding on SC7180 interconnect: qcom: Add OSM L3 interconnect provider support dt-bindings: interconnect: Add OSM L3 DT bindings interconnect: qcom: Allow icc node to be used across icc providers interconnect: qcom: Add SC7180 interconnect provider driver dt-bindings: interconnect: Add Qualcomm SC7180 DT bindings interconnect: qcom: sdm845: Split qnodes into their respective NoCs interconnect: qcom: Consolidate interconnect RPMh support dt-bindings: interconnect: Update Qualcomm SDM845 DT bindings dt-bindings: interconnect: Add YAML schemas for QCOM bcm-voter dt-bindings: interconnect: Convert qcom,sdm845 to DT schema
2 parents 8f522ba + 03c4e61 commit c23ff2a

File tree

19 files changed

+2875
-841
lines changed

19 files changed

+2875
-841
lines changed
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/interconnect/qcom,bcm-voter.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Qualcomm BCM-Voter Interconnect
8+
9+
maintainers:
10+
- Georgi Djakov <[email protected]>
11+
12+
description: |
13+
The Bus Clock Manager (BCM) is a dedicated hardware accelerator that manages
14+
shared system resources by aggregating requests from multiple Resource State
15+
Coordinators (RSC). Interconnect providers are able to vote for aggregated
16+
thresholds values from consumers by communicating through their respective
17+
RSCs.
18+
19+
properties:
20+
compatible:
21+
enum:
22+
- qcom,bcm-voter
23+
24+
required:
25+
- compatible
26+
27+
additionalProperties: false
28+
29+
examples:
30+
# Example 1: apps bcm_voter on SDM845 SoC should be defined inside &apps_rsc node
31+
# as defined in Documentation/devicetree/bindings/soc/qcom/rpmh-rsc.txt
32+
- |
33+
34+
apps_bcm_voter: bcm_voter {
35+
compatible = "qcom,bcm-voter";
36+
};
37+
38+
# Example 2: disp bcm_voter on SDM845 should be defined inside &disp_rsc node
39+
# as defined in Documentation/devicetree/bindings/soc/qcom/rpmh-rsc.txt
40+
- |
41+
42+
disp_bcm_voter: bcm_voter {
43+
compatible = "qcom,bcm-voter";
44+
};
45+
...
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/interconnect/qcom,osm-l3.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Qualcomm Operating State Manager (OSM) L3 Interconnect Provider
8+
9+
maintainers:
10+
- Sibi Sankar <[email protected]>
11+
12+
description:
13+
L3 cache bandwidth requirements on Qualcomm SoCs is serviced by the OSM.
14+
The OSM L3 interconnect provider aggregates the L3 bandwidth requests
15+
from CPU/GPU and relays it to the OSM.
16+
17+
properties:
18+
compatible:
19+
enum:
20+
- qcom,sc7180-osm-l3
21+
- qcom,sdm845-osm-l3
22+
23+
reg:
24+
maxItems: 1
25+
26+
clocks:
27+
items:
28+
- description: xo clock
29+
- description: alternate clock
30+
31+
clock-names:
32+
items:
33+
- const: xo
34+
- const: alternate
35+
36+
'#interconnect-cells':
37+
const: 1
38+
39+
required:
40+
- compatible
41+
- reg
42+
- clocks
43+
- clock-names
44+
- '#interconnect-cells'
45+
46+
additionalProperties: false
47+
48+
examples:
49+
- |
50+
51+
#define GPLL0 165
52+
#define RPMH_CXO_CLK 0
53+
54+
osm_l3: interconnect@17d41000 {
55+
compatible = "qcom,sdm845-osm-l3";
56+
reg = <0x17d41000 0x1400>;
57+
58+
clocks = <&rpmhcc RPMH_CXO_CLK>, <&gcc GPLL0>;
59+
clock-names = "xo", "alternate";
60+
61+
#interconnect-cells = <1>;
62+
};
Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/interconnect/qcom,sc7180.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Qualcomm SC7180 Network-On-Chip Interconnect
8+
9+
maintainers:
10+
- Odelu Kukatla <[email protected]>
11+
12+
description: |
13+
SC7180 interconnect providers support system bandwidth requirements through
14+
RPMh hardware accelerators known as Bus Clock Manager (BCM). The provider is
15+
able to communicate with the BCM through the Resource State Coordinator (RSC)
16+
associated with each execution environment. Provider nodes must point to at
17+
least one RPMh device child node pertaining to their RSC and each provider
18+
can map to multiple RPMh resources.
19+
20+
properties:
21+
reg:
22+
maxItems: 1
23+
24+
compatible:
25+
enum:
26+
- qcom,sc7180-aggre1-noc
27+
- qcom,sc7180-aggre2-noc
28+
- qcom,sc7180-camnoc-virt
29+
- qcom,sc7180-compute-noc
30+
- qcom,sc7180-config-noc
31+
- qcom,sc7180-dc-noc
32+
- qcom,sc7180-gem-noc
33+
- qcom,sc7180-ipa-virt
34+
- qcom,sc7180-mc-virt
35+
- qcom,sc7180-mmss-noc
36+
- qcom,sc7180-npu-noc
37+
- qcom,sc7180-qup-virt
38+
- qcom,sc7180-system-noc
39+
40+
'#interconnect-cells':
41+
const: 1
42+
43+
qcom,bcm-voters:
44+
$ref: /schemas/types.yaml#/definitions/phandle-array
45+
description: |
46+
List of phandles to qcom,bcm-voter nodes that are required by
47+
this interconnect to send RPMh commands.
48+
49+
qcom,bcm-voter-names:
50+
$ref: /schemas/types.yaml#/definitions/string-array
51+
description: |
52+
Names for each of the qcom,bcm-voters specified.
53+
54+
required:
55+
- compatible
56+
- reg
57+
- '#interconnect-cells'
58+
- qcom,bcm-voters
59+
60+
additionalProperties: false
61+
62+
examples:
63+
- |
64+
#include <dt-bindings/interconnect/qcom,sc7180.h>
65+
66+
config_noc: interconnect@1500000 {
67+
compatible = "qcom,sc7180-config-noc";
68+
reg = <0 0x01500000 0 0x28000>;
69+
#interconnect-cells = <1>;
70+
qcom,bcm-voters = <&apps_bcm_voter>;
71+
};
72+
73+
system_noc: interconnect@1620000 {
74+
compatible = "qcom,sc7180-system-noc";
75+
reg = <0 0x01620000 0 0x17080>;
76+
#interconnect-cells = <1>;
77+
qcom,bcm-voters = <&apps_bcm_voter>;
78+
};
79+
80+
mmss_noc: interconnect@1740000 {
81+
compatible = "qcom,sc7180-mmss-noc";
82+
reg = <0 0x01740000 0 0x1c100>;
83+
#interconnect-cells = <1>;
84+
qcom,bcm-voters = <&apps_bcm_voter>;
85+
};

Documentation/devicetree/bindings/interconnect/qcom,sdm845.txt

Lines changed: 0 additions & 24 deletions
This file was deleted.
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,sdm845.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Qualcomm SDM845 Network-On-Chip Interconnect
8+
9+
maintainers:
10+
- Georgi Djakov <[email protected]>
11+
12+
description: |
13+
SDM845 interconnect providers support system bandwidth requirements through
14+
RPMh hardware accelerators known as Bus Clock Manager (BCM). The provider is
15+
able to communicate with the BCM through the Resource State Coordinator (RSC)
16+
associated with each execution environment. Provider nodes must point to at
17+
least one RPMh device child node pertaining to their RSC and each provider
18+
can map to multiple RPMh resources.
19+
20+
properties:
21+
reg:
22+
maxItems: 1
23+
24+
compatible:
25+
enum:
26+
- qcom,sdm845-aggre1-noc
27+
- qcom,sdm845-aggre2-noc
28+
- qcom,sdm845-config-noc
29+
- qcom,sdm845-dc-noc
30+
- qcom,sdm845-gladiator-noc
31+
- qcom,sdm845-mem-noc
32+
- qcom,sdm845-mmss-noc
33+
- qcom,sdm845-system-noc
34+
35+
'#interconnect-cells':
36+
const: 1
37+
38+
qcom,bcm-voters:
39+
$ref: /schemas/types.yaml#/definitions/phandle-array
40+
description: |
41+
List of phandles to qcom,bcm-voter nodes that are required by
42+
this interconnect to send RPMh commands.
43+
44+
qcom,bcm-voter-names:
45+
$ref: /schemas/types.yaml#/definitions/string-array
46+
description: |
47+
Names for each of the qcom,bcm-voters specified.
48+
49+
required:
50+
- compatible
51+
- reg
52+
- '#interconnect-cells'
53+
- qcom,bcm-voters
54+
55+
additionalProperties: false
56+
57+
examples:
58+
- |
59+
#include <dt-bindings/interconnect/qcom,sdm845.h>
60+
61+
mem_noc: interconnect@1380000 {
62+
compatible = "qcom,sdm845-mem-noc";
63+
reg = <0 0x01380000 0 0x27200>;
64+
#interconnect-cells = <1>;
65+
qcom,bcm-voters = <&apps_bcm_voter>;
66+
};
67+
68+
mmss_noc: interconnect@1740000 {
69+
compatible = "qcom,sdm845-mmss-noc";
70+
reg = <0 0x01740000 0 0x1c1000>;
71+
#interconnect-cells = <1>;
72+
qcom,bcm-voter-names = "apps", "disp";
73+
qcom,bcm-voters = <&apps_bcm_voter>, <&disp_bcm_voter>;
74+
};

drivers/interconnect/qcom/Kconfig

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@ config INTERCONNECT_QCOM
55
help
66
Support for Qualcomm's Network-on-Chip interconnect hardware.
77

8+
config INTERCONNECT_QCOM_BCM_VOTER
9+
tristate
10+
811
config INTERCONNECT_QCOM_MSM8916
912
tristate "Qualcomm MSM8916 interconnect driver"
1013
depends on INTERCONNECT_QCOM
@@ -23,6 +26,13 @@ config INTERCONNECT_QCOM_MSM8974
2326
This is a driver for the Qualcomm Network-on-Chip on msm8974-based
2427
platforms.
2528

29+
config INTERCONNECT_QCOM_OSM_L3
30+
tristate "Qualcomm OSM L3 interconnect driver"
31+
depends on INTERCONNECT_QCOM || COMPILE_TEST
32+
help
33+
Say y here to support the Operating State Manager (OSM) interconnect
34+
driver which controls the scaling of L3 caches on Qualcomm SoCs.
35+
2636
config INTERCONNECT_QCOM_QCS404
2737
tristate "Qualcomm QCS404 interconnect driver"
2838
depends on INTERCONNECT_QCOM
@@ -32,10 +42,25 @@ config INTERCONNECT_QCOM_QCS404
3242
This is a driver for the Qualcomm Network-on-Chip on qcs404-based
3343
platforms.
3444

45+
config INTERCONNECT_QCOM_RPMH
46+
tristate
47+
48+
config INTERCONNECT_QCOM_SC7180
49+
tristate "Qualcomm SC7180 interconnect driver"
50+
depends on INTERCONNECT_QCOM
51+
depends on (QCOM_RPMH && QCOM_COMMAND_DB && OF) || COMPILE_TEST
52+
select INTERCONNECT_QCOM_RPMH
53+
select INTERCONNECT_QCOM_BCM_VOTER
54+
help
55+
This is a driver for the Qualcomm Network-on-Chip on sc7180-based
56+
platforms.
57+
3558
config INTERCONNECT_QCOM_SDM845
3659
tristate "Qualcomm SDM845 interconnect driver"
3760
depends on INTERCONNECT_QCOM
3861
depends on (QCOM_RPMH && QCOM_COMMAND_DB && OF) || COMPILE_TEST
62+
select INTERCONNECT_QCOM_RPMH
63+
select INTERCONNECT_QCOM_BCM_VOTER
3964
help
4065
This is a driver for the Qualcomm Network-on-Chip on sdm845-based
4166
platforms.

drivers/interconnect/qcom/Makefile

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,21 @@
11
# SPDX-License-Identifier: GPL-2.0
22

3+
icc-bcm-voter-objs := bcm-voter.o
34
qnoc-msm8916-objs := msm8916.o
45
qnoc-msm8974-objs := msm8974.o
6+
icc-osm-l3-objs := osm-l3.o
57
qnoc-qcs404-objs := qcs404.o
8+
icc-rpmh-obj := icc-rpmh.o
9+
qnoc-sc7180-objs := sc7180.o
610
qnoc-sdm845-objs := sdm845.o
711
icc-smd-rpm-objs := smd-rpm.o
812

13+
obj-$(CONFIG_INTERCONNECT_QCOM_BCM_VOTER) += icc-bcm-voter.o
914
obj-$(CONFIG_INTERCONNECT_QCOM_MSM8916) += qnoc-msm8916.o
1015
obj-$(CONFIG_INTERCONNECT_QCOM_MSM8974) += qnoc-msm8974.o
16+
obj-$(CONFIG_INTERCONNECT_QCOM_OSM_L3) += icc-osm-l3.o
1117
obj-$(CONFIG_INTERCONNECT_QCOM_QCS404) += qnoc-qcs404.o
18+
obj-$(CONFIG_INTERCONNECT_QCOM_RPMH) += icc-rpmh.o
19+
obj-$(CONFIG_INTERCONNECT_QCOM_SC7180) += qnoc-sc7180.o
1220
obj-$(CONFIG_INTERCONNECT_QCOM_SDM845) += qnoc-sdm845.o
1321
obj-$(CONFIG_INTERCONNECT_QCOM_SMD_RPM) += icc-smd-rpm.o

0 commit comments

Comments
 (0)