xref: /linux/Documentation/devicetree/bindings/gpu/img,powervr-rogue.yaml (revision 6f17ab9a63e670bd62a287f95e3982f99eafd77e)
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              - thead,th1520-gpu
27          - const: img,img-bxm-4-64
28          - const: img,img-rogue
29      - items:
30          - enum:
31              - ti,j721s2-gpu
32          - const: img,img-bxs-4-64
33          - const: img,img-rogue
34
35      # This legacy combination of compatible strings was introduced early on
36      # before the more specific GPU identifiers were used.
37      - items:
38          - enum:
39              - ti,am62-gpu
40          - const: img,img-axe
41        deprecated: true
42
43  reg:
44    maxItems: 1
45
46  clocks:
47    minItems: 1
48    maxItems: 3
49
50  clock-names:
51    items:
52      - const: core
53      - const: mem
54      - const: sys
55    minItems: 1
56
57  interrupts:
58    maxItems: 1
59
60  power-domains:
61    minItems: 1
62    maxItems: 2
63
64  power-domain-names:
65    items:
66      - const: a
67      - const: b
68    minItems: 1
69
70  dma-coherent: true
71
72  resets:
73    maxItems: 1
74
75required:
76  - compatible
77  - reg
78  - clocks
79  - clock-names
80  - interrupts
81
82additionalProperties: false
83
84allOf:
85  - if:
86      properties:
87        compatible:
88          contains:
89            const: img,img-axe-1-16m
90    then:
91      properties:
92        power-domains:
93          items:
94            - description: Power domain A
95        power-domain-names:
96          maxItems: 1
97      required:
98        - power-domains
99        - power-domain-names
100
101  - if:
102      properties:
103        compatible:
104          contains:
105            const: thead,th1520-gpu
106    then:
107      properties:
108        clocks:
109          minItems: 3
110        clock-names:
111          minItems: 3
112        power-domains:
113          items:
114            - description: The single, unified power domain for the GPU on the
115                TH1520 SoC, integrating all internal IP power domains.
116        power-domain-names: false
117      required:
118        - power-domains
119
120  - if:
121      properties:
122        compatible:
123          contains:
124            const: img,img-bxs-4-64
125    then:
126      properties:
127        power-domains:
128          items:
129            - description: Power domain A
130            - description: Power domain B
131        power-domain-names:
132          minItems: 2
133      required:
134        - power-domains
135        - power-domain-names
136
137  - if:
138      properties:
139        compatible:
140          contains:
141            enum:
142              - ti,am62-gpu
143              - ti,j721s2-gpu
144    then:
145      properties:
146        clocks:
147          maxItems: 1
148
149examples:
150  - |
151    #include <dt-bindings/interrupt-controller/irq.h>
152    #include <dt-bindings/interrupt-controller/arm-gic.h>
153    #include <dt-bindings/soc/ti,sci_pm_domain.h>
154
155    gpu@fd00000 {
156        compatible = "ti,am62-gpu", "img,img-axe-1-16m", "img,img-axe",
157                     "img,img-rogue";
158        reg = <0x0fd00000 0x20000>;
159        clocks = <&k3_clks 187 0>;
160        clock-names = "core";
161        interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
162        power-domains = <&k3_pds 187 TI_SCI_PD_EXCLUSIVE>;
163        power-domain-names = "a";
164    };
165