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,sc7180-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,sc7180-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 minItems: 2 29*4882a593Smuzhiyun maxItems: 3 30*4882a593Smuzhiyun 31*4882a593Smuzhiyun power-domain-names: 32*4882a593Smuzhiyun minItems: 2 33*4882a593Smuzhiyun maxItems: 3 34*4882a593Smuzhiyun items: 35*4882a593Smuzhiyun - const: venus 36*4882a593Smuzhiyun - const: vcodec0 37*4882a593Smuzhiyun - const: cx 38*4882a593Smuzhiyun 39*4882a593Smuzhiyun clocks: 40*4882a593Smuzhiyun maxItems: 5 41*4882a593Smuzhiyun 42*4882a593Smuzhiyun clock-names: 43*4882a593Smuzhiyun items: 44*4882a593Smuzhiyun - const: core 45*4882a593Smuzhiyun - const: iface 46*4882a593Smuzhiyun - const: bus 47*4882a593Smuzhiyun - const: vcodec0_core 48*4882a593Smuzhiyun - const: vcodec0_bus 49*4882a593Smuzhiyun 50*4882a593Smuzhiyun iommus: 51*4882a593Smuzhiyun maxItems: 1 52*4882a593Smuzhiyun 53*4882a593Smuzhiyun memory-region: 54*4882a593Smuzhiyun maxItems: 1 55*4882a593Smuzhiyun 56*4882a593Smuzhiyun interconnects: 57*4882a593Smuzhiyun maxItems: 2 58*4882a593Smuzhiyun 59*4882a593Smuzhiyun interconnect-names: 60*4882a593Smuzhiyun items: 61*4882a593Smuzhiyun - const: video-mem 62*4882a593Smuzhiyun - const: cpu-cfg 63*4882a593Smuzhiyun 64*4882a593Smuzhiyun video-decoder: 65*4882a593Smuzhiyun type: object 66*4882a593Smuzhiyun 67*4882a593Smuzhiyun properties: 68*4882a593Smuzhiyun compatible: 69*4882a593Smuzhiyun const: venus-decoder 70*4882a593Smuzhiyun 71*4882a593Smuzhiyun required: 72*4882a593Smuzhiyun - compatible 73*4882a593Smuzhiyun 74*4882a593Smuzhiyun additionalProperties: false 75*4882a593Smuzhiyun 76*4882a593Smuzhiyun video-encoder: 77*4882a593Smuzhiyun type: object 78*4882a593Smuzhiyun 79*4882a593Smuzhiyun properties: 80*4882a593Smuzhiyun compatible: 81*4882a593Smuzhiyun const: venus-encoder 82*4882a593Smuzhiyun 83*4882a593Smuzhiyun required: 84*4882a593Smuzhiyun - compatible 85*4882a593Smuzhiyun 86*4882a593Smuzhiyun additionalProperties: false 87*4882a593Smuzhiyun 88*4882a593Smuzhiyun video-firmware: 89*4882a593Smuzhiyun type: object 90*4882a593Smuzhiyun 91*4882a593Smuzhiyun description: | 92*4882a593Smuzhiyun Firmware subnode is needed when the platform does not 93*4882a593Smuzhiyun have TrustZone. 94*4882a593Smuzhiyun 95*4882a593Smuzhiyun properties: 96*4882a593Smuzhiyun iommus: 97*4882a593Smuzhiyun maxItems: 1 98*4882a593Smuzhiyun 99*4882a593Smuzhiyun required: 100*4882a593Smuzhiyun - iommus 101*4882a593Smuzhiyun 102*4882a593Smuzhiyunrequired: 103*4882a593Smuzhiyun - compatible 104*4882a593Smuzhiyun - reg 105*4882a593Smuzhiyun - interrupts 106*4882a593Smuzhiyun - power-domains 107*4882a593Smuzhiyun - power-domain-names 108*4882a593Smuzhiyun - clocks 109*4882a593Smuzhiyun - clock-names 110*4882a593Smuzhiyun - iommus 111*4882a593Smuzhiyun - memory-region 112*4882a593Smuzhiyun - video-decoder 113*4882a593Smuzhiyun - video-encoder 114*4882a593Smuzhiyun 115*4882a593SmuzhiyunadditionalProperties: false 116*4882a593Smuzhiyun 117*4882a593Smuzhiyunexamples: 118*4882a593Smuzhiyun - | 119*4882a593Smuzhiyun #include <dt-bindings/interrupt-controller/arm-gic.h> 120*4882a593Smuzhiyun #include <dt-bindings/clock/qcom,videocc-sc7180.h> 121*4882a593Smuzhiyun 122*4882a593Smuzhiyun venus: video-codec@aa00000 { 123*4882a593Smuzhiyun compatible = "qcom,sc7180-venus"; 124*4882a593Smuzhiyun reg = <0x0aa00000 0xff000>; 125*4882a593Smuzhiyun interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>; 126*4882a593Smuzhiyun power-domains = <&videocc VENUS_GDSC>, 127*4882a593Smuzhiyun <&videocc VCODEC0_GDSC>; 128*4882a593Smuzhiyun power-domain-names = "venus", "vcodec0"; 129*4882a593Smuzhiyun clocks = <&videocc VIDEO_CC_VENUS_CTL_CORE_CLK>, 130*4882a593Smuzhiyun <&videocc VIDEO_CC_VENUS_AHB_CLK>, 131*4882a593Smuzhiyun <&videocc VIDEO_CC_VENUS_CTL_AXI_CLK>, 132*4882a593Smuzhiyun <&videocc VIDEO_CC_VCODEC0_CORE_CLK>, 133*4882a593Smuzhiyun <&videocc VIDEO_CC_VCODEC0_AXI_CLK>; 134*4882a593Smuzhiyun clock-names = "core", "iface", "bus", 135*4882a593Smuzhiyun "vcodec0_core", "vcodec0_bus"; 136*4882a593Smuzhiyun iommus = <&apps_smmu 0x0c00 0x60>; 137*4882a593Smuzhiyun memory-region = <&venus_mem>; 138*4882a593Smuzhiyun 139*4882a593Smuzhiyun video-decoder { 140*4882a593Smuzhiyun compatible = "venus-decoder"; 141*4882a593Smuzhiyun }; 142*4882a593Smuzhiyun 143*4882a593Smuzhiyun video-encoder { 144*4882a593Smuzhiyun compatible = "venus-encoder"; 145*4882a593Smuzhiyun }; 146*4882a593Smuzhiyun }; 147