blob: c23dae713eb8959667865ed0d51babb79ecbbc46 [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001# 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: 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 };