87 lines
2.7 KiB
Plaintext
87 lines
2.7 KiB
Plaintext
|
Interconnect Provider Device Tree Bindings
|
||
|
=========================================
|
||
|
|
||
|
The purpose of this document is to define a common set of generic interconnect
|
||
|
providers/consumers properties.
|
||
|
|
||
|
|
||
|
= interconnect providers =
|
||
|
|
||
|
The interconnect provider binding is intended to represent the interconnect
|
||
|
controllers in the system. Each provider registers a set of interconnect
|
||
|
nodes, which expose the interconnect related capabilities of the interconnect
|
||
|
to consumer drivers. These capabilities can be throughput, latency, priority
|
||
|
etc. The consumer drivers set constraints on interconnect path (or endpoints)
|
||
|
depending on the use case. Interconnect providers can also be interconnect
|
||
|
consumers, such as in the case where two network-on-chip fabrics interface
|
||
|
directly.
|
||
|
|
||
|
Required properties:
|
||
|
- compatible : contains the interconnect provider compatible string
|
||
|
- #interconnect-cells : number of cells in a interconnect specifier needed to
|
||
|
encode the interconnect node id and optionally add a
|
||
|
path tag
|
||
|
|
||
|
Example:
|
||
|
|
||
|
snoc: interconnect@580000 {
|
||
|
compatible = "qcom,msm8916-snoc";
|
||
|
#interconnect-cells = <1>;
|
||
|
reg = <0x580000 0x14000>;
|
||
|
clock-names = "bus_clk", "bus_a_clk";
|
||
|
clocks = <&rpmcc RPM_SMD_SNOC_CLK>,
|
||
|
<&rpmcc RPM_SMD_SNOC_A_CLK>;
|
||
|
};
|
||
|
|
||
|
|
||
|
= interconnect consumers =
|
||
|
|
||
|
The interconnect consumers are device nodes which dynamically express their
|
||
|
bandwidth requirements along interconnect paths they are connected to. There
|
||
|
can be multiple interconnect providers on a SoC and the consumer may consume
|
||
|
multiple paths from different providers depending on use case and the
|
||
|
components it has to interact with.
|
||
|
|
||
|
Required properties:
|
||
|
interconnects : Pairs of phandles and interconnect provider specifier to denote
|
||
|
the edge source and destination ports of the interconnect path.
|
||
|
An optional path tag value could specified as additional argument
|
||
|
to both endpoints and in such cases, this information will be passed
|
||
|
to the interconnect framework to do aggregation based on the attached
|
||
|
tag.
|
||
|
|
||
|
Optional properties:
|
||
|
interconnect-names : List of interconnect path name strings sorted in the same
|
||
|
order as the interconnects property. Consumers drivers will use
|
||
|
interconnect-names to match interconnect paths with interconnect
|
||
|
specifier pairs.
|
||
|
|
||
|
Reserved interconnect names:
|
||
|
* dma-mem: Path from the device to the main memory of
|
||
|
the system
|
||
|
|
||
|
Example:
|
||
|
|
||
|
sdhci@7864000 {
|
||
|
...
|
||
|
interconnects = <&pnoc MASTER_SDCC_1 &bimc SLAVE_EBI_CH0>;
|
||
|
interconnect-names = "sdhc-mem";
|
||
|
};
|
||
|
|
||
|
Example with path tags:
|
||
|
|
||
|
gnoc: interconnect@17900000 {
|
||
|
...
|
||
|
interconnect-cells = <2>;
|
||
|
};
|
||
|
|
||
|
mnoc: interconnect@1380000 {
|
||
|
...
|
||
|
interconnect-cells = <2>;
|
||
|
};
|
||
|
|
||
|
cpu@0 {
|
||
|
...
|
||
|
interconnects = <&gnoc MASTER_APPSS_PROC 3 &mnoc SLAVE_EBI1 3>;
|
||
|
}
|