xref: /linux/Documentation/devicetree/bindings/gpu/img,powervr-rogue.yaml (revision e7e86d7697c6ed1dbbde18d7185c35b6967945ed)
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2# Copyright (c) 2023 Imagination Technologies Ltd.
3%YAML 1.2
4---
5$id: http://devicetree.org/schemas/gpu/img,powervr-rogue.yaml#
6$schema: http://devicetree.org/meta-schemas/core.yaml#
7
8title: Imagination Technologies PowerVR and IMG Rogue GPUs
9
10maintainers:
11  - Frank Binns <frank.binns@imgtec.com>
12
13properties:
14  compatible:
15    oneOf:
16      - items:
17          - enum:
18              - ti,am62-gpu
19          - const: img,img-axe-1-16m
20          # This deprecated element must be kept around to allow old kernels to
21          # work with newer dts.
22          - const: img,img-axe
23          - const: img,img-rogue
24      - items:
25          - enum:
26              - ti,j721s2-gpu
27          - const: img,img-bxs-4-64
28          - const: img,img-rogue
29
30      # This legacy combination of compatible strings was introduced early on
31      # before the more specific GPU identifiers were used.
32      - items:
33          - enum:
34              - ti,am62-gpu
35          - const: img,img-axe
36        deprecated: true
37
38  reg:
39    maxItems: 1
40
41  clocks:
42    minItems: 1
43    maxItems: 3
44
45  clock-names:
46    items:
47      - const: core
48      - const: mem
49      - const: sys
50    minItems: 1
51
52  interrupts:
53    maxItems: 1
54
55  power-domains:
56    minItems: 1
57    maxItems: 2
58
59  power-domain-names:
60    items:
61      - const: a
62      - const: b
63    minItems: 1
64
65  dma-coherent: true
66
67  resets:
68    maxItems: 1
69
70required:
71  - compatible
72  - reg
73  - clocks
74  - clock-names
75  - interrupts
76
77additionalProperties: false
78
79allOf:
80  # Constraints added alongside the new compatible strings that would otherwise
81  # create an ABI break.
82  - if:
83      properties:
84        compatible:
85          contains:
86            const: img,img-rogue
87    then:
88      required:
89        - power-domains
90        - power-domain-names
91
92  - if:
93      properties:
94        compatible:
95          contains:
96            const: img,img-axe-1-16m
97    then:
98      properties:
99        power-domains:
100          maxItems: 1
101        power-domain-names:
102          maxItems: 1
103
104  - if:
105      properties:
106        compatible:
107          contains:
108            const: img,img-bxs-4-64
109    then:
110      properties:
111        power-domains:
112          minItems: 2
113        power-domain-names:
114          minItems: 2
115
116  - if:
117      properties:
118        compatible:
119          contains:
120            enum:
121              - ti,am62-gpu
122              - ti,j721s2-gpu
123    then:
124      properties:
125        clocks:
126          maxItems: 1
127
128examples:
129  - |
130    #include <dt-bindings/interrupt-controller/irq.h>
131    #include <dt-bindings/interrupt-controller/arm-gic.h>
132    #include <dt-bindings/soc/ti,sci_pm_domain.h>
133
134    gpu@fd00000 {
135        compatible = "ti,am62-gpu", "img,img-axe-1-16m", "img,img-axe",
136                     "img,img-rogue";
137        reg = <0x0fd00000 0x20000>;
138        clocks = <&k3_clks 187 0>;
139        clock-names = "core";
140        interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
141        power-domains = <&k3_pds 187 TI_SCI_PD_EXCLUSIVE>;
142        power-domain-names = "a";
143    };
144