91 lines
4.2 KiB
Plaintext
91 lines
4.2 KiB
Plaintext
Binding for Rockchip's CPUFreq driver
|
|
===============================
|
|
|
|
Rockchip's CPUFreq driver attempts to read leakage value from eFuse
|
|
and get frequency count from pvtm, then supplies the OPP framework
|
|
with 'prop' information which is used to determine opp-microvolt-<name>
|
|
property of OPPS when it is parsed by the OPP framework. This is based
|
|
on operating-points-v2, but the driver can also create the "cpufreq-dt"
|
|
platform_device to compatibility with operating-points.
|
|
|
|
For more information about the expected DT format [See: ../opp/opp.txt].
|
|
|
|
Optional properties:
|
|
In 'operating-points-v2' table:
|
|
- rockchip,leakage-voltage-sel: The property is an array of 3-tuples items, and
|
|
each item consists of leakage and voltage selector like
|
|
<min-leakage max-leakage volt-selector>.
|
|
min-leakage: minimum leakage in mA, ranges from 1 to 254.
|
|
max-leakage: maximum leakage in mA, ranges from 1 to 254.
|
|
voltage-selector: a sequence number which is used to math
|
|
opp-microvolt-L<number> roperty in OPP node.
|
|
|
|
- rockchip,pvtm-voltage-sel: The property is an array of 3-tuples items, and
|
|
each item consists of pvtm and voltage selector like
|
|
<min-pvtm max-pvtm volt-selector>.
|
|
min-pvtm: minimum frequency count in KHz.
|
|
max-pvtm: maximum frequency count in KHz.
|
|
voltage-selector: a sequence number which is used to math
|
|
opp-microvolt-L<number> roperty in OPP node.
|
|
- rockchip,pvtm-freq: Clock frequency in KHz, which is used to set the cpu clock
|
|
frequency before get frequency count of pvtm.
|
|
- rockchip,pvtm-volt: Voltage in uV, which is used to set the cpu voltage before
|
|
get frequency count of pvtm.
|
|
- rockchip,pvtm-ch: An array of two integers containing pvtm channel and clock
|
|
oscillation ring.
|
|
- rockchip,pvtm-sample-time: The number of milliseconds to wait for pvtm to
|
|
finish counting.
|
|
- rockchip,pvtm-number: An integer indicating the number of sampling points.
|
|
- rockchip,pvtm-error: An integer indicating the error between the sample
|
|
results.
|
|
- rockchip,pvtm-ref-temp: The SoC internal temperature in degree centigrade, the
|
|
min-pvtm and max-pvtm in 'leakage-voltage-sel' are
|
|
measured at reference temperature.
|
|
- rockchip,pvtm-temp-prop: An array of two integers containing proportional
|
|
constants which is used to convert the value at current
|
|
temperature to reference temperature. The first one is
|
|
used when current temperature is below reference
|
|
temperature. Conversely, The second one is used when
|
|
current temperature is above reference temperature.
|
|
- rockchip,pvtm-thermal-zone: A thermal zone node containing thermal sensor,
|
|
it's used to get the current temperature.
|
|
- rockchip,thermal-zone: A thermal zone node containing thermal sensor,
|
|
it's used to get the current temperature.
|
|
|
|
- nvmem-cells: A phandle to cpu_leakage data provided by a nvmem device.
|
|
- nvmem-cell-names: Should be "cpu_leakage"
|
|
|
|
- rockchip,threshold-freq: Clock frequency in KHz, it's used to reduce power
|
|
for SoCs with two clusters.
|
|
- rockchip,freq-limit: Only one cluster can contain the property, and the
|
|
cluster's maximum frequency will be limited to its
|
|
threshold frequency, if the other cluster's frequency
|
|
is geater than or equal to its threshold frequency.
|
|
|
|
Examples:
|
|
|
|
cpus {
|
|
cpu@0 {
|
|
operating-points-v2 = <&cluster0_opp>;
|
|
};
|
|
}
|
|
|
|
cluster0_opp: opp_table0 {
|
|
compatible = "operating-points-v2";
|
|
opp-shared;
|
|
rockchip,leakage-voltage-sel = <
|
|
1 24 0
|
|
25 254 1
|
|
>;
|
|
nvmem-cells = <&cpu_leakage>;
|
|
nvmem-cell-names = "cpu_leakage";
|
|
|
|
opp@216000000 {
|
|
opp-hz = /bits/ 64 <216000000>;
|
|
opp-microvolt = <950000 950000 1350000>;
|
|
opp-microvolt-L0 = <1050000 1050000 1350000>;
|
|
opp-microvolt-L1 = <950000 950000 1350000>;
|
|
opp-suspend;
|
|
}
|
|
};
|