xref: /freebsd/sys/contrib/device-tree/Bindings/gpu/img,powervr-sgx.yaml (revision 01950c46b8155250f64374fb72fc11faa44bf099)
1*01950c46SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*01950c46SEmmanuel Vadot# Copyright (c) 2023 Imagination Technologies Ltd.
3*01950c46SEmmanuel Vadot# Copyright (C) 2024 Texas Instruments Incorporated - https://www.ti.com/
4*01950c46SEmmanuel Vadot%YAML 1.2
5*01950c46SEmmanuel Vadot---
6*01950c46SEmmanuel Vadot$id: http://devicetree.org/schemas/gpu/img,powervr-sgx.yaml#
7*01950c46SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
8*01950c46SEmmanuel Vadot
9*01950c46SEmmanuel Vadottitle: Imagination Technologies PowerVR SGX GPUs
10*01950c46SEmmanuel Vadot
11*01950c46SEmmanuel Vadotmaintainers:
12*01950c46SEmmanuel Vadot  - Frank Binns <frank.binns@imgtec.com>
13*01950c46SEmmanuel Vadot
14*01950c46SEmmanuel Vadotproperties:
15*01950c46SEmmanuel Vadot  compatible:
16*01950c46SEmmanuel Vadot    oneOf:
17*01950c46SEmmanuel Vadot      - items:
18*01950c46SEmmanuel Vadot          - enum:
19*01950c46SEmmanuel Vadot              - ti,omap3430-gpu # Rev 121
20*01950c46SEmmanuel Vadot              - ti,omap3630-gpu # Rev 125
21*01950c46SEmmanuel Vadot          - const: img,powervr-sgx530
22*01950c46SEmmanuel Vadot      - items:
23*01950c46SEmmanuel Vadot          - enum:
24*01950c46SEmmanuel Vadot              - ingenic,jz4780-gpu # Rev 130
25*01950c46SEmmanuel Vadot              - ti,omap4430-gpu # Rev 120
26*01950c46SEmmanuel Vadot          - const: img,powervr-sgx540
27*01950c46SEmmanuel Vadot      - items:
28*01950c46SEmmanuel Vadot          - enum:
29*01950c46SEmmanuel Vadot              - allwinner,sun6i-a31-gpu # MP2 Rev 115
30*01950c46SEmmanuel Vadot              - ti,omap4470-gpu # MP1 Rev 112
31*01950c46SEmmanuel Vadot              - ti,omap5432-gpu # MP2 Rev 105
32*01950c46SEmmanuel Vadot              - ti,am5728-gpu # MP2 Rev 116
33*01950c46SEmmanuel Vadot              - ti,am6548-gpu # MP1 Rev 117
34*01950c46SEmmanuel Vadot          - const: img,powervr-sgx544
35*01950c46SEmmanuel Vadot
36*01950c46SEmmanuel Vadot  reg:
37*01950c46SEmmanuel Vadot    maxItems: 1
38*01950c46SEmmanuel Vadot
39*01950c46SEmmanuel Vadot  interrupts:
40*01950c46SEmmanuel Vadot    maxItems: 1
41*01950c46SEmmanuel Vadot
42*01950c46SEmmanuel Vadot  clocks:
43*01950c46SEmmanuel Vadot    minItems: 1
44*01950c46SEmmanuel Vadot    maxItems: 3
45*01950c46SEmmanuel Vadot
46*01950c46SEmmanuel Vadot  clock-names:
47*01950c46SEmmanuel Vadot    minItems: 1
48*01950c46SEmmanuel Vadot    items:
49*01950c46SEmmanuel Vadot      - const: core
50*01950c46SEmmanuel Vadot      - const: mem
51*01950c46SEmmanuel Vadot      - const: sys
52*01950c46SEmmanuel Vadot
53*01950c46SEmmanuel Vadot  power-domains:
54*01950c46SEmmanuel Vadot    maxItems: 1
55*01950c46SEmmanuel Vadot
56*01950c46SEmmanuel Vadotrequired:
57*01950c46SEmmanuel Vadot  - compatible
58*01950c46SEmmanuel Vadot  - reg
59*01950c46SEmmanuel Vadot  - interrupts
60*01950c46SEmmanuel Vadot
61*01950c46SEmmanuel VadotallOf:
62*01950c46SEmmanuel Vadot  - if:
63*01950c46SEmmanuel Vadot      properties:
64*01950c46SEmmanuel Vadot        compatible:
65*01950c46SEmmanuel Vadot          contains:
66*01950c46SEmmanuel Vadot            const: ti,am6548-gpu
67*01950c46SEmmanuel Vadot    then:
68*01950c46SEmmanuel Vadot      required:
69*01950c46SEmmanuel Vadot        - power-domains
70*01950c46SEmmanuel Vadot    else:
71*01950c46SEmmanuel Vadot      properties:
72*01950c46SEmmanuel Vadot        power-domains: false
73*01950c46SEmmanuel Vadot  - if:
74*01950c46SEmmanuel Vadot      properties:
75*01950c46SEmmanuel Vadot        compatible:
76*01950c46SEmmanuel Vadot          contains:
77*01950c46SEmmanuel Vadot            enum:
78*01950c46SEmmanuel Vadot              - allwinner,sun6i-a31-gpu
79*01950c46SEmmanuel Vadot              - ingenic,jz4780-gpu
80*01950c46SEmmanuel Vadot    then:
81*01950c46SEmmanuel Vadot      required:
82*01950c46SEmmanuel Vadot        - clocks
83*01950c46SEmmanuel Vadot        - clock-names
84*01950c46SEmmanuel Vadot    else:
85*01950c46SEmmanuel Vadot      properties:
86*01950c46SEmmanuel Vadot        clocks: false
87*01950c46SEmmanuel Vadot        clock-names: false
88*01950c46SEmmanuel Vadot  - if:
89*01950c46SEmmanuel Vadot      properties:
90*01950c46SEmmanuel Vadot        compatible:
91*01950c46SEmmanuel Vadot          contains:
92*01950c46SEmmanuel Vadot            const: allwinner,sun6i-a31-gpu
93*01950c46SEmmanuel Vadot    then:
94*01950c46SEmmanuel Vadot      properties:
95*01950c46SEmmanuel Vadot        clocks:
96*01950c46SEmmanuel Vadot          minItems: 2
97*01950c46SEmmanuel Vadot          maxItems: 2
98*01950c46SEmmanuel Vadot        clock-names:
99*01950c46SEmmanuel Vadot          minItems: 2
100*01950c46SEmmanuel Vadot          maxItems: 2
101*01950c46SEmmanuel Vadot  - if:
102*01950c46SEmmanuel Vadot      properties:
103*01950c46SEmmanuel Vadot        compatible:
104*01950c46SEmmanuel Vadot          contains:
105*01950c46SEmmanuel Vadot            const: ingenic,jz4780-gpu
106*01950c46SEmmanuel Vadot    then:
107*01950c46SEmmanuel Vadot      properties:
108*01950c46SEmmanuel Vadot        clocks:
109*01950c46SEmmanuel Vadot          maxItems: 1
110*01950c46SEmmanuel Vadot        clock-names:
111*01950c46SEmmanuel Vadot          maxItems: 1
112*01950c46SEmmanuel Vadot
113*01950c46SEmmanuel VadotadditionalProperties: false
114*01950c46SEmmanuel Vadot
115*01950c46SEmmanuel Vadotexamples:
116*01950c46SEmmanuel Vadot  - |
117*01950c46SEmmanuel Vadot    #include <dt-bindings/interrupt-controller/irq.h>
118*01950c46SEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
119*01950c46SEmmanuel Vadot    #include <dt-bindings/soc/ti,sci_pm_domain.h>
120*01950c46SEmmanuel Vadot
121*01950c46SEmmanuel Vadot    gpu@7000000 {
122*01950c46SEmmanuel Vadot        compatible = "ti,am6548-gpu", "img,powervr-sgx544";
123*01950c46SEmmanuel Vadot        reg = <0x7000000 0x10000>;
124*01950c46SEmmanuel Vadot        interrupts = <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>;
125*01950c46SEmmanuel Vadot        power-domains = <&k3_pds 65 TI_SCI_PD_EXCLUSIVE>;
126*01950c46SEmmanuel Vadot    };
127*01950c46SEmmanuel Vadot
128*01950c46SEmmanuel Vadot  - |
129*01950c46SEmmanuel Vadot    #include <dt-bindings/interrupt-controller/irq.h>
130*01950c46SEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
131*01950c46SEmmanuel Vadot
132*01950c46SEmmanuel Vadot    gpu: gpu@1c40000 {
133*01950c46SEmmanuel Vadot        compatible = "allwinner,sun6i-a31-gpu", "img,powervr-sgx544";
134*01950c46SEmmanuel Vadot        reg = <0x01c40000 0x10000>;
135*01950c46SEmmanuel Vadot        interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
136*01950c46SEmmanuel Vadot        clocks = <&ccu 1>, <&ccu 2>;
137*01950c46SEmmanuel Vadot        clock-names = "core", "mem";
138*01950c46SEmmanuel Vadot    };
139