Documentation / devicetree / bindings / display / tegra / nvidia,tegra124-sor.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 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/display/tegra/nvidia,tegra124-sor.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: NVIDIA Tegra SOR Output Encoder

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

description: |
  The Serial Output Resource (SOR) can be used to drive HDMI, LVDS, eDP
  and DP outputs.

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

  compatible:
    oneOf:
      - enum:
          - nvidia,tegra124-sor
          - nvidia,tegra210-sor
          - nvidia,tegra210-sor1
          - nvidia,tegra186-sor
          - nvidia,tegra186-sor1
          - nvidia,tegra194-sor

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

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  clocks:
    minItems: 5
    maxItems: 6

  clock-names:
    minItems: 5
    maxItems: 6

  resets:
    items:
      - description: module reset

  reset-names:
    items:
      - const: sor

  power-domains:
    maxItems: 1

  avdd-io-hdmi-dp-supply:
    description: I/O supply for HDMI/DP

  vdd-hdmi-dp-pll-supply:
    description: PLL supply for HDMI/DP

  hdmi-supply:
    description: +5.0V HDMI connector supply, required for HDMI
 
  # Tegra186 and later
  nvidia,interface:
    description: index of the SOR interface
    $ref: /schemas/types.yaml#/definitions/uint32

  nvidia,ddc-i2c-bus:
    description: phandle of an I2C controller used for DDC EDID
      probing
    $ref: /schemas/types.yaml#/definitions/phandle

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

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

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

  nvidia,xbar-cfg:
    description: 5 cells containing the crossbar configuration.
      Each lane of the SOR, identified by the cell's index, is
      mapped via the crossbar to the pad specified by the cell's
      value.
    $ref: /schemas/types.yaml#/definitions/uint32-array
 
  # optional when driving an eDP output
  nvidia,dpaux:
    description: phandle to a DisplayPort AUX interface
    $ref: /schemas/types.yaml#/definitions/phandle

allOf:
  - if:
      properties:
        compatible:
          contains:
            enum:
              - nvidia,tegra186-sor
              - nvidia,tegra194-sor
    then:
      properties:
        clocks:
          items:
            - description: clock input for the SOR hardware
            - description: SOR output clock
            - description: input for the pixel clock
            - description: reference clock for the SOR clock
            - description: safe reference clock for the SOR clock
                during power up
            - description: SOR pad output clock

        clock-names:
          items:
            - const: sor
            - enum:
                - source # deprecated
                - out
            - const: parent
            - const: dp
            - const: safe
            - const: pad
    else:
      properties:
        clocks:
          items:
            - description: clock input for the SOR hardware
            - description: SOR output clock
            - description: input for the pixel clock
            - description: reference clock for the SOR clock
            - description: safe reference clock for the SOR clock
                during power up

        clock-names:
          items:
            - const: sor
            - enum:
                - source # deprecated
                - out
            - const: parent
            - const: dp
            - const: safe

additionalProperties: false

required:
  - compatible
  - reg
  - interrupts
  - clocks
  - clock-names
  - resets
  - reset-names
  - avdd-io-hdmi-dp-supply
  - vdd-hdmi-dp-pll-supply

examples:
  - |
    #include <dt-bindings/clock/tegra210-car.h>
    #include <dt-bindings/gpio/tegra-gpio.h>
    #include <dt-bindings/interrupt-controller/arm-gic.h>
 
    sor0: sor@54540000 {
        compatible = "nvidia,tegra210-sor";
        reg = <0x54540000 0x00040000>;
        interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>;
        clocks = <&tegra_car TEGRA210_CLK_SOR0>,
                 <&tegra_car TEGRA210_CLK_SOR0_OUT>,
                 <&tegra_car TEGRA210_CLK_PLL_D_OUT0>,
                 <&tegra_car TEGRA210_CLK_PLL_DP>,
                 <&tegra_car TEGRA210_CLK_SOR_SAFE>;
        clock-names = "sor", "out", "parent", "dp", "safe";
        resets = <&tegra_car 182>;
        reset-names = "sor";
        pinctrl-0 = <&state_dpaux_aux>;
        pinctrl-1 = <&state_dpaux_i2c>;
        pinctrl-2 = <&state_dpaux_off>;
        pinctrl-names = "aux", "i2c", "off";
        power-domains = <&pd_sor>;
 
        avdd-io-hdmi-dp-supply = <&avdd_1v05>;
        vdd-hdmi-dp-pll-supply = <&vdd_1v8>;
        hdmi-supply = <&vdd_hdmi>;
 
        nvidia,ddc-i2c-bus = <&hdmi_ddc>;
        nvidia,hpd-gpio = <&gpio TEGRA_GPIO(CC, 1) GPIO_ACTIVE_LOW>;
    };