[PATCH 02/21] dt-bindings: gpu: img: Further constrain clocks

From: Matt Coster
Date: Tue Nov 05 2024 - 11:02:16 EST


All Imagination GPUs use three clocks: core, mem and sys. All reasonably
modern Imagination GPUs also support a single-clock mode where the SoC
only hooks up core and the other two are derived internally. On GPUs which
support this mode, it is the default and most commonly used integration.

Codify this "1 or 3" constraint in our bindings and hang the specifics off
the vendor compatible string to mirror the integration-time choice.

Signed-off-by: Matt Coster <matt.coster@xxxxxxxxxx>
---
.../devicetree/bindings/gpu/img,powervr-rogue.yaml | 27 +++++++++++++++-------
1 file changed, 19 insertions(+), 8 deletions(-)

diff --git a/Documentation/devicetree/bindings/gpu/img,powervr-rogue.yaml b/Documentation/devicetree/bindings/gpu/img,powervr-rogue.yaml
index ef7070daf213277d0190fe319e202fdc597337d4..6924831d3e9dd9b2b052ca8f9d7228ff25526532 100644
--- a/Documentation/devicetree/bindings/gpu/img,powervr-rogue.yaml
+++ b/Documentation/devicetree/bindings/gpu/img,powervr-rogue.yaml
@@ -30,15 +30,20 @@ properties:
maxItems: 1

clocks:
- minItems: 1
- maxItems: 3
+ oneOf:
+ - minItems: 1
+ maxItems: 1
+ - minItems: 3
+ maxItems: 3

clock-names:
- items:
- - const: core
- - const: mem
- - const: sys
- minItems: 1
+ oneOf:
+ - items:
+ - const: core
+ - items:
+ - const: core
+ - const: mem
+ - const: sys

interrupts:
maxItems: 1
@@ -56,15 +61,21 @@ required:
additionalProperties: false

allOf:
+ # Vendor integrations using a single clock domain
- if:
properties:
compatible:
contains:
- const: ti,am62-gpu
+ anyOf:
+ - const: ti,am62-gpu
then:
properties:
clocks:
+ minItems: 1
maxItems: 1
+ clock-names:
+ items:
+ - const: core

examples:
- |

--
2.47.0