1# SPDX-License-Identifier: GPL-2.0
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/gpu/vivante,gc.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Vivante GPU Bindings
8
9description: Vivante GPU core devices
10
11maintainers:
12  - Lucas Stach <l.stach@pengutronix.de>
13
14properties:
15  compatible:
16    const: vivante,gc
17
18  reg:
19    maxItems: 1
20
21  interrupts:
22    maxItems: 1
23
24  clocks:
25    items:
26      - description: AXI/master interface clock
27      - description: GPU core clock
28      - description: Shader clock (only required if GPU has feature PIPE_3D)
29      - description: AHB/slave interface clock (only required if GPU can gate slave interface independently)
30    minItems: 1
31    maxItems: 4
32
33  clock-names:
34    items:
35      enum: [ bus, core, shader, reg ]
36    minItems: 1
37    maxItems: 4
38
39  resets:
40    maxItems: 1
41
42  power-domains:
43    maxItems: 1
44
45required:
46  - compatible
47  - reg
48  - interrupts
49  - clocks
50  - clock-names
51
52additionalProperties: false
53
54examples:
55  - |
56    #include <dt-bindings/clock/imx6qdl-clock.h>
57    #include <dt-bindings/interrupt-controller/arm-gic.h>
58    gpu@130000 {
59      compatible = "vivante,gc";
60      reg = <0x00130000 0x4000>;
61      interrupts = <0 9 IRQ_TYPE_LEVEL_HIGH>;
62      clocks = <&clks IMX6QDL_CLK_GPU3D_AXI>,
63               <&clks IMX6QDL_CLK_GPU3D_CORE>,
64               <&clks IMX6QDL_CLK_GPU3D_SHADER>;
65      clock-names = "bus", "core", "shader";
66      power-domains = <&gpc 1>;
67    };
68
69...
70