Linux 6.7-rc7
[linux-modified.git] / arch / arm64 / boot / dts / qcom / msm8996pro.dtsi
1 // SPDX-License-Identifier: BSD-3-Clause
2 /*
3  * Copyright (c) 2022, Linaro Limited
4  */
5
6 #include "msm8996.dtsi"
7
8 / {
9         /delete-node/ opp-table-cluster0;
10         /delete-node/ opp-table-cluster1;
11
12         /*
13          * On MSM8996 Pro the cpufreq driver shifts speed bins into the high
14          * nibble of supported hw, so speed bin 0 becomes 0x10, speed bin 1
15          * becomes 0x20, speed 2 becomes 0x40.
16          */
17
18         cluster0_opp: opp-table-cluster0 {
19                 compatible = "operating-points-v2-kryo-cpu";
20                 nvmem-cells = <&speedbin_efuse>;
21                 opp-shared;
22
23                 opp-307200000 {
24                         opp-hz = /bits/ 64 <307200000>;
25                         opp-supported-hw = <0x70>;
26                         clock-latency-ns = <200000>;
27                         opp-peak-kBps = <192000>;
28                 };
29                 opp-384000000 {
30                         opp-hz = /bits/ 64 <384000000>;
31                         opp-supported-hw = <0x70>;
32                         clock-latency-ns = <200000>;
33                         opp-peak-kBps = <192000>;
34                 };
35                 opp-460800000 {
36                         opp-hz = /bits/ 64 <460800000>;
37                         opp-supported-hw = <0x70>;
38                         clock-latency-ns = <200000>;
39                         opp-peak-kBps = <192000>;
40                 };
41                 opp-537600000 {
42                         opp-hz = /bits/ 64 <537600000>;
43                         opp-supported-hw = <0x70>;
44                         clock-latency-ns = <200000>;
45                         opp-peak-kBps = <192000>;
46                 };
47                 opp-614400000 {
48                         opp-hz = /bits/ 64 <614400000>;
49                         opp-supported-hw = <0x70>;
50                         clock-latency-ns = <200000>;
51                         opp-peak-kBps = <192000>;
52                 };
53                 opp-691200000 {
54                         opp-hz = /bits/ 64 <691200000>;
55                         opp-supported-hw = <0x70>;
56                         clock-latency-ns = <200000>;
57                         opp-peak-kBps = <307200>;
58                 };
59                 opp-768000000 {
60                         opp-hz = /bits/ 64 <768000000>;
61                         opp-supported-hw = <0x70>;
62                         clock-latency-ns = <200000>;
63                         opp-peak-kBps = <307200>;
64                 };
65                 opp-844800000 {
66                         opp-hz = /bits/ 64 <844800000>;
67                         opp-supported-hw = <0x70>;
68                         clock-latency-ns = <200000>;
69                         opp-peak-kBps = <384000>;
70                 };
71                 opp-902400000 {
72                         opp-hz = /bits/ 64 <902400000>;
73                         opp-supported-hw = <0x70>;
74                         clock-latency-ns = <200000>;
75                         opp-peak-kBps = <441600>;
76                 };
77                 opp-979200000 {
78                         opp-hz = /bits/ 64 <979200000>;
79                         opp-supported-hw = <0x70>;
80                         clock-latency-ns = <200000>;
81                         opp-peak-kBps = <537600>;
82                 };
83                 opp-1056000000 {
84                         opp-hz = /bits/ 64 <1056000000>;
85                         opp-supported-hw = <0x70>;
86                         clock-latency-ns = <200000>;
87                         opp-peak-kBps = <614400>;
88                 };
89                 opp-1132800000 {
90                         opp-hz = /bits/ 64 <1132800000>;
91                         opp-supported-hw = <0x70>;
92                         clock-latency-ns = <200000>;
93                         opp-peak-kBps = <691200>;
94                 };
95                 opp-1209600000 {
96                         opp-hz = /bits/ 64 <1209600000>;
97                         opp-supported-hw = <0x70>;
98                         clock-latency-ns = <200000>;
99                         opp-peak-kBps = <768000>;
100                 };
101                 opp-1286400000 {
102                         opp-hz = /bits/ 64 <1286400000>;
103                         opp-supported-hw = <0x70>;
104                         clock-latency-ns = <200000>;
105                         opp-peak-kBps = <844800>;
106                 };
107                 opp-1363200000 {
108                         opp-hz = /bits/ 64 <1363200000>;
109                         opp-supported-hw = <0x70>;
110                         clock-latency-ns = <200000>;
111                         opp-peak-kBps = <902400>;
112                 };
113                 opp-1440000000 {
114                         opp-hz = /bits/ 64 <1440000000>;
115                         opp-supported-hw = <0x70>;
116                         clock-latency-ns = <200000>;
117                         opp-peak-kBps = <979200>;
118                 };
119                 opp-1516800000 {
120                         opp-hz = /bits/ 64 <1516800000>;
121                         opp-supported-hw = <0x70>;
122                         clock-latency-ns = <200000>;
123                         opp-peak-kBps = <1132800>;
124                 };
125                 opp-1593600000 {
126                         opp-hz = /bits/ 64 <1593600000>;
127                         opp-supported-hw = <0x70>;
128                         clock-latency-ns = <200000>;
129                         opp-peak-kBps = <1190400>;
130                 };
131                 opp-1996800000 {
132                         opp-hz = /bits/ 64 <1996800000>;
133                         opp-supported-hw = <0x20>;
134                         clock-latency-ns = <200000>;
135                         opp-peak-kBps = <1516800>;
136                 };
137                 opp-2188800000 {
138                         opp-hz = /bits/ 64 <2188800000>;
139                         opp-supported-hw = <0x10>;
140                         clock-latency-ns = <200000>;
141                         opp-peak-kBps = <1593600>;
142                 };
143         };
144
145         cluster1_opp: opp-table-cluster1 {
146                 compatible = "operating-points-v2-kryo-cpu";
147                 nvmem-cells = <&speedbin_efuse>;
148                 opp-shared;
149
150                 opp-307200000 {
151                         opp-hz = /bits/ 64 <307200000>;
152                         opp-supported-hw = <0x70>;
153                         clock-latency-ns = <200000>;
154                         opp-peak-kBps = <192000>;
155                 };
156                 opp-384000000 {
157                         opp-hz = /bits/ 64 <384000000>;
158                         opp-supported-hw = <0x70>;
159                         clock-latency-ns = <200000>;
160                         opp-peak-kBps = <192000>;
161                 };
162                 opp-460800000 {
163                         opp-hz = /bits/ 64 <460800000>;
164                         opp-supported-hw = <0x70>;
165                         clock-latency-ns = <200000>;
166                         opp-peak-kBps = <192000>;
167                 };
168                 opp-537600000 {
169                         opp-hz = /bits/ 64 <537600000>;
170                         opp-supported-hw = <0x70>;
171                         clock-latency-ns = <200000>;
172                         opp-peak-kBps = <192000>;
173                 };
174                 opp-614400000 {
175                         opp-hz = /bits/ 64 <614400000>;
176                         opp-supported-hw = <0x70>;
177                         clock-latency-ns = <200000>;
178                         opp-peak-kBps = <192000>;
179                 };
180                 opp-691200000 {
181                         opp-hz = /bits/ 64 <691200000>;
182                         opp-supported-hw = <0x70>;
183                         clock-latency-ns = <200000>;
184                         opp-peak-kBps = <307200>;
185                 };
186                 opp-748800000 {
187                         opp-hz = /bits/ 64 <748800000>;
188                         opp-supported-hw = <0x70>;
189                         clock-latency-ns = <200000>;
190                         opp-peak-kBps = <307200>;
191                 };
192                 opp-825600000 {
193                         opp-hz = /bits/ 64 <825600000>;
194                         opp-supported-hw = <0x70>;
195                         clock-latency-ns = <200000>;
196                         opp-peak-kBps = <384000>;
197                 };
198                 opp-902400000 {
199                         opp-hz = /bits/ 64 <902400000>;
200                         opp-supported-hw = <0x70>;
201                         clock-latency-ns = <200000>;
202                         opp-peak-kBps = <441600>;
203                 };
204                 opp-979200000 {
205                         opp-hz = /bits/ 64 <979200000>;
206                         opp-supported-hw = <0x70>;
207                         clock-latency-ns = <200000>;
208                         opp-peak-kBps = <441600>;
209                 };
210                 opp-1056000000 {
211                         opp-hz = /bits/ 64 <1056000000>;
212                         opp-supported-hw = <0x70>;
213                         clock-latency-ns = <200000>;
214                         opp-peak-kBps = <537600>;
215                 };
216                 opp-1132800000 {
217                         opp-hz = /bits/ 64 <1132800000>;
218                         opp-supported-hw = <0x70>;
219                         clock-latency-ns = <200000>;
220                         opp-peak-kBps = <614400>;
221                 };
222                 opp-1209600000 {
223                         opp-hz = /bits/ 64 <1209600000>;
224                         opp-supported-hw = <0x70>;
225                         clock-latency-ns = <200000>;
226                         opp-peak-kBps = <691200>;
227                 };
228                 opp-1286400000 {
229                         opp-hz = /bits/ 64 <1286400000>;
230                         opp-supported-hw = <0x70>;
231                         clock-latency-ns = <200000>;
232                         opp-peak-kBps = <768000>;
233                 };
234                 opp-1363200000 {
235                         opp-hz = /bits/ 64 <1363200000>;
236                         opp-supported-hw = <0x70>;
237                         clock-latency-ns = <200000>;
238                         opp-peak-kBps = <844800>;
239                 };
240                 opp-1440000000 {
241                         opp-hz = /bits/ 64 <1440000000>;
242                         opp-supported-hw = <0x70>;
243                         clock-latency-ns = <200000>;
244                         opp-peak-kBps = <902400>;
245                 };
246                 opp-1516800000 {
247                         opp-hz = /bits/ 64 <1516800000>;
248                         opp-supported-hw = <0x70>;
249                         clock-latency-ns = <200000>;
250                         opp-peak-kBps = <979200>;
251                 };
252                 opp-1593600000 {
253                         opp-hz = /bits/ 64 <1593600000>;
254                         opp-supported-hw = <0x70>;
255                         clock-latency-ns = <200000>;
256                         opp-peak-kBps = <1056000>;
257                 };
258                 opp-1670400000 {
259                         opp-hz = /bits/ 64 <1670400000>;
260                         opp-supported-hw = <0x70>;
261                         clock-latency-ns = <200000>;
262                         opp-peak-kBps = <1132800>;
263                 };
264                 opp-1747200000 {
265                         opp-hz = /bits/ 64 <1747200000>;
266                         opp-supported-hw = <0x70>;
267                         clock-latency-ns = <200000>;
268                         opp-peak-kBps = <1190400>;
269                 };
270                 opp-1824000000 {
271                         opp-hz = /bits/ 64 <1824000000>;
272                         opp-supported-hw = <0x70>;
273                         clock-latency-ns = <200000>;
274                         opp-peak-kBps = <1286400>;
275                 };
276                 opp-1900800000 {
277                         opp-hz = /bits/ 64 <1900800000>;
278                         opp-supported-hw = <0x70>;
279                         clock-latency-ns = <200000>;
280                         opp-peak-kBps = <1363200>;
281                 };
282                 opp-1977600000 {
283                         opp-hz = /bits/ 64 <1977600000>;
284                         opp-supported-hw = <0x30>;
285                         clock-latency-ns = <200000>;
286                         opp-peak-kBps = <1440000>;
287                 };
288                 opp-2054400000 {
289                         opp-hz = /bits/ 64 <2054400000>;
290                         opp-supported-hw = <0x30>;
291                         clock-latency-ns = <200000>;
292                         opp-peak-kBps = <1516800>;
293                 };
294                 opp-2150400000 {
295                         opp-hz = /bits/ 64 <2150400000>;
296                         opp-supported-hw = <0x30>;
297                         clock-latency-ns = <200000>;
298                         opp-peak-kBps = <1593600>;
299                 };
300                 opp-2246400000 {
301                         opp-hz = /bits/ 64 <2246400000>;
302                         opp-supported-hw = <0x10>;
303                         clock-latency-ns = <200000>;
304                         opp-peak-kBps = <1593600>;
305                 };
306                 opp-2342400000 {
307                         opp-hz = /bits/ 64 <2342400000>;
308                         opp-supported-hw = <0x10>;
309                         clock-latency-ns = <200000>;
310                         opp-peak-kBps = <1593600>;
311                 };
312         };
313 };
314
315 &gpu_opp_table {
316         /*
317          * Unlike CPU opp tables, the GPU driver does not shift speed bins.
318          *
319          * 652.8 Mhz is available on speed bin 0 only.
320          * 624 Mhz and 560 Mhz are available on speed bins 0 and 1.
321          * All the rest are available on all bins of the hardware (like on
322          * plain 8996).
323          */
324
325         opp-652800000 {
326                 opp-hz = /bits/ 64 <652800000>;
327                 opp-supported-hw = <0x01>;
328         };
329         opp-624000000 {
330                 opp-hz = /bits/ 64 <624000000>;
331                 opp-supported-hw = <0x03>;
332         };
333         opp-560000000 {
334                 opp-hz = /bits/ 64 <560000000>;
335                 opp-supported-hw = <0x03>;
336         };
337         /* The rest is inherited from msm8996 */
338 };
339
340 &cbf {
341         compatible = "qcom,msm8996pro-cbf";
342 };