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