1 Interconnect Provider Device Tree Bindings 1 Interconnect Provider Device Tree Bindings 2 ========================================= 2 ========================================= 3 3 4 The purpose of this document is to define a co 4 The purpose of this document is to define a common set of generic interconnect 5 providers/consumers properties. 5 providers/consumers properties. 6 6 7 7 8 = interconnect providers = 8 = interconnect providers = 9 9 10 The interconnect provider binding is intended 10 The interconnect provider binding is intended to represent the interconnect 11 controllers in the system. Each provider regis 11 controllers in the system. Each provider registers a set of interconnect 12 nodes, which expose the interconnect related c 12 nodes, which expose the interconnect related capabilities of the interconnect 13 to consumer drivers. These capabilities can be 13 to consumer drivers. These capabilities can be throughput, latency, priority 14 etc. The consumer drivers set constraints on i 14 etc. The consumer drivers set constraints on interconnect path (or endpoints) 15 depending on the use case. Interconnect provid 15 depending on the use case. Interconnect providers can also be interconnect 16 consumers, such as in the case where two netwo 16 consumers, such as in the case where two network-on-chip fabrics interface 17 directly. 17 directly. 18 18 19 Required properties: 19 Required properties: 20 - compatible : contains the interconnect provi 20 - compatible : contains the interconnect provider compatible string 21 - #interconnect-cells : number of cells in a i 21 - #interconnect-cells : number of cells in a interconnect specifier needed to 22 encode the interconnec 22 encode the interconnect node id and optionally add a 23 path tag 23 path tag 24 24 25 Example: 25 Example: 26 26 27 snoc: interconnect@580000 { 27 snoc: interconnect@580000 { 28 compatible = "qcom,msm 28 compatible = "qcom,msm8916-snoc"; 29 #interconnect-cells = 29 #interconnect-cells = <1>; 30 reg = <0x580000 0x1400 30 reg = <0x580000 0x14000>; 31 clock-names = "bus_clk 31 clock-names = "bus_clk", "bus_a_clk"; 32 clocks = <&rpmcc RPM_S 32 clocks = <&rpmcc RPM_SMD_SNOC_CLK>, 33 <&rpmcc RPM_S 33 <&rpmcc RPM_SMD_SNOC_A_CLK>; 34 }; 34 }; 35 35 36 36 37 = interconnect consumers = 37 = interconnect consumers = 38 38 39 The interconnect consumers are device nodes wh 39 The interconnect consumers are device nodes which dynamically express their 40 bandwidth requirements along interconnect path 40 bandwidth requirements along interconnect paths they are connected to. There 41 can be multiple interconnect providers on a So 41 can be multiple interconnect providers on a SoC and the consumer may consume 42 multiple paths from different providers depend 42 multiple paths from different providers depending on use case and the 43 components it has to interact with. 43 components it has to interact with. 44 44 45 Required properties: 45 Required properties: 46 interconnects : Pairs of phandles and intercon 46 interconnects : Pairs of phandles and interconnect provider specifier to denote 47 the edge source and destinatio 47 the edge source and destination ports of the interconnect path. 48 An optional path tag value cou 48 An optional path tag value could specified as additional argument 49 to both endpoints and in such 49 to both endpoints and in such cases, this information will be passed 50 to the interconnect framework 50 to the interconnect framework to do aggregation based on the attached 51 tag. 51 tag. 52 52 53 Optional properties: 53 Optional properties: 54 interconnect-names : List of interconnect path 54 interconnect-names : List of interconnect path name strings sorted in the same 55 order as the interconnect 55 order as the interconnects property. Consumers drivers will use 56 interconnect-names to mat 56 interconnect-names to match interconnect paths with interconnect 57 specifier pairs. 57 specifier pairs. 58 58 59 Reserved interconnect nam 59 Reserved interconnect names: 60 * dma-mem: Path from 60 * dma-mem: Path from the device to the main memory of 61 the system 61 the system 62 62 63 Example: 63 Example: 64 64 65 sdhci@7864000 { 65 sdhci@7864000 { 66 ... 66 ... 67 interconnects = <&pnoc MASTER_ 67 interconnects = <&pnoc MASTER_SDCC_1 &bimc SLAVE_EBI_CH0>; 68 interconnect-names = "sdhc-mem 68 interconnect-names = "sdhc-mem"; 69 }; 69 }; 70 70 71 Example with path tags: 71 Example with path tags: 72 72 73 gnoc: interconnect@17900000 { 73 gnoc: interconnect@17900000 { 74 ... 74 ... 75 interconnect-cells = <2>; 75 interconnect-cells = <2>; 76 }; 76 }; 77 77 78 mnoc: interconnect@1380000 { 78 mnoc: interconnect@1380000 { 79 ... 79 ... 80 interconnect-cells = <2>; 80 interconnect-cells = <2>; 81 }; 81 }; 82 82 83 cpu@0 { 83 cpu@0 { 84 ... 84 ... 85 interconnects = <&gnoc MASTER_ 85 interconnects = <&gnoc MASTER_APPSS_PROC 3 &mnoc SLAVE_EBI1 3>; 86 } 86 }
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.