]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - Bindings/gpu/host1x/nvidia,tegra234-nvdec.yaml
Import device-tree files from Linux 6.2
[FreeBSD/FreeBSD.git] / Bindings / gpu / host1x / nvidia,tegra234-nvdec.yaml
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,tegra234-nvdec.yaml#"
5 $schema: "http://devicetree.org/meta-schemas/core.yaml#"
6
7 title: NVIDIA Tegra234 NVDEC
8
9 description: |
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
14 maintainers:
15   - Thierry Reding <treding@gmail.com>
16   - Mikko Perttunen <mperttunen@nvidia.com>
17
18 properties:
19   $nodename:
20     pattern: "^nvdec@[0-9a-f]*$"
21
22   compatible:
23     enum:
24       - nvidia,tegra234-nvdec
25
26   reg:
27     maxItems: 1
28
29   clocks:
30     maxItems: 3
31
32   clock-names:
33     items:
34       - const: nvdec
35       - const: fuse
36       - const: tsec_pka
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 write memory client
57
58   interconnect-names:
59     items:
60       - const: dma-mem
61       - const: write
62
63   nvidia,memory-controller:
64     $ref: /schemas/types.yaml#/definitions/phandle
65     description:
66       phandle to the memory controller for determining information for the NVDEC
67       firmware secure carveout. This carveout is configured by the bootloader and
68       not accessible to CPU.
69
70   nvidia,bl-manifest-offset:
71     $ref: /schemas/types.yaml#/definitions/uint32
72     description:
73       Offset to bootloader manifest from beginning of firmware that was configured by
74       the bootloader.
75
76   nvidia,bl-code-offset:
77     $ref: /schemas/types.yaml#/definitions/uint32
78     description:
79       Offset to bootloader code section from beginning of firmware that was configured by
80       the bootloader.
81
82   nvidia,bl-data-offset:
83     $ref: /schemas/types.yaml#/definitions/uint32
84     description:
85       Offset to bootloader data section from beginning of firmware that was configured by
86       the bootloader.
87
88   nvidia,os-manifest-offset:
89     $ref: /schemas/types.yaml#/definitions/uint32
90     description:
91       Offset to operating system manifest from beginning of firmware that was configured by
92       the bootloader.
93
94   nvidia,os-code-offset:
95     $ref: /schemas/types.yaml#/definitions/uint32
96     description:
97       Offset to operating system code section from beginning of firmware that was configured by
98       the bootloader.
99
100   nvidia,os-data-offset:
101     $ref: /schemas/types.yaml#/definitions/uint32
102     description:
103       Offset to operating system data section from beginning of firmware that was configured
104       by the bootloader.
105
106 required:
107   - compatible
108   - reg
109   - clocks
110   - clock-names
111   - resets
112   - reset-names
113   - power-domains
114   - nvidia,memory-controller
115   - nvidia,bl-manifest-offset
116   - nvidia,bl-code-offset
117   - nvidia,bl-data-offset
118   - nvidia,os-manifest-offset
119   - nvidia,os-code-offset
120   - nvidia,os-data-offset
121
122 additionalProperties: false
123
124 examples:
125   - |
126     #include <dt-bindings/clock/tegra234-clock.h>
127     #include <dt-bindings/memory/tegra234-mc.h>
128     #include <dt-bindings/power/tegra234-powergate.h>
129     #include <dt-bindings/reset/tegra234-reset.h>
130
131     nvdec@15480000 {
132             compatible = "nvidia,tegra234-nvdec";
133             reg = <0x15480000 0x00040000>;
134             clocks = <&bpmp TEGRA234_CLK_NVDEC>,
135                      <&bpmp TEGRA234_CLK_FUSE>,
136                      <&bpmp TEGRA234_CLK_TSEC_PKA>;
137             clock-names = "nvdec", "fuse", "tsec_pka";
138             resets = <&bpmp TEGRA234_RESET_NVDEC>;
139             reset-names = "nvdec";
140             power-domains = <&bpmp TEGRA234_POWER_DOMAIN_NVDEC>;
141             interconnects = <&mc TEGRA234_MEMORY_CLIENT_NVDECSRD &emc>,
142                             <&mc TEGRA234_MEMORY_CLIENT_NVDECSWR &emc>;
143             interconnect-names = "dma-mem", "write";
144             iommus = <&smmu_niso1 TEGRA234_SID_NVDEC>;
145             dma-coherent;
146
147             nvidia,memory-controller = <&mc>;
148
149             /* Placeholder values, to be replaced with values from overlay */
150             nvidia,bl-manifest-offset = <0>;
151             nvidia,bl-data-offset = <0>;
152             nvidia,bl-code-offset = <0>;
153             nvidia,os-manifest-offset = <0>;
154             nvidia,os-data-offset = <0>;
155             nvidia,os-code-offset = <0>;
156     };