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-nvenc.yaml#" 5$schema: "http://devicetree.org/meta-schemas/core.yaml#" 6 7title: Device tree binding for NVIDIA Tegra NVENC 8 9description: | 10 NVENC is the hardware video encoder 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: "^nvenc@[0-9a-f]*$" 21 22 compatible: 23 enum: 24 - nvidia,tegra210-nvenc 25 - nvidia,tegra186-nvenc 26 - nvidia,tegra194-nvenc 27 28 reg: 29 maxItems: 1 30 31 clocks: 32 maxItems: 1 33 34 clock-names: 35 items: 36 - const: nvenc 37 38 resets: 39 maxItems: 1 40 41 reset-names: 42 items: 43 - const: nvenc 44 45 power-domains: 46 maxItems: 1 47 48 iommus: 49 maxItems: 1 50 51 dma-coherent: true 52 53 interconnects: 54 minItems: 2 55 maxItems: 3 56 57 interconnect-names: 58 minItems: 2 59 maxItems: 3 60 61 nvidia,host1x-class: 62 description: | 63 Host1x class of the engine, used to specify the targeted engine 64 when programming the engine through Host1x channels or when 65 configuring engine-specific behavior in Host1x. 66 default: 0x21 67 $ref: /schemas/types.yaml#/definitions/uint32 68 69required: 70 - compatible 71 - reg 72 - clocks 73 - clock-names 74 - resets 75 - reset-names 76 - power-domains 77 78allOf: 79 - if: 80 properties: 81 compatible: 82 enum: 83 - nvidia,tegra210-nvenc 84 - nvidia,tegra186-nvenc 85 then: 86 properties: 87 interconnects: 88 items: 89 - description: DMA read memory client 90 - description: DMA write memory client 91 interconnect-names: 92 items: 93 - const: dma-mem 94 - const: write 95 - if: 96 properties: 97 compatible: 98 enum: 99 - nvidia,tegra194-nvenc 100 then: 101 properties: 102 interconnects: 103 items: 104 - description: DMA read memory client 105 - description: DMA read 2 memory client 106 - description: DMA write memory client 107 interconnect-names: 108 items: 109 - const: dma-mem 110 - const: read-1 111 - const: write 112 113additionalProperties: false 114 115examples: 116 - | 117 #include <dt-bindings/clock/tegra186-clock.h> 118 #include <dt-bindings/memory/tegra186-mc.h> 119 #include <dt-bindings/power/tegra186-powergate.h> 120 #include <dt-bindings/reset/tegra186-reset.h> 121 122 nvenc@154c0000 { 123 compatible = "nvidia,tegra186-nvenc"; 124 reg = <0x154c0000 0x40000>; 125 clocks = <&bpmp TEGRA186_CLK_NVENC>; 126 clock-names = "nvenc"; 127 resets = <&bpmp TEGRA186_RESET_NVENC>; 128 reset-names = "nvenc"; 129 130 power-domains = <&bpmp TEGRA186_POWER_DOMAIN_MPE>; 131 interconnects = <&mc TEGRA186_MEMORY_CLIENT_NVENCSRD &emc>, 132 <&mc TEGRA186_MEMORY_CLIENT_NVENCSWR &emc>; 133 interconnect-names = "dma-mem", "write"; 134 iommus = <&smmu TEGRA186_SID_NVENC>; 135 }; 136