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