Skip to content

Commit 9d2877a

Browse files
committed
Merge tag 'icc-6.11-rc1' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/djakov/icc into char-misc-next
Georgi writes: interconnect changes for 6.11 This pull request contains the interconnect changes for the 6.11-rc1 merge window. It contains just driver changes with the following highlights: Driver changes: - New driver for MediaTek MT8183/8195 platforms - New driver for MSM8953 platforms - New QoS support for RPMh-based platforms with SC7280 being the first one to benefit from it. - Fix incorrect master-id value in qcm2290 driver - Add missing MODULE_DESCRIPTION in a few drivers Signed-off-by: Georgi Djakov <[email protected]> * tag 'icc-6.11-rc1' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/djakov/icc: interconnect: qcom: Fix DT backwards compatibility for QoS interconnect: qcom: Add MSM8953 driver dt-bindings: interconnect: qcom: Add Qualcomm MSM8953 NoC interconnect: qcom: qcm2290: Fix mas_snoc_bimc RPM master ID interconnect: qcom: sc7280: enable QoS configuration interconnect: qcom: icc-rpmh: Add QoS configuration support dt-bindings: interconnect: add clock property to enable QOS on SC7280 interconnect: mediatek: remove unneeded semicolon interconnect: qcom: add missing MODULE_DESCRIPTION() macros interconnect: imx: add missing MODULE_DESCRIPTION() macros interconnect: mediatek: Add MediaTek MT8183/8195 EMI Interconnect driver dt-bindings: interconnect: Add MediaTek EMI Interconnect bindings
2 parents 1ebab78 + 226e58b commit 9d2877a

File tree

27 files changed

+2821
-1
lines changed

27 files changed

+2821
-1
lines changed
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/interconnect/mediatek,mt8183-emi.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: MediaTek External Memory Interface (EMI) Interconnect
8+
9+
maintainers:
10+
- AngeloGioacchino Del Regno <[email protected]>
11+
12+
description: |
13+
EMI interconnect providers support system bandwidth requirements through
14+
Dynamic Voltage Frequency Scaling Resource Collector (DVFSRC) hardware.
15+
The provider is able to communicate with the DVFSRC through Secure Monitor
16+
Call (SMC).
17+
18+
ICC provider ICC Nodes
19+
---- ----
20+
_________ |CPU | |--- |VPU |
21+
_____ | |----- ---- | ----
22+
| |->| DRAM | ---- | ----
23+
|DRAM |->|scheduler|----- |GPU | |--- |DISP|
24+
| |->| (EMI) | ---- | ----
25+
|_____|->|_________|---. ----- | ----
26+
/|\ `-|MMSYS|--|--- |VDEC|
27+
| ----- | ----
28+
| | ----
29+
| change DRAM freq |--- |VENC|
30+
-------- | ----
31+
SMC --> | DVFSRC | | ----
32+
-------- |--- |IMG |
33+
| ----
34+
| ----
35+
|--- |CAM |
36+
----
37+
38+
properties:
39+
compatible:
40+
enum:
41+
- mediatek,mt8183-emi
42+
- mediatek,mt8195-emi
43+
44+
'#interconnect-cells':
45+
const: 1
46+
47+
required:
48+
- compatible
49+
- '#interconnect-cells'
50+
51+
unevaluatedProperties: false
Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/interconnect/qcom,msm8953.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Qualcomm MSM8953 Network-On-Chip interconnect
8+
9+
maintainers:
10+
- Barnabas Czeman <[email protected]>
11+
12+
description: |
13+
The Qualcomm MSM8953 interconnect providers support adjusting the
14+
bandwidth requirements between the various NoC fabrics.
15+
16+
See also:
17+
- dt-bindings/interconnect/qcom,msm8953.h
18+
19+
properties:
20+
compatible:
21+
enum:
22+
- qcom,msm8953-bimc
23+
- qcom,msm8953-pcnoc
24+
- qcom,msm8953-snoc
25+
26+
reg:
27+
maxItems: 1
28+
29+
clocks:
30+
maxItems: 1
31+
32+
clock-names:
33+
maxItems: 1
34+
35+
'#interconnect-cells':
36+
const: 2
37+
38+
patternProperties:
39+
'^interconnect-[a-z0-9\-]+$':
40+
type: object
41+
$ref: qcom,rpm-common.yaml#
42+
unevaluatedProperties: false
43+
description:
44+
The interconnect providers do not have a separate QoS register space,
45+
but share parent's space.
46+
47+
properties:
48+
compatible:
49+
const: qcom,msm8953-snoc-mm
50+
51+
required:
52+
- compatible
53+
- '#interconnect-cells'
54+
55+
required:
56+
- compatible
57+
- reg
58+
- '#interconnect-cells'
59+
60+
allOf:
61+
- $ref: qcom,rpm-common.yaml#
62+
- if:
63+
properties:
64+
compatible:
65+
const: qcom,msm8953-pcnoc
66+
67+
then:
68+
properties:
69+
clocks:
70+
items:
71+
- description: PCNOC USB3 AXI Clock.
72+
73+
clock-names:
74+
const: pcnoc_usb3_axi
75+
76+
required:
77+
- clocks
78+
- clock-names
79+
else:
80+
properties:
81+
clocks: false
82+
clock-names: false
83+
84+
additionalProperties: false
85+
86+
examples:
87+
- |
88+
#include <dt-bindings/clock/qcom,gcc-msm8953.h>
89+
90+
snoc: interconnect@580000 {
91+
compatible = "qcom,msm8953-snoc";
92+
reg = <0x580000 0x16080>;
93+
94+
#interconnect-cells = <2>;
95+
96+
snoc_mm: interconnect-snoc {
97+
compatible = "qcom,msm8953-snoc-mm";
98+
99+
#interconnect-cells = <2>;
100+
};
101+
};

Documentation/devicetree/bindings/interconnect/qcom,sc7280-rpmh.yaml

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,10 @@ properties:
3535
reg:
3636
maxItems: 1
3737

38+
clocks:
39+
minItems: 1
40+
maxItems: 2
41+
3842
required:
3943
- compatible
4044

@@ -53,10 +57,50 @@ allOf:
5357
required:
5458
- reg
5559

60+
- if:
61+
properties:
62+
compatible:
63+
contains:
64+
enum:
65+
- qcom,sc7280-aggre1-noc
66+
then:
67+
properties:
68+
clocks:
69+
items:
70+
- description: aggre UFS PHY AXI clock
71+
- description: aggre USB3 PRIM AXI clock
72+
73+
- if:
74+
properties:
75+
compatible:
76+
contains:
77+
enum:
78+
- qcom,sc7280-aggre2-noc
79+
then:
80+
properties:
81+
clocks:
82+
items:
83+
- description: RPMH CC IPA clock
84+
85+
- if:
86+
properties:
87+
compatible:
88+
contains:
89+
enum:
90+
- qcom,sc7280-aggre1-noc
91+
- qcom,sc7280-aggre2-noc
92+
then:
93+
required:
94+
- clocks
95+
else:
96+
properties:
97+
clocks: false
98+
5699
unevaluatedProperties: false
57100

58101
examples:
59102
- |
103+
#include <dt-bindings/clock/qcom,gcc-sc7280.h>
60104
interconnect {
61105
compatible = "qcom,sc7280-clk-virt";
62106
#interconnect-cells = <2>;
@@ -69,3 +113,12 @@ examples:
69113
#interconnect-cells = <2>;
70114
qcom,bcm-voters = <&apps_bcm_voter>;
71115
};
116+
117+
interconnect@16e0000 {
118+
reg = <0x016e0000 0x1c080>;
119+
compatible = "qcom,sc7280-aggre1-noc";
120+
#interconnect-cells = <2>;
121+
qcom,bcm-voters = <&apps_bcm_voter>;
122+
clocks = <&gcc GCC_AGGRE_UFS_PHY_AXI_CLK>,
123+
<&gcc GCC_AGGRE_USB3_PRIM_AXI_CLK>;
124+
};

drivers/interconnect/Kconfig

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ menuconfig INTERCONNECT
1212
if INTERCONNECT
1313

1414
source "drivers/interconnect/imx/Kconfig"
15+
source "drivers/interconnect/mediatek/Kconfig"
1516
source "drivers/interconnect/qcom/Kconfig"
1617
source "drivers/interconnect/samsung/Kconfig"
1718

drivers/interconnect/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ icc-core-objs := core.o bulk.o debugfs-client.o
55

66
obj-$(CONFIG_INTERCONNECT) += icc-core.o
77
obj-$(CONFIG_INTERCONNECT_IMX) += imx/
8+
obj-$(CONFIG_INTERCONNECT_MTK) += mediatek/
89
obj-$(CONFIG_INTERCONNECT_QCOM) += qcom/
910
obj-$(CONFIG_INTERCONNECT_SAMSUNG) += samsung/
1011

drivers/interconnect/imx/imx.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -334,4 +334,5 @@ void imx_icc_unregister(struct platform_device *pdev)
334334
}
335335
EXPORT_SYMBOL_GPL(imx_icc_unregister);
336336

337+
MODULE_DESCRIPTION("Interconnect framework driver for i.MX SoC");
337338
MODULE_LICENSE("GPL v2");

drivers/interconnect/imx/imx8mm.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,5 +96,6 @@ static struct platform_driver imx8mm_icc_driver = {
9696

9797
module_platform_driver(imx8mm_icc_driver);
9898
MODULE_AUTHOR("Alexandre Bailon <[email protected]>");
99+
MODULE_DESCRIPTION("Interconnect framework driver for i.MX8MM SoC");
99100
MODULE_LICENSE("GPL v2");
100101
MODULE_ALIAS("platform:imx8mm-interconnect");

drivers/interconnect/imx/imx8mn.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,4 +86,5 @@ static struct platform_driver imx8mn_icc_driver = {
8686
module_platform_driver(imx8mn_icc_driver);
8787
MODULE_ALIAS("platform:imx8mn-interconnect");
8888
MODULE_AUTHOR("Leonard Crestez <[email protected]>");
89+
MODULE_DESCRIPTION("Interconnect framework driver for i.MX8MN SoC");
8990
MODULE_LICENSE("GPL v2");

drivers/interconnect/imx/imx8mp.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -249,5 +249,6 @@ static struct platform_driver imx8mp_icc_driver = {
249249

250250
module_platform_driver(imx8mp_icc_driver);
251251
MODULE_AUTHOR("Peng Fan <[email protected]>");
252+
MODULE_DESCRIPTION("Interconnect framework driver for i.MX8MP SoC");
252253
MODULE_LICENSE("GPL");
253254
MODULE_ALIAS("platform:imx8mp-interconnect");

drivers/interconnect/imx/imx8mq.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,4 +97,5 @@ static struct platform_driver imx8mq_icc_driver = {
9797
module_platform_driver(imx8mq_icc_driver);
9898
MODULE_ALIAS("platform:imx8mq-interconnect");
9999
MODULE_AUTHOR("Leonard Crestez <[email protected]>");
100+
MODULE_DESCRIPTION("Interconnect framework driver for i.MX8MQ SoC");
100101
MODULE_LICENSE("GPL v2");

drivers/interconnect/mediatek/Kconfig

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
# SPDX-License-Identifier: GPL-2.0-only
2+
3+
config INTERCONNECT_MTK
4+
bool "MediaTek interconnect drivers"
5+
depends on ARCH_MEDIATEK || COMPILE_TEST
6+
help
7+
Support for MediaTek's bus interconnect hardware.
8+
9+
config INTERCONNECT_MTK_DVFSRC_EMI
10+
tristate "MediaTek DVFSRC EMI interconnect driver"
11+
depends on INTERCONNECT_MTK && MTK_DVFSRC
12+
help
13+
This is a driver for the MediaTek External Memory Interface
14+
interconnect on SoCs equipped with the integrated Dynamic
15+
Voltage Frequency Scaling Resource Collector (DVFSRC) MCU
16+
17+
config INTERCONNECT_MTK_MT8183
18+
tristate "MediaTek MT8183 interconnect driver"
19+
depends on INTERCONNECT_MTK_DVFSRC_EMI
20+
help
21+
This is a driver for the MediaTek bus interconnect on MT8183-based
22+
platforms.
23+
24+
config INTERCONNECT_MTK_MT8195
25+
tristate "MediaTek MT8195 interconnect driver"
26+
depends on INTERCONNECT_MTK_DVFSRC_EMI
27+
help
28+
This is a driver for the MediaTek bus interconnect on MT8195-based
29+
platforms.
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# SPDX-License-Identifier: GPL-2.0
2+
3+
obj-$(CONFIG_INTERCONNECT_MTK_DVFSRC_EMI) += icc-emi.o
4+
obj-$(CONFIG_INTERCONNECT_MTK_MT8183) += mt8183.o
5+
obj-$(CONFIG_INTERCONNECT_MTK_MT8195) += mt8195.o

0 commit comments

Comments
 (0)