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