Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

dt-bindings: display/msm/gpu: describe clocks for each Adreno GPU type

Rather than having a single list with all possible clocks for A3xx-A5xx
define individual Adreno GPU types and corresponding clock lists.

Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
Patchwork: https://patchwork.freedesktop.org/patch/661348/
Link: https://lore.kernel.org/r/20250628-rework-msm-gpu-schema-v1-3-89f818c51b6a@oss.qualcomm.com

+197 -29
+197 -29
Documentation/devicetree/bindings/display/msm/gpu.yaml
··· 146 146 properties: 147 147 compatible: 148 148 contains: 149 - pattern: '^qcom,adreno-[3-5][0-9][0-9]\.[0-9]+$' 150 - 149 + oneOf: 150 + - pattern: '^qcom,adreno-305\.[0-9]+$' 151 + - pattern: '^qcom,adreno-330\.[0-9]+$' 151 152 then: 152 153 properties: 153 154 clocks: 154 - minItems: 2 155 - maxItems: 7 156 - 155 + minItems: 3 156 + maxItems: 3 157 157 clock-names: 158 158 items: 159 - anyOf: 160 - - const: core 161 - description: GPU Core clock 162 - - const: iface 163 - description: GPU Interface clock 164 - - const: mem 165 - description: GPU Memory clock 166 - - const: mem_iface 167 - description: GPU Memory Interface clock 168 - - const: alt_mem_iface 169 - description: GPU Alternative Memory Interface clock 170 - - const: gfx3d 171 - description: GPU 3D engine clock 172 - - const: rbbmtimer 173 - description: GPU RBBM Timer for Adreno 5xx series 174 - - const: rbcpr 175 - description: GPU RB Core Power Reduction clock 176 - - const: alwayson 177 - description: GPU AON clock 178 - minItems: 2 179 - maxItems: 7 159 + - const: core 160 + description: GPU Core clock 161 + - const: iface 162 + description: GPU Interface clock 163 + - const: mem_iface 164 + description: GPU Memory Interface clock 180 165 181 - required: 182 - - clocks 183 - - clock-names 166 + - if: 167 + properties: 168 + compatible: 169 + contains: 170 + pattern: '^qcom,adreno-306\.[0-9]+$' 171 + then: 172 + properties: 173 + clocks: 174 + minItems: 5 175 + maxItems: 6 176 + clock-names: 177 + oneOf: 178 + - items: 179 + - const: core 180 + description: GPU Core clock 181 + - const: iface 182 + description: GPU Interface clock 183 + - const: mem_iface 184 + description: GPU Memory Interface clock 185 + - const: alt_mem_iface 186 + description: GPU Alternative Memory Interface clock 187 + - const: gfx3d 188 + description: GPU 3D engine clock 189 + - items: 190 + - const: core 191 + description: GPU Core clock 192 + - const: iface 193 + description: GPU Interface clock 194 + - const: mem 195 + description: GPU Memory clock 196 + - const: mem_iface 197 + description: GPU Memory Interface clock 198 + - const: alt_mem_iface 199 + description: GPU Alternative Memory Interface clock 200 + - const: gfx3d 201 + description: GPU 3D engine clock 202 + 203 + - if: 204 + properties: 205 + compatible: 206 + contains: 207 + pattern: '^qcom,adreno-320\.[0-9]+$' 208 + then: 209 + properties: 210 + clocks: 211 + minItems: 4 212 + maxItems: 4 213 + clock-names: 214 + items: 215 + - const: core 216 + description: GPU Core clock 217 + - const: iface 218 + description: GPU Interface clock 219 + - const: mem 220 + description: GPU Memory clock 221 + - const: mem_iface 222 + description: GPU Memory Interface clock 223 + 224 + - if: 225 + properties: 226 + compatible: 227 + contains: 228 + pattern: '^qcom,adreno-405\.[0-9]+$' 229 + then: 230 + properties: 231 + clocks: 232 + minItems: 7 233 + maxItems: 7 234 + clock-names: 235 + items: 236 + - const: core 237 + description: GPU Core clock 238 + - const: iface 239 + description: GPU Interface clock 240 + - const: mem 241 + description: GPU Memory clock 242 + - const: mem_iface 243 + description: GPU Memory Interface clock 244 + - const: alt_mem_iface 245 + description: GPU Alternative Memory Interface clock 246 + - const: gfx3d 247 + description: GPU 3D engine clock 248 + - const: rbbmtimer 249 + description: GPU RBBM Timer for Adreno 5xx series 250 + 251 + - if: 252 + properties: 253 + compatible: 254 + contains: 255 + pattern: '^qcom,adreno-506\.[0-9]+$' 256 + then: 257 + properties: 258 + clocks: 259 + minItems: 6 260 + maxItems: 6 261 + clock-names: 262 + items: 263 + - const: core 264 + description: GPU Core clock 265 + - const: iface 266 + description: GPU Interface clock 267 + - const: mem_iface 268 + description: GPU Memory Interface clock 269 + - const: alt_mem_iface 270 + description: GPU Alternative Memory Interface clock 271 + - const: rbbmtimer 272 + description: GPU RBBM Timer for Adreno 5xx series 273 + - const: alwayson 274 + description: GPU AON clock 275 + 276 + - if: 277 + properties: 278 + compatible: 279 + contains: 280 + oneOf: 281 + - pattern: '^qcom,adreno-508\.[0-9]+$' 282 + - pattern: '^qcom,adreno-509\.[0-9]+$' 283 + - pattern: '^qcom,adreno-512\.[0-9]+$' 284 + - pattern: '^qcom,adreno-540\.[0-9]+$' 285 + then: 286 + properties: 287 + clocks: 288 + minItems: 6 289 + maxItems: 6 290 + clock-names: 291 + items: 292 + - const: iface 293 + description: GPU Interface clock 294 + - const: rbbmtimer 295 + description: GPU RBBM Timer for Adreno 5xx series 296 + - const: mem 297 + description: GPU Memory clock 298 + - const: mem_iface 299 + description: GPU Memory Interface clock 300 + - const: rbcpr 301 + description: GPU RB Core Power Reduction clock 302 + - const: core 303 + description: GPU Core clock 304 + 305 + - if: 306 + properties: 307 + compatible: 308 + contains: 309 + pattern: '^qcom,adreno-510\.[0-9]+$' 310 + then: 311 + properties: 312 + clocks: 313 + minItems: 6 314 + maxItems: 6 315 + clock-names: 316 + items: 317 + - const: core 318 + description: GPU Core clock 319 + - const: iface 320 + description: GPU Interface clock 321 + - const: mem 322 + description: GPU Memory clock 323 + - const: mem_iface 324 + description: GPU Memory Interface clock 325 + - const: rbbmtimer 326 + description: GPU RBBM Timer for Adreno 5xx series 327 + - const: alwayson 328 + description: GPU AON clock 329 + 330 + - if: 331 + properties: 332 + compatible: 333 + contains: 334 + pattern: '^qcom,adreno-530\.[0-9]+$' 335 + then: 336 + properties: 337 + clocks: 338 + minItems: 5 339 + maxItems: 5 340 + clock-names: 341 + items: 342 + - const: core 343 + description: GPU Core clock 344 + - const: iface 345 + description: GPU Interface clock 346 + - const: rbbmtimer 347 + description: GPU RBBM Timer for Adreno 5xx series 348 + - const: mem 349 + description: GPU Memory clock 350 + - const: mem_iface 351 + description: GPU Memory Interface clock 184 352 185 353 - if: 186 354 properties: