Unverified Commit 337ebfda authored by Michal Wilczynski's avatar Michal Wilczynski Committed by Matt Coster
Browse files

dt-bindings: gpu: img,powervr-rogue: Add TH1520 GPU support

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-37e7176b0cdd@linaro.org/

 [1]

Reviewed-by: default avatarKrzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: default avatarMatt Coster <matt.coster@imgtec.com>
Reviewed-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
Signed-off-by: default avatarMichal Wilczynski <m.wilczynski@samsung.com>
Link: https://lore.kernel.org/r/20250822-apr_14_for_sending-v13-2-af656f7cc6c3@samsung.com


Signed-off-by: default avatarMatt Coster <matt.coster@imgtec.com>
parent e38e8391
Loading
Loading
Loading
Loading
+29 −8
Original line number Diff line number Diff line
@@ -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: