hc
2024-10-12 a5969cabbb4660eab42b6ef0412cbbd1200cf14d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
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,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,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-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;
   }
};