18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 28c2ecf20Sopenharmony_ci 38c2ecf20Sopenharmony_ci%YAML 1.2 48c2ecf20Sopenharmony_ci--- 58c2ecf20Sopenharmony_ci$id: "http://devicetree.org/schemas/media/qcom,msm8996-venus.yaml#" 68c2ecf20Sopenharmony_ci$schema: "http://devicetree.org/meta-schemas/core.yaml#" 78c2ecf20Sopenharmony_ci 88c2ecf20Sopenharmony_cititle: Qualcomm Venus video encode and decode accelerators 98c2ecf20Sopenharmony_ci 108c2ecf20Sopenharmony_cimaintainers: 118c2ecf20Sopenharmony_ci - Stanimir Varbanov <stanimir.varbanov@linaro.org> 128c2ecf20Sopenharmony_ci 138c2ecf20Sopenharmony_cidescription: | 148c2ecf20Sopenharmony_ci The Venus IP is a video encode and decode accelerator present 158c2ecf20Sopenharmony_ci on Qualcomm platforms 168c2ecf20Sopenharmony_ci 178c2ecf20Sopenharmony_ciproperties: 188c2ecf20Sopenharmony_ci compatible: 198c2ecf20Sopenharmony_ci const: qcom,msm8996-venus 208c2ecf20Sopenharmony_ci 218c2ecf20Sopenharmony_ci reg: 228c2ecf20Sopenharmony_ci maxItems: 1 238c2ecf20Sopenharmony_ci 248c2ecf20Sopenharmony_ci interrupts: 258c2ecf20Sopenharmony_ci maxItems: 1 268c2ecf20Sopenharmony_ci 278c2ecf20Sopenharmony_ci power-domains: 288c2ecf20Sopenharmony_ci maxItems: 1 298c2ecf20Sopenharmony_ci 308c2ecf20Sopenharmony_ci clocks: 318c2ecf20Sopenharmony_ci maxItems: 4 328c2ecf20Sopenharmony_ci 338c2ecf20Sopenharmony_ci clock-names: 348c2ecf20Sopenharmony_ci items: 358c2ecf20Sopenharmony_ci - const: core 368c2ecf20Sopenharmony_ci - const: iface 378c2ecf20Sopenharmony_ci - const: bus 388c2ecf20Sopenharmony_ci - const: mbus 398c2ecf20Sopenharmony_ci 408c2ecf20Sopenharmony_ci iommus: 418c2ecf20Sopenharmony_ci maxItems: 20 428c2ecf20Sopenharmony_ci 438c2ecf20Sopenharmony_ci memory-region: 448c2ecf20Sopenharmony_ci maxItems: 1 458c2ecf20Sopenharmony_ci 468c2ecf20Sopenharmony_ci video-decoder: 478c2ecf20Sopenharmony_ci type: object 488c2ecf20Sopenharmony_ci 498c2ecf20Sopenharmony_ci properties: 508c2ecf20Sopenharmony_ci compatible: 518c2ecf20Sopenharmony_ci const: venus-decoder 528c2ecf20Sopenharmony_ci 538c2ecf20Sopenharmony_ci clocks: 548c2ecf20Sopenharmony_ci maxItems: 1 558c2ecf20Sopenharmony_ci 568c2ecf20Sopenharmony_ci clock-names: 578c2ecf20Sopenharmony_ci items: 588c2ecf20Sopenharmony_ci - const: core 598c2ecf20Sopenharmony_ci 608c2ecf20Sopenharmony_ci power-domains: 618c2ecf20Sopenharmony_ci maxItems: 1 628c2ecf20Sopenharmony_ci 638c2ecf20Sopenharmony_ci required: 648c2ecf20Sopenharmony_ci - compatible 658c2ecf20Sopenharmony_ci - clocks 668c2ecf20Sopenharmony_ci - clock-names 678c2ecf20Sopenharmony_ci - power-domains 688c2ecf20Sopenharmony_ci 698c2ecf20Sopenharmony_ci additionalProperties: false 708c2ecf20Sopenharmony_ci 718c2ecf20Sopenharmony_ci video-encoder: 728c2ecf20Sopenharmony_ci type: object 738c2ecf20Sopenharmony_ci 748c2ecf20Sopenharmony_ci properties: 758c2ecf20Sopenharmony_ci compatible: 768c2ecf20Sopenharmony_ci const: venus-encoder 778c2ecf20Sopenharmony_ci 788c2ecf20Sopenharmony_ci clocks: 798c2ecf20Sopenharmony_ci maxItems: 1 808c2ecf20Sopenharmony_ci 818c2ecf20Sopenharmony_ci clock-names: 828c2ecf20Sopenharmony_ci items: 838c2ecf20Sopenharmony_ci - const: core 848c2ecf20Sopenharmony_ci 858c2ecf20Sopenharmony_ci power-domains: 868c2ecf20Sopenharmony_ci maxItems: 1 878c2ecf20Sopenharmony_ci 888c2ecf20Sopenharmony_ci required: 898c2ecf20Sopenharmony_ci - compatible 908c2ecf20Sopenharmony_ci - clocks 918c2ecf20Sopenharmony_ci - clock-names 928c2ecf20Sopenharmony_ci - power-domains 938c2ecf20Sopenharmony_ci 948c2ecf20Sopenharmony_ci additionalProperties: false 958c2ecf20Sopenharmony_ci 968c2ecf20Sopenharmony_ci video-firmware: 978c2ecf20Sopenharmony_ci type: object 988c2ecf20Sopenharmony_ci 998c2ecf20Sopenharmony_ci description: | 1008c2ecf20Sopenharmony_ci Firmware subnode is needed when the platform does not 1018c2ecf20Sopenharmony_ci have TrustZone. 1028c2ecf20Sopenharmony_ci 1038c2ecf20Sopenharmony_ci properties: 1048c2ecf20Sopenharmony_ci iommus: 1058c2ecf20Sopenharmony_ci maxItems: 1 1068c2ecf20Sopenharmony_ci 1078c2ecf20Sopenharmony_ci required: 1088c2ecf20Sopenharmony_ci - iommus 1098c2ecf20Sopenharmony_ci 1108c2ecf20Sopenharmony_cirequired: 1118c2ecf20Sopenharmony_ci - compatible 1128c2ecf20Sopenharmony_ci - reg 1138c2ecf20Sopenharmony_ci - interrupts 1148c2ecf20Sopenharmony_ci - power-domains 1158c2ecf20Sopenharmony_ci - clocks 1168c2ecf20Sopenharmony_ci - clock-names 1178c2ecf20Sopenharmony_ci - iommus 1188c2ecf20Sopenharmony_ci - memory-region 1198c2ecf20Sopenharmony_ci - video-decoder 1208c2ecf20Sopenharmony_ci - video-encoder 1218c2ecf20Sopenharmony_ci 1228c2ecf20Sopenharmony_ciadditionalProperties: false 1238c2ecf20Sopenharmony_ci 1248c2ecf20Sopenharmony_ciexamples: 1258c2ecf20Sopenharmony_ci - | 1268c2ecf20Sopenharmony_ci #include <dt-bindings/interrupt-controller/arm-gic.h> 1278c2ecf20Sopenharmony_ci #include <dt-bindings/clock/qcom,mmcc-msm8996.h> 1288c2ecf20Sopenharmony_ci 1298c2ecf20Sopenharmony_ci video-codec@c00000 { 1308c2ecf20Sopenharmony_ci compatible = "qcom,msm8996-venus"; 1318c2ecf20Sopenharmony_ci reg = <0x00c00000 0xff000>; 1328c2ecf20Sopenharmony_ci interrupts = <GIC_SPI 287 IRQ_TYPE_LEVEL_HIGH>; 1338c2ecf20Sopenharmony_ci clocks = <&mmcc VIDEO_CORE_CLK>, 1348c2ecf20Sopenharmony_ci <&mmcc VIDEO_AHB_CLK>, 1358c2ecf20Sopenharmony_ci <&mmcc VIDEO_AXI_CLK>, 1368c2ecf20Sopenharmony_ci <&mmcc VIDEO_MAXI_CLK>; 1378c2ecf20Sopenharmony_ci clock-names = "core", "iface", "bus", "mbus"; 1388c2ecf20Sopenharmony_ci power-domains = <&mmcc VENUS_GDSC>; 1398c2ecf20Sopenharmony_ci iommus = <&venus_smmu 0x00>, 1408c2ecf20Sopenharmony_ci <&venus_smmu 0x01>, 1418c2ecf20Sopenharmony_ci <&venus_smmu 0x0a>, 1428c2ecf20Sopenharmony_ci <&venus_smmu 0x07>, 1438c2ecf20Sopenharmony_ci <&venus_smmu 0x0e>, 1448c2ecf20Sopenharmony_ci <&venus_smmu 0x0f>, 1458c2ecf20Sopenharmony_ci <&venus_smmu 0x08>, 1468c2ecf20Sopenharmony_ci <&venus_smmu 0x09>, 1478c2ecf20Sopenharmony_ci <&venus_smmu 0x0b>, 1488c2ecf20Sopenharmony_ci <&venus_smmu 0x0c>, 1498c2ecf20Sopenharmony_ci <&venus_smmu 0x0d>, 1508c2ecf20Sopenharmony_ci <&venus_smmu 0x10>, 1518c2ecf20Sopenharmony_ci <&venus_smmu 0x11>, 1528c2ecf20Sopenharmony_ci <&venus_smmu 0x21>, 1538c2ecf20Sopenharmony_ci <&venus_smmu 0x28>, 1548c2ecf20Sopenharmony_ci <&venus_smmu 0x29>, 1558c2ecf20Sopenharmony_ci <&venus_smmu 0x2b>, 1568c2ecf20Sopenharmony_ci <&venus_smmu 0x2c>, 1578c2ecf20Sopenharmony_ci <&venus_smmu 0x2d>, 1588c2ecf20Sopenharmony_ci <&venus_smmu 0x31>; 1598c2ecf20Sopenharmony_ci memory-region = <&venus_mem>; 1608c2ecf20Sopenharmony_ci 1618c2ecf20Sopenharmony_ci video-decoder { 1628c2ecf20Sopenharmony_ci compatible = "venus-decoder"; 1638c2ecf20Sopenharmony_ci clocks = <&mmcc VIDEO_SUBCORE0_CLK>; 1648c2ecf20Sopenharmony_ci clock-names = "core"; 1658c2ecf20Sopenharmony_ci power-domains = <&mmcc VENUS_CORE0_GDSC>; 1668c2ecf20Sopenharmony_ci }; 1678c2ecf20Sopenharmony_ci 1688c2ecf20Sopenharmony_ci video-encoder { 1698c2ecf20Sopenharmony_ci compatible = "venus-encoder"; 1708c2ecf20Sopenharmony_ci clocks = <&mmcc VIDEO_SUBCORE1_CLK>; 1718c2ecf20Sopenharmony_ci clock-names = "core"; 1728c2ecf20Sopenharmony_ci power-domains = <&mmcc VENUS_CORE1_GDSC>; 1738c2ecf20Sopenharmony_ci }; 1748c2ecf20Sopenharmony_ci }; 175