| // SPDX-License-Identifier: BSD-3-Clause |
| /* |
| * Copyright (c) 2022, Linaro Limited |
| */ |
| |
| #include "msm8996.dtsi" |
| |
| / { |
| /delete-node/ opp-table-cluster0; |
| /delete-node/ opp-table-cluster1; |
| |
| /* |
| * On MSM8996 Pro the cpufreq driver shifts speed bins into the high |
| * nibble of supported hw, so speed bin 0 becomes 0x10, speed bin 1 |
| * becomes 0x20, speed 2 becomes 0x40. |
| */ |
| |
| cluster0_opp: opp-table-cluster0 { |
| compatible = "operating-points-v2-kryo-cpu"; |
| nvmem-cells = <&speedbin_efuse>; |
| opp-shared; |
| |
| opp-307200000 { |
| opp-hz = /bits/ 64 <307200000>; |
| opp-supported-hw = <0x70>; |
| clock-latency-ns = <200000>; |
| }; |
| opp-384000000 { |
| opp-hz = /bits/ 64 <384000000>; |
| opp-supported-hw = <0x70>; |
| clock-latency-ns = <200000>; |
| }; |
| opp-460800000 { |
| opp-hz = /bits/ 64 <460800000>; |
| opp-supported-hw = <0x70>; |
| clock-latency-ns = <200000>; |
| }; |
| opp-537600000 { |
| opp-hz = /bits/ 64 <537600000>; |
| opp-supported-hw = <0x70>; |
| clock-latency-ns = <200000>; |
| }; |
| opp-614400000 { |
| opp-hz = /bits/ 64 <614400000>; |
| opp-supported-hw = <0x70>; |
| clock-latency-ns = <200000>; |
| }; |
| opp-691200000 { |
| opp-hz = /bits/ 64 <691200000>; |
| opp-supported-hw = <0x70>; |
| clock-latency-ns = <200000>; |
| }; |
| opp-768000000 { |
| opp-hz = /bits/ 64 <768000000>; |
| opp-supported-hw = <0x70>; |
| clock-latency-ns = <200000>; |
| }; |
| opp-844800000 { |
| opp-hz = /bits/ 64 <844800000>; |
| opp-supported-hw = <0x70>; |
| clock-latency-ns = <200000>; |
| }; |
| opp-902400000 { |
| opp-hz = /bits/ 64 <902400000>; |
| opp-supported-hw = <0x70>; |
| clock-latency-ns = <200000>; |
| }; |
| opp-979200000 { |
| opp-hz = /bits/ 64 <979200000>; |
| opp-supported-hw = <0x70>; |
| clock-latency-ns = <200000>; |
| }; |
| opp-1056000000 { |
| opp-hz = /bits/ 64 <1056000000>; |
| opp-supported-hw = <0x70>; |
| clock-latency-ns = <200000>; |
| }; |
| opp-1132800000 { |
| opp-hz = /bits/ 64 <1132800000>; |
| opp-supported-hw = <0x70>; |
| clock-latency-ns = <200000>; |
| }; |
| opp-1209600000 { |
| opp-hz = /bits/ 64 <1209600000>; |
| opp-supported-hw = <0x70>; |
| clock-latency-ns = <200000>; |
| }; |
| opp-1286400000 { |
| opp-hz = /bits/ 64 <1286400000>; |
| opp-supported-hw = <0x70>; |
| clock-latency-ns = <200000>; |
| }; |
| opp-1363200000 { |
| opp-hz = /bits/ 64 <1363200000>; |
| opp-supported-hw = <0x70>; |
| clock-latency-ns = <200000>; |
| }; |
| opp-1440000000 { |
| opp-hz = /bits/ 64 <1440000000>; |
| opp-supported-hw = <0x70>; |
| clock-latency-ns = <200000>; |
| }; |
| opp-1516800000 { |
| opp-hz = /bits/ 64 <1516800000>; |
| opp-supported-hw = <0x70>; |
| clock-latency-ns = <200000>; |
| }; |
| opp-1593600000 { |
| opp-hz = /bits/ 64 <1593600000>; |
| opp-supported-hw = <0x70>; |
| clock-latency-ns = <200000>; |
| }; |
| opp-1996800000 { |
| opp-hz = /bits/ 64 <1996800000>; |
| opp-supported-hw = <0x20>; |
| clock-latency-ns = <200000>; |
| }; |
| opp-2188800000 { |
| opp-hz = /bits/ 64 <2188800000>; |
| opp-supported-hw = <0x10>; |
| clock-latency-ns = <200000>; |
| }; |
| }; |
| |
| cluster1_opp: opp-table-cluster1 { |
| compatible = "operating-points-v2-kryo-cpu"; |
| nvmem-cells = <&speedbin_efuse>; |
| opp-shared; |
| |
| opp-307200000 { |
| opp-hz = /bits/ 64 <307200000>; |
| opp-supported-hw = <0x70>; |
| clock-latency-ns = <200000>; |
| }; |
| opp-384000000 { |
| opp-hz = /bits/ 64 <384000000>; |
| opp-supported-hw = <0x70>; |
| clock-latency-ns = <200000>; |
| }; |
| opp-460800000 { |
| opp-hz = /bits/ 64 <460800000>; |
| opp-supported-hw = <0x70>; |
| clock-latency-ns = <200000>; |
| }; |
| opp-537600000 { |
| opp-hz = /bits/ 64 <537600000>; |
| opp-supported-hw = <0x70>; |
| clock-latency-ns = <200000>; |
| }; |
| opp-614400000 { |
| opp-hz = /bits/ 64 <614400000>; |
| opp-supported-hw = <0x70>; |
| clock-latency-ns = <200000>; |
| }; |
| opp-691200000 { |
| opp-hz = /bits/ 64 <691200000>; |
| opp-supported-hw = <0x70>; |
| clock-latency-ns = <200000>; |
| }; |
| opp-748800000 { |
| opp-hz = /bits/ 64 <748800000>; |
| opp-supported-hw = <0x70>; |
| clock-latency-ns = <200000>; |
| }; |
| opp-825600000 { |
| opp-hz = /bits/ 64 <825600000>; |
| opp-supported-hw = <0x70>; |
| clock-latency-ns = <200000>; |
| }; |
| opp-902400000 { |
| opp-hz = /bits/ 64 <902400000>; |
| opp-supported-hw = <0x70>; |
| clock-latency-ns = <200000>; |
| }; |
| opp-979200000 { |
| opp-hz = /bits/ 64 <979200000>; |
| opp-supported-hw = <0x70>; |
| clock-latency-ns = <200000>; |
| }; |
| opp-1056000000 { |
| opp-hz = /bits/ 64 <1056000000>; |
| opp-supported-hw = <0x70>; |
| clock-latency-ns = <200000>; |
| }; |
| opp-1132800000 { |
| opp-hz = /bits/ 64 <1132800000>; |
| opp-supported-hw = <0x70>; |
| clock-latency-ns = <200000>; |
| }; |
| opp-1209600000 { |
| opp-hz = /bits/ 64 <1209600000>; |
| opp-supported-hw = <0x70>; |
| clock-latency-ns = <200000>; |
| }; |
| opp-1286400000 { |
| opp-hz = /bits/ 64 <1286400000>; |
| opp-supported-hw = <0x70>; |
| clock-latency-ns = <200000>; |
| }; |
| opp-1363200000 { |
| opp-hz = /bits/ 64 <1363200000>; |
| opp-supported-hw = <0x70>; |
| clock-latency-ns = <200000>; |
| }; |
| opp-1440000000 { |
| opp-hz = /bits/ 64 <1440000000>; |
| opp-supported-hw = <0x70>; |
| clock-latency-ns = <200000>; |
| }; |
| opp-1516800000 { |
| opp-hz = /bits/ 64 <1516800000>; |
| opp-supported-hw = <0x70>; |
| clock-latency-ns = <200000>; |
| }; |
| opp-1593600000 { |
| opp-hz = /bits/ 64 <1593600000>; |
| opp-supported-hw = <0x70>; |
| clock-latency-ns = <200000>; |
| }; |
| opp-1670400000 { |
| opp-hz = /bits/ 64 <1670400000>; |
| opp-supported-hw = <0x70>; |
| clock-latency-ns = <200000>; |
| }; |
| opp-1747200000 { |
| opp-hz = /bits/ 64 <1747200000>; |
| opp-supported-hw = <0x70>; |
| clock-latency-ns = <200000>; |
| }; |
| opp-1824000000 { |
| opp-hz = /bits/ 64 <1824000000>; |
| opp-supported-hw = <0x70>; |
| clock-latency-ns = <200000>; |
| }; |
| opp-1900800000 { |
| opp-hz = /bits/ 64 <1900800000>; |
| opp-supported-hw = <0x70>; |
| clock-latency-ns = <200000>; |
| }; |
| opp-1977600000 { |
| opp-hz = /bits/ 64 <1977600000>; |
| opp-supported-hw = <0x30>; |
| clock-latency-ns = <200000>; |
| }; |
| opp-2054400000 { |
| opp-hz = /bits/ 64 <2054400000>; |
| opp-supported-hw = <0x30>; |
| clock-latency-ns = <200000>; |
| }; |
| opp-2150400000 { |
| opp-hz = /bits/ 64 <2150400000>; |
| opp-supported-hw = <0x30>; |
| clock-latency-ns = <200000>; |
| }; |
| opp-2246400000 { |
| opp-hz = /bits/ 64 <2246400000>; |
| opp-supported-hw = <0x10>; |
| clock-latency-ns = <200000>; |
| }; |
| opp-2342400000 { |
| opp-hz = /bits/ 64 <2342400000>; |
| opp-supported-hw = <0x10>; |
| clock-latency-ns = <200000>; |
| }; |
| }; |
| }; |
| |
| &gpu_opp_table { |
| /* |
| * Unlike CPU opp tables, the GPU driver does not shift speed bins. |
| * |
| * 652.8 Mhz is available on speed bin 0 only. |
| * 624 Mhz and 560 Mhz are available on speed bins 0 and 1. |
| * All the rest are available on all bins of the hardware (like on |
| * plain 8996). |
| */ |
| |
| opp-652800000 { |
| opp-hz = /bits/ 64 <652800000>; |
| opp-supported-hw = <0x01>; |
| }; |
| opp-624000000 { |
| opp-hz = /bits/ 64 <624000000>; |
| opp-supported-hw = <0x03>; |
| }; |
| opp-560000000 { |
| opp-hz = /bits/ 64 <560000000>; |
| opp-supported-hw = <0x03>; |
| }; |
| /* The rest is inherited from msm8996 */ |
| }; |