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