Skip to content

Commit 2b7aff8

Browse files
committed
dt-bindings: interconnect: document the RPM Network-On-Chip interconnect in Shikra SoC
Document the RPM Network-On-Chip Interconnect for the Qualcomm Shikra platform. Signed-off-by: Raviteja Laggyshetty <raviteja.laggyshetty@oss.qualcomm.com>
1 parent 14f0e45 commit 2b7aff8

2 files changed

Lines changed: 286 additions & 0 deletions

File tree

Lines changed: 165 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,165 @@
1+
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/interconnect/qcom,shikra.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Qualcomm Shikra Network-On-Chip interconnect
8+
9+
maintainers:
10+
- Raviteja Laggyshetty <raviteja.laggyshetty@oss.qualcomm.com>
11+
12+
description: |
13+
The Qualcomm Shikra interconnect providers support adjusting the
14+
bandwidth requirements between the various NoC fabrics.
15+
16+
properties:
17+
compatible:
18+
enum:
19+
- qcom,shikra-config-noc
20+
- qcom,shikra-mem-noc-core
21+
- qcom,shikra-sys-noc
22+
23+
reg:
24+
maxItems: 1
25+
26+
clocks:
27+
minItems: 1
28+
maxItems: 4
29+
30+
clock-names:
31+
minItems: 1
32+
maxItems: 4
33+
34+
# Child node's properties
35+
patternProperties:
36+
'^interconnect-[a-z0-9]+$':
37+
type: object
38+
description:
39+
The interconnect providers do not have a separate QoS register space,
40+
but share parent's space.
41+
42+
allOf:
43+
- $ref: qcom,rpm-common.yaml#
44+
45+
properties:
46+
compatible:
47+
enum:
48+
- qcom,shikra-clk-virt
49+
- qcom,shikra-mc-virt
50+
- qcom,shikra-mmrt-virt
51+
- qcom,shikra-mmnrt-virt
52+
53+
required:
54+
- compatible
55+
56+
unevaluatedProperties: false
57+
58+
required:
59+
- compatible
60+
- reg
61+
62+
allOf:
63+
- $ref: qcom,rpm-common.yaml#
64+
- if:
65+
properties:
66+
compatible:
67+
const: qcom,shikra-mem-noc-core
68+
69+
then:
70+
properties:
71+
clocks:
72+
items:
73+
- description: GPU-NoC AXI clock
74+
75+
clock-names:
76+
items:
77+
- const: gpu_axi
78+
79+
- if:
80+
properties:
81+
compatible:
82+
const: qcom,shikra-sys-noc
83+
84+
then:
85+
properties:
86+
clocks:
87+
items:
88+
- description: EMAC0-NoC AXI clock.
89+
- description: EMAC1-NoC AXI clock.
90+
- description: USB2-NoC AXI clock.
91+
- description: USB3-NoC AXI clock.
92+
93+
clock-names:
94+
items:
95+
- const: emac0_axi
96+
- const: emac1_axi
97+
- const: usb2_axi
98+
- const: usb3_axi
99+
100+
- if:
101+
properties:
102+
compatible:
103+
enum:
104+
- qcom,sm6115-clk-virt
105+
- qcom,sm6115-config-noc
106+
- qcom,sm6115-mc-virt
107+
- qcom,sm6115-mmrt-virt
108+
- qcom,sm6115-mmnrt-virt
109+
110+
then:
111+
properties:
112+
clocks: false
113+
clock-names: false
114+
115+
unevaluatedProperties: false
116+
117+
examples:
118+
- |
119+
system_noc: interconnect@1880000 {
120+
compatible = "qcom,shikra-sys-noc";
121+
reg = <0x01880000 0x6a080>;
122+
#interconnect-cells = <2>;
123+
clocks = <&gcc_emac0_axi_sys_noc_clk>,
124+
<&gcc_emac1_axi_sys_noc_clk>,
125+
<&gcc_sys_noc_usb2_prim_axi_clk>,
126+
<&gcc_sys_noc_usb3_prim_axi_clk>;
127+
clock-names = "emac0_axi",
128+
"emac1_axi",
129+
"usb2_axi",
130+
"usb3_axi";
131+
132+
clk_virt: interconnect-clk {
133+
compatible = "qcom,shikra-clk-virt";
134+
#interconnect-cells = <2>;
135+
};
136+
137+
mc_virt: interconnect-mc {
138+
compatible = "qcom,shikra-mc-virt";
139+
#interconnect-cells = <2>;
140+
};
141+
142+
mmnrt_virt: interconnect-mmnrt {
143+
compatible = "qcom,shikra-mmnrt-virt";
144+
#interconnect-cells = <2>;
145+
};
146+
147+
mmrt_virt: interconnect-mmrt {
148+
compatible = "qcom,shikra-mmrt-virt";
149+
#interconnect-cells = <2>;
150+
};
151+
};
152+
153+
config_noc: interconnect@1900000 {
154+
compatible = "qcom,shikra-config-noc";
155+
reg = <0x01900000 0x8080>;
156+
#interconnect-cells = <2>;
157+
};
158+
159+
mem_noc: interconnect@d00000 {
160+
compatible = "qcom,shikra-mem-noc-core";
161+
reg = <0x00d00000 0x43080>;
162+
#interconnect-cells = <2>;
163+
clocks = <&gcc_ddrss_gpu_axi_clk>;
164+
clock-names = "gpu_axi";
165+
};
Lines changed: 121 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,121 @@
1+
/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
2+
/*
3+
* Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
4+
*/
5+
6+
#ifndef __DT_BINDINGS_INTERCONNECT_QCOM_SHIKRA_H
7+
#define __DT_BINDINGS_INTERCONNECT_QCOM_SHIKRA_H
8+
9+
#define MASTER_QUP_CORE_0 0
10+
#define SLAVE_QUP_CORE_0 1
11+
12+
#define SNOC_CNOC_MAS 0
13+
#define MASTER_QDSS_DAP 1
14+
#define SLAVE_AHB2PHY_USB 2
15+
#define SLAVE_APSS_THROTTLE_CFG 3
16+
#define SLAVE_AUDIO 4
17+
#define SLAVE_BOOT_ROM 5
18+
#define SLAVE_CAMERA_NRT_THROTTLE_CFG 6
19+
#define SLAVE_CAMERA_CFG 7
20+
#define SLAVE_CDSP_THROTTLE_CFG 8
21+
#define SLAVE_CLK_CTL 9
22+
#define SLAVE_DSP_CFG 10
23+
#define SLAVE_RBCPR_CX_CFG 11
24+
#define SLAVE_RBCPR_MX_CFG 12
25+
#define SLAVE_CRYPTO_0_CFG 13
26+
#define SLAVE_DDR_SS_CFG 14
27+
#define SLAVE_DISPLAY_CFG 15
28+
#define SLAVE_EMAC0_CFG 16
29+
#define SLAVE_EMAC1_CFG 17
30+
#define SLAVE_GPU_CFG 18
31+
#define SLAVE_GPU_THROTTLE_CFG 19
32+
#define SLAVE_HWKM 20
33+
#define SLAVE_IMEM_CFG 21
34+
#define SLAVE_MAPSS 22
35+
#define SLAVE_MDSP_MPU_CFG 23
36+
#define SLAVE_MESSAGE_RAM 24
37+
#define SLAVE_MSS 25
38+
#define SLAVE_PCIE_CFG 26
39+
#define SLAVE_PDM 27
40+
#define SLAVE_PIMEM_CFG 28
41+
#define SLAVE_PKA_WRAPPER_CFG 29
42+
#define SLAVE_PMIC_ARB 30
43+
#define SLAVE_QDSS_CFG 31
44+
#define SLAVE_QM_CFG 32
45+
#define SLAVE_QM_MPU_CFG 33
46+
#define SLAVE_QPIC 34
47+
#define SLAVE_QUP_0 35
48+
#define SLAVE_RPM 36
49+
#define SLAVE_SDCC_1 37
50+
#define SLAVE_SDCC_2 38
51+
#define SLAVE_SECURITY 39
52+
#define SLAVE_SNOC_CFG 40
53+
#define SNOC_SF_THROTTLE_CFG 41
54+
#define SLAVE_TLMM 42
55+
#define SLAVE_TSCSS 43
56+
#define SLAVE_USB2 44
57+
#define SLAVE_USB3 45
58+
#define SLAVE_VENUS_CFG 46
59+
#define SLAVE_VENUS_THROTTLE_CFG 47
60+
#define SLAVE_VSENSE_CTRL_CFG 48
61+
#define SLAVE_SERVICE_CNOC 49
62+
63+
#define MASTER_LLCC 0
64+
#define SLAVE_EBI_CH0 1
65+
66+
#define MASTER_GRAPHICS_3D 0
67+
#define MASTER_MNOC_HF_MEM_NOC 1
68+
#define MASTER_ANOC_PCIE_MEM_NOC 2
69+
#define MASTER_SNOC_SF_MEM_NOC 3
70+
#define MASTER_AMPSS_M0 4
71+
#define MASTER_SYS_TCU 5
72+
#define SLAVE_LLCC 6
73+
#define SLAVE_MEMNOC_SNOC 7
74+
#define SLAVE_MEM_NOC_PCIE_SNOC 8
75+
76+
#define MASTER_CAMNOC_SF 0
77+
#define MASTER_VIDEO_P0 1
78+
#define MASTER_VIDEO_PROC 2
79+
#define SLAVE_MMNRT_VIRT 3
80+
81+
#define MASTER_CAMNOC_HF 0
82+
#define MASTER_MDP_PORT0 1
83+
#define MASTER_MMRT_VIRT 2
84+
#define SLAVE_MM_MEMNOC 3
85+
86+
#define MASTER_SNOC_CFG 0
87+
#define MASTER_TIC 1
88+
#define MASTER_ANOC_SNOC 2
89+
#define MASTER_MEMNOC_PCIE 3
90+
#define MASTER_MEMNOC_SNOC 4
91+
#define MASTER_PIMEM 5
92+
#define MASTER_PCIE2_0 6
93+
#define MASTER_QDSS_BAM 7
94+
#define MASTER_QPIC 8
95+
#define MASTER_QUP_0 9
96+
#define CNOC_SNOC_MAS 10
97+
#define MASTER_AUDIO 11
98+
#define MASTER_EMAC_0 12
99+
#define MASTER_EMAC_1 13
100+
#define MASTER_QDSS_ETR 14
101+
#define MASTER_SDCC_1 15
102+
#define MASTER_SDCC_2 16
103+
#define MASTER_USB2_0 17
104+
#define MASTER_USB3 18
105+
#define MASTER_CRYPTO_CORE0 19
106+
#define SLAVE_APPSS 20
107+
#define SLAVE_MCUSS 21
108+
#define SLAVE_WCSS 22
109+
#define SLAVE_MEMNOC_SF 23
110+
#define SNOC_CNOC_SLV 24
111+
#define SLAVE_BOOTIMEM 25
112+
#define SLAVE_OCIMEM 26
113+
#define SLAVE_PIMEM 27
114+
#define SLAVE_SERVICE_SNOC 28
115+
#define SLAVE_PCIE2_0 29
116+
#define SLAVE_QDSS_STM 30
117+
#define SLAVE_TCU 31
118+
#define SLAVE_PCIE_MEMNOC 32
119+
#define SLAVE_ANOC_SNOC 33
120+
121+
#endif

0 commit comments

Comments
 (0)