85 lines
2.8 KiB
Plaintext
85 lines
2.8 KiB
Plaintext
|
MSM SPDM bandwidth monitor device
|
||
|
|
||
|
devfreq-spdm is a device that represents a device that is monitored by the SPDM
|
||
|
hardware to measure the traffic status of configured master ports on the bus.
|
||
|
|
||
|
|
||
|
Required properties:
|
||
|
-compatible: Must be "qcom,devfreq_spdm"
|
||
|
-clock-names: Clocks used to measure current bus frequency.
|
||
|
Expected names are "cci_clk"
|
||
|
-clocks: References to named clocks
|
||
|
-qcom,spdm-client: Client id of the port being monitored
|
||
|
-qcom,bw-upstep: Initial up vote size in MB/s
|
||
|
-qcom,bw-dwnstep: Initial down vote size in MB/s
|
||
|
-qcom,max-vote: Vote ceiling in MB/s
|
||
|
-qcom,ports: SPDM ports used by this device
|
||
|
-qcom,alpha-up: SPDM filter up alpha value
|
||
|
-qcom,alpha-down: SPDM filter down alpha value
|
||
|
-qcom,bucket-size: SPDM filter bucket size
|
||
|
-qcom,pl-freqs: The driver supports different filter values at
|
||
|
three different performance levels. This value
|
||
|
defines the cut-over frequenices
|
||
|
-qcom,reject-rate: Desired rejection rate used to calculate
|
||
|
SPDM threshold
|
||
|
-qcom,response-time-us: Desired response time used to calculate
|
||
|
SPDM threshold
|
||
|
-qcom,cci-response-time-us: Desired response time used to calculate
|
||
|
SPDM threshold when CCI is under heavy load
|
||
|
-qcom,max-cci-freq: CCI frequency at which cci_response_time_us
|
||
|
is used
|
||
|
-qcom,up-step-multp: used to increase rate of growth on up votes
|
||
|
-qcom,spdm-interval: down-vote polling interval
|
||
|
|
||
|
Example:
|
||
|
devfreq_spdm_cpu {
|
||
|
compatible = "qcom,devfreq_spdm";
|
||
|
qcom,msm-bus,name = "devfreq_spdm";
|
||
|
qcom,msm-bus,num-cases = <2>;
|
||
|
qcom,msm-bus,num-paths = <1>;
|
||
|
qcom,msm-bus,vectors-KBps =
|
||
|
<1 512 0 0>,
|
||
|
<1 512 0 0>;
|
||
|
qcom,spdm-client = <0>;
|
||
|
|
||
|
clock-names = "cci_clk";
|
||
|
clocks = <&clock_cpu clk_cci_clk>;
|
||
|
|
||
|
qcom,bw-upstep = <100>;
|
||
|
qcom,bw-dwnstep = <100>;
|
||
|
qcom,max-vote = <10000>;
|
||
|
qcom,up-step-multp = <2>;
|
||
|
qcom,spdm-interval = <100>;
|
||
|
|
||
|
qcom,ports = <16>;
|
||
|
qcom,alpha-up = <7>;
|
||
|
qcom,alpha-down = <15>;
|
||
|
qcom,bucket-size = <8>;
|
||
|
|
||
|
/*max pl1 freq, max pl2 freq*/
|
||
|
qcom,pl-freqs = <149999999 150000000>;
|
||
|
|
||
|
/* pl1 low, pl1 high, pl2 low, pl2 high, pl3 low, pl3 high */
|
||
|
qcom,reject-rate = <5000 5000 5000 5000 5000 5000>;
|
||
|
/* pl1 low, pl1 high, pl2 low, pl2 high, pl3 low, pl3 high */
|
||
|
qcom,response-time-us = <220 220 2000 2000 900 900>;
|
||
|
/* pl1 low, pl1 high, pl2 low, pl2 high, pl3 low, pl3 high */
|
||
|
qcom,cci-response-time-us = <50 50 30 30 20 20>;
|
||
|
qcom,max-cci-freq = <600000000>;
|
||
|
};
|
||
|
|
||
|
This device is always used with the SPDM governor which requires a device tree
|
||
|
entry to know what IRQ to respond to.
|
||
|
|
||
|
Required properties:
|
||
|
-compatible Must be "qcom,gov_spdm_hyp"
|
||
|
-interrupt-names SPDM irq to handle. Name should be "spdm-irq"
|
||
|
-interrupts The interrupt number the SPDM hw is assigned
|
||
|
|
||
|
Example:
|
||
|
devfreq_spdm_gov {
|
||
|
compatible = "qcom,gov_spdm_hyp";
|
||
|
interrupt-names = "spdm-irq";
|
||
|
interrupts = <0 192 0>;
|
||
|
};
|