1e67e8565SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2e67e8565SEmmanuel Vadot%YAML 1.2 3e67e8565SEmmanuel Vadot--- 4*fac71e4eSEmmanuel Vadot$id: http://devicetree.org/schemas/gpu/host1x/nvidia,tegra210-nvenc.yaml# 5*fac71e4eSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6e67e8565SEmmanuel Vadot 78bab661aSEmmanuel Vadottitle: NVIDIA Tegra NVENC 8e67e8565SEmmanuel Vadot 9e67e8565SEmmanuel Vadotdescription: | 10e67e8565SEmmanuel Vadot NVENC is the hardware video encoder present on NVIDIA Tegra210 11e67e8565SEmmanuel Vadot and newer chips. It is located on the Host1x bus and typically 12e67e8565SEmmanuel Vadot programmed through Host1x channels. 13e67e8565SEmmanuel Vadot 14e67e8565SEmmanuel Vadotmaintainers: 15e67e8565SEmmanuel Vadot - Thierry Reding <treding@gmail.com> 16e67e8565SEmmanuel Vadot - Mikko Perttunen <mperttunen@nvidia.com> 17e67e8565SEmmanuel Vadot 18e67e8565SEmmanuel Vadotproperties: 19e67e8565SEmmanuel Vadot $nodename: 20e67e8565SEmmanuel Vadot pattern: "^nvenc@[0-9a-f]*$" 21e67e8565SEmmanuel Vadot 22e67e8565SEmmanuel Vadot compatible: 23e67e8565SEmmanuel Vadot enum: 24e67e8565SEmmanuel Vadot - nvidia,tegra210-nvenc 25e67e8565SEmmanuel Vadot - nvidia,tegra186-nvenc 26e67e8565SEmmanuel Vadot - nvidia,tegra194-nvenc 27e67e8565SEmmanuel Vadot 28e67e8565SEmmanuel Vadot reg: 29e67e8565SEmmanuel Vadot maxItems: 1 30e67e8565SEmmanuel Vadot 31e67e8565SEmmanuel Vadot clocks: 32e67e8565SEmmanuel Vadot maxItems: 1 33e67e8565SEmmanuel Vadot 34e67e8565SEmmanuel Vadot clock-names: 35e67e8565SEmmanuel Vadot items: 36e67e8565SEmmanuel Vadot - const: nvenc 37e67e8565SEmmanuel Vadot 38e67e8565SEmmanuel Vadot resets: 39e67e8565SEmmanuel Vadot maxItems: 1 40e67e8565SEmmanuel Vadot 41e67e8565SEmmanuel Vadot reset-names: 42e67e8565SEmmanuel Vadot items: 43e67e8565SEmmanuel Vadot - const: nvenc 44e67e8565SEmmanuel Vadot 45e67e8565SEmmanuel Vadot power-domains: 46e67e8565SEmmanuel Vadot maxItems: 1 47e67e8565SEmmanuel Vadot 48e67e8565SEmmanuel Vadot iommus: 49e67e8565SEmmanuel Vadot maxItems: 1 50e67e8565SEmmanuel Vadot 51e67e8565SEmmanuel Vadot dma-coherent: true 52e67e8565SEmmanuel Vadot 53e67e8565SEmmanuel Vadot interconnects: 54e67e8565SEmmanuel Vadot minItems: 2 55e67e8565SEmmanuel Vadot maxItems: 3 56e67e8565SEmmanuel Vadot 57e67e8565SEmmanuel Vadot interconnect-names: 58e67e8565SEmmanuel Vadot minItems: 2 59e67e8565SEmmanuel Vadot maxItems: 3 60e67e8565SEmmanuel Vadot 61e67e8565SEmmanuel Vadot nvidia,host1x-class: 62e67e8565SEmmanuel Vadot description: | 63e67e8565SEmmanuel Vadot Host1x class of the engine, used to specify the targeted engine 64e67e8565SEmmanuel Vadot when programming the engine through Host1x channels or when 65e67e8565SEmmanuel Vadot configuring engine-specific behavior in Host1x. 66e67e8565SEmmanuel Vadot default: 0x21 67e67e8565SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 68e67e8565SEmmanuel Vadot 69e67e8565SEmmanuel Vadotrequired: 70e67e8565SEmmanuel Vadot - compatible 71e67e8565SEmmanuel Vadot - reg 72e67e8565SEmmanuel Vadot - clocks 73e67e8565SEmmanuel Vadot - clock-names 74e67e8565SEmmanuel Vadot - resets 75e67e8565SEmmanuel Vadot - reset-names 76e67e8565SEmmanuel Vadot - power-domains 77e67e8565SEmmanuel Vadot 78e67e8565SEmmanuel VadotallOf: 79e67e8565SEmmanuel Vadot - if: 80e67e8565SEmmanuel Vadot properties: 81e67e8565SEmmanuel Vadot compatible: 82e67e8565SEmmanuel Vadot enum: 83e67e8565SEmmanuel Vadot - nvidia,tegra210-nvenc 84e67e8565SEmmanuel Vadot - nvidia,tegra186-nvenc 85e67e8565SEmmanuel Vadot then: 86e67e8565SEmmanuel Vadot properties: 87e67e8565SEmmanuel Vadot interconnects: 88e67e8565SEmmanuel Vadot items: 89e67e8565SEmmanuel Vadot - description: DMA read memory client 90e67e8565SEmmanuel Vadot - description: DMA write memory client 91e67e8565SEmmanuel Vadot interconnect-names: 92e67e8565SEmmanuel Vadot items: 93e67e8565SEmmanuel Vadot - const: dma-mem 94e67e8565SEmmanuel Vadot - const: write 95e67e8565SEmmanuel Vadot - if: 96e67e8565SEmmanuel Vadot properties: 97e67e8565SEmmanuel Vadot compatible: 98e67e8565SEmmanuel Vadot enum: 99e67e8565SEmmanuel Vadot - nvidia,tegra194-nvenc 100e67e8565SEmmanuel Vadot then: 101e67e8565SEmmanuel Vadot properties: 102e67e8565SEmmanuel Vadot interconnects: 103e67e8565SEmmanuel Vadot items: 104e67e8565SEmmanuel Vadot - description: DMA read memory client 105e67e8565SEmmanuel Vadot - description: DMA read 2 memory client 106e67e8565SEmmanuel Vadot - description: DMA write memory client 107e67e8565SEmmanuel Vadot interconnect-names: 108e67e8565SEmmanuel Vadot items: 109e67e8565SEmmanuel Vadot - const: dma-mem 110e67e8565SEmmanuel Vadot - const: read-1 111e67e8565SEmmanuel Vadot - const: write 112e67e8565SEmmanuel Vadot 113e67e8565SEmmanuel VadotadditionalProperties: false 114e67e8565SEmmanuel Vadot 115e67e8565SEmmanuel Vadotexamples: 116e67e8565SEmmanuel Vadot - | 117e67e8565SEmmanuel Vadot #include <dt-bindings/clock/tegra186-clock.h> 118e67e8565SEmmanuel Vadot #include <dt-bindings/memory/tegra186-mc.h> 119e67e8565SEmmanuel Vadot #include <dt-bindings/power/tegra186-powergate.h> 120e67e8565SEmmanuel Vadot #include <dt-bindings/reset/tegra186-reset.h> 121e67e8565SEmmanuel Vadot 122e67e8565SEmmanuel Vadot nvenc@154c0000 { 123e67e8565SEmmanuel Vadot compatible = "nvidia,tegra186-nvenc"; 124e67e8565SEmmanuel Vadot reg = <0x154c0000 0x40000>; 125e67e8565SEmmanuel Vadot clocks = <&bpmp TEGRA186_CLK_NVENC>; 126e67e8565SEmmanuel Vadot clock-names = "nvenc"; 127e67e8565SEmmanuel Vadot resets = <&bpmp TEGRA186_RESET_NVENC>; 128e67e8565SEmmanuel Vadot reset-names = "nvenc"; 129e67e8565SEmmanuel Vadot 130e67e8565SEmmanuel Vadot power-domains = <&bpmp TEGRA186_POWER_DOMAIN_MPE>; 131e67e8565SEmmanuel Vadot interconnects = <&mc TEGRA186_MEMORY_CLIENT_NVENCSRD &emc>, 132e67e8565SEmmanuel Vadot <&mc TEGRA186_MEMORY_CLIENT_NVENCSWR &emc>; 133e67e8565SEmmanuel Vadot interconnect-names = "dma-mem", "write"; 134e67e8565SEmmanuel Vadot iommus = <&smmu TEGRA186_SID_NVENC>; 135e67e8565SEmmanuel Vadot }; 136