Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

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