Documentation / devicetree / bindings / display / tegra / nvidia,tegra20-dc.yaml


Based on kernel version 6.9. Page generated on 2024-05-14 10:02 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 172 173 174 175 176 177 178 179 180 181 182
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/display/tegra/nvidia,tegra20-dc.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: NVIDIA Tegra Display Controller

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

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

  compatible:
    oneOf:
      - enum:
          - nvidia,tegra20-dc
          - nvidia,tegra30-dc
          - nvidia,tegra114-dc
          - nvidia,tegra124-dc
          - nvidia,tegra210-dc

      - items:
          - const: nvidia,tegra124-dc
          - const: nvidia,tegra132-dc

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  clocks:
    minItems: 1
    items:
      - description: display controller pixel clock
      - description: parent clock # optional

  clock-names:
    minItems: 1
    items:
      - const: dc
      - const: parent # optional

  resets:
    items:
      - description: module reset

  reset-names:
    items:
      - const: dc

  interconnect-names: true
  interconnects: true

  iommus:
    maxItems: 1

  operating-points-v2: true

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

  memory-region: true

  nvidia,head:
    $ref: /schemas/types.yaml#/definitions/uint32
    description: The number of the display controller head. This is used to setup the various
      types of output to receive video data from the given head.

  nvidia,outputs:
    $ref: /schemas/types.yaml#/definitions/phandle-array
    description: A list of phandles of outputs that this display controller can drive.

  rgb:
    type: object

allOf:
  - if:
      properties:
        compatible:
          contains:
            enum:
              - nvidia,tegra20-dc
              - nvidia,tegra30-dc
              - nvidia,tegra114-dc
    then:
      properties:
        interconnects:
          items:
            - description: window A memory client
            - description: window B memory client
            - description: window B memory client (vertical filter)
            - description: window C memory client
            - description: cursor memory client

        interconnect-names:
          items:
            - const: wina
            - const: winb
            - const: winb-vfilter
            - const: winc
            - const: cursor

        rgb:
          description: Each display controller node has a child node, named "rgb", that represents
            the RGB output associated with the controller.
          type: object
          properties:
            nvidia,ddc-i2c-bus:
              $ref: /schemas/types.yaml#/definitions/phandle
              description: phandle of an I2C controller used for DDC EDID probing

            nvidia,hpd-gpio:
              description: specifies a GPIO used for hotplug detection
              maxItems: 1

            nvidia,edid:
              $ref: /schemas/types.yaml#/definitions/uint8-array
              description: supplies a binary EDID blob

            nvidia,panel:
              $ref: /schemas/types.yaml#/definitions/phandle
              description: phandle of a display panel

  - if:
      properties:
        compatible:
          contains:
            enum:
              - nvidia,tegra124-dc
    then:
      properties:
        interconnects:
          minItems: 4
          items:
            - description: window A memory client
            - description: window B memory client
            - description: window C memory client
            - description: cursor memory client
            - description: window D memory client
            - description: window T memory client

        interconnect-names:
          minItems: 4
          items:
            - const: wina
            - const: winb
            - const: winc
            - const: cursor
            - const: wind
            - const: wint

additionalProperties: false

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

examples:
  - |
    #include <dt-bindings/clock/tegra20-car.h>
    #include <dt-bindings/interrupt-controller/arm-gic.h>
 
    dc@54200000 {
        compatible = "nvidia,tegra20-dc";
        reg = <0x54200000 0x00040000>;
        interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
        clocks = <&tegra_car TEGRA20_CLK_DISP1>;
        clock-names = "dc";
        resets = <&tegra_car 27>;
        reset-names = "dc";
    };