| 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>; |
| }; |
| }; |