90 lines
2.3 KiB
Plaintext
90 lines
2.3 KiB
Plaintext
|
Binding for ST's CPUFreq driver
|
||
|
===============================
|
||
|
|
||
|
ST's CPUFreq driver attempts to read 'process' and 'version' attributes
|
||
|
from the SoC, then supplies the OPP framework with 'prop' and 'supported
|
||
|
hardware' information respectively. The framework is then able to read
|
||
|
the DT and operate in the usual way.
|
||
|
|
||
|
Frequency Scaling only
|
||
|
----------------------
|
||
|
|
||
|
No vendor specific driver required for this.
|
||
|
|
||
|
Located in CPU's node:
|
||
|
|
||
|
- operating-points : [See: ../power/opp-v1.yaml]
|
||
|
|
||
|
Example [safe]
|
||
|
--------------
|
||
|
|
||
|
cpus {
|
||
|
cpu@0 {
|
||
|
/* kHz uV */
|
||
|
operating-points = <1500000 0
|
||
|
1200000 0
|
||
|
800000 0
|
||
|
500000 0>;
|
||
|
};
|
||
|
};
|
||
|
|
||
|
Dynamic Voltage and Frequency Scaling (DVFS)
|
||
|
--------------------------------------------
|
||
|
|
||
|
This requires the ST CPUFreq driver to supply 'process' and 'version' info.
|
||
|
|
||
|
Located in CPU's node:
|
||
|
|
||
|
- operating-points-v2 : [See ../power/opp-v2.yaml]
|
||
|
|
||
|
Example [unsafe]
|
||
|
----------------
|
||
|
|
||
|
cpus {
|
||
|
cpu@0 {
|
||
|
operating-points-v2 = <&cpu0_opp_table>;
|
||
|
};
|
||
|
};
|
||
|
|
||
|
cpu0_opp_table: opp_table {
|
||
|
compatible = "operating-points-v2";
|
||
|
|
||
|
/* ############################################################### */
|
||
|
/* # WARNING: Do not attempt to copy/replicate these nodes, # */
|
||
|
/* # they are only to be supplied by the bootloader !!! # */
|
||
|
/* ############################################################### */
|
||
|
opp0 {
|
||
|
/* Major Minor Substrate */
|
||
|
/* 2 all all */
|
||
|
opp-supported-hw = <0x00000004 0xffffffff 0xffffffff>;
|
||
|
opp-hz = /bits/ 64 <1500000000>;
|
||
|
clock-latency-ns = <10000000>;
|
||
|
|
||
|
opp-microvolt-pcode0 = <1200000>;
|
||
|
opp-microvolt-pcode1 = <1200000>;
|
||
|
opp-microvolt-pcode2 = <1200000>;
|
||
|
opp-microvolt-pcode3 = <1200000>;
|
||
|
opp-microvolt-pcode4 = <1170000>;
|
||
|
opp-microvolt-pcode5 = <1140000>;
|
||
|
opp-microvolt-pcode6 = <1100000>;
|
||
|
opp-microvolt-pcode7 = <1070000>;
|
||
|
};
|
||
|
|
||
|
opp1 {
|
||
|
/* Major Minor Substrate */
|
||
|
/* all all all */
|
||
|
opp-supported-hw = <0xffffffff 0xffffffff 0xffffffff>;
|
||
|
opp-hz = /bits/ 64 <1200000000>;
|
||
|
clock-latency-ns = <10000000>;
|
||
|
|
||
|
opp-microvolt-pcode0 = <1110000>;
|
||
|
opp-microvolt-pcode1 = <1150000>;
|
||
|
opp-microvolt-pcode2 = <1100000>;
|
||
|
opp-microvolt-pcode3 = <1080000>;
|
||
|
opp-microvolt-pcode4 = <1040000>;
|
||
|
opp-microvolt-pcode5 = <1020000>;
|
||
|
opp-microvolt-pcode6 = <980000>;
|
||
|
opp-microvolt-pcode7 = <930000>;
|
||
|
};
|
||
|
};
|