190 lines
9.8 KiB
Plaintext

Rockchip OPP bindings to describe OPP nodes
The bindings are based on top of the operating-points-v2 bindings
described in Documentation/devicetree/bindings/opp/opp.txt
Additional properties are described below.
Optional properties:
In 'operating-points-v2' table:
- rockchip,supported-hw: The property allows to set supported hardware version.
- rockchip,opp-shared-dsu: Indicates the dsu also uses the opp table.
- rockchip,opp-shared-cci: Indicates the cci also uses the opp table.
- rockchip,cpu-freq-percent: The percentage of cpu frequency.
- 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> property in OPP node.
- rockchip,leakage-scaling-sel: Similar to 'rockchip,leakage-voltage-sel', this
allows to change max frequency according to leakage.
- rockchip,pvtm-hw: Similar to 'opp-supported-hw', but only one hierarchical
level, if hardware version is set in the property, the
'rockchip,pvtm-voltage-sel-hw' will be used, otherwise
'rockchip,pvtm-voltage-sel' will be used.
- rockchip,pvtm-voltage-sel-hw: Similar to 'rockchip,pvtm-voltage-sel', this
depends on 'rockchip,pvtm-hw' property.
- 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> property in OPP node.
- rockchip,pvtm-voltage-sel-B<number>: Similar to 'rockchip,pvtm-voltage-sel', this
depends on 'rockchip,pvtm-hw' property. If contain
'rockchip,pvtm-voltage-sel-hw', the property is unused.
- rockchip,pvtm-scaling-sel: Similar to 'rockchip,pvtm-voltage-sel', this allows
to change maximum frequency according to pvtm.
- rockchip,bin-voltage-sel: The property is an array of 2-tuples items, and
each item consists of bin and voltage selector like
<min-bin volt-selector>.
min-bin: chip version.
voltage-selector: a sequence number which is used to math
opp-microvolt-L<number> property in OPP node.
- rockchip,bin-scaling-sel: Similar to 'rockchip,bin-voltage-sel', this allows
to change maximum frequency according to chip version.
- rockchip,grf: The phandle of the syscon node for GRF register.
- rockchip,dsu-grf: the phandle of the syscon node for DSU GRF register.
- rockchip,cci-grf: the phandle of the syscon node for CCI GRF register.
- rockchip,opp-clocks: List of clocks for accessing pvtpll and read margin.
- volt-mem-read-margin: The property is an array of 2-tuples items, and
each item consists voltage an memory read margin like
<voltage_uV rm>, this allows to change read margin
according to voltage.
- low-volt-mem-read-margin: The memory read margin value of low voltage.
- intermediate-threshold-freq: Clock frequency in KHz, if current frequency or
target frequency less than the threshold frequency,
there may be no need to set intermediate rate.
- rockchip,pvtpll: The phandle of the syscon node for PVTPLL register.
- rockchip,pvtpll-table: The property is an array of 5-tuples items, and
each item consists frequency and pvtpll config like
<freq_khz ring length low_temp_ring low_temp_length>,
this allows to change pvtpll config through sip smc interface.
- rockchip,pvtpll-table-B<number>: Similar to 'rockchip,pvtpll-table'.
- rockchip,pvtpll-avg-offset: The offset of average value register.
- rockchip,pvtpll-min-rate: Clock frequency in KHz, if opp frequency is higher
than the minimum frequency, the opp voltage will be
changed.
- rockchip,pvtpll-volt-step: Voltage step in uV.
- rockchip,pvtm-pvtpll: Indicates pvtm value is from pvtpll.
- rockchip,pvtm-offset: The offset of pvtm value register.
- 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 soc info provided by a nvmem device.
- nvmem-cell-names: Should be "leakage", "pvtm", "mbist-vmin", "opp-info",
"specification_serial_number", "performance", or
"remark_spec_serial_number".
- 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.
- rockchip,init-freq: The initial clock frequency in KHz.
- rockchip,max-volt: The maximum voltage of opp.
- rockchip,evb-irdrop: The evb irdrop in uV.
- rockchip,board-irdrop: The property is an array of 3-tuples items, and
each item consists of frequency and voltage like
<min-freq max-freq volt>. This allows to change voltage
for different frequencice.
- rockchip,temp-hysteresis: Temperature hysteresis in millicelsius.
- rockchip,low-temp: Threshold temperature in millicelsius.
- rockchip,low-temp-adjust-volt: The property is an array of 3-tuples items, and
each item consists of frequency and voltage like
<min-freq max-freq volt>. This allows to change voltage
according to different frequencice at low temperature.
- rockchip,low-temp-min-volt: The minimum voltage of regulator at low temperature.
- rockchip,high-temp: Threshold temperature in millicelsius.
- rockchip,high-temp-max-volt: The maximum voltage of regulator at high temperature.
- rockchip,high-temp-max-freq: The maximum frequency of clock at high temperature.
- rockchip,temp-freq-table: The property is an array of 2-tuples items, and each
item consists of temperature and frequency like
<min-temp max-freq>. This allows to change the max
frequency according to temperature.
- rockchip,high-temp-limit-table: Similar to 'rockchip,temp-freq-table', but
it's discarded.
- rockchip,early-min-microvolt: Voltage in uV, this allows to limit the minimum
voltage of regulator when start up.
- rockchip,video-4k-freq: Clock frequency in KHz, change to the frequency when
enter SYS_STATUS_VIDEO_4K status.
- rockchip,reboot-freq: Clock frequency in KHz, change to the frequency when
reboot.
- rockchip,avs-enable: Similar to 'rockchip,avs', but it's discarded.
- rockchip,avs: Indicates avs is enabled.
- rockchip,avs-scale: The minimum scale of avs.
- clocks: PLL clock, it's used to get avs frequency and avs scale.
- mbist-vmin: The minimum voltage of memory, this allows to adjust opp voltage
according to mbist in otp.
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 = "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;
}
};