1*fe8b45aaSThierry Reding# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*fe8b45aaSThierry Reding%YAML 1.2
3*fe8b45aaSThierry Reding---
4*fe8b45aaSThierry Reding$id: http://devicetree.org/schemas/display/tegra/nvidia,tegra20-dc.yaml#
5*fe8b45aaSThierry Reding$schema: http://devicetree.org/meta-schemas/core.yaml#
6*fe8b45aaSThierry Reding
7*fe8b45aaSThierry Redingtitle: NVIDIA Tegra Display Controller
8*fe8b45aaSThierry Reding
9*fe8b45aaSThierry Redingmaintainers:
10*fe8b45aaSThierry Reding  - Thierry Reding <thierry.reding@gmail.com>
11*fe8b45aaSThierry Reding  - Jon Hunter <jonathanh@nvidia.com>
12*fe8b45aaSThierry Reding
13*fe8b45aaSThierry Redingproperties:
14*fe8b45aaSThierry Reding  $nodename:
15*fe8b45aaSThierry Reding    pattern: "^dc@[0-9a-f]+$"
16*fe8b45aaSThierry Reding
17*fe8b45aaSThierry Reding  compatible:
18*fe8b45aaSThierry Reding    oneOf:
19*fe8b45aaSThierry Reding      - enum:
20*fe8b45aaSThierry Reding          - nvidia,tegra20-dc
21*fe8b45aaSThierry Reding          - nvidia,tegra30-dc
22*fe8b45aaSThierry Reding          - nvidia,tegra114-dc
23*fe8b45aaSThierry Reding          - nvidia,tegra124-dc
24*fe8b45aaSThierry Reding          - nvidia,tegra210-dc
25*fe8b45aaSThierry Reding
26*fe8b45aaSThierry Reding      - items:
27*fe8b45aaSThierry Reding          - const: nvidia,tegra124-dc
28*fe8b45aaSThierry Reding          - const: nvidia,tegra132-dc
29*fe8b45aaSThierry Reding
30*fe8b45aaSThierry Reding  reg:
31*fe8b45aaSThierry Reding    maxItems: 1
32*fe8b45aaSThierry Reding
33*fe8b45aaSThierry Reding  interrupts:
34*fe8b45aaSThierry Reding    maxItems: 1
35*fe8b45aaSThierry Reding
36*fe8b45aaSThierry Reding  clocks:
37*fe8b45aaSThierry Reding    minItems: 1
38*fe8b45aaSThierry Reding    items:
39*fe8b45aaSThierry Reding      - description: display controller pixel clock
40*fe8b45aaSThierry Reding      - description: parent clock # optional
41*fe8b45aaSThierry Reding
42*fe8b45aaSThierry Reding  clock-names:
43*fe8b45aaSThierry Reding    minItems: 1
44*fe8b45aaSThierry Reding    items:
45*fe8b45aaSThierry Reding      - const: dc
46*fe8b45aaSThierry Reding      - const: parent # optional
47*fe8b45aaSThierry Reding
48*fe8b45aaSThierry Reding  resets:
49*fe8b45aaSThierry Reding    items:
50*fe8b45aaSThierry Reding      - description: module reset
51*fe8b45aaSThierry Reding
52*fe8b45aaSThierry Reding  reset-names:
53*fe8b45aaSThierry Reding    items:
54*fe8b45aaSThierry Reding      - const: dc
55*fe8b45aaSThierry Reding
56*fe8b45aaSThierry Reding  interconnect-names: true
57*fe8b45aaSThierry Reding  interconnects: true
58*fe8b45aaSThierry Reding
59*fe8b45aaSThierry Reding  iommus:
60*fe8b45aaSThierry Reding    maxItems: 1
61*fe8b45aaSThierry Reding
62*fe8b45aaSThierry Reding  operating-points-v2:
63*fe8b45aaSThierry Reding    $ref: "/schemas/types.yaml#/definitions/phandle"
64*fe8b45aaSThierry Reding
65*fe8b45aaSThierry Reding  power-domains:
66*fe8b45aaSThierry Reding    items:
67*fe8b45aaSThierry Reding      - description: phandle to the core power domain
68*fe8b45aaSThierry Reding
69*fe8b45aaSThierry Reding  memory-region: true
70*fe8b45aaSThierry Reding
71*fe8b45aaSThierry Reding  nvidia,head:
72*fe8b45aaSThierry Reding    $ref: /schemas/types.yaml#/definitions/uint32
73*fe8b45aaSThierry Reding    description: The number of the display controller head. This is used to setup the various
74*fe8b45aaSThierry Reding      types of output to receive video data from the given head.
75*fe8b45aaSThierry Reding
76*fe8b45aaSThierry Reding  nvidia,outputs:
77*fe8b45aaSThierry Reding    $ref: /schemas/types.yaml#/definitions/phandle-array
78*fe8b45aaSThierry Reding    description: A list of phandles of outputs that this display controller can drive.
79*fe8b45aaSThierry Reding
80*fe8b45aaSThierry Reding  rgb:
81*fe8b45aaSThierry Reding    type: object
82*fe8b45aaSThierry Reding
83*fe8b45aaSThierry RedingallOf:
84*fe8b45aaSThierry Reding  - if:
85*fe8b45aaSThierry Reding      properties:
86*fe8b45aaSThierry Reding        compatible:
87*fe8b45aaSThierry Reding          contains:
88*fe8b45aaSThierry Reding            enum:
89*fe8b45aaSThierry Reding              - nvidia,tegra20-dc
90*fe8b45aaSThierry Reding              - nvidia,tegra30-dc
91*fe8b45aaSThierry Reding              - nvidia,tegra114-dc
92*fe8b45aaSThierry Reding    then:
93*fe8b45aaSThierry Reding      properties:
94*fe8b45aaSThierry Reding        interconnects:
95*fe8b45aaSThierry Reding          items:
96*fe8b45aaSThierry Reding            - description: window A memory client
97*fe8b45aaSThierry Reding            - description: window B memory client
98*fe8b45aaSThierry Reding            - description: window B memory client (vertical filter)
99*fe8b45aaSThierry Reding            - description: window C memory client
100*fe8b45aaSThierry Reding            - description: cursor memory client
101*fe8b45aaSThierry Reding
102*fe8b45aaSThierry Reding        interconnect-names:
103*fe8b45aaSThierry Reding          items:
104*fe8b45aaSThierry Reding            - const: wina
105*fe8b45aaSThierry Reding            - const: winb
106*fe8b45aaSThierry Reding            - const: winb-vfilter
107*fe8b45aaSThierry Reding            - const: winc
108*fe8b45aaSThierry Reding            - const: cursor
109*fe8b45aaSThierry Reding
110*fe8b45aaSThierry Reding        rgb:
111*fe8b45aaSThierry Reding          description: Each display controller node has a child node, named "rgb", that represents
112*fe8b45aaSThierry Reding            the RGB output associated with the controller.
113*fe8b45aaSThierry Reding          type: object
114*fe8b45aaSThierry Reding          properties:
115*fe8b45aaSThierry Reding            nvidia,ddc-i2c-bus:
116*fe8b45aaSThierry Reding              $ref: /schemas/types.yaml#/definitions/phandle
117*fe8b45aaSThierry Reding              description: phandle of an I2C controller used for DDC EDID probing
118*fe8b45aaSThierry Reding
119*fe8b45aaSThierry Reding            nvidia,hpd-gpio:
120*fe8b45aaSThierry Reding              description: specifies a GPIO used for hotplug detection
121*fe8b45aaSThierry Reding              maxItems: 1
122*fe8b45aaSThierry Reding
123*fe8b45aaSThierry Reding            nvidia,edid:
124*fe8b45aaSThierry Reding              $ref: /schemas/types.yaml#/definitions/uint8-array
125*fe8b45aaSThierry Reding              description: supplies a binary EDID blob
126*fe8b45aaSThierry Reding
127*fe8b45aaSThierry Reding            nvidia,panel:
128*fe8b45aaSThierry Reding              $ref: /schemas/types.yaml#/definitions/phandle
129*fe8b45aaSThierry Reding              description: phandle of a display panel
130*fe8b45aaSThierry Reding
131*fe8b45aaSThierry Reding  - if:
132*fe8b45aaSThierry Reding      properties:
133*fe8b45aaSThierry Reding        compatible:
134*fe8b45aaSThierry Reding          contains:
135*fe8b45aaSThierry Reding            enum:
136*fe8b45aaSThierry Reding              - nvidia,tegra124-dc
137*fe8b45aaSThierry Reding    then:
138*fe8b45aaSThierry Reding      properties:
139*fe8b45aaSThierry Reding        interconnects:
140*fe8b45aaSThierry Reding          minItems: 4
141*fe8b45aaSThierry Reding          items:
142*fe8b45aaSThierry Reding            - description: window A memory client
143*fe8b45aaSThierry Reding            - description: window B memory client
144*fe8b45aaSThierry Reding            - description: window C memory client
145*fe8b45aaSThierry Reding            - description: cursor memory client
146*fe8b45aaSThierry Reding            - description: window D memory client
147*fe8b45aaSThierry Reding            - description: window T memory client
148*fe8b45aaSThierry Reding
149*fe8b45aaSThierry Reding        interconnect-names:
150*fe8b45aaSThierry Reding          minItems: 4
151*fe8b45aaSThierry Reding          items:
152*fe8b45aaSThierry Reding            - const: wina
153*fe8b45aaSThierry Reding            - const: winb
154*fe8b45aaSThierry Reding            - const: winc
155*fe8b45aaSThierry Reding            - const: cursor
156*fe8b45aaSThierry Reding            - const: wind
157*fe8b45aaSThierry Reding            - const: wint
158*fe8b45aaSThierry Reding
159*fe8b45aaSThierry RedingadditionalProperties: false
160*fe8b45aaSThierry Reding
161*fe8b45aaSThierry Redingrequired:
162*fe8b45aaSThierry Reding  - compatible
163*fe8b45aaSThierry Reding  - reg
164*fe8b45aaSThierry Reding  - interrupts
165*fe8b45aaSThierry Reding  - clocks
166*fe8b45aaSThierry Reding  - clock-names
167*fe8b45aaSThierry Reding  - resets
168*fe8b45aaSThierry Reding  - reset-names
169*fe8b45aaSThierry Reding
170*fe8b45aaSThierry Redingexamples:
171*fe8b45aaSThierry Reding  - |
172*fe8b45aaSThierry Reding    #include <dt-bindings/clock/tegra20-car.h>
173*fe8b45aaSThierry Reding    #include <dt-bindings/interrupt-controller/arm-gic.h>
174*fe8b45aaSThierry Reding
175*fe8b45aaSThierry Reding    dc@54200000 {
176*fe8b45aaSThierry Reding        compatible = "nvidia,tegra20-dc";
177*fe8b45aaSThierry Reding        reg = <0x54200000 0x00040000>;
178*fe8b45aaSThierry Reding        interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
179*fe8b45aaSThierry Reding        clocks = <&tegra_car TEGRA20_CLK_DISP1>;
180*fe8b45aaSThierry Reding        clock-names = "dc";
181*fe8b45aaSThierry Reding        resets = <&tegra_car 27>;
182*fe8b45aaSThierry Reding        reset-names = "dc";
183*fe8b45aaSThierry Reding    };
184