Documentation / devicetree / bindings / gpu / nvidia,gk20a.yaml


Based on kernel version 6.18. Page generated on 2025-12-02 09:03 EST.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/gpu/nvidia,gk20a.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: NVIDIA Tegra Graphics Processing Units

maintainers:
  - Alexandre Courbot <acourbot@nvidia.com>
  - Jon Hunter <jonathanh@nvidia.com>
  - Thierry Reding <treding@nvidia.com>

properties:
  compatible:
    enum:
      - nvidia,gk20a
      - nvidia,gm20b
      - nvidia,gp10b
      - nvidia,gv11b

  reg:
    items:
      - description: Bar0 register window
      - description: Bar1 register window

  interrupts:
    items:
      - description: Stall interrupt
      - description: Nonstall interrupt

  interrupt-names:
    items:
      - const: stall
      - const: nonstall

  vdd-supply:
    description:
      Regulator for GPU supply voltage

  clocks:
    minItems: 2
    items:
      - description: GPU clock
      - description: Power clock
      - description: Reference or fuse clock

  clock-names:
    minItems: 2
    items:
      - const: gpu
      - const: pwr
      - enum: [ ref, fuse ]

  resets:
    maxItems: 1

  reset-names:
    items:
      - const: gpu

  power-domains:
    maxItems: 1

  interconnects:
    minItems: 4
    maxItems: 12

  interconnect-names:
    minItems: 4
    maxItems: 12

  iommus:
    maxItems: 1

  dma-coherent: true

required:
  - compatible
  - reg
  - interrupts
  - interrupt-names
  - clocks
  - clock-names
  - resets
  - reset-names

allOf:
  - if:
      properties:
        compatible:
          contains:
            enum:
              - nvidia,gp10b
              - nvidia,gv11b
    then:
      required:
        - power-domains
    else:
      properties:
        interconnects: false
        interconnect-names: false

      required:
        - vdd-supply
  - if:
      properties:
        compatible:
          contains:
            enum:
              - nvidia,gp10b
    then:
      properties:
        interconnects:
          maxItems: 4

        interconnect-names:
          items:
            - const: dma-mem
            - const: write-0
            - const: read-1
            - const: write-1
  - if:
      properties:
        compatible:
          contains:
            enum:
              - nvidia,gv11b
    then:
      properties:
        interconnects:
          minItems: 12

        interconnect-names:
          items:
            - const: dma-mem
            - const: read-0-hp
            - const: write-0
            - const: read-1
            - const: read-1-hp
            - const: write-1
            - const: read-2
            - const: read-2-hp
            - const: write-2
            - const: read-3
            - const: read-3-hp
            - const: write-3

additionalProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/arm-gic.h>
    #include <dt-bindings/clock/tegra124-car-common.h>
    #include <dt-bindings/memory/tegra124-mc.h>
 
    gpu@57000000 {
        compatible = "nvidia,gk20a";
        reg = <0x57000000 0x01000000>,
              <0x58000000 0x01000000>;
        interrupts = <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>,
                     <GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>;
        interrupt-names = "stall", "nonstall";
        vdd-supply = <&vdd_gpu>;
        clocks = <&tegra_car TEGRA124_CLK_GPU>,
                 <&tegra_car TEGRA124_CLK_PLL_P_OUT5>;
        clock-names = "gpu", "pwr";
        resets = <&tegra_car 184>;
        reset-names = "gpu";
        iommus = <&mc TEGRA_SWGROUP_GPU>;
    };