# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
# Copyright (c) 2023 Imagination Technologies Ltd.
%YAML 1.2
---
$id: http://devicetree.org/schemas/gpu/img,powervr-rogue.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Imagination Technologies PowerVR and IMG Rogue GPUs

maintainers:
  - Frank Binns <frank.binns@imgtec.com>

properties:
  compatible:
    oneOf:
      - items:
          - enum:
              - ti,am62-gpu
          - const: img,img-axe-1-16m
          # This deprecated element must be kept around to allow old kernels to
          # 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
          - const: img,img-bxs-4-64
          - const: img,img-rogue

      # This legacy combination of compatible strings was introduced early on
      # before the more specific GPU identifiers were used.
      - items:
          - enum:
              - ti,am62-gpu
          - const: img,img-axe
        deprecated: true

  reg:
    maxItems: 1

  clocks:
    minItems: 1
    maxItems: 3

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

  interrupts:
    maxItems: 1

  power-domains:
    minItems: 1
    maxItems: 2

  power-domain-names:
    items:
      - const: a
      - const: b
    minItems: 1

  dma-coherent: true

  resets:
    maxItems: 1

required:
  - compatible
  - reg
  - clocks
  - clock-names
  - interrupts

additionalProperties: false

allOf:
  - if:
      properties:
        compatible:
          contains:
            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

  - if:
      properties:
        compatible:
          contains:
            const: thead,th1520-gpu
    then:
      properties:
        clocks:
          minItems: 3
        clock-names:
          minItems: 3
        power-domains:
          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:
        compatible:
          contains:
            const: img,img-bxs-4-64
    then:
      properties:
        power-domains:
          items:
            - description: Power domain A
            - description: Power domain B
        power-domain-names:
          minItems: 2
      required:
        - power-domains
        - power-domain-names

  - if:
      properties:
        compatible:
          contains:
            enum:
              - ti,am62-gpu
              - ti,j721s2-gpu
    then:
      properties:
        clocks:
          maxItems: 1

examples:
  - |
    #include <dt-bindings/interrupt-controller/irq.h>
    #include <dt-bindings/interrupt-controller/arm-gic.h>
    #include <dt-bindings/soc/ti,sci_pm_domain.h>

    gpu@fd00000 {
        compatible = "ti,am62-gpu", "img,img-axe-1-16m", "img,img-axe",
                     "img,img-rogue";
        reg = <0x0fd00000 0x20000>;
        clocks = <&k3_clks 187 0>;
        clock-names = "core";
        interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
        power-domains = <&k3_pds 187 TI_SCI_PD_EXCLUSIVE>;
        power-domain-names = "a";
    };
