# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/display/tegra/nvidia,tegra20-gr2d.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: NVIDIA 2D graphics engine

maintainers:
  - Thierry Reding <thierry.reding@gmail.com>
  - Jon Hunter <jonathanh@nvidia.com>

properties:
  $nodename:
    pattern: "^gr2d@[0-9a-f]+$"

  compatible:
    enum:
      - nvidia,tegra20-gr2d
      - nvidia,tegra30-gr2d
      - nvidia,tegra114-gr2d

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  clocks:
    items:
      - description: module clock

  resets:
    items:
      - description: module reset
      - description: memory client hotflush reset

  reset-names:
    items:
      - const: 2d
      - const: mc

  iommus:
    maxItems: 1

  interconnects:
    maxItems: 4

  interconnect-names:
    maxItems: 4

  operating-points-v2:
    $ref: "/schemas/types.yaml#/definitions/phandle"

  power-domains:
    items:
      - description: phandle to the HEG or core power domain

additionalProperties: false

examples:
  - |
    #include <dt-bindings/clock/tegra20-car.h>
    #include <dt-bindings/interrupt-controller/arm-gic.h>
    #include <dt-bindings/memory/tegra20-mc.h>

    gr2d@54140000 {
        compatible = "nvidia,tegra20-gr2d";
        reg = <0x54140000 0x00040000>;
        interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
        clocks = <&tegra_car TEGRA20_CLK_GR2D>;
        resets = <&tegra_car 21>, <&mc TEGRA20_MC_RESET_2D>;
        reset-names = "2d", "mc";
    };
