Commit 06b3773b authored by Georgi Djakov's avatar Georgi Djakov Committed by Greg Kroah-Hartman
Browse files

dt-bindings: Introduce interconnect binding



This binding is intended to represent the relations between interconnect
controllers (providers) and consumer device nodes. It will allow creating
links between consumers and interconnect paths (exposed by interconnect
providers).

Reviewed-by: default avatarEvan Green <evgreen@chromium.org>
Reviewed-by: default avatarRob Herring <robh@kernel.org>
Signed-off-by: default avatarGeorgi Djakov <georgi.djakov@linaro.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 11f1ceca
Loading
Loading
Loading
Loading
+60 −0
Original line number Diff line number Diff line
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

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.

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.

Example:

	sdhci@7864000 {
		...
		interconnects = <&pnoc MASTER_SDCC_1 &bimc SLAVE_EBI_CH0>;
		interconnect-names = "sdhc-mem";
	};