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  '#cooling-cells':
25    const: 2
26
27  assigned-clock-parents: true
28  assigned-clock-rates: true
29  assigned-clocks: true
30
31  clocks:
32    items:
33      - description: AXI/master interface clock
34      - description: GPU core clock
35      - description: Shader clock (only required if GPU has feature PIPE_3D)
36      - description: AHB/slave interface clock (only required if GPU can gate
37          slave interface independently)
38    minItems: 1
39    maxItems: 4
40
41  clock-names:
42    items:
43      enum: [ bus, core, shader, reg ]
44    minItems: 1
45    maxItems: 4
46
47  resets:
48    maxItems: 1
49
50  power-domains:
51    maxItems: 1
52
53required:
54  - compatible
55  - reg
56  - interrupts
57  - clocks
58  - clock-names
59
60additionalProperties: false
61
62examples:
63  - |
64    #include <dt-bindings/clock/imx6qdl-clock.h>
65    #include <dt-bindings/interrupt-controller/arm-gic.h>
66    gpu@130000 {
67      compatible = "vivante,gc";
68      reg = <0x00130000 0x4000>;
69      interrupts = <0 9 IRQ_TYPE_LEVEL_HIGH>;
70      clocks = <&clks IMX6QDL_CLK_GPU3D_AXI>,
71               <&clks IMX6QDL_CLK_GPU3D_CORE>,
72               <&clks IMX6QDL_CLK_GPU3D_SHADER>;
73      clock-names = "bus", "core", "shader";
74      power-domains = <&gpc 1>;
75    };
76
77...
78