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