1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2%YAML 1.2 3--- 4$id: "http://devicetree.org/schemas/gpu/host1x/nvidia,tegra210-nvdec.yaml#" 5$schema: "http://devicetree.org/meta-schemas/core.yaml#" 6 7title: Device tree binding for NVIDIA Tegra NVDEC 8 9description: | 10 NVDEC is the hardware video decoder present on NVIDIA Tegra210 11 and newer chips. It is located on the Host1x bus and typically 12 programmed through Host1x channels. 13 14maintainers: 15 - Thierry Reding <treding@gmail.com> 16 - Mikko Perttunen <mperttunen@nvidia.com> 17 18properties: 19 $nodename: 20 pattern: "^nvdec@[0-9a-f]*$" 21 22 compatible: 23 enum: 24 - nvidia,tegra210-nvdec 25 - nvidia,tegra186-nvdec 26 - nvidia,tegra194-nvdec 27 28 reg: 29 maxItems: 1 30 31 clocks: 32 maxItems: 1 33 34 clock-names: 35 items: 36 - const: nvdec 37 38 resets: 39 maxItems: 1 40 41 reset-names: 42 items: 43 - const: nvdec 44 45 power-domains: 46 maxItems: 1 47 48 iommus: 49 maxItems: 1 50 51 dma-coherent: true 52 53 interconnects: 54 items: 55 - description: DMA read memory client 56 - description: DMA read 2 memory client 57 - description: DMA write memory client 58 59 interconnect-names: 60 items: 61 - const: dma-mem 62 - const: read-1 63 - const: write 64 65 nvidia,host1x-class: 66 description: | 67 Host1x class of the engine, used to specify the targeted engine 68 when programming the engine through Host1x channels or when 69 configuring engine-specific behavior in Host1x. 70 default: 0xf0 71 $ref: /schemas/types.yaml#/definitions/uint32 72 73required: 74 - compatible 75 - reg 76 - clocks 77 - clock-names 78 - resets 79 - reset-names 80 - power-domains 81 82additionalProperties: false 83 84examples: 85 - | 86 #include <dt-bindings/clock/tegra186-clock.h> 87 #include <dt-bindings/interrupt-controller/arm-gic.h> 88 #include <dt-bindings/memory/tegra186-mc.h> 89 #include <dt-bindings/power/tegra186-powergate.h> 90 #include <dt-bindings/reset/tegra186-reset.h> 91 92 nvdec@15480000 { 93 compatible = "nvidia,tegra186-nvdec"; 94 reg = <0x15480000 0x40000>; 95 clocks = <&bpmp TEGRA186_CLK_NVDEC>; 96 clock-names = "nvdec"; 97 resets = <&bpmp TEGRA186_RESET_NVDEC>; 98 reset-names = "nvdec"; 99 100 power-domains = <&bpmp TEGRA186_POWER_DOMAIN_NVDEC>; 101 interconnects = <&mc TEGRA186_MEMORY_CLIENT_NVDECSRD &emc>, 102 <&mc TEGRA186_MEMORY_CLIENT_NVDECSRD1 &emc>, 103 <&mc TEGRA186_MEMORY_CLIENT_NVDECSWR &emc>; 104 interconnect-names = "dma-mem", "read-1", "write"; 105 iommus = <&smmu TEGRA186_SID_NVDEC>; 106 }; 107