xref: /freebsd/sys/contrib/device-tree/Bindings/gpu/host1x/nvidia,tegra210-nvdec.yaml (revision fac71e4e09885bb2afa3d984a0c239a52e1a7418)
18cc087a1SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
28cc087a1SEmmanuel Vadot%YAML 1.2
38cc087a1SEmmanuel Vadot---
4*fac71e4eSEmmanuel Vadot$id: http://devicetree.org/schemas/gpu/host1x/nvidia,tegra210-nvdec.yaml#
5*fac71e4eSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
68cc087a1SEmmanuel Vadot
78bab661aSEmmanuel Vadottitle: NVIDIA Tegra NVDEC
88cc087a1SEmmanuel Vadot
98cc087a1SEmmanuel Vadotdescription: |
108cc087a1SEmmanuel Vadot  NVDEC is the hardware video decoder present on NVIDIA Tegra210
118cc087a1SEmmanuel Vadot  and newer chips. It is located on the Host1x bus and typically
128cc087a1SEmmanuel Vadot  programmed through Host1x channels.
138cc087a1SEmmanuel Vadot
148cc087a1SEmmanuel Vadotmaintainers:
158cc087a1SEmmanuel Vadot  - Thierry Reding <treding@gmail.com>
168cc087a1SEmmanuel Vadot  - Mikko Perttunen <mperttunen@nvidia.com>
178cc087a1SEmmanuel Vadot
188cc087a1SEmmanuel Vadotproperties:
198cc087a1SEmmanuel Vadot  $nodename:
208cc087a1SEmmanuel Vadot    pattern: "^nvdec@[0-9a-f]*$"
218cc087a1SEmmanuel Vadot
228cc087a1SEmmanuel Vadot  compatible:
238cc087a1SEmmanuel Vadot    enum:
248cc087a1SEmmanuel Vadot      - nvidia,tegra210-nvdec
258cc087a1SEmmanuel Vadot      - nvidia,tegra186-nvdec
268cc087a1SEmmanuel Vadot      - nvidia,tegra194-nvdec
278cc087a1SEmmanuel Vadot
288cc087a1SEmmanuel Vadot  reg:
298cc087a1SEmmanuel Vadot    maxItems: 1
308cc087a1SEmmanuel Vadot
318cc087a1SEmmanuel Vadot  clocks:
328cc087a1SEmmanuel Vadot    maxItems: 1
338cc087a1SEmmanuel Vadot
348cc087a1SEmmanuel Vadot  clock-names:
358cc087a1SEmmanuel Vadot    items:
368cc087a1SEmmanuel Vadot      - const: nvdec
378cc087a1SEmmanuel Vadot
388cc087a1SEmmanuel Vadot  resets:
398cc087a1SEmmanuel Vadot    maxItems: 1
408cc087a1SEmmanuel Vadot
418cc087a1SEmmanuel Vadot  reset-names:
428cc087a1SEmmanuel Vadot    items:
438cc087a1SEmmanuel Vadot      - const: nvdec
448cc087a1SEmmanuel Vadot
458cc087a1SEmmanuel Vadot  power-domains:
468cc087a1SEmmanuel Vadot    maxItems: 1
478cc087a1SEmmanuel Vadot
488cc087a1SEmmanuel Vadot  iommus:
498cc087a1SEmmanuel Vadot    maxItems: 1
508cc087a1SEmmanuel Vadot
518cc087a1SEmmanuel Vadot  dma-coherent: true
528cc087a1SEmmanuel Vadot
538cc087a1SEmmanuel Vadot  interconnects:
548cc087a1SEmmanuel Vadot    items:
558cc087a1SEmmanuel Vadot      - description: DMA read memory client
568cc087a1SEmmanuel Vadot      - description: DMA read 2 memory client
578cc087a1SEmmanuel Vadot      - description: DMA write memory client
588cc087a1SEmmanuel Vadot
598cc087a1SEmmanuel Vadot  interconnect-names:
608cc087a1SEmmanuel Vadot    items:
618cc087a1SEmmanuel Vadot      - const: dma-mem
628cc087a1SEmmanuel Vadot      - const: read-1
638cc087a1SEmmanuel Vadot      - const: write
648cc087a1SEmmanuel Vadot
658cc087a1SEmmanuel Vadot  nvidia,host1x-class:
668cc087a1SEmmanuel Vadot    description: |
678cc087a1SEmmanuel Vadot      Host1x class of the engine, used to specify the targeted engine
688cc087a1SEmmanuel Vadot      when programming the engine through Host1x channels or when
698cc087a1SEmmanuel Vadot      configuring engine-specific behavior in Host1x.
708cc087a1SEmmanuel Vadot    default: 0xf0
718cc087a1SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
728cc087a1SEmmanuel Vadot
738cc087a1SEmmanuel Vadotrequired:
748cc087a1SEmmanuel Vadot  - compatible
758cc087a1SEmmanuel Vadot  - reg
768cc087a1SEmmanuel Vadot  - clocks
778cc087a1SEmmanuel Vadot  - clock-names
788cc087a1SEmmanuel Vadot  - resets
798cc087a1SEmmanuel Vadot  - reset-names
808cc087a1SEmmanuel Vadot  - power-domains
818cc087a1SEmmanuel Vadot
828cc087a1SEmmanuel VadotadditionalProperties: false
838cc087a1SEmmanuel Vadot
848cc087a1SEmmanuel Vadotexamples:
858cc087a1SEmmanuel Vadot  - |
868cc087a1SEmmanuel Vadot    #include <dt-bindings/clock/tegra186-clock.h>
878cc087a1SEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
888cc087a1SEmmanuel Vadot    #include <dt-bindings/memory/tegra186-mc.h>
898cc087a1SEmmanuel Vadot    #include <dt-bindings/power/tegra186-powergate.h>
908cc087a1SEmmanuel Vadot    #include <dt-bindings/reset/tegra186-reset.h>
918cc087a1SEmmanuel Vadot
928cc087a1SEmmanuel Vadot    nvdec@15480000 {
938cc087a1SEmmanuel Vadot            compatible = "nvidia,tegra186-nvdec";
948cc087a1SEmmanuel Vadot            reg = <0x15480000 0x40000>;
958cc087a1SEmmanuel Vadot            clocks = <&bpmp TEGRA186_CLK_NVDEC>;
968cc087a1SEmmanuel Vadot            clock-names = "nvdec";
978cc087a1SEmmanuel Vadot            resets = <&bpmp TEGRA186_RESET_NVDEC>;
988cc087a1SEmmanuel Vadot            reset-names = "nvdec";
998cc087a1SEmmanuel Vadot
1008cc087a1SEmmanuel Vadot            power-domains = <&bpmp TEGRA186_POWER_DOMAIN_NVDEC>;
1018cc087a1SEmmanuel Vadot            interconnects = <&mc TEGRA186_MEMORY_CLIENT_NVDECSRD &emc>,
1028cc087a1SEmmanuel Vadot                            <&mc TEGRA186_MEMORY_CLIENT_NVDECSRD1 &emc>,
1038cc087a1SEmmanuel Vadot                            <&mc TEGRA186_MEMORY_CLIENT_NVDECSWR &emc>;
1048cc087a1SEmmanuel Vadot            interconnect-names = "dma-mem", "read-1", "write";
1058cc087a1SEmmanuel Vadot            iommus = <&smmu TEGRA186_SID_NVDEC>;
1068cc087a1SEmmanuel Vadot    };
107