diff mbox series

[v1,3/3] dt-bindings: Interconnect device-tree bindings draft

Message ID 20170627174903.27978-4-georgi.djakov@linaro.org
State New
Headers show
Series Introduce on-chip interconnect API | expand

Commit Message

Georgi Djakov June 27, 2017, 5:49 p.m. UTC
The interconnect API is not yet using DT bindings for expressing
the relations between the API consumers and providers. This is
posted a separate patch as it needs further discussions on how
to represent this with DT.

Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>

---
 .../bindings/interconnect/interconnect.txt         | 75 ++++++++++++++++++++++
 1 file changed, 75 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/interconnect/interconnect.txt

Comments

Georgi Djakov June 30, 2017, 12:57 p.m. UTC | #1
Hi Rob,

On 06/30/2017 12:32 AM, Rob Herring wrote:
> On Tue, Jun 27, 2017 at 08:49:03PM +0300, Georgi Djakov wrote:

>> The interconnect API is not yet using DT bindings for expressing

>> the relations between the API consumers and providers. This is

>> posted a separate patch as it needs further discussions on how

>> to represent this with DT.

> 

> I would recommend continuing to sort out how this works within the 

> kernel before fixing things in DT. Something like this needs to be a 

> core binding in the DT spec.


Yes, that's the plan. Do you prefer me to drop this patch for now?

> 

> Also, you should CC some ARM, Ltd. folks like Mark R and Lorenzo. 

> There's been some discussion in the past how to describe the DMA master 

> side of the bus topology.


Thanks for the information! I will CC them on the next version!

BR,
Georgi
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/interconnect/interconnect.txt b/Documentation/devicetree/bindings/interconnect/interconnect.txt
new file mode 100644
index 000000000000..e38a29db981e
--- /dev/null
+++ b/Documentation/devicetree/bindings/interconnect/interconnect.txt
@@ -0,0 +1,75 @@ 
+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 usecase. 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 vendor specific compatible
+	       string
+- reg : register space of the interconnect controller hardware
+- #interconnect-cells : number of cells in a interconnect specifier needed to
+		       encode the interconnect node id.
+
+Example:
+
+		snoc: snoc@0580000 {
+			compatible = "qcom,msm-bus-snoc";
+			reg = <0x580000 0x14000>;
+			#interconnect-cells = <1>;
+			clock-names = "bus_clk", "bus_a_clk";
+			clocks = <&rpmcc RPM_SMD_SNOC_CLK>, <&rpmcc RPM_SMD_SNOC_A_CLK>;
+			status = "okay";
+		};
+		bimc: bimc@0400000 {
+			compatible = "qcom,msm-bus-bimc";
+			reg = <0x400000 0x62000>;
+			#interconnect-cells = <1>;
+			clock-names = "bus_clk", "bus_a_clk";
+			clocks = <&rpmcc RPM_SMD_BIMC_CLK>, <&rpmcc RPM_SMD_BIMC_A_CLK>;
+			status = "okay";
+		};
+		pnoc: pnoc@500000 {
+			compatible = "qcom,msm-bus-pnoc";
+			reg = <0x500000 0x11000>;
+			#interconnect-cells = <1>;
+			clock-names = "bus_clk", "bus_a_clk";
+			clocks = <&rpmcc RPM_SMD_PCNOC_CLK>, <&rpmcc RPM_SMD_PCNOC_A_CLK>;
+			status = "okay";
+		};
+
+= interconnect consumers =
+
+The interconnect consumers are device nodes which consume the interconnect
+path(s) provided by the interconnect provider. There can be multiple
+interconnect providers on a SoC and the consumer may consume multiple paths
+from different providers depending on usecase and the components it has to
+interact with.
+
+Required-properties:
+interconnect-src : A phandle and interconnect provider specifier as defined by
+		bindings of the interconnect provider specified by phandle.
+		This denotes the source device port which will be used, as the
+		device may have multiple master ports.
+interconnect-dst : A phandle and internet provider specifier pointing to the
+		local port of the target device.
+
+Example:
+
+	sdhci@07864000 {
+		...
+		interconnect-src = <&pnoc MAS_PNOC_SDCC_2>;
+		interconnect-dst = <&pnoc SLV_BLSP_1>;
+	};