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