File Index
Files and directories
Sign in
FILE

nvidia,tegra186-display.yaml

File preview with syntax highlighting.

linux-6.19.14/Documentation/devicetree/bindings/display/tegra/nvidia,tegra186-display.yaml YAML
  1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
  2%YAML 1.2
  3---
  4$id: http://devicetree.org/schemas/display/tegra/nvidia,tegra186-display.yaml#
  5$schema: http://devicetree.org/meta-schemas/core.yaml#
  6
  7title: NVIDIA Tegra186 (and later) Display Hub
  8
  9maintainers:
 10  - Thierry Reding <thierry.reding@gmail.com>
 11  - Jon Hunter <jonathanh@nvidia.com>
 12
 13properties:
 14  $nodename:
 15    pattern: "^display-hub@[0-9a-f]+$"
 16
 17  compatible:
 18    enum:
 19      - nvidia,tegra186-display
 20      - nvidia,tegra194-display
 21
 22  '#address-cells':
 23    enum: [ 1, 2 ]
 24
 25  '#size-cells':
 26    enum: [ 1, 2 ]
 27
 28  reg:
 29    maxItems: 1
 30
 31  interrupts:
 32    maxItems: 1
 33
 34  clocks:
 35    minItems: 2
 36    maxItems: 3
 37
 38  clock-names:
 39    minItems: 2
 40    maxItems: 3
 41
 42  resets:
 43    items:
 44      - description: display hub reset
 45      - description: window group 0 reset
 46      - description: window group 1 reset
 47      - description: window group 2 reset
 48      - description: window group 3 reset
 49      - description: window group 4 reset
 50      - description: window group 5 reset
 51
 52  reset-names:
 53    items:
 54      - const: misc
 55      - const: wgrp0
 56      - const: wgrp1
 57      - const: wgrp2
 58      - const: wgrp3
 59      - const: wgrp4
 60      - const: wgrp5
 61
 62  power-domains:
 63    maxItems: 1
 64
 65  ranges:
 66    maxItems: 1
 67
 68patternProperties:
 69  "^display@[0-9a-f]+$":
 70    type: object
 71
 72allOf:
 73  - if:
 74      properties:
 75        compatible:
 76          contains:
 77            const: nvidia,tegra186-display
 78    then:
 79      properties:
 80        clocks:
 81          items:
 82            - description: display core clock
 83            - description: display stream compression clock
 84            - description: display hub clock
 85
 86        clock-names:
 87          items:
 88            - const: disp
 89            - const: dsc
 90            - const: hub
 91    else:
 92      properties:
 93        clocks:
 94          items:
 95            - description: display core clock
 96            - description: display hub clock
 97
 98        clock-names:
 99          items:
100            - const: disp
101            - const: hub
102
103additionalProperties: false
104
105required:
106  - compatible
107  - reg
108  - clocks
109  - clock-names
110  - resets
111  - reset-names
112  - power-domains
113  - "#address-cells"
114  - "#size-cells"
115  - ranges
116
117examples:
118  - |
119    #include <dt-bindings/clock/tegra186-clock.h>
120    #include <dt-bindings/interrupt-controller/arm-gic.h>
121    #include <dt-bindings/memory/tegra186-mc.h>
122    #include <dt-bindings/power/tegra186-powergate.h>
123    #include <dt-bindings/reset/tegra186-reset.h>
124
125    display-hub@15200000 {
126        compatible = "nvidia,tegra186-display";
127        reg = <0x15200000 0x00040000>;
128        resets = <&bpmp TEGRA186_RESET_NVDISPLAY0_MISC>,
129                 <&bpmp TEGRA186_RESET_NVDISPLAY0_WGRP0>,
130                 <&bpmp TEGRA186_RESET_NVDISPLAY0_WGRP1>,
131                 <&bpmp TEGRA186_RESET_NVDISPLAY0_WGRP2>,
132                 <&bpmp TEGRA186_RESET_NVDISPLAY0_WGRP3>,
133                 <&bpmp TEGRA186_RESET_NVDISPLAY0_WGRP4>,
134                 <&bpmp TEGRA186_RESET_NVDISPLAY0_WGRP5>;
135        reset-names = "misc", "wgrp0", "wgrp1", "wgrp2",
136                      "wgrp3", "wgrp4", "wgrp5";
137        clocks = <&bpmp TEGRA186_CLK_NVDISPLAY_DISP>,
138                 <&bpmp TEGRA186_CLK_NVDISPLAY_DSC>,
139                 <&bpmp TEGRA186_CLK_NVDISPLAYHUB>;
140        clock-names = "disp", "dsc", "hub";
141
142        power-domains = <&bpmp TEGRA186_POWER_DOMAIN_DISP>;
143
144        #address-cells = <1>;
145        #size-cells = <1>;
146
147        ranges = <0x15200000 0x15200000 0x40000>;
148
149        display@15200000 {
150            compatible = "nvidia,tegra186-dc";
151            reg = <0x15200000 0x10000>;
152            interrupts = <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>;
153            clocks = <&bpmp TEGRA186_CLK_NVDISPLAY_P0>;
154            clock-names = "dc";
155            resets = <&bpmp TEGRA186_RESET_NVDISPLAY0_HEAD0>;
156            reset-names = "dc";
157
158            power-domains = <&bpmp TEGRA186_POWER_DOMAIN_DISP>;
159            interconnects = <&mc TEGRA186_MEMORY_CLIENT_NVDISPLAYR &emc>,
160                            <&mc TEGRA186_MEMORY_CLIENT_NVDISPLAYR1 &emc>;
161            interconnect-names = "dma-mem", "read-1";
162            iommus = <&smmu TEGRA186_SID_NVDISPLAY>;
163
164            nvidia,outputs = <&dsia &dsib &sor0 &sor1>;
165            nvidia,head = <0>;
166        };
167
168        display@15210000 {
169            compatible = "nvidia,tegra186-dc";
170            reg = <0x15210000 0x10000>;
171            interrupts = <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>;
172            clocks = <&bpmp TEGRA186_CLK_NVDISPLAY_P1>;
173            clock-names = "dc";
174            resets = <&bpmp TEGRA186_RESET_NVDISPLAY0_HEAD1>;
175            reset-names = "dc";
176
177            power-domains = <&bpmp TEGRA186_POWER_DOMAIN_DISPB>;
178            interconnects = <&mc TEGRA186_MEMORY_CLIENT_NVDISPLAYR &emc>,
179                            <&mc TEGRA186_MEMORY_CLIENT_NVDISPLAYR1 &emc>;
180            interconnect-names = "dma-mem", "read-1";
181            iommus = <&smmu TEGRA186_SID_NVDISPLAY>;
182
183            nvidia,outputs = <&dsia &dsib &sor0 &sor1>;
184            nvidia,head = <1>;
185        };
186
187        display@15220000 {
188            compatible = "nvidia,tegra186-dc";
189            reg = <0x15220000 0x10000>;
190            interrupts = <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>;
191            clocks = <&bpmp TEGRA186_CLK_NVDISPLAY_P2>;
192            clock-names = "dc";
193            resets = <&bpmp TEGRA186_RESET_NVDISPLAY0_HEAD2>;
194            reset-names = "dc";
195
196            power-domains = <&bpmp TEGRA186_POWER_DOMAIN_DISPC>;
197            interconnects = <&mc TEGRA186_MEMORY_CLIENT_NVDISPLAYR &emc>,
198                            <&mc TEGRA186_MEMORY_CLIENT_NVDISPLAYR1 &emc>;
199            interconnect-names = "dma-mem", "read-1";
200            iommus = <&smmu TEGRA186_SID_NVDISPLAY>;
201
202            nvidia,outputs = <&sor0 &sor1>;
203            nvidia,head = <2>;
204        };
205    };
206
207  - |
208    #include <dt-bindings/clock/tegra194-clock.h>
209    #include <dt-bindings/interrupt-controller/arm-gic.h>
210    #include <dt-bindings/memory/tegra194-mc.h>
211    #include <dt-bindings/power/tegra194-powergate.h>
212    #include <dt-bindings/reset/tegra194-reset.h>
213
214    display-hub@15200000 {
215        compatible = "nvidia,tegra194-display";
216        reg = <0x15200000 0x00040000>;
217        resets = <&bpmp TEGRA194_RESET_NVDISPLAY0_MISC>,
218                 <&bpmp TEGRA194_RESET_NVDISPLAY0_WGRP0>,
219                 <&bpmp TEGRA194_RESET_NVDISPLAY0_WGRP1>,
220                 <&bpmp TEGRA194_RESET_NVDISPLAY0_WGRP2>,
221                 <&bpmp TEGRA194_RESET_NVDISPLAY0_WGRP3>,
222                 <&bpmp TEGRA194_RESET_NVDISPLAY0_WGRP4>,
223                 <&bpmp TEGRA194_RESET_NVDISPLAY0_WGRP5>;
224        reset-names = "misc", "wgrp0", "wgrp1", "wgrp2",
225                      "wgrp3", "wgrp4", "wgrp5";
226        clocks = <&bpmp TEGRA194_CLK_NVDISPLAY_DISP>,
227                 <&bpmp TEGRA194_CLK_NVDISPLAYHUB>;
228        clock-names = "disp", "hub";
229
230        power-domains = <&bpmp TEGRA194_POWER_DOMAIN_DISP>;
231
232        #address-cells = <1>;
233        #size-cells = <1>;
234
235        ranges = <0x15200000 0x15200000 0x40000>;
236
237        display@15200000 {
238            compatible = "nvidia,tegra194-dc";
239            reg = <0x15200000 0x10000>;
240            interrupts = <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>;
241            clocks = <&bpmp TEGRA194_CLK_NVDISPLAY_P0>;
242            clock-names = "dc";
243            resets = <&bpmp TEGRA194_RESET_NVDISPLAY0_HEAD0>;
244            reset-names = "dc";
245
246            power-domains = <&bpmp TEGRA194_POWER_DOMAIN_DISP>;
247            interconnects = <&mc TEGRA194_MEMORY_CLIENT_NVDISPLAYR &emc>,
248                            <&mc TEGRA194_MEMORY_CLIENT_NVDISPLAYR1 &emc>;
249            interconnect-names = "dma-mem", "read-1";
250
251            nvidia,outputs = <&sor0 &sor1 &sor2 &sor3>;
252            nvidia,head = <0>;
253        };
254
255        display@15210000 {
256            compatible = "nvidia,tegra194-dc";
257            reg = <0x15210000 0x10000>;
258            interrupts = <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>;
259            clocks = <&bpmp TEGRA194_CLK_NVDISPLAY_P1>;
260            clock-names = "dc";
261            resets = <&bpmp TEGRA194_RESET_NVDISPLAY0_HEAD1>;
262            reset-names = "dc";
263
264            power-domains = <&bpmp TEGRA194_POWER_DOMAIN_DISPB>;
265            interconnects = <&mc TEGRA194_MEMORY_CLIENT_NVDISPLAYR &emc>,
266                            <&mc TEGRA194_MEMORY_CLIENT_NVDISPLAYR1 &emc>;
267            interconnect-names = "dma-mem", "read-1";
268
269            nvidia,outputs = <&sor0 &sor1 &sor2 &sor3>;
270            nvidia,head = <1>;
271        };
272
273        display@15220000 {
274            compatible = "nvidia,tegra194-dc";
275            reg = <0x15220000 0x10000>;
276            interrupts = <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>;
277            clocks = <&bpmp TEGRA194_CLK_NVDISPLAY_P2>;
278            clock-names = "dc";
279            resets = <&bpmp TEGRA194_RESET_NVDISPLAY0_HEAD2>;
280            reset-names = "dc";
281
282            power-domains = <&bpmp TEGRA194_POWER_DOMAIN_DISPC>;
283            interconnects = <&mc TEGRA194_MEMORY_CLIENT_NVDISPLAYR &emc>,
284                            <&mc TEGRA194_MEMORY_CLIENT_NVDISPLAYR1 &emc>;
285            interconnect-names = "dma-mem", "read-1";
286
287            nvidia,outputs = <&sor0 &sor1 &sor2 &sor3>;
288            nvidia,head = <2>;
289        };
290
291        display@15230000 {
292            compatible = "nvidia,tegra194-dc";
293            reg = <0x15230000 0x10000>;
294            interrupts = <GIC_SPI 242 IRQ_TYPE_LEVEL_HIGH>;
295            clocks = <&bpmp TEGRA194_CLK_NVDISPLAY_P3>;
296            clock-names = "dc";
297            resets = <&bpmp TEGRA194_RESET_NVDISPLAY0_HEAD3>;
298            reset-names = "dc";
299
300            power-domains = <&bpmp TEGRA194_POWER_DOMAIN_DISPC>;
301            interconnects = <&mc TEGRA194_MEMORY_CLIENT_NVDISPLAYR &emc>,
302                            <&mc TEGRA194_MEMORY_CLIENT_NVDISPLAYR1 &emc>;
303            interconnect-names = "dma-mem", "read-1";
304
305            nvidia,outputs = <&sor0 &sor1 &sor2 &sor3>;
306            nvidia,head = <3>;
307        };
308    };
~/ Read-only file preview.