On Wed, 20 Aug 2025 at 10:56, Michal Wilczynski <m.wilczyn...@samsung.com> wrote: > > Rework the PowerVR Rogue GPU binding to use an explicit, per variant > style for defining power domain properties and add support for the > T-HEAD TH1520 SoC's GPU. > > To improve clarity and precision, the binding is refactored so that > power domain items are listed explicitly for each variant [1]. The > previous method relied on an implicit, positional mapping between the > `power-domains` and `power-domain-names` properties. This change > replaces the generic rules with self contained if/then blocks for each > GPU variant, making the relationship between power domains and their > names explicit and unambiguous. > > The generic if block for img,img-rogue, which previously required > power-domains and power-domain-names for all variants, is removed. > Instead, each specific GPU variant now defines its own power domain > requirements within a self-contained if/then block, making the schema > more explicit. > > This new structure is then used to add support for the > `thead,th1520-gpu`. While its BXM-4-64 IP has two conceptual power > domains, the TH1520 SoC integrates them behind a single power gate. The > new binding models this with a specific rule that enforces a single > `power-domains` entry and disallows the `power-domain-names` property. > > Link: > https://lore.kernel.org/all/4d79c8dd-c5fb-442c-ac65-37e7176b0...@linaro.org/ > [1] > > Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlow...@linaro.org> > Signed-off-by: Michal Wilczynski <m.wilczyn...@samsung.com>
Even if you already have the necessary ack, feel free to add: Reviewed-by: Ulf Hansson <ulf.hans...@linaro.org> > --- > .../devicetree/bindings/gpu/img,powervr-rogue.yaml | 37 > +++++++++++++++++----- > 1 file changed, 29 insertions(+), 8 deletions(-) > > diff --git a/Documentation/devicetree/bindings/gpu/img,powervr-rogue.yaml > b/Documentation/devicetree/bindings/gpu/img,powervr-rogue.yaml > index > 4450e2e73b3ccf74d29f0e31e2e6687d7cbe5d65..c87d7bece0ecd6331fc7d1a479bbdaf68bac6e6d > 100644 > --- a/Documentation/devicetree/bindings/gpu/img,powervr-rogue.yaml > +++ b/Documentation/devicetree/bindings/gpu/img,powervr-rogue.yaml > @@ -21,6 +21,11 @@ properties: > # work with newer dts. > - const: img,img-axe > - const: img,img-rogue > + - items: > + - enum: > + - thead,th1520-gpu > + - const: img,img-bxm-4-64 > + - const: img,img-rogue > - items: > - enum: > - ti,j721s2-gpu > @@ -77,14 +82,18 @@ required: > additionalProperties: false > > allOf: > - # Constraints added alongside the new compatible strings that would > otherwise > - # create an ABI break. > - if: > properties: > compatible: > contains: > - const: img,img-rogue > + const: img,img-axe-1-16m > then: > + properties: > + power-domains: > + items: > + - description: Power domain A > + power-domain-names: > + maxItems: 1 > required: > - power-domains > - power-domain-names > @@ -93,13 +102,20 @@ allOf: > properties: > compatible: > contains: > - const: img,img-axe-1-16m > + const: thead,th1520-gpu > then: > properties: > + clocks: > + minItems: 3 > + clock-names: > + minItems: 3 > power-domains: > - maxItems: 1 > - power-domain-names: > - maxItems: 1 > + items: > + - description: The single, unified power domain for the GPU on > the > + TH1520 SoC, integrating all internal IP power domains. > + power-domain-names: false > + required: > + - power-domains > > - if: > properties: > @@ -109,9 +125,14 @@ allOf: > then: > properties: > power-domains: > - minItems: 2 > + items: > + - description: Power domain A > + - description: Power domain B > power-domain-names: > minItems: 2 > + required: > + - power-domains > + - power-domain-names > > - if: > properties: > > -- > 2.34.1 >