Back to home page

OSCL-LXR

 
 

    


0001 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
0002 %YAML 1.2
0003 ---
0004 $id: "http://devicetree.org/schemas/gpu/host1x/nvidia,tegra210-nvdec.yaml#"
0005 $schema: "http://devicetree.org/meta-schemas/core.yaml#"
0006 
0007 title: Device tree binding for NVIDIA Tegra NVDEC
0008 
0009 description: |
0010   NVDEC is the hardware video decoder present on NVIDIA Tegra210
0011   and newer chips. It is located on the Host1x bus and typically
0012   programmed through Host1x channels.
0013 
0014 maintainers:
0015   - Thierry Reding <treding@gmail.com>
0016   - Mikko Perttunen <mperttunen@nvidia.com>
0017 
0018 properties:
0019   $nodename:
0020     pattern: "^nvdec@[0-9a-f]*$"
0021 
0022   compatible:
0023     enum:
0024       - nvidia,tegra210-nvdec
0025       - nvidia,tegra186-nvdec
0026       - nvidia,tegra194-nvdec
0027 
0028   reg:
0029     maxItems: 1
0030 
0031   clocks:
0032     maxItems: 1
0033 
0034   clock-names:
0035     items:
0036       - const: nvdec
0037 
0038   resets:
0039     maxItems: 1
0040 
0041   reset-names:
0042     items:
0043       - const: nvdec
0044 
0045   power-domains:
0046     maxItems: 1
0047 
0048   iommus:
0049     maxItems: 1
0050 
0051   dma-coherent: true
0052 
0053   interconnects:
0054     items:
0055       - description: DMA read memory client
0056       - description: DMA read 2 memory client
0057       - description: DMA write memory client
0058 
0059   interconnect-names:
0060     items:
0061       - const: dma-mem
0062       - const: read-1
0063       - const: write
0064 
0065   nvidia,host1x-class:
0066     description: |
0067       Host1x class of the engine, used to specify the targeted engine
0068       when programming the engine through Host1x channels or when
0069       configuring engine-specific behavior in Host1x.
0070     default: 0xf0
0071     $ref: /schemas/types.yaml#/definitions/uint32
0072 
0073 required:
0074   - compatible
0075   - reg
0076   - clocks
0077   - clock-names
0078   - resets
0079   - reset-names
0080   - power-domains
0081 
0082 additionalProperties: false
0083 
0084 examples:
0085   - |
0086     #include <dt-bindings/clock/tegra186-clock.h>
0087     #include <dt-bindings/interrupt-controller/arm-gic.h>
0088     #include <dt-bindings/memory/tegra186-mc.h>
0089     #include <dt-bindings/power/tegra186-powergate.h>
0090     #include <dt-bindings/reset/tegra186-reset.h>
0091 
0092     nvdec@15480000 {
0093             compatible = "nvidia,tegra186-nvdec";
0094             reg = <0x15480000 0x40000>;
0095             clocks = <&bpmp TEGRA186_CLK_NVDEC>;
0096             clock-names = "nvdec";
0097             resets = <&bpmp TEGRA186_RESET_NVDEC>;
0098             reset-names = "nvdec";
0099 
0100             power-domains = <&bpmp TEGRA186_POWER_DOMAIN_NVDEC>;
0101             interconnects = <&mc TEGRA186_MEMORY_CLIENT_NVDECSRD &emc>,
0102                             <&mc TEGRA186_MEMORY_CLIENT_NVDECSRD1 &emc>,
0103                             <&mc TEGRA186_MEMORY_CLIENT_NVDECSWR &emc>;
0104             interconnect-names = "dma-mem", "read-1", "write";
0105             iommus = <&smmu TEGRA186_SID_NVDEC>;
0106     };