summaryrefslogtreecommitdiffstats
path: root/dts/Bindings/gpu/img,powervr-sgx.yaml
blob: f5898b04381cb625c968827762d133d50b9703f1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
# Copyright (c) 2023 Imagination Technologies Ltd.
# Copyright (C) 2024 Texas Instruments Incorporated - https://www.ti.com/
%YAML 1.2
---
$id: http://devicetree.org/schemas/gpu/img,powervr-sgx.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Imagination Technologies PowerVR SGX GPUs

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

properties:
  compatible:
    oneOf:
      - items:
          - enum:
              - ti,omap3430-gpu # Rev 121
              - ti,omap3630-gpu # Rev 125
          - const: img,powervr-sgx530
      - items:
          - enum:
              - ingenic,jz4780-gpu # Rev 130
              - ti,omap4430-gpu # Rev 120
          - const: img,powervr-sgx540
      - items:
          - enum:
              - allwinner,sun6i-a31-gpu # MP2 Rev 115
              - ti,omap4470-gpu # MP1 Rev 112
              - ti,omap5432-gpu # MP2 Rev 105
              - ti,am5728-gpu # MP2 Rev 116
              - ti,am6548-gpu # MP1 Rev 117
          - const: img,powervr-sgx544

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  clocks:
    minItems: 1
    maxItems: 3

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

  power-domains:
    maxItems: 1

required:
  - compatible
  - reg
  - interrupts

allOf:
  - if:
      properties:
        compatible:
          contains:
            const: ti,am6548-gpu
    then:
      required:
        - power-domains
    else:
      properties:
        power-domains: false
  - if:
      properties:
        compatible:
          contains:
            enum:
              - allwinner,sun6i-a31-gpu
              - ingenic,jz4780-gpu
    then:
      required:
        - clocks
        - clock-names
    else:
      properties:
        clocks: false
        clock-names: false
  - if:
      properties:
        compatible:
          contains:
            const: allwinner,sun6i-a31-gpu
    then:
      properties:
        clocks:
          minItems: 2
          maxItems: 2
        clock-names:
          minItems: 2
          maxItems: 2
  - if:
      properties:
        compatible:
          contains:
            const: ingenic,jz4780-gpu
    then:
      properties:
        clocks:
          maxItems: 1
        clock-names:
          maxItems: 1

additionalProperties: false

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@7000000 {
        compatible = "ti,am6548-gpu", "img,powervr-sgx544";
        reg = <0x7000000 0x10000>;
        interrupts = <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>;
        power-domains = <&k3_pds 65 TI_SCI_PD_EXCLUSIVE>;
    };

  - |
    #include <dt-bindings/interrupt-controller/irq.h>
    #include <dt-bindings/interrupt-controller/arm-gic.h>

    gpu: gpu@1c40000 {
        compatible = "allwinner,sun6i-a31-gpu", "img,powervr-sgx544";
        reg = <0x01c40000 0x10000>;
        interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
        clocks = <&ccu 1>, <&ccu 2>;
        clock-names = "core", "mem";
    };