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>;
278898c974SYassine Oudjana		};
288898c974SYassine Oudjana		opp-384000000 {
298898c974SYassine Oudjana			opp-hz = /bits/ 64 <384000000>;
308898c974SYassine Oudjana			opp-supported-hw = <0x70>;
318898c974SYassine Oudjana			clock-latency-ns = <200000>;
328898c974SYassine Oudjana		};
338898c974SYassine Oudjana		opp-460800000 {
348898c974SYassine Oudjana			opp-hz = /bits/ 64 <460800000>;
358898c974SYassine Oudjana			opp-supported-hw = <0x70>;
368898c974SYassine Oudjana			clock-latency-ns = <200000>;
378898c974SYassine Oudjana		};
388898c974SYassine Oudjana		opp-537600000 {
398898c974SYassine Oudjana			opp-hz = /bits/ 64 <537600000>;
408898c974SYassine Oudjana			opp-supported-hw = <0x70>;
418898c974SYassine Oudjana			clock-latency-ns = <200000>;
428898c974SYassine Oudjana		};
438898c974SYassine Oudjana		opp-614400000 {
448898c974SYassine Oudjana			opp-hz = /bits/ 64 <614400000>;
458898c974SYassine Oudjana			opp-supported-hw = <0x70>;
468898c974SYassine Oudjana			clock-latency-ns = <200000>;
478898c974SYassine Oudjana		};
488898c974SYassine Oudjana		opp-691200000 {
498898c974SYassine Oudjana			opp-hz = /bits/ 64 <691200000>;
508898c974SYassine Oudjana			opp-supported-hw = <0x70>;
518898c974SYassine Oudjana			clock-latency-ns = <200000>;
528898c974SYassine Oudjana		};
538898c974SYassine Oudjana		opp-768000000 {
548898c974SYassine Oudjana			opp-hz = /bits/ 64 <768000000>;
558898c974SYassine Oudjana			opp-supported-hw = <0x70>;
568898c974SYassine Oudjana			clock-latency-ns = <200000>;
578898c974SYassine Oudjana		};
588898c974SYassine Oudjana		opp-844800000 {
598898c974SYassine Oudjana			opp-hz = /bits/ 64 <844800000>;
608898c974SYassine Oudjana			opp-supported-hw = <0x70>;
618898c974SYassine Oudjana			clock-latency-ns = <200000>;
628898c974SYassine Oudjana		};
638898c974SYassine Oudjana		opp-902400000 {
648898c974SYassine Oudjana			opp-hz = /bits/ 64 <902400000>;
658898c974SYassine Oudjana			opp-supported-hw = <0x70>;
668898c974SYassine Oudjana			clock-latency-ns = <200000>;
678898c974SYassine Oudjana		};
688898c974SYassine Oudjana		opp-979200000 {
698898c974SYassine Oudjana			opp-hz = /bits/ 64 <979200000>;
708898c974SYassine Oudjana			opp-supported-hw = <0x70>;
718898c974SYassine Oudjana			clock-latency-ns = <200000>;
728898c974SYassine Oudjana		};
738898c974SYassine Oudjana		opp-1056000000 {
748898c974SYassine Oudjana			opp-hz = /bits/ 64 <1056000000>;
758898c974SYassine Oudjana			opp-supported-hw = <0x70>;
768898c974SYassine Oudjana			clock-latency-ns = <200000>;
778898c974SYassine Oudjana		};
788898c974SYassine Oudjana		opp-1132800000 {
798898c974SYassine Oudjana			opp-hz = /bits/ 64 <1132800000>;
808898c974SYassine Oudjana			opp-supported-hw = <0x70>;
818898c974SYassine Oudjana			clock-latency-ns = <200000>;
828898c974SYassine Oudjana		};
838898c974SYassine Oudjana		opp-1209600000 {
848898c974SYassine Oudjana			opp-hz = /bits/ 64 <1209600000>;
858898c974SYassine Oudjana			opp-supported-hw = <0x70>;
868898c974SYassine Oudjana			clock-latency-ns = <200000>;
878898c974SYassine Oudjana		};
888898c974SYassine Oudjana		opp-1286400000 {
898898c974SYassine Oudjana			opp-hz = /bits/ 64 <1286400000>;
908898c974SYassine Oudjana			opp-supported-hw = <0x70>;
918898c974SYassine Oudjana			clock-latency-ns = <200000>;
928898c974SYassine Oudjana		};
938898c974SYassine Oudjana		opp-1363200000 {
948898c974SYassine Oudjana			opp-hz = /bits/ 64 <1363200000>;
958898c974SYassine Oudjana			opp-supported-hw = <0x70>;
968898c974SYassine Oudjana			clock-latency-ns = <200000>;
978898c974SYassine Oudjana		};
988898c974SYassine Oudjana		opp-1440000000 {
998898c974SYassine Oudjana			opp-hz = /bits/ 64 <1440000000>;
1008898c974SYassine Oudjana			opp-supported-hw = <0x70>;
1018898c974SYassine Oudjana			clock-latency-ns = <200000>;
1028898c974SYassine Oudjana		};
1038898c974SYassine Oudjana		opp-1516800000 {
1048898c974SYassine Oudjana			opp-hz = /bits/ 64 <1516800000>;
1058898c974SYassine Oudjana			opp-supported-hw = <0x70>;
1068898c974SYassine Oudjana			clock-latency-ns = <200000>;
1078898c974SYassine Oudjana		};
1088898c974SYassine Oudjana		opp-1593600000 {
1098898c974SYassine Oudjana			opp-hz = /bits/ 64 <1593600000>;
1108898c974SYassine Oudjana			opp-supported-hw = <0x70>;
1118898c974SYassine Oudjana			clock-latency-ns = <200000>;
1128898c974SYassine Oudjana		};
1138898c974SYassine Oudjana		opp-1996800000 {
1148898c974SYassine Oudjana			opp-hz = /bits/ 64 <1996800000>;
1158898c974SYassine Oudjana			opp-supported-hw = <0x20>;
1168898c974SYassine Oudjana			clock-latency-ns = <200000>;
1178898c974SYassine Oudjana		};
1188898c974SYassine Oudjana		opp-2188800000 {
1198898c974SYassine Oudjana			opp-hz = /bits/ 64 <2188800000>;
1208898c974SYassine Oudjana			opp-supported-hw = <0x10>;
1218898c974SYassine Oudjana			clock-latency-ns = <200000>;
1228898c974SYassine Oudjana		};
1238898c974SYassine Oudjana	};
1248898c974SYassine Oudjana
1258898c974SYassine Oudjana	cluster1_opp: opp-table-cluster1 {
1268898c974SYassine Oudjana		compatible = "operating-points-v2-kryo-cpu";
1278898c974SYassine Oudjana		nvmem-cells = <&speedbin_efuse>;
1288898c974SYassine Oudjana		opp-shared;
1298898c974SYassine Oudjana
1308898c974SYassine Oudjana		opp-307200000 {
1318898c974SYassine Oudjana			opp-hz = /bits/ 64 <307200000>;
1328898c974SYassine Oudjana			opp-supported-hw = <0x70>;
1338898c974SYassine Oudjana			clock-latency-ns = <200000>;
1348898c974SYassine Oudjana		};
1358898c974SYassine Oudjana		opp-384000000 {
1368898c974SYassine Oudjana			opp-hz = /bits/ 64 <384000000>;
1378898c974SYassine Oudjana			opp-supported-hw = <0x70>;
1388898c974SYassine Oudjana			clock-latency-ns = <200000>;
1398898c974SYassine Oudjana		};
1408898c974SYassine Oudjana		opp-460800000 {
1418898c974SYassine Oudjana			opp-hz = /bits/ 64 <460800000>;
1428898c974SYassine Oudjana			opp-supported-hw = <0x70>;
1438898c974SYassine Oudjana			clock-latency-ns = <200000>;
1448898c974SYassine Oudjana		};
1458898c974SYassine Oudjana		opp-537600000 {
1468898c974SYassine Oudjana			opp-hz = /bits/ 64 <537600000>;
1478898c974SYassine Oudjana			opp-supported-hw = <0x70>;
1488898c974SYassine Oudjana			clock-latency-ns = <200000>;
1498898c974SYassine Oudjana		};
1508898c974SYassine Oudjana		opp-614400000 {
1518898c974SYassine Oudjana			opp-hz = /bits/ 64 <614400000>;
1528898c974SYassine Oudjana			opp-supported-hw = <0x70>;
1538898c974SYassine Oudjana			clock-latency-ns = <200000>;
1548898c974SYassine Oudjana		};
1558898c974SYassine Oudjana		opp-691200000 {
1568898c974SYassine Oudjana			opp-hz = /bits/ 64 <691200000>;
1578898c974SYassine Oudjana			opp-supported-hw = <0x70>;
1588898c974SYassine Oudjana			clock-latency-ns = <200000>;
1598898c974SYassine Oudjana		};
1608898c974SYassine Oudjana		opp-748800000 {
1618898c974SYassine Oudjana			opp-hz = /bits/ 64 <748800000>;
1628898c974SYassine Oudjana			opp-supported-hw = <0x70>;
1638898c974SYassine Oudjana			clock-latency-ns = <200000>;
1648898c974SYassine Oudjana		};
1658898c974SYassine Oudjana		opp-825600000 {
1668898c974SYassine Oudjana			opp-hz = /bits/ 64 <825600000>;
1678898c974SYassine Oudjana			opp-supported-hw = <0x70>;
1688898c974SYassine Oudjana			clock-latency-ns = <200000>;
1698898c974SYassine Oudjana		};
1708898c974SYassine Oudjana		opp-902400000 {
1718898c974SYassine Oudjana			opp-hz = /bits/ 64 <902400000>;
1728898c974SYassine Oudjana			opp-supported-hw = <0x70>;
1738898c974SYassine Oudjana			clock-latency-ns = <200000>;
1748898c974SYassine Oudjana		};
1758898c974SYassine Oudjana		opp-979200000 {
1768898c974SYassine Oudjana			opp-hz = /bits/ 64 <979200000>;
1778898c974SYassine Oudjana			opp-supported-hw = <0x70>;
1788898c974SYassine Oudjana			clock-latency-ns = <200000>;
1798898c974SYassine Oudjana		};
1808898c974SYassine Oudjana		opp-1056000000 {
1818898c974SYassine Oudjana			opp-hz = /bits/ 64 <1056000000>;
1828898c974SYassine Oudjana			opp-supported-hw = <0x70>;
1838898c974SYassine Oudjana			clock-latency-ns = <200000>;
1848898c974SYassine Oudjana		};
1858898c974SYassine Oudjana		opp-1132800000 {
1868898c974SYassine Oudjana			opp-hz = /bits/ 64 <1132800000>;
1878898c974SYassine Oudjana			opp-supported-hw = <0x70>;
1888898c974SYassine Oudjana			clock-latency-ns = <200000>;
1898898c974SYassine Oudjana		};
1908898c974SYassine Oudjana		opp-1209600000 {
1918898c974SYassine Oudjana			opp-hz = /bits/ 64 <1209600000>;
1928898c974SYassine Oudjana			opp-supported-hw = <0x70>;
1938898c974SYassine Oudjana			clock-latency-ns = <200000>;
1948898c974SYassine Oudjana		};
1958898c974SYassine Oudjana		opp-1286400000 {
1968898c974SYassine Oudjana			opp-hz = /bits/ 64 <1286400000>;
1978898c974SYassine Oudjana			opp-supported-hw = <0x70>;
1988898c974SYassine Oudjana			clock-latency-ns = <200000>;
1998898c974SYassine Oudjana		};
2008898c974SYassine Oudjana		opp-1363200000 {
2018898c974SYassine Oudjana			opp-hz = /bits/ 64 <1363200000>;
2028898c974SYassine Oudjana			opp-supported-hw = <0x70>;
2038898c974SYassine Oudjana			clock-latency-ns = <200000>;
2048898c974SYassine Oudjana		};
2058898c974SYassine Oudjana		opp-1440000000 {
2068898c974SYassine Oudjana			opp-hz = /bits/ 64 <1440000000>;
2078898c974SYassine Oudjana			opp-supported-hw = <0x70>;
2088898c974SYassine Oudjana			clock-latency-ns = <200000>;
2098898c974SYassine Oudjana		};
2108898c974SYassine Oudjana		opp-1516800000 {
2118898c974SYassine Oudjana			opp-hz = /bits/ 64 <1516800000>;
2128898c974SYassine Oudjana			opp-supported-hw = <0x70>;
2138898c974SYassine Oudjana			clock-latency-ns = <200000>;
2148898c974SYassine Oudjana		};
2158898c974SYassine Oudjana		opp-1593600000 {
2168898c974SYassine Oudjana			opp-hz = /bits/ 64 <1593600000>;
2178898c974SYassine Oudjana			opp-supported-hw = <0x70>;
2188898c974SYassine Oudjana			clock-latency-ns = <200000>;
2198898c974SYassine Oudjana		};
2208898c974SYassine Oudjana		opp-1670400000 {
2218898c974SYassine Oudjana			opp-hz = /bits/ 64 <1670400000>;
2228898c974SYassine Oudjana			opp-supported-hw = <0x70>;
2238898c974SYassine Oudjana			clock-latency-ns = <200000>;
2248898c974SYassine Oudjana		};
2258898c974SYassine Oudjana		opp-1747200000 {
2268898c974SYassine Oudjana			opp-hz = /bits/ 64 <1747200000>;
2278898c974SYassine Oudjana			opp-supported-hw = <0x70>;
2288898c974SYassine Oudjana			clock-latency-ns = <200000>;
2298898c974SYassine Oudjana		};
2308898c974SYassine Oudjana		opp-1824000000 {
2318898c974SYassine Oudjana			opp-hz = /bits/ 64 <1824000000>;
2328898c974SYassine Oudjana			opp-supported-hw = <0x70>;
2338898c974SYassine Oudjana			clock-latency-ns = <200000>;
2348898c974SYassine Oudjana		};
2358898c974SYassine Oudjana		opp-1900800000 {
2368898c974SYassine Oudjana			opp-hz = /bits/ 64 <1900800000>;
2378898c974SYassine Oudjana			opp-supported-hw = <0x70>;
2388898c974SYassine Oudjana			clock-latency-ns = <200000>;
2398898c974SYassine Oudjana		};
2408898c974SYassine Oudjana		opp-1977600000 {
2418898c974SYassine Oudjana			opp-hz = /bits/ 64 <1977600000>;
2428898c974SYassine Oudjana			opp-supported-hw = <0x30>;
2438898c974SYassine Oudjana			clock-latency-ns = <200000>;
2448898c974SYassine Oudjana		};
2458898c974SYassine Oudjana		opp-2054400000 {
2468898c974SYassine Oudjana			opp-hz = /bits/ 64 <2054400000>;
2478898c974SYassine Oudjana			opp-supported-hw = <0x30>;
2488898c974SYassine Oudjana			clock-latency-ns = <200000>;
2498898c974SYassine Oudjana		};
2508898c974SYassine Oudjana		opp-2150400000 {
2518898c974SYassine Oudjana			opp-hz = /bits/ 64 <2150400000>;
2528898c974SYassine Oudjana			opp-supported-hw = <0x30>;
2538898c974SYassine Oudjana			clock-latency-ns = <200000>;
2548898c974SYassine Oudjana		};
2558898c974SYassine Oudjana		opp-2246400000 {
2568898c974SYassine Oudjana			opp-hz = /bits/ 64 <2246400000>;
2578898c974SYassine Oudjana			opp-supported-hw = <0x10>;
2588898c974SYassine Oudjana			clock-latency-ns = <200000>;
2598898c974SYassine Oudjana		};
2608898c974SYassine Oudjana		opp-2342400000 {
2618898c974SYassine Oudjana			opp-hz = /bits/ 64 <2342400000>;
2628898c974SYassine Oudjana			opp-supported-hw = <0x10>;
2638898c974SYassine Oudjana			clock-latency-ns = <200000>;
2648898c974SYassine Oudjana		};
2658898c974SYassine Oudjana	};
2668898c974SYassine Oudjana};
267*1ae55cafSDmitry Baryshkov
268*1ae55cafSDmitry Baryshkov&gpu_opp_table {
269*1ae55cafSDmitry Baryshkov	/*
270*1ae55cafSDmitry Baryshkov	 * Unlike CPU opp tables, the GPU driver does not shift speed bins.
271*1ae55cafSDmitry Baryshkov	 *
272*1ae55cafSDmitry Baryshkov	 * 652.8 Mhz is available on speed bin 0 only.
273*1ae55cafSDmitry Baryshkov	 * 624 Mhz and 560 Mhz are available on speed bins 0 and 1.
274*1ae55cafSDmitry Baryshkov	 * All the rest are available on all bins of the hardware (like on
275*1ae55cafSDmitry Baryshkov	 * plain 8996).
276*1ae55cafSDmitry Baryshkov	 */
277*1ae55cafSDmitry Baryshkov
278*1ae55cafSDmitry Baryshkov	opp-652800000 {
279*1ae55cafSDmitry Baryshkov		opp-hz = /bits/ 64 <652800000>;
280*1ae55cafSDmitry Baryshkov		opp-supported-hw = <0x01>;
281*1ae55cafSDmitry Baryshkov	};
282*1ae55cafSDmitry Baryshkov	opp-624000000 {
283*1ae55cafSDmitry Baryshkov		opp-hz = /bits/ 64 <624000000>;
284*1ae55cafSDmitry Baryshkov		opp-supported-hw = <0x03>;
285*1ae55cafSDmitry Baryshkov	};
286*1ae55cafSDmitry Baryshkov	opp-560000000 {
287*1ae55cafSDmitry Baryshkov		opp-hz = /bits/ 64 <560000000>;
288*1ae55cafSDmitry Baryshkov		opp-supported-hw = <0x03>;
289*1ae55cafSDmitry Baryshkov	};
290*1ae55cafSDmitry Baryshkov	/* The rest is inherited from msm8996 */
291*1ae55cafSDmitry Baryshkov};
292