1*4882a593Smuzhiyun# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2*4882a593Smuzhiyun 3*4882a593Smuzhiyun%YAML 1.2 4*4882a593Smuzhiyun--- 5*4882a593Smuzhiyun$id: "http://devicetree.org/schemas/media/qcom,sdm845-venus.yaml#" 6*4882a593Smuzhiyun$schema: "http://devicetree.org/meta-schemas/core.yaml#" 7*4882a593Smuzhiyun 8*4882a593Smuzhiyuntitle: Qualcomm Venus video encode and decode accelerators 9*4882a593Smuzhiyun 10*4882a593Smuzhiyunmaintainers: 11*4882a593Smuzhiyun - Stanimir Varbanov <stanimir.varbanov@linaro.org> 12*4882a593Smuzhiyun 13*4882a593Smuzhiyundescription: | 14*4882a593Smuzhiyun The Venus IP is a video encode and decode accelerator present 15*4882a593Smuzhiyun on Qualcomm platforms 16*4882a593Smuzhiyun 17*4882a593Smuzhiyunproperties: 18*4882a593Smuzhiyun compatible: 19*4882a593Smuzhiyun const: qcom,sdm845-venus 20*4882a593Smuzhiyun 21*4882a593Smuzhiyun reg: 22*4882a593Smuzhiyun maxItems: 1 23*4882a593Smuzhiyun 24*4882a593Smuzhiyun interrupts: 25*4882a593Smuzhiyun maxItems: 1 26*4882a593Smuzhiyun 27*4882a593Smuzhiyun power-domains: 28*4882a593Smuzhiyun maxItems: 1 29*4882a593Smuzhiyun 30*4882a593Smuzhiyun clocks: 31*4882a593Smuzhiyun maxItems: 3 32*4882a593Smuzhiyun 33*4882a593Smuzhiyun clock-names: 34*4882a593Smuzhiyun items: 35*4882a593Smuzhiyun - const: core 36*4882a593Smuzhiyun - const: iface 37*4882a593Smuzhiyun - const: bus 38*4882a593Smuzhiyun 39*4882a593Smuzhiyun iommus: 40*4882a593Smuzhiyun maxItems: 2 41*4882a593Smuzhiyun 42*4882a593Smuzhiyun memory-region: 43*4882a593Smuzhiyun maxItems: 1 44*4882a593Smuzhiyun 45*4882a593Smuzhiyun video-core0: 46*4882a593Smuzhiyun type: object 47*4882a593Smuzhiyun 48*4882a593Smuzhiyun properties: 49*4882a593Smuzhiyun compatible: 50*4882a593Smuzhiyun const: venus-decoder 51*4882a593Smuzhiyun 52*4882a593Smuzhiyun clocks: 53*4882a593Smuzhiyun maxItems: 2 54*4882a593Smuzhiyun 55*4882a593Smuzhiyun clock-names: 56*4882a593Smuzhiyun items: 57*4882a593Smuzhiyun - const: core 58*4882a593Smuzhiyun - const: bus 59*4882a593Smuzhiyun 60*4882a593Smuzhiyun power-domains: 61*4882a593Smuzhiyun maxItems: 1 62*4882a593Smuzhiyun 63*4882a593Smuzhiyun required: 64*4882a593Smuzhiyun - compatible 65*4882a593Smuzhiyun - clocks 66*4882a593Smuzhiyun - clock-names 67*4882a593Smuzhiyun - power-domains 68*4882a593Smuzhiyun 69*4882a593Smuzhiyun additionalProperties: false 70*4882a593Smuzhiyun 71*4882a593Smuzhiyun video-core1: 72*4882a593Smuzhiyun type: object 73*4882a593Smuzhiyun 74*4882a593Smuzhiyun properties: 75*4882a593Smuzhiyun compatible: 76*4882a593Smuzhiyun const: venus-encoder 77*4882a593Smuzhiyun 78*4882a593Smuzhiyun clocks: 79*4882a593Smuzhiyun maxItems: 2 80*4882a593Smuzhiyun 81*4882a593Smuzhiyun clock-names: 82*4882a593Smuzhiyun items: 83*4882a593Smuzhiyun - const: core 84*4882a593Smuzhiyun - const: bus 85*4882a593Smuzhiyun 86*4882a593Smuzhiyun power-domains: 87*4882a593Smuzhiyun maxItems: 1 88*4882a593Smuzhiyun 89*4882a593Smuzhiyun required: 90*4882a593Smuzhiyun - compatible 91*4882a593Smuzhiyun - clocks 92*4882a593Smuzhiyun - clock-names 93*4882a593Smuzhiyun - power-domains 94*4882a593Smuzhiyun 95*4882a593Smuzhiyun additionalProperties: false 96*4882a593Smuzhiyun 97*4882a593Smuzhiyun video-firmware: 98*4882a593Smuzhiyun type: object 99*4882a593Smuzhiyun 100*4882a593Smuzhiyun description: | 101*4882a593Smuzhiyun Firmware subnode is needed when the platform does not 102*4882a593Smuzhiyun have TrustZone. 103*4882a593Smuzhiyun 104*4882a593Smuzhiyun properties: 105*4882a593Smuzhiyun iommus: 106*4882a593Smuzhiyun maxItems: 1 107*4882a593Smuzhiyun 108*4882a593Smuzhiyun required: 109*4882a593Smuzhiyun - iommus 110*4882a593Smuzhiyun 111*4882a593Smuzhiyunrequired: 112*4882a593Smuzhiyun - compatible 113*4882a593Smuzhiyun - reg 114*4882a593Smuzhiyun - interrupts 115*4882a593Smuzhiyun - power-domains 116*4882a593Smuzhiyun - clocks 117*4882a593Smuzhiyun - clock-names 118*4882a593Smuzhiyun - iommus 119*4882a593Smuzhiyun - memory-region 120*4882a593Smuzhiyun - video-core0 121*4882a593Smuzhiyun - video-core1 122*4882a593Smuzhiyun 123*4882a593SmuzhiyunadditionalProperties: false 124*4882a593Smuzhiyun 125*4882a593Smuzhiyunexamples: 126*4882a593Smuzhiyun - | 127*4882a593Smuzhiyun #include <dt-bindings/interrupt-controller/arm-gic.h> 128*4882a593Smuzhiyun #include <dt-bindings/clock/qcom,videocc-sdm845.h> 129*4882a593Smuzhiyun 130*4882a593Smuzhiyun video-codec@aa00000 { 131*4882a593Smuzhiyun compatible = "qcom,sdm845-venus"; 132*4882a593Smuzhiyun reg = <0x0aa00000 0xff000>; 133*4882a593Smuzhiyun interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>; 134*4882a593Smuzhiyun clocks = <&videocc VIDEO_CC_VENUS_CTL_CORE_CLK>, 135*4882a593Smuzhiyun <&videocc VIDEO_CC_VENUS_AHB_CLK>, 136*4882a593Smuzhiyun <&videocc VIDEO_CC_VENUS_CTL_AXI_CLK>; 137*4882a593Smuzhiyun clock-names = "core", "iface", "bus"; 138*4882a593Smuzhiyun power-domains = <&videocc VENUS_GDSC>; 139*4882a593Smuzhiyun iommus = <&apps_smmu 0x10a0 0x8>, 140*4882a593Smuzhiyun <&apps_smmu 0x10b0 0x0>; 141*4882a593Smuzhiyun memory-region = <&venus_mem>; 142*4882a593Smuzhiyun 143*4882a593Smuzhiyun video-core0 { 144*4882a593Smuzhiyun compatible = "venus-decoder"; 145*4882a593Smuzhiyun clocks = <&videocc VIDEO_CC_VCODEC0_CORE_CLK>, 146*4882a593Smuzhiyun <&videocc VIDEO_CC_VCODEC0_AXI_CLK>; 147*4882a593Smuzhiyun clock-names = "core", "bus"; 148*4882a593Smuzhiyun power-domains = <&videocc VCODEC0_GDSC>; 149*4882a593Smuzhiyun }; 150*4882a593Smuzhiyun 151*4882a593Smuzhiyun video-core1 { 152*4882a593Smuzhiyun compatible = "venus-encoder"; 153*4882a593Smuzhiyun clocks = <&videocc VIDEO_CC_VCODEC1_CORE_CLK>, 154*4882a593Smuzhiyun <&videocc VIDEO_CC_VCODEC1_AXI_CLK>; 155*4882a593Smuzhiyun clock-names = "core", "bus"; 156*4882a593Smuzhiyun power-domains = <&videocc VCODEC1_GDSC>; 157*4882a593Smuzhiyun }; 158*4882a593Smuzhiyun }; 159