| 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>; | |
| } |