summaryrefslogtreecommitdiff
path: root/Documentation/devicetree/bindings/arm/msm/msm_bus_rules.txt
blob: b68284c8970d2d323e082eaf7eaf90a83aad879a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
MSM Bus static bandwidth rules for adhoc bus topologies

Buses are the interconnects between various devices. The devices are
connected in different topologies. The static bandwidth rules allow
setting up SOC specific rules to monitor certain bandwidth requests
at different bus nodes. When the conditions of the rule are met
the bus driver will be given a list of actions to be take on specific
bus master ports (throttle on/off, what bandwidth to throttle to etc).

The mandatory properties for bus driver are:

compatible:	"qcom,msm-bus-static-bw-rules"

The static_rules node can have numerous rules for the different bandwidth voting
conditions to be monitored. The mandatory properties for the rules are

- qcom,src-nodes:		An array of phandles denoting the source nodes
				whose bandwidth votes need to be monitored.
- qcom,src-field:		This field represents the voted field of the
				source node to be monitored. Possible values
				are FLD_IB/FLD_AB/FLD_CLK
- qcom,src-op:			The operand to be used when evaluating a node's
				bandwidth vote with a threshold.Possible values
				are OP_LE/OP_LT/OP_GT/OP_GE.
- qcom,thresh:			The threshold in Kbytes/s to be used in vote
				evaluation.
- qcom,mode:			The QoS mode to be applied when this rule's
				criterion are satisfied. Possible values are
				THROTTLE_ON/THROTTLE_OFF
- qcom,dest-node:		An array of phandles representing the nodes to
				which the QoS mode is to be applied.

The optional properties for the rule node are:
- qcom,dest-bw:			The destination bandwidth value in Kbytes/s to
				be used toward the QoS mode for the destination
				node.

Example:
	static-rules {
		compatible = "qcom,msm-bus-static-bw-rules";
		#address-cells = <1>;
		#size-cells = <0>;

		rule@0 {
			qcom,src-nodes = <&mas_apss>;
			qcom,src-field = <FLD_IB>;
			qcom,src-op = <OP_LE>;
			qcom,thresh = <1599078>;
			qcom,mode = <THROTTLE_ON>;
			qcom,dest-node = <&mas_apss>;
			qcom,dest-bw = <1599078>;
		};

		rule@1 {
			qcom,src-nodes = <&mas_apss>;
			qcom,src-field = <FLD_IB>;
			qcom,src-op = <OP_GT>;
			qcom,thresh = <1599078>;
			qcom,mode = <THROTTLE_OFF>;
			qcom,dest-node = <&mas_apss>;
		};
	};