Skip to content

Commit ca652cf

Browse files
author
Georgi Djakov
committed
Merge branch 'icc-milos' into icc-next
Add documentation and driver for the interconnect on the Milos SoC. * icc-milos dt-bindings: interconnect: document the RPMh Network-On-Chip Interconnect in Qualcomm Milos SoC interconnect: qcom: Add Milos interconnect provider driver Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Georgi Djakov <[email protected]>
2 parents a234cff + 4781dbb commit ca652cf

File tree

5 files changed

+2219
-0
lines changed

5 files changed

+2219
-0
lines changed
Lines changed: 136 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,136 @@
1+
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/interconnect/qcom,milos-rpmh.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Qualcomm RPMh Network-On-Chip Interconnect on Milos SoC
8+
9+
maintainers:
10+
- Luca Weiss <[email protected]>
11+
12+
description: |
13+
RPMh 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+
See also: include/dt-bindings/interconnect/qcom,milos-rpmh.h
21+
22+
properties:
23+
compatible:
24+
enum:
25+
- qcom,milos-aggre1-noc
26+
- qcom,milos-aggre2-noc
27+
- qcom,milos-clk-virt
28+
- qcom,milos-cnoc-cfg
29+
- qcom,milos-cnoc-main
30+
- qcom,milos-gem-noc
31+
- qcom,milos-lpass-ag-noc
32+
- qcom,milos-mc-virt
33+
- qcom,milos-mmss-noc
34+
- qcom,milos-nsp-noc
35+
- qcom,milos-pcie-anoc
36+
- qcom,milos-system-noc
37+
38+
reg:
39+
maxItems: 1
40+
41+
clocks:
42+
minItems: 1
43+
maxItems: 2
44+
45+
required:
46+
- compatible
47+
48+
allOf:
49+
- $ref: qcom,rpmh-common.yaml#
50+
- if:
51+
properties:
52+
compatible:
53+
contains:
54+
enum:
55+
- qcom,milos-clk-virt
56+
- qcom,milos-mc-virt
57+
then:
58+
properties:
59+
reg: false
60+
else:
61+
required:
62+
- reg
63+
64+
- if:
65+
properties:
66+
compatible:
67+
contains:
68+
enum:
69+
- qcom,milos-pcie-anoc
70+
then:
71+
properties:
72+
clocks:
73+
items:
74+
- description: aggre-NOC PCIe AXI clock
75+
- description: cfg-NOC PCIe a-NOC AHB clock
76+
77+
- if:
78+
properties:
79+
compatible:
80+
contains:
81+
enum:
82+
- qcom,milos-aggre1-noc
83+
then:
84+
properties:
85+
clocks:
86+
items:
87+
- description: aggre USB3 PRIM AXI clock
88+
- description: aggre UFS PHY AXI clock
89+
90+
- if:
91+
properties:
92+
compatible:
93+
contains:
94+
enum:
95+
- qcom,milos-aggre2-noc
96+
then:
97+
properties:
98+
clocks:
99+
items:
100+
- description: RPMH CC IPA clock
101+
102+
- if:
103+
properties:
104+
compatible:
105+
contains:
106+
enum:
107+
- qcom,milos-aggre1-noc
108+
- qcom,milos-aggre2-noc
109+
- qcom,milos-pcie-anoc
110+
then:
111+
required:
112+
- clocks
113+
else:
114+
properties:
115+
clocks: false
116+
117+
unevaluatedProperties: false
118+
119+
examples:
120+
- |
121+
#include <dt-bindings/clock/qcom,milos-gcc.h>
122+
123+
interconnect-0 {
124+
compatible = "qcom,milos-clk-virt";
125+
#interconnect-cells = <2>;
126+
qcom,bcm-voters = <&apps_bcm_voter>;
127+
};
128+
129+
interconnect@16e0000 {
130+
compatible = "qcom,milos-aggre1-noc";
131+
reg = <0x016e0000 0x16400>;
132+
#interconnect-cells = <2>;
133+
clocks = <&gcc GCC_AGGRE_USB3_PRIM_AXI_CLK>,
134+
<&gcc GCC_AGGRE_UFS_PHY_AXI_CLK>;
135+
qcom,bcm-voters = <&apps_bcm_voter>;
136+
};

drivers/interconnect/qcom/Kconfig

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -283,6 +283,15 @@ config INTERCONNECT_QCOM_SM7150
283283
This is a driver for the Qualcomm Network-on-Chip on sm7150-based
284284
platforms.
285285

286+
config INTERCONNECT_QCOM_MILOS
287+
tristate "Qualcomm Milos interconnect driver"
288+
depends on INTERCONNECT_QCOM_RPMH_POSSIBLE
289+
select INTERCONNECT_QCOM_RPMH
290+
select INTERCONNECT_QCOM_BCM_VOTER
291+
help
292+
This is a driver for the Qualcomm Network-on-Chip on Milos-based
293+
platforms.
294+
286295
config INTERCONNECT_QCOM_SM8150
287296
tristate "Qualcomm SM8150 interconnect driver"
288297
depends on INTERCONNECT_QCOM_RPMH_POSSIBLE

drivers/interconnect/qcom/Makefile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ obj-$(CONFIG_INTERCONNECT_QCOM) += interconnect_qcom.o
44

55
interconnect_qcom-y := icc-common.o
66
icc-bcm-voter-objs := bcm-voter.o
7+
qnoc-milos-objs := milos.o
78
qnoc-msm8909-objs := msm8909.o
89
qnoc-msm8916-objs := msm8916.o
910
qnoc-msm8937-objs := msm8937.o
@@ -45,6 +46,7 @@ qnoc-x1e80100-objs := x1e80100.o
4546
icc-smd-rpm-objs := smd-rpm.o icc-rpm.o icc-rpm-clocks.o
4647

4748
obj-$(CONFIG_INTERCONNECT_QCOM_BCM_VOTER) += icc-bcm-voter.o
49+
obj-$(CONFIG_INTERCONNECT_QCOM_MILOS) += qnoc-milos.o
4850
obj-$(CONFIG_INTERCONNECT_QCOM_MSM8909) += qnoc-msm8909.o
4951
obj-$(CONFIG_INTERCONNECT_QCOM_MSM8916) += qnoc-msm8916.o
5052
obj-$(CONFIG_INTERCONNECT_QCOM_MSM8937) += qnoc-msm8937.o

0 commit comments

Comments
 (0)