xref: /freebsd/sys/contrib/device-tree/Bindings/gpu/vivante,gc.yaml (revision cfd6422a5217410fbd66f7a7a8a64d9d85e61229)
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
30          slave interface independently)
31    minItems: 1
32    maxItems: 4
33
34  clock-names:
35    items:
36      enum: [ bus, core, shader, reg ]
37    minItems: 1
38    maxItems: 4
39
40  resets:
41    maxItems: 1
42
43  power-domains:
44    maxItems: 1
45
46required:
47  - compatible
48  - reg
49  - interrupts
50  - clocks
51  - clock-names
52
53additionalProperties: false
54
55examples:
56  - |
57    #include <dt-bindings/clock/imx6qdl-clock.h>
58    #include <dt-bindings/interrupt-controller/arm-gic.h>
59    gpu@130000 {
60      compatible = "vivante,gc";
61      reg = <0x00130000 0x4000>;
62      interrupts = <0 9 IRQ_TYPE_LEVEL_HIGH>;
63      clocks = <&clks IMX6QDL_CLK_GPU3D_AXI>,
64               <&clks IMX6QDL_CLK_GPU3D_CORE>,
65               <&clks IMX6QDL_CLK_GPU3D_SHADER>;
66      clock-names = "bus", "core", "shader";
67      power-domains = <&gpc 1>;
68    };
69
70...
71