162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
262306a36Sopenharmony_ci%YAML 1.2
362306a36Sopenharmony_ci---
462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/display/tegra/nvidia,tegra20-gr3d.yaml#
562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
662306a36Sopenharmony_ci
762306a36Sopenharmony_cititle: NVIDIA 3D graphics engine
862306a36Sopenharmony_ci
962306a36Sopenharmony_cimaintainers:
1062306a36Sopenharmony_ci  - Thierry Reding <thierry.reding@gmail.com>
1162306a36Sopenharmony_ci  - Jon Hunter <jonathanh@nvidia.com>
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_ciproperties:
1462306a36Sopenharmony_ci  $nodename:
1562306a36Sopenharmony_ci    pattern: "^gr3d@[0-9a-f]+$"
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_ci  compatible:
1862306a36Sopenharmony_ci    enum:
1962306a36Sopenharmony_ci      - nvidia,tegra20-gr3d
2062306a36Sopenharmony_ci      - nvidia,tegra30-gr3d
2162306a36Sopenharmony_ci      - nvidia,tegra114-gr3d
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_ci  reg:
2462306a36Sopenharmony_ci    maxItems: 1
2562306a36Sopenharmony_ci
2662306a36Sopenharmony_ci  clocks:
2762306a36Sopenharmony_ci    minItems: 1
2862306a36Sopenharmony_ci    maxItems: 2
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_ci  clock-names:
3162306a36Sopenharmony_ci    minItems: 1
3262306a36Sopenharmony_ci    maxItems: 2
3362306a36Sopenharmony_ci
3462306a36Sopenharmony_ci  resets:
3562306a36Sopenharmony_ci    minItems: 2
3662306a36Sopenharmony_ci    maxItems: 4
3762306a36Sopenharmony_ci
3862306a36Sopenharmony_ci  reset-names:
3962306a36Sopenharmony_ci    minItems: 2
4062306a36Sopenharmony_ci    maxItems: 4
4162306a36Sopenharmony_ci
4262306a36Sopenharmony_ci  iommus:
4362306a36Sopenharmony_ci    minItems: 1
4462306a36Sopenharmony_ci    maxItems: 2
4562306a36Sopenharmony_ci
4662306a36Sopenharmony_ci  interconnects:
4762306a36Sopenharmony_ci    minItems: 4
4862306a36Sopenharmony_ci    maxItems: 10
4962306a36Sopenharmony_ci
5062306a36Sopenharmony_ci  interconnect-names:
5162306a36Sopenharmony_ci    minItems: 4
5262306a36Sopenharmony_ci    maxItems: 10
5362306a36Sopenharmony_ci
5462306a36Sopenharmony_ci  operating-points-v2: true
5562306a36Sopenharmony_ci
5662306a36Sopenharmony_ci  power-domains:
5762306a36Sopenharmony_ci    minItems: 1
5862306a36Sopenharmony_ci    maxItems: 2
5962306a36Sopenharmony_ci
6062306a36Sopenharmony_ci  power-domain-names:
6162306a36Sopenharmony_ci    maxItems: 2
6262306a36Sopenharmony_ci
6362306a36Sopenharmony_ciallOf:
6462306a36Sopenharmony_ci  - if:
6562306a36Sopenharmony_ci      properties:
6662306a36Sopenharmony_ci        compatible:
6762306a36Sopenharmony_ci          contains:
6862306a36Sopenharmony_ci            const: nvidia,tegra20-gr2d
6962306a36Sopenharmony_ci    then:
7062306a36Sopenharmony_ci      properties:
7162306a36Sopenharmony_ci        clocks:
7262306a36Sopenharmony_ci          items:
7362306a36Sopenharmony_ci            - description: module clock
7462306a36Sopenharmony_ci
7562306a36Sopenharmony_ci        clock-names:
7662306a36Sopenharmony_ci          items:
7762306a36Sopenharmony_ci            - const: 3d
7862306a36Sopenharmony_ci
7962306a36Sopenharmony_ci        resets:
8062306a36Sopenharmony_ci          items:
8162306a36Sopenharmony_ci            - description: module reset
8262306a36Sopenharmony_ci            - description: memory client hotflush reset
8362306a36Sopenharmony_ci
8462306a36Sopenharmony_ci        reset-names:
8562306a36Sopenharmony_ci          items:
8662306a36Sopenharmony_ci            - const: 3d
8762306a36Sopenharmony_ci            - const: mc
8862306a36Sopenharmony_ci
8962306a36Sopenharmony_ci        iommus:
9062306a36Sopenharmony_ci          maxItems: 1
9162306a36Sopenharmony_ci
9262306a36Sopenharmony_ci        interconnects:
9362306a36Sopenharmony_ci          minItems: 4
9462306a36Sopenharmony_ci          maxItems: 4
9562306a36Sopenharmony_ci
9662306a36Sopenharmony_ci        interconnect-names:
9762306a36Sopenharmony_ci          minItems: 4
9862306a36Sopenharmony_ci          maxItems: 4
9962306a36Sopenharmony_ci
10062306a36Sopenharmony_ci        power-domains:
10162306a36Sopenharmony_ci          items:
10262306a36Sopenharmony_ci            - description: phandle to the TD power domain
10362306a36Sopenharmony_ci
10462306a36Sopenharmony_ci  - if:
10562306a36Sopenharmony_ci      properties:
10662306a36Sopenharmony_ci        compatible:
10762306a36Sopenharmony_ci          contains:
10862306a36Sopenharmony_ci            const: nvidia,tegra30-gr3d
10962306a36Sopenharmony_ci    then:
11062306a36Sopenharmony_ci      properties:
11162306a36Sopenharmony_ci        clocks:
11262306a36Sopenharmony_ci          items:
11362306a36Sopenharmony_ci            - description: primary module clock
11462306a36Sopenharmony_ci            - description: secondary module clock
11562306a36Sopenharmony_ci
11662306a36Sopenharmony_ci        clock-names:
11762306a36Sopenharmony_ci          items:
11862306a36Sopenharmony_ci            - const: 3d
11962306a36Sopenharmony_ci            - const: 3d2
12062306a36Sopenharmony_ci
12162306a36Sopenharmony_ci        resets:
12262306a36Sopenharmony_ci          items:
12362306a36Sopenharmony_ci            - description: primary module reset
12462306a36Sopenharmony_ci            - description: secondary module reset
12562306a36Sopenharmony_ci            - description: primary memory client hotflush reset
12662306a36Sopenharmony_ci            - description: secondary memory client hotflush reset
12762306a36Sopenharmony_ci
12862306a36Sopenharmony_ci        reset-names:
12962306a36Sopenharmony_ci          items:
13062306a36Sopenharmony_ci            - const: 3d
13162306a36Sopenharmony_ci            - const: 3d2
13262306a36Sopenharmony_ci            - const: mc
13362306a36Sopenharmony_ci            - const: mc2
13462306a36Sopenharmony_ci
13562306a36Sopenharmony_ci        iommus:
13662306a36Sopenharmony_ci          minItems: 2
13762306a36Sopenharmony_ci          maxItems: 2
13862306a36Sopenharmony_ci
13962306a36Sopenharmony_ci        interconnects:
14062306a36Sopenharmony_ci          minItems: 8
14162306a36Sopenharmony_ci          maxItems: 8
14262306a36Sopenharmony_ci
14362306a36Sopenharmony_ci        interconnect-names:
14462306a36Sopenharmony_ci          minItems: 8
14562306a36Sopenharmony_ci          maxItems: 8
14662306a36Sopenharmony_ci
14762306a36Sopenharmony_ci        power-domains:
14862306a36Sopenharmony_ci          items:
14962306a36Sopenharmony_ci            - description: phandle to the TD power domain
15062306a36Sopenharmony_ci            - description: phandle to the TD2 power domain
15162306a36Sopenharmony_ci
15262306a36Sopenharmony_ci        power-domain-names:
15362306a36Sopenharmony_ci          items:
15462306a36Sopenharmony_ci            - const: 3d0
15562306a36Sopenharmony_ci            - const: 3d1
15662306a36Sopenharmony_ci
15762306a36Sopenharmony_ci      dependencies:
15862306a36Sopenharmony_ci        power-domains: [ power-domain-names ]
15962306a36Sopenharmony_ci
16062306a36Sopenharmony_ci  - if:
16162306a36Sopenharmony_ci      properties:
16262306a36Sopenharmony_ci        compatible:
16362306a36Sopenharmony_ci          contains:
16462306a36Sopenharmony_ci            const: nvidia,tegra114-gr2d
16562306a36Sopenharmony_ci    then:
16662306a36Sopenharmony_ci      properties:
16762306a36Sopenharmony_ci        clocks:
16862306a36Sopenharmony_ci          items:
16962306a36Sopenharmony_ci            - description: module clock
17062306a36Sopenharmony_ci
17162306a36Sopenharmony_ci        clock-names:
17262306a36Sopenharmony_ci          items:
17362306a36Sopenharmony_ci            - const: 3d
17462306a36Sopenharmony_ci
17562306a36Sopenharmony_ci        resets:
17662306a36Sopenharmony_ci          items:
17762306a36Sopenharmony_ci            - description: module reset
17862306a36Sopenharmony_ci            - description: memory client hotflush reset
17962306a36Sopenharmony_ci
18062306a36Sopenharmony_ci        reset-names:
18162306a36Sopenharmony_ci          items:
18262306a36Sopenharmony_ci            - const: 3d
18362306a36Sopenharmony_ci            - const: mc
18462306a36Sopenharmony_ci
18562306a36Sopenharmony_ci        iommus:
18662306a36Sopenharmony_ci          maxItems: 1
18762306a36Sopenharmony_ci
18862306a36Sopenharmony_ci        interconnects:
18962306a36Sopenharmony_ci          minItems: 10
19062306a36Sopenharmony_ci          maxItems: 10
19162306a36Sopenharmony_ci
19262306a36Sopenharmony_ci        interconnect-names:
19362306a36Sopenharmony_ci          minItems: 10
19462306a36Sopenharmony_ci          maxItems: 10
19562306a36Sopenharmony_ci
19662306a36Sopenharmony_ci        power-domains:
19762306a36Sopenharmony_ci          items:
19862306a36Sopenharmony_ci            - description: phandle to the TD power domain
19962306a36Sopenharmony_ci
20062306a36Sopenharmony_ciadditionalProperties: false
20162306a36Sopenharmony_ci
20262306a36Sopenharmony_ciexamples:
20362306a36Sopenharmony_ci  - |
20462306a36Sopenharmony_ci    #include <dt-bindings/clock/tegra20-car.h>
20562306a36Sopenharmony_ci    #include <dt-bindings/memory/tegra20-mc.h>
20662306a36Sopenharmony_ci
20762306a36Sopenharmony_ci    gr3d@54180000 {
20862306a36Sopenharmony_ci        compatible = "nvidia,tegra20-gr3d";
20962306a36Sopenharmony_ci        reg = <0x54180000 0x00040000>;
21062306a36Sopenharmony_ci        clocks = <&tegra_car TEGRA20_CLK_GR3D>;
21162306a36Sopenharmony_ci        resets = <&tegra_car 24>, <&mc TEGRA20_MC_RESET_3D>;
21262306a36Sopenharmony_ci        reset-names = "3d", "mc";
21362306a36Sopenharmony_ci    };
214