94274f20f6
Convert the OPP v1 and v2 bindings to DT schema format. As the OPPv2 binding can be extended by vendors, we need to split the common part out from the "operating-points-v2" conforming compatible. Cc: Yangtao Li <tiny.windzz@gmail.com> Cc: Nishanth Menon <nm@ti.com> Cc: Stephen Boyd <sboyd@kernel.org> Cc: Maxime Ripard <mripard@kernel.org> Cc: Chen-Yu Tsai <wens@csie.org> Acked-by: Viresh Kumar <viresh.kumar@linaro.org> Signed-off-by: Rob Herring <robh@kernel.org> Acked-by: Maxime Ripard <maxime@cerno.tech> Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
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>;
|
|
};
|
|
};
|