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