xref: /linux/Documentation/devicetree/bindings/gpu/apple,agx.yaml (revision 115e74a29b530d121891238e9551c4bcdf7b04b5)
1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/gpu/apple,agx.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Apple SoC GPU
8
9maintainers:
10  - Sasha Finkelstein <fnkl.kernel@gmail.com>
11
12properties:
13  compatible:
14    oneOf:
15      - enum:
16          - apple,agx-g13g
17          - apple,agx-g13s
18          - apple,agx-g14g
19      - items:
20          - enum:
21              - apple,agx-g13c
22              - apple,agx-g13d
23          - const: apple,agx-g13s
24
25  reg:
26    items:
27      - description: GPU coprocessor control registers
28      - description: GPU block MMIO registers
29
30  reg-names:
31    items:
32      - const: asc
33      - const: sgx
34
35  power-domains:
36    maxItems: 1
37
38  mboxes:
39    maxItems: 1
40
41  memory-region:
42    items:
43      - description: Region containing GPU MMU TTBs
44      - description: Region containing GPU MMU page tables
45      - description:
46          Region containing a shared handoff structure for VM
47          management coordination
48      - description: Calibration blob. Mostly power-related configuration
49      - description: Calibration blob. Mostly GPU-related configuration
50      - description: Shared global variables with GPU firmware
51
52  memory-region-names:
53    items:
54      - const: ttbs
55      - const: pagetables
56      - const: handoff
57      - const: hw-cal-a
58      - const: hw-cal-b
59      - const: globals
60
61  apple,firmware-abi:
62    $ref: /schemas/types.yaml#/definitions/uint32-array
63    minItems: 3
64    description:
65      macOS version the current firmware is paired with, used to pick
66      the version of firmware ABI to be used.
67      Bootloader will overwrite this
68
69required:
70  - compatible
71  - reg
72  - mboxes
73  - memory-region
74  - apple,firmware-abi
75
76additionalProperties: false
77
78examples:
79  - |
80    gpu@6400000 {
81        compatible = "apple,agx-g13g";
82        reg = <0x6400000 0x40000>,
83              <0x4000000 0x1000000>;
84        reg-names = "asc", "sgx";
85        mboxes = <&agx_mbox>;
86        power-domains = <&ps_gfx>;
87        memory-region = <&uat_ttbs>, <&uat_pagetables>, <&uat_handoff>,
88                        <&gpu_hw_cal_a>, <&gpu_hw_cal_b>, <&gpu_globals>;
89        memory-region-names = "ttbs", "pagetables", "handoff",
90                              "hw-cal-a", "hw-cal-b", "globals";
91
92        apple,firmware-abi = <0 0 0>;
93    };
94...
95