18898c974SYassine Oudjana// SPDX-License-Identifier: BSD-3-Clause
28898c974SYassine Oudjana/*
38898c974SYassine Oudjana * Copyright (c) 2022, Linaro Limited
48898c974SYassine Oudjana */
58898c974SYassine Oudjana
68898c974SYassine Oudjana#include "msm8996.dtsi"
78898c974SYassine Oudjana
88898c974SYassine Oudjana/ {
98898c974SYassine Oudjana	/delete-node/ opp-table-cluster0;
108898c974SYassine Oudjana	/delete-node/ opp-table-cluster1;
118898c974SYassine Oudjana
128898c974SYassine Oudjana	/*
138898c974SYassine Oudjana	 * On MSM8996 Pro the cpufreq driver shifts speed bins into the high
148898c974SYassine Oudjana	 * nibble of supported hw, so speed bin 0 becomes 0x10, speed bin 1
158898c974SYassine Oudjana	 * becomes 0x20, speed 2 becomes 0x40.
168898c974SYassine Oudjana	 */
178898c974SYassine Oudjana
188898c974SYassine Oudjana	cluster0_opp: opp-table-cluster0 {
198898c974SYassine Oudjana		compatible = "operating-points-v2-kryo-cpu";
208898c974SYassine Oudjana		nvmem-cells = <&speedbin_efuse>;
218898c974SYassine Oudjana		opp-shared;
228898c974SYassine Oudjana
238898c974SYassine Oudjana		opp-307200000 {
248898c974SYassine Oudjana			opp-hz = /bits/ 64 <307200000>;
258898c974SYassine Oudjana			opp-supported-hw = <0x70>;
268898c974SYassine Oudjana			clock-latency-ns = <200000>;
27*34354cc9SYassine Oudjana			opp-peak-kBps = <192000>;
288898c974SYassine Oudjana		};
298898c974SYassine Oudjana		opp-384000000 {
308898c974SYassine Oudjana			opp-hz = /bits/ 64 <384000000>;
318898c974SYassine Oudjana			opp-supported-hw = <0x70>;
328898c974SYassine Oudjana			clock-latency-ns = <200000>;
33*34354cc9SYassine Oudjana			opp-peak-kBps = <192000>;
348898c974SYassine Oudjana		};
358898c974SYassine Oudjana		opp-460800000 {
368898c974SYassine Oudjana			opp-hz = /bits/ 64 <460800000>;
378898c974SYassine Oudjana			opp-supported-hw = <0x70>;
388898c974SYassine Oudjana			clock-latency-ns = <200000>;
39*34354cc9SYassine Oudjana			opp-peak-kBps = <192000>;
408898c974SYassine Oudjana		};
418898c974SYassine Oudjana		opp-537600000 {
428898c974SYassine Oudjana			opp-hz = /bits/ 64 <537600000>;
438898c974SYassine Oudjana			opp-supported-hw = <0x70>;
448898c974SYassine Oudjana			clock-latency-ns = <200000>;
45*34354cc9SYassine Oudjana			opp-peak-kBps = <192000>;
468898c974SYassine Oudjana		};
478898c974SYassine Oudjana		opp-614400000 {
488898c974SYassine Oudjana			opp-hz = /bits/ 64 <614400000>;
498898c974SYassine Oudjana			opp-supported-hw = <0x70>;
508898c974SYassine Oudjana			clock-latency-ns = <200000>;
51*34354cc9SYassine Oudjana			opp-peak-kBps = <192000>;
528898c974SYassine Oudjana		};
538898c974SYassine Oudjana		opp-691200000 {
548898c974SYassine Oudjana			opp-hz = /bits/ 64 <691200000>;
558898c974SYassine Oudjana			opp-supported-hw = <0x70>;
568898c974SYassine Oudjana			clock-latency-ns = <200000>;
57*34354cc9SYassine Oudjana			opp-peak-kBps = <307200>;
588898c974SYassine Oudjana		};
598898c974SYassine Oudjana		opp-768000000 {
608898c974SYassine Oudjana			opp-hz = /bits/ 64 <768000000>;
618898c974SYassine Oudjana			opp-supported-hw = <0x70>;
628898c974SYassine Oudjana			clock-latency-ns = <200000>;
63*34354cc9SYassine Oudjana			opp-peak-kBps = <307200>;
648898c974SYassine Oudjana		};
658898c974SYassine Oudjana		opp-844800000 {
668898c974SYassine Oudjana			opp-hz = /bits/ 64 <844800000>;
678898c974SYassine Oudjana			opp-supported-hw = <0x70>;
688898c974SYassine Oudjana			clock-latency-ns = <200000>;
69*34354cc9SYassine Oudjana			opp-peak-kBps = <384000>;
708898c974SYassine Oudjana		};
718898c974SYassine Oudjana		opp-902400000 {
728898c974SYassine Oudjana			opp-hz = /bits/ 64 <902400000>;
738898c974SYassine Oudjana			opp-supported-hw = <0x70>;
748898c974SYassine Oudjana			clock-latency-ns = <200000>;
75*34354cc9SYassine Oudjana			opp-peak-kBps = <441600>;
768898c974SYassine Oudjana		};
778898c974SYassine Oudjana		opp-979200000 {
788898c974SYassine Oudjana			opp-hz = /bits/ 64 <979200000>;
798898c974SYassine Oudjana			opp-supported-hw = <0x70>;
808898c974SYassine Oudjana			clock-latency-ns = <200000>;
81*34354cc9SYassine Oudjana			opp-peak-kBps = <537600>;
828898c974SYassine Oudjana		};
838898c974SYassine Oudjana		opp-1056000000 {
848898c974SYassine Oudjana			opp-hz = /bits/ 64 <1056000000>;
858898c974SYassine Oudjana			opp-supported-hw = <0x70>;
868898c974SYassine Oudjana			clock-latency-ns = <200000>;
87*34354cc9SYassine Oudjana			opp-peak-kBps = <614400>;
888898c974SYassine Oudjana		};
898898c974SYassine Oudjana		opp-1132800000 {
908898c974SYassine Oudjana			opp-hz = /bits/ 64 <1132800000>;
918898c974SYassine Oudjana			opp-supported-hw = <0x70>;
928898c974SYassine Oudjana			clock-latency-ns = <200000>;
93*34354cc9SYassine Oudjana			opp-peak-kBps = <691200>;
948898c974SYassine Oudjana		};
958898c974SYassine Oudjana		opp-1209600000 {
968898c974SYassine Oudjana			opp-hz = /bits/ 64 <1209600000>;
978898c974SYassine Oudjana			opp-supported-hw = <0x70>;
988898c974SYassine Oudjana			clock-latency-ns = <200000>;
99*34354cc9SYassine Oudjana			opp-peak-kBps = <768000>;
1008898c974SYassine Oudjana		};
1018898c974SYassine Oudjana		opp-1286400000 {
1028898c974SYassine Oudjana			opp-hz = /bits/ 64 <1286400000>;
1038898c974SYassine Oudjana			opp-supported-hw = <0x70>;
1048898c974SYassine Oudjana			clock-latency-ns = <200000>;
105*34354cc9SYassine Oudjana			opp-peak-kBps = <844800>;
1068898c974SYassine Oudjana		};
1078898c974SYassine Oudjana		opp-1363200000 {
1088898c974SYassine Oudjana			opp-hz = /bits/ 64 <1363200000>;
1098898c974SYassine Oudjana			opp-supported-hw = <0x70>;
1108898c974SYassine Oudjana			clock-latency-ns = <200000>;
111*34354cc9SYassine Oudjana			opp-peak-kBps = <902400>;
1128898c974SYassine Oudjana		};
1138898c974SYassine Oudjana		opp-1440000000 {
1148898c974SYassine Oudjana			opp-hz = /bits/ 64 <1440000000>;
1158898c974SYassine Oudjana			opp-supported-hw = <0x70>;
1168898c974SYassine Oudjana			clock-latency-ns = <200000>;
117*34354cc9SYassine Oudjana			opp-peak-kBps = <979200>;
1188898c974SYassine Oudjana		};
1198898c974SYassine Oudjana		opp-1516800000 {
1208898c974SYassine Oudjana			opp-hz = /bits/ 64 <1516800000>;
1218898c974SYassine Oudjana			opp-supported-hw = <0x70>;
1228898c974SYassine Oudjana			clock-latency-ns = <200000>;
123*34354cc9SYassine Oudjana			opp-peak-kBps = <1132800>;
1248898c974SYassine Oudjana		};
1258898c974SYassine Oudjana		opp-1593600000 {
1268898c974SYassine Oudjana			opp-hz = /bits/ 64 <1593600000>;
1278898c974SYassine Oudjana			opp-supported-hw = <0x70>;
1288898c974SYassine Oudjana			clock-latency-ns = <200000>;
129*34354cc9SYassine Oudjana			opp-peak-kBps = <1190400>;
1308898c974SYassine Oudjana		};
1318898c974SYassine Oudjana		opp-1996800000 {
1328898c974SYassine Oudjana			opp-hz = /bits/ 64 <1996800000>;
1338898c974SYassine Oudjana			opp-supported-hw = <0x20>;
1348898c974SYassine Oudjana			clock-latency-ns = <200000>;
135*34354cc9SYassine Oudjana			opp-peak-kBps = <1516800>;
1368898c974SYassine Oudjana		};
1378898c974SYassine Oudjana		opp-2188800000 {
1388898c974SYassine Oudjana			opp-hz = /bits/ 64 <2188800000>;
1398898c974SYassine Oudjana			opp-supported-hw = <0x10>;
1408898c974SYassine Oudjana			clock-latency-ns = <200000>;
141*34354cc9SYassine Oudjana			opp-peak-kBps = <1593600>;
1428898c974SYassine Oudjana		};
1438898c974SYassine Oudjana	};
1448898c974SYassine Oudjana
1458898c974SYassine Oudjana	cluster1_opp: opp-table-cluster1 {
1468898c974SYassine Oudjana		compatible = "operating-points-v2-kryo-cpu";
1478898c974SYassine Oudjana		nvmem-cells = <&speedbin_efuse>;
1488898c974SYassine Oudjana		opp-shared;
1498898c974SYassine Oudjana
1508898c974SYassine Oudjana		opp-307200000 {
1518898c974SYassine Oudjana			opp-hz = /bits/ 64 <307200000>;
1528898c974SYassine Oudjana			opp-supported-hw = <0x70>;
1538898c974SYassine Oudjana			clock-latency-ns = <200000>;
154*34354cc9SYassine Oudjana			opp-peak-kBps = <192000>;
1558898c974SYassine Oudjana		};
1568898c974SYassine Oudjana		opp-384000000 {
1578898c974SYassine Oudjana			opp-hz = /bits/ 64 <384000000>;
1588898c974SYassine Oudjana			opp-supported-hw = <0x70>;
1598898c974SYassine Oudjana			clock-latency-ns = <200000>;
160*34354cc9SYassine Oudjana			opp-peak-kBps = <192000>;
1618898c974SYassine Oudjana		};
1628898c974SYassine Oudjana		opp-460800000 {
1638898c974SYassine Oudjana			opp-hz = /bits/ 64 <460800000>;
1648898c974SYassine Oudjana			opp-supported-hw = <0x70>;
1658898c974SYassine Oudjana			clock-latency-ns = <200000>;
166*34354cc9SYassine Oudjana			opp-peak-kBps = <192000>;
1678898c974SYassine Oudjana		};
1688898c974SYassine Oudjana		opp-537600000 {
1698898c974SYassine Oudjana			opp-hz = /bits/ 64 <537600000>;
1708898c974SYassine Oudjana			opp-supported-hw = <0x70>;
1718898c974SYassine Oudjana			clock-latency-ns = <200000>;
172*34354cc9SYassine Oudjana			opp-peak-kBps = <192000>;
1738898c974SYassine Oudjana		};
1748898c974SYassine Oudjana		opp-614400000 {
1758898c974SYassine Oudjana			opp-hz = /bits/ 64 <614400000>;
1768898c974SYassine Oudjana			opp-supported-hw = <0x70>;
1778898c974SYassine Oudjana			clock-latency-ns = <200000>;
178*34354cc9SYassine Oudjana			opp-peak-kBps = <192000>;
1798898c974SYassine Oudjana		};
1808898c974SYassine Oudjana		opp-691200000 {
1818898c974SYassine Oudjana			opp-hz = /bits/ 64 <691200000>;
1828898c974SYassine Oudjana			opp-supported-hw = <0x70>;
1838898c974SYassine Oudjana			clock-latency-ns = <200000>;
184*34354cc9SYassine Oudjana			opp-peak-kBps = <307200>;
1858898c974SYassine Oudjana		};
1868898c974SYassine Oudjana		opp-748800000 {
1878898c974SYassine Oudjana			opp-hz = /bits/ 64 <748800000>;
1888898c974SYassine Oudjana			opp-supported-hw = <0x70>;
1898898c974SYassine Oudjana			clock-latency-ns = <200000>;
190*34354cc9SYassine Oudjana			opp-peak-kBps = <307200>;
1918898c974SYassine Oudjana		};
1928898c974SYassine Oudjana		opp-825600000 {
1938898c974SYassine Oudjana			opp-hz = /bits/ 64 <825600000>;
1948898c974SYassine Oudjana			opp-supported-hw = <0x70>;
1958898c974SYassine Oudjana			clock-latency-ns = <200000>;
196*34354cc9SYassine Oudjana			opp-peak-kBps = <384000>;
1978898c974SYassine Oudjana		};
1988898c974SYassine Oudjana		opp-902400000 {
1998898c974SYassine Oudjana			opp-hz = /bits/ 64 <902400000>;
2008898c974SYassine Oudjana			opp-supported-hw = <0x70>;
2018898c974SYassine Oudjana			clock-latency-ns = <200000>;
202*34354cc9SYassine Oudjana			opp-peak-kBps = <441600>;
2038898c974SYassine Oudjana		};
2048898c974SYassine Oudjana		opp-979200000 {
2058898c974SYassine Oudjana			opp-hz = /bits/ 64 <979200000>;
2068898c974SYassine Oudjana			opp-supported-hw = <0x70>;
2078898c974SYassine Oudjana			clock-latency-ns = <200000>;
208*34354cc9SYassine Oudjana			opp-peak-kBps = <441600>;
2098898c974SYassine Oudjana		};
2108898c974SYassine Oudjana		opp-1056000000 {
2118898c974SYassine Oudjana			opp-hz = /bits/ 64 <1056000000>;
2128898c974SYassine Oudjana			opp-supported-hw = <0x70>;
2138898c974SYassine Oudjana			clock-latency-ns = <200000>;
214*34354cc9SYassine Oudjana			opp-peak-kBps = <537600>;
2158898c974SYassine Oudjana		};
2168898c974SYassine Oudjana		opp-1132800000 {
2178898c974SYassine Oudjana			opp-hz = /bits/ 64 <1132800000>;
2188898c974SYassine Oudjana			opp-supported-hw = <0x70>;
2198898c974SYassine Oudjana			clock-latency-ns = <200000>;
220*34354cc9SYassine Oudjana			opp-peak-kBps = <614400>;
2218898c974SYassine Oudjana		};
2228898c974SYassine Oudjana		opp-1209600000 {
2238898c974SYassine Oudjana			opp-hz = /bits/ 64 <1209600000>;
2248898c974SYassine Oudjana			opp-supported-hw = <0x70>;
2258898c974SYassine Oudjana			clock-latency-ns = <200000>;
226*34354cc9SYassine Oudjana			opp-peak-kBps = <691200>;
2278898c974SYassine Oudjana		};
2288898c974SYassine Oudjana		opp-1286400000 {
2298898c974SYassine Oudjana			opp-hz = /bits/ 64 <1286400000>;
2308898c974SYassine Oudjana			opp-supported-hw = <0x70>;
2318898c974SYassine Oudjana			clock-latency-ns = <200000>;
232*34354cc9SYassine Oudjana			opp-peak-kBps = <768000>;
2338898c974SYassine Oudjana		};
2348898c974SYassine Oudjana		opp-1363200000 {
2358898c974SYassine Oudjana			opp-hz = /bits/ 64 <1363200000>;
2368898c974SYassine Oudjana			opp-supported-hw = <0x70>;
2378898c974SYassine Oudjana			clock-latency-ns = <200000>;
238*34354cc9SYassine Oudjana			opp-peak-kBps = <844800>;
2398898c974SYassine Oudjana		};
2408898c974SYassine Oudjana		opp-1440000000 {
2418898c974SYassine Oudjana			opp-hz = /bits/ 64 <1440000000>;
2428898c974SYassine Oudjana			opp-supported-hw = <0x70>;
2438898c974SYassine Oudjana			clock-latency-ns = <200000>;
244*34354cc9SYassine Oudjana			opp-peak-kBps = <902400>;
2458898c974SYassine Oudjana		};
2468898c974SYassine Oudjana		opp-1516800000 {
2478898c974SYassine Oudjana			opp-hz = /bits/ 64 <1516800000>;
2488898c974SYassine Oudjana			opp-supported-hw = <0x70>;
2498898c974SYassine Oudjana			clock-latency-ns = <200000>;
250*34354cc9SYassine Oudjana			opp-peak-kBps = <979200>;
2518898c974SYassine Oudjana		};
2528898c974SYassine Oudjana		opp-1593600000 {
2538898c974SYassine Oudjana			opp-hz = /bits/ 64 <1593600000>;
2548898c974SYassine Oudjana			opp-supported-hw = <0x70>;
2558898c974SYassine Oudjana			clock-latency-ns = <200000>;
256*34354cc9SYassine Oudjana			opp-peak-kBps = <1056000>;
2578898c974SYassine Oudjana		};
2588898c974SYassine Oudjana		opp-1670400000 {
2598898c974SYassine Oudjana			opp-hz = /bits/ 64 <1670400000>;
2608898c974SYassine Oudjana			opp-supported-hw = <0x70>;
2618898c974SYassine Oudjana			clock-latency-ns = <200000>;
262*34354cc9SYassine Oudjana			opp-peak-kBps = <1132800>;
2638898c974SYassine Oudjana		};
2648898c974SYassine Oudjana		opp-1747200000 {
2658898c974SYassine Oudjana			opp-hz = /bits/ 64 <1747200000>;
2668898c974SYassine Oudjana			opp-supported-hw = <0x70>;
2678898c974SYassine Oudjana			clock-latency-ns = <200000>;
268*34354cc9SYassine Oudjana			opp-peak-kBps = <1190400>;
2698898c974SYassine Oudjana		};
2708898c974SYassine Oudjana		opp-1824000000 {
2718898c974SYassine Oudjana			opp-hz = /bits/ 64 <1824000000>;
2728898c974SYassine Oudjana			opp-supported-hw = <0x70>;
2738898c974SYassine Oudjana			clock-latency-ns = <200000>;
274*34354cc9SYassine Oudjana			opp-peak-kBps = <1286400>;
2758898c974SYassine Oudjana		};
2768898c974SYassine Oudjana		opp-1900800000 {
2778898c974SYassine Oudjana			opp-hz = /bits/ 64 <1900800000>;
2788898c974SYassine Oudjana			opp-supported-hw = <0x70>;
2798898c974SYassine Oudjana			clock-latency-ns = <200000>;
280*34354cc9SYassine Oudjana			opp-peak-kBps = <1363200>;
2818898c974SYassine Oudjana		};
2828898c974SYassine Oudjana		opp-1977600000 {
2838898c974SYassine Oudjana			opp-hz = /bits/ 64 <1977600000>;
2848898c974SYassine Oudjana			opp-supported-hw = <0x30>;
2858898c974SYassine Oudjana			clock-latency-ns = <200000>;
286*34354cc9SYassine Oudjana			opp-peak-kBps = <1440000>;
2878898c974SYassine Oudjana		};
2888898c974SYassine Oudjana		opp-2054400000 {
2898898c974SYassine Oudjana			opp-hz = /bits/ 64 <2054400000>;
2908898c974SYassine Oudjana			opp-supported-hw = <0x30>;
2918898c974SYassine Oudjana			clock-latency-ns = <200000>;
292*34354cc9SYassine Oudjana			opp-peak-kBps = <1516800>;
2938898c974SYassine Oudjana		};
2948898c974SYassine Oudjana		opp-2150400000 {
2958898c974SYassine Oudjana			opp-hz = /bits/ 64 <2150400000>;
2968898c974SYassine Oudjana			opp-supported-hw = <0x30>;
2978898c974SYassine Oudjana			clock-latency-ns = <200000>;
298*34354cc9SYassine Oudjana			opp-peak-kBps = <1593600>;
2998898c974SYassine Oudjana		};
3008898c974SYassine Oudjana		opp-2246400000 {
3018898c974SYassine Oudjana			opp-hz = /bits/ 64 <2246400000>;
3028898c974SYassine Oudjana			opp-supported-hw = <0x10>;
3038898c974SYassine Oudjana			clock-latency-ns = <200000>;
304*34354cc9SYassine Oudjana			opp-peak-kBps = <1593600>;
3058898c974SYassine Oudjana		};
3068898c974SYassine Oudjana		opp-2342400000 {
3078898c974SYassine Oudjana			opp-hz = /bits/ 64 <2342400000>;
3088898c974SYassine Oudjana			opp-supported-hw = <0x10>;
3098898c974SYassine Oudjana			clock-latency-ns = <200000>;
310*34354cc9SYassine Oudjana			opp-peak-kBps = <1593600>;
3118898c974SYassine Oudjana		};
3128898c974SYassine Oudjana	};
3138898c974SYassine Oudjana};
3141ae55cafSDmitry Baryshkov
3151ae55cafSDmitry Baryshkov&gpu_opp_table {
3161ae55cafSDmitry Baryshkov	/*
3171ae55cafSDmitry Baryshkov	 * Unlike CPU opp tables, the GPU driver does not shift speed bins.
3181ae55cafSDmitry Baryshkov	 *
3191ae55cafSDmitry Baryshkov	 * 652.8 Mhz is available on speed bin 0 only.
3201ae55cafSDmitry Baryshkov	 * 624 Mhz and 560 Mhz are available on speed bins 0 and 1.
3211ae55cafSDmitry Baryshkov	 * All the rest are available on all bins of the hardware (like on
3221ae55cafSDmitry Baryshkov	 * plain 8996).
3231ae55cafSDmitry Baryshkov	 */
3241ae55cafSDmitry Baryshkov
3251ae55cafSDmitry Baryshkov	opp-652800000 {
3261ae55cafSDmitry Baryshkov		opp-hz = /bits/ 64 <652800000>;
3271ae55cafSDmitry Baryshkov		opp-supported-hw = <0x01>;
3281ae55cafSDmitry Baryshkov	};
3291ae55cafSDmitry Baryshkov	opp-624000000 {
3301ae55cafSDmitry Baryshkov		opp-hz = /bits/ 64 <624000000>;
3311ae55cafSDmitry Baryshkov		opp-supported-hw = <0x03>;
3321ae55cafSDmitry Baryshkov	};
3331ae55cafSDmitry Baryshkov	opp-560000000 {
3341ae55cafSDmitry Baryshkov		opp-hz = /bits/ 64 <560000000>;
3351ae55cafSDmitry Baryshkov		opp-supported-hw = <0x03>;
3361ae55cafSDmitry Baryshkov	};
3371ae55cafSDmitry Baryshkov	/* The rest is inherited from msm8996 */
3381ae55cafSDmitry Baryshkov};
339*34354cc9SYassine Oudjana
340*34354cc9SYassine Oudjana&cbf {
341*34354cc9SYassine Oudjana	compatible = "qcom,msm8996pro-cbf";
342*34354cc9SYassine Oudjana};
343