Message ID | 20241105-sets-bxs-4-64-patch-v1-v1-2-4ed30e865892@imgtec.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | Imagination BXS-4-64 MC1 GPU support | expand |
On Tue, Nov 05, 2024 at 03:58:08PM +0000, Matt Coster wrote: > 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@imgtec.com> > --- > .../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 Just put the outer constraints here and... > 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 ...adjust the constraints in conditional bits. Setting minItems to 1 should be a nop too. Pretty sure what you already had here was actually already sufficient. Cheers, Conor. > + clock-names: > + items: > + - const: core > > examples: > - | > > -- > 2.47.0 >
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: - |
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@imgtec.com> --- .../devicetree/bindings/gpu/img,powervr-rogue.yaml | 27 +++++++++++++++------- 1 file changed, 19 insertions(+), 8 deletions(-)