xref: /freebsd/sys/contrib/device-tree/Bindings/gpu/host1x/nvidia,tegra234-nvdec.yaml (revision fac71e4e09885bb2afa3d984a0c239a52e1a7418)
18bab661aSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
28bab661aSEmmanuel Vadot%YAML 1.2
38bab661aSEmmanuel Vadot---
4*fac71e4eSEmmanuel Vadot$id: http://devicetree.org/schemas/gpu/host1x/nvidia,tegra234-nvdec.yaml#
5*fac71e4eSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
68bab661aSEmmanuel Vadot
78bab661aSEmmanuel Vadottitle: NVIDIA Tegra234 NVDEC
88bab661aSEmmanuel Vadot
98bab661aSEmmanuel Vadotdescription: |
108bab661aSEmmanuel Vadot  NVDEC is the hardware video decoder present on NVIDIA Tegra210
118bab661aSEmmanuel Vadot  and newer chips. It is located on the Host1x bus and typically
128bab661aSEmmanuel Vadot  programmed through Host1x channels.
138bab661aSEmmanuel Vadot
148bab661aSEmmanuel Vadotmaintainers:
158bab661aSEmmanuel Vadot  - Thierry Reding <treding@gmail.com>
168bab661aSEmmanuel Vadot  - Mikko Perttunen <mperttunen@nvidia.com>
178bab661aSEmmanuel Vadot
188bab661aSEmmanuel Vadotproperties:
198bab661aSEmmanuel Vadot  $nodename:
208bab661aSEmmanuel Vadot    pattern: "^nvdec@[0-9a-f]*$"
218bab661aSEmmanuel Vadot
228bab661aSEmmanuel Vadot  compatible:
238bab661aSEmmanuel Vadot    enum:
248bab661aSEmmanuel Vadot      - nvidia,tegra234-nvdec
258bab661aSEmmanuel Vadot
268bab661aSEmmanuel Vadot  reg:
278bab661aSEmmanuel Vadot    maxItems: 1
288bab661aSEmmanuel Vadot
298bab661aSEmmanuel Vadot  clocks:
308bab661aSEmmanuel Vadot    maxItems: 3
318bab661aSEmmanuel Vadot
328bab661aSEmmanuel Vadot  clock-names:
338bab661aSEmmanuel Vadot    items:
348bab661aSEmmanuel Vadot      - const: nvdec
358bab661aSEmmanuel Vadot      - const: fuse
368bab661aSEmmanuel Vadot      - const: tsec_pka
378bab661aSEmmanuel Vadot
388bab661aSEmmanuel Vadot  resets:
398bab661aSEmmanuel Vadot    maxItems: 1
408bab661aSEmmanuel Vadot
418bab661aSEmmanuel Vadot  reset-names:
428bab661aSEmmanuel Vadot    items:
438bab661aSEmmanuel Vadot      - const: nvdec
448bab661aSEmmanuel Vadot
458bab661aSEmmanuel Vadot  power-domains:
468bab661aSEmmanuel Vadot    maxItems: 1
478bab661aSEmmanuel Vadot
488bab661aSEmmanuel Vadot  iommus:
498bab661aSEmmanuel Vadot    maxItems: 1
508bab661aSEmmanuel Vadot
518bab661aSEmmanuel Vadot  dma-coherent: true
528bab661aSEmmanuel Vadot
538bab661aSEmmanuel Vadot  interconnects:
548bab661aSEmmanuel Vadot    items:
558bab661aSEmmanuel Vadot      - description: DMA read memory client
568bab661aSEmmanuel Vadot      - description: DMA write memory client
578bab661aSEmmanuel Vadot
588bab661aSEmmanuel Vadot  interconnect-names:
598bab661aSEmmanuel Vadot    items:
608bab661aSEmmanuel Vadot      - const: dma-mem
618bab661aSEmmanuel Vadot      - const: write
628bab661aSEmmanuel Vadot
638bab661aSEmmanuel Vadot  nvidia,memory-controller:
648bab661aSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/phandle
658bab661aSEmmanuel Vadot    description:
668bab661aSEmmanuel Vadot      phandle to the memory controller for determining information for the NVDEC
678bab661aSEmmanuel Vadot      firmware secure carveout. This carveout is configured by the bootloader and
688bab661aSEmmanuel Vadot      not accessible to CPU.
698bab661aSEmmanuel Vadot
708bab661aSEmmanuel Vadot  nvidia,bl-manifest-offset:
718bab661aSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
728bab661aSEmmanuel Vadot    description:
738bab661aSEmmanuel Vadot      Offset to bootloader manifest from beginning of firmware that was configured by
748bab661aSEmmanuel Vadot      the bootloader.
758bab661aSEmmanuel Vadot
768bab661aSEmmanuel Vadot  nvidia,bl-code-offset:
778bab661aSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
788bab661aSEmmanuel Vadot    description:
798bab661aSEmmanuel Vadot      Offset to bootloader code section from beginning of firmware that was configured by
808bab661aSEmmanuel Vadot      the bootloader.
818bab661aSEmmanuel Vadot
828bab661aSEmmanuel Vadot  nvidia,bl-data-offset:
838bab661aSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
848bab661aSEmmanuel Vadot    description:
858bab661aSEmmanuel Vadot      Offset to bootloader data section from beginning of firmware that was configured by
868bab661aSEmmanuel Vadot      the bootloader.
878bab661aSEmmanuel Vadot
888bab661aSEmmanuel Vadot  nvidia,os-manifest-offset:
898bab661aSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
908bab661aSEmmanuel Vadot    description:
918bab661aSEmmanuel Vadot      Offset to operating system manifest from beginning of firmware that was configured by
928bab661aSEmmanuel Vadot      the bootloader.
938bab661aSEmmanuel Vadot
948bab661aSEmmanuel Vadot  nvidia,os-code-offset:
958bab661aSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
968bab661aSEmmanuel Vadot    description:
978bab661aSEmmanuel Vadot      Offset to operating system code section from beginning of firmware that was configured by
988bab661aSEmmanuel Vadot      the bootloader.
998bab661aSEmmanuel Vadot
1008bab661aSEmmanuel Vadot  nvidia,os-data-offset:
1018bab661aSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
1028bab661aSEmmanuel Vadot    description:
1038bab661aSEmmanuel Vadot      Offset to operating system data section from beginning of firmware that was configured
1048bab661aSEmmanuel Vadot      by the bootloader.
1058bab661aSEmmanuel Vadot
1068bab661aSEmmanuel Vadotrequired:
1078bab661aSEmmanuel Vadot  - compatible
1088bab661aSEmmanuel Vadot  - reg
1098bab661aSEmmanuel Vadot  - clocks
1108bab661aSEmmanuel Vadot  - clock-names
1118bab661aSEmmanuel Vadot  - resets
1128bab661aSEmmanuel Vadot  - reset-names
1138bab661aSEmmanuel Vadot  - power-domains
1148bab661aSEmmanuel Vadot  - nvidia,memory-controller
1158bab661aSEmmanuel Vadot  - nvidia,bl-manifest-offset
1168bab661aSEmmanuel Vadot  - nvidia,bl-code-offset
1178bab661aSEmmanuel Vadot  - nvidia,bl-data-offset
1188bab661aSEmmanuel Vadot  - nvidia,os-manifest-offset
1198bab661aSEmmanuel Vadot  - nvidia,os-code-offset
1208bab661aSEmmanuel Vadot  - nvidia,os-data-offset
1218bab661aSEmmanuel Vadot
1228bab661aSEmmanuel VadotadditionalProperties: false
1238bab661aSEmmanuel Vadot
1248bab661aSEmmanuel Vadotexamples:
1258bab661aSEmmanuel Vadot  - |
1268bab661aSEmmanuel Vadot    #include <dt-bindings/clock/tegra234-clock.h>
1278bab661aSEmmanuel Vadot    #include <dt-bindings/memory/tegra234-mc.h>
1288bab661aSEmmanuel Vadot    #include <dt-bindings/power/tegra234-powergate.h>
1298bab661aSEmmanuel Vadot    #include <dt-bindings/reset/tegra234-reset.h>
1308bab661aSEmmanuel Vadot
1318bab661aSEmmanuel Vadot    nvdec@15480000 {
1328bab661aSEmmanuel Vadot            compatible = "nvidia,tegra234-nvdec";
1338bab661aSEmmanuel Vadot            reg = <0x15480000 0x00040000>;
1348bab661aSEmmanuel Vadot            clocks = <&bpmp TEGRA234_CLK_NVDEC>,
1358bab661aSEmmanuel Vadot                     <&bpmp TEGRA234_CLK_FUSE>,
1368bab661aSEmmanuel Vadot                     <&bpmp TEGRA234_CLK_TSEC_PKA>;
1378bab661aSEmmanuel Vadot            clock-names = "nvdec", "fuse", "tsec_pka";
1388bab661aSEmmanuel Vadot            resets = <&bpmp TEGRA234_RESET_NVDEC>;
1398bab661aSEmmanuel Vadot            reset-names = "nvdec";
1408bab661aSEmmanuel Vadot            power-domains = <&bpmp TEGRA234_POWER_DOMAIN_NVDEC>;
1418bab661aSEmmanuel Vadot            interconnects = <&mc TEGRA234_MEMORY_CLIENT_NVDECSRD &emc>,
1428bab661aSEmmanuel Vadot                            <&mc TEGRA234_MEMORY_CLIENT_NVDECSWR &emc>;
1438bab661aSEmmanuel Vadot            interconnect-names = "dma-mem", "write";
1448bab661aSEmmanuel Vadot            iommus = <&smmu_niso1 TEGRA234_SID_NVDEC>;
1458bab661aSEmmanuel Vadot            dma-coherent;
1468bab661aSEmmanuel Vadot
1478bab661aSEmmanuel Vadot            nvidia,memory-controller = <&mc>;
1488bab661aSEmmanuel Vadot
1498bab661aSEmmanuel Vadot            /* Placeholder values, to be replaced with values from overlay */
1508bab661aSEmmanuel Vadot            nvidia,bl-manifest-offset = <0>;
1518bab661aSEmmanuel Vadot            nvidia,bl-data-offset = <0>;
1528bab661aSEmmanuel Vadot            nvidia,bl-code-offset = <0>;
1538bab661aSEmmanuel Vadot            nvidia,os-manifest-offset = <0>;
1548bab661aSEmmanuel Vadot            nvidia,os-data-offset = <0>;
1558bab661aSEmmanuel Vadot            nvidia,os-code-offset = <0>;
1568bab661aSEmmanuel Vadot    };
157