xref: /OK3568_Linux_fs/kernel/Documentation/devicetree/bindings/cpufreq/cpufreq-rockchip.txt (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1Binding for Rockchip's CPUFreq driver
2===============================
3
4Rockchip's CPUFreq driver attempts to read leakage value from eFuse
5and get frequency count from pvtm, then supplies the OPP framework
6with 'prop' information which is used to determine opp-microvolt-<name>
7property of OPPS when it is parsed by the OPP framework. This is based
8on operating-points-v2, but the driver can also create the "cpufreq-dt"
9platform_device to compatibility with operating-points.
10
11For more information about the expected DT format [See: ../opp/opp.txt].
12
13Optional properties:
14In 'operating-points-v2' table:
15- rockchip,leakage-voltage-sel: The property is an array of 3-tuples items, and
16                       each item consists of leakage and voltage selector like
17                       <min-leakage max-leakage volt-selector>.
18                       min-leakage: minimum leakage in mA, ranges from 1 to 254.
19                       max-leakage: maximum leakage in mA, ranges from 1 to 254.
20                       voltage-selector: a sequence number which is used to math
21                       opp-microvolt-L<number> roperty in OPP node.
22
23- rockchip,pvtm-voltage-sel: The property is an array of 3-tuples items, and
24                       each item consists of pvtm and voltage selector like
25                       <min-pvtm max-pvtm volt-selector>.
26                       min-pvtm: minimum frequency count in KHz.
27                       max-pvtm: maximum frequency count in KHz.
28                       voltage-selector: a sequence number which is used to math
29                       opp-microvolt-L<number> roperty in OPP node.
30- rockchip,pvtm-freq: Clock frequency in KHz, which is used to set the cpu clock
31                       frequency before get frequency count of pvtm.
32- rockchip,pvtm-volt: Voltage in uV, which is used to set the cpu voltage before
33                       get frequency count of pvtm.
34- rockchip,pvtm-ch: An array of two integers containing pvtm channel and clock
35                       oscillation ring.
36- rockchip,pvtm-sample-time: The number of milliseconds to wait for pvtm to
37                       finish counting.
38- rockchip,pvtm-number: An integer indicating the number of sampling points.
39- rockchip,pvtm-error: An integer indicating the error between the sample
40                       results.
41- rockchip,pvtm-ref-temp: The SoC internal temperature in degree centigrade, the
42                       min-pvtm and max-pvtm in 'leakage-voltage-sel' are
43                       measured at reference temperature.
44- rockchip,pvtm-temp-prop: An array of two integers containing proportional
45                       constants which is used to convert the value at current
46                       temperature to reference temperature. The first one is
47                       used when current temperature is below reference
48                       temperature. Conversely, The second one is used when
49                       current temperature is above reference temperature.
50- rockchip,pvtm-thermal-zone: A thermal zone node containing thermal sensor,
51                       it's used to get the current temperature.
52- rockchip,thermal-zone: A thermal zone node containing thermal sensor,
53                       it's used to get the current temperature.
54
55- nvmem-cells: A phandle to cpu_leakage data provided by a nvmem device.
56- nvmem-cell-names: Should be "cpu_leakage"
57
58- rockchip,threshold-freq: Clock frequency in KHz, it's used to reduce power
59                       for SoCs with two clusters.
60- rockchip,freq-limit: Only one cluster can contain the property, and the
61                       cluster's maximum frequency will be limited to its
62                       threshold frequency, if the other cluster's frequency
63                       is geater than or equal to its threshold frequency.
64
65Examples:
66
67cpus {
68	cpu@0 {
69		operating-points-v2 = <&cluster0_opp>;
70	};
71}
72
73cluster0_opp: opp_table0 {
74	compatible = "operating-points-v2";
75	opp-shared;
76	rockchip,leakage-voltage-sel = <
77		1   24   0
78		25  254  1
79	>;
80	nvmem-cells = <&cpu_leakage>;
81	nvmem-cell-names = "cpu_leakage";
82
83	opp@216000000 {
84		opp-hz = /bits/ 64 <216000000>;
85		opp-microvolt = <950000 950000 1350000>;
86		opp-microvolt-L0 = <1050000 1050000 1350000>;
87		opp-microvolt-L1 = <950000 950000 1350000>;
88		opp-suspend;
89	}
90};
91