196fbc6c5SAngeloGioacchino Del Regno# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 296fbc6c5SAngeloGioacchino Del Regno%YAML 1.2 396fbc6c5SAngeloGioacchino Del Regno--- 4*af2270e0SKrzysztof Kozlowski$id: http://devicetree.org/schemas/media/qcom,sdm660-venus.yaml# 5*af2270e0SKrzysztof Kozlowski$schema: http://devicetree.org/meta-schemas/core.yaml# 696fbc6c5SAngeloGioacchino Del Regno 7*af2270e0SKrzysztof Kozlowskititle: Qualcomm SDM660 Venus video encode and decode accelerators 896fbc6c5SAngeloGioacchino Del Regno 996fbc6c5SAngeloGioacchino Del Regnomaintainers: 1096fbc6c5SAngeloGioacchino Del Regno - Stanimir Varbanov <stanimir.varbanov@linaro.org> 1196fbc6c5SAngeloGioacchino Del Regno - AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com> 1296fbc6c5SAngeloGioacchino Del Regno 1396fbc6c5SAngeloGioacchino Del Regnodescription: | 1496fbc6c5SAngeloGioacchino Del Regno The Venus IP is a video encode and decode accelerator present 1596fbc6c5SAngeloGioacchino Del Regno on Qualcomm platforms 1696fbc6c5SAngeloGioacchino Del Regno 1796fbc6c5SAngeloGioacchino Del Regnoproperties: 1896fbc6c5SAngeloGioacchino Del Regno compatible: 1996fbc6c5SAngeloGioacchino Del Regno const: qcom,sdm660-venus 2096fbc6c5SAngeloGioacchino Del Regno 2196fbc6c5SAngeloGioacchino Del Regno reg: 2296fbc6c5SAngeloGioacchino Del Regno maxItems: 1 2396fbc6c5SAngeloGioacchino Del Regno 2496fbc6c5SAngeloGioacchino Del Regno clocks: 2596fbc6c5SAngeloGioacchino Del Regno maxItems: 4 2696fbc6c5SAngeloGioacchino Del Regno 2796fbc6c5SAngeloGioacchino Del Regno clock-names: 2896fbc6c5SAngeloGioacchino Del Regno items: 2996fbc6c5SAngeloGioacchino Del Regno - const: core 3096fbc6c5SAngeloGioacchino Del Regno - const: iface 3196fbc6c5SAngeloGioacchino Del Regno - const: bus 3296fbc6c5SAngeloGioacchino Del Regno - const: bus_throttle 3396fbc6c5SAngeloGioacchino Del Regno 3496fbc6c5SAngeloGioacchino Del Regno interconnects: 3596fbc6c5SAngeloGioacchino Del Regno maxItems: 2 3696fbc6c5SAngeloGioacchino Del Regno 3796fbc6c5SAngeloGioacchino Del Regno interconnect-names: 3896fbc6c5SAngeloGioacchino Del Regno items: 3996fbc6c5SAngeloGioacchino Del Regno - const: cpu-cfg 4096fbc6c5SAngeloGioacchino Del Regno - const: video-mem 4196fbc6c5SAngeloGioacchino Del Regno 4296fbc6c5SAngeloGioacchino Del Regno interrupts: 4396fbc6c5SAngeloGioacchino Del Regno maxItems: 1 4496fbc6c5SAngeloGioacchino Del Regno 4596fbc6c5SAngeloGioacchino Del Regno iommus: 4696fbc6c5SAngeloGioacchino Del Regno maxItems: 20 4796fbc6c5SAngeloGioacchino Del Regno 4896fbc6c5SAngeloGioacchino Del Regno memory-region: 4996fbc6c5SAngeloGioacchino Del Regno maxItems: 1 5096fbc6c5SAngeloGioacchino Del Regno 5196fbc6c5SAngeloGioacchino Del Regno power-domains: 5296fbc6c5SAngeloGioacchino Del Regno maxItems: 1 5396fbc6c5SAngeloGioacchino Del Regno 5496fbc6c5SAngeloGioacchino Del Regno video-decoder: 5596fbc6c5SAngeloGioacchino Del Regno type: object 5696fbc6c5SAngeloGioacchino Del Regno 5796fbc6c5SAngeloGioacchino Del Regno properties: 5896fbc6c5SAngeloGioacchino Del Regno compatible: 5996fbc6c5SAngeloGioacchino Del Regno const: venus-decoder 6096fbc6c5SAngeloGioacchino Del Regno 6196fbc6c5SAngeloGioacchino Del Regno clocks: 6296fbc6c5SAngeloGioacchino Del Regno maxItems: 1 6396fbc6c5SAngeloGioacchino Del Regno 6496fbc6c5SAngeloGioacchino Del Regno clock-names: 6596fbc6c5SAngeloGioacchino Del Regno items: 6696fbc6c5SAngeloGioacchino Del Regno - const: vcodec0_core 6796fbc6c5SAngeloGioacchino Del Regno 6896fbc6c5SAngeloGioacchino Del Regno power-domains: 6996fbc6c5SAngeloGioacchino Del Regno maxItems: 1 7096fbc6c5SAngeloGioacchino Del Regno 7196fbc6c5SAngeloGioacchino Del Regno required: 7296fbc6c5SAngeloGioacchino Del Regno - compatible 7396fbc6c5SAngeloGioacchino Del Regno - clocks 7496fbc6c5SAngeloGioacchino Del Regno - clock-names 7596fbc6c5SAngeloGioacchino Del Regno - power-domains 7696fbc6c5SAngeloGioacchino Del Regno 7796fbc6c5SAngeloGioacchino Del Regno additionalProperties: false 7896fbc6c5SAngeloGioacchino Del Regno 7996fbc6c5SAngeloGioacchino Del Regno video-encoder: 8096fbc6c5SAngeloGioacchino Del Regno type: object 8196fbc6c5SAngeloGioacchino Del Regno 8296fbc6c5SAngeloGioacchino Del Regno properties: 8396fbc6c5SAngeloGioacchino Del Regno compatible: 8496fbc6c5SAngeloGioacchino Del Regno const: venus-encoder 8596fbc6c5SAngeloGioacchino Del Regno 8696fbc6c5SAngeloGioacchino Del Regno clocks: 8796fbc6c5SAngeloGioacchino Del Regno maxItems: 1 8896fbc6c5SAngeloGioacchino Del Regno 8996fbc6c5SAngeloGioacchino Del Regno clock-names: 9096fbc6c5SAngeloGioacchino Del Regno items: 9196fbc6c5SAngeloGioacchino Del Regno - const: vcodec0_core 9296fbc6c5SAngeloGioacchino Del Regno 9396fbc6c5SAngeloGioacchino Del Regno power-domains: 9496fbc6c5SAngeloGioacchino Del Regno maxItems: 1 9596fbc6c5SAngeloGioacchino Del Regno 9696fbc6c5SAngeloGioacchino Del Regno required: 9796fbc6c5SAngeloGioacchino Del Regno - compatible 9896fbc6c5SAngeloGioacchino Del Regno - clocks 9996fbc6c5SAngeloGioacchino Del Regno - clock-names 10096fbc6c5SAngeloGioacchino Del Regno - power-domains 10196fbc6c5SAngeloGioacchino Del Regno 10296fbc6c5SAngeloGioacchino Del Regno additionalProperties: false 10396fbc6c5SAngeloGioacchino Del Regno 10496fbc6c5SAngeloGioacchino Del Regno video-firmware: 10596fbc6c5SAngeloGioacchino Del Regno type: object 1069eba693cSRob Herring additionalProperties: false 10796fbc6c5SAngeloGioacchino Del Regno 10896fbc6c5SAngeloGioacchino Del Regno description: | 10996fbc6c5SAngeloGioacchino Del Regno Firmware subnode is needed when the platform does not 11096fbc6c5SAngeloGioacchino Del Regno have TrustZone. 11196fbc6c5SAngeloGioacchino Del Regno 11296fbc6c5SAngeloGioacchino Del Regno properties: 11396fbc6c5SAngeloGioacchino Del Regno iommus: 11496fbc6c5SAngeloGioacchino Del Regno maxItems: 1 11596fbc6c5SAngeloGioacchino Del Regno 11696fbc6c5SAngeloGioacchino Del Regno required: 11796fbc6c5SAngeloGioacchino Del Regno - iommus 11896fbc6c5SAngeloGioacchino Del Regno 11996fbc6c5SAngeloGioacchino Del Regnorequired: 12096fbc6c5SAngeloGioacchino Del Regno - compatible 12196fbc6c5SAngeloGioacchino Del Regno - reg 12296fbc6c5SAngeloGioacchino Del Regno - clocks 12396fbc6c5SAngeloGioacchino Del Regno - clock-names 12496fbc6c5SAngeloGioacchino Del Regno - interrupts 12596fbc6c5SAngeloGioacchino Del Regno - iommus 12696fbc6c5SAngeloGioacchino Del Regno - memory-region 12796fbc6c5SAngeloGioacchino Del Regno - power-domains 12896fbc6c5SAngeloGioacchino Del Regno - video-decoder 12996fbc6c5SAngeloGioacchino Del Regno - video-encoder 13096fbc6c5SAngeloGioacchino Del Regno 13196fbc6c5SAngeloGioacchino Del RegnoadditionalProperties: false 13296fbc6c5SAngeloGioacchino Del Regno 13396fbc6c5SAngeloGioacchino Del Regnoexamples: 13496fbc6c5SAngeloGioacchino Del Regno - | 13596fbc6c5SAngeloGioacchino Del Regno #include <dt-bindings/clock/qcom,mmcc-sdm660.h> 13696fbc6c5SAngeloGioacchino Del Regno #include <dt-bindings/interrupt-controller/arm-gic.h> 13796fbc6c5SAngeloGioacchino Del Regno 13896fbc6c5SAngeloGioacchino Del Regno video-codec@cc00000 { 13996fbc6c5SAngeloGioacchino Del Regno compatible = "qcom,sdm660-venus"; 14096fbc6c5SAngeloGioacchino Del Regno reg = <0x0cc00000 0xff000>; 14196fbc6c5SAngeloGioacchino Del Regno clocks = <&mmcc VIDEO_CORE_CLK>, 14296fbc6c5SAngeloGioacchino Del Regno <&mmcc VIDEO_AHB_CLK>, 14396fbc6c5SAngeloGioacchino Del Regno <&mmcc VIDEO_AXI_CLK>, 14496fbc6c5SAngeloGioacchino Del Regno <&mmcc THROTTLE_VIDEO_AXI_CLK>; 14596fbc6c5SAngeloGioacchino Del Regno clock-names = "core", "iface", "bus", "bus_throttle"; 14696fbc6c5SAngeloGioacchino Del Regno interconnects = <&gnoc 0 &mnoc 13>, 14796fbc6c5SAngeloGioacchino Del Regno <&mnoc 4 &bimc 5>; 14896fbc6c5SAngeloGioacchino Del Regno interconnect-names = "cpu-cfg", "video-mem"; 14996fbc6c5SAngeloGioacchino Del Regno interrupts = <GIC_SPI 287 IRQ_TYPE_LEVEL_HIGH>; 15096fbc6c5SAngeloGioacchino Del Regno iommus = <&mmss_smmu 0x400>, 15196fbc6c5SAngeloGioacchino Del Regno <&mmss_smmu 0x401>, 15296fbc6c5SAngeloGioacchino Del Regno <&mmss_smmu 0x40a>, 15396fbc6c5SAngeloGioacchino Del Regno <&mmss_smmu 0x407>, 15496fbc6c5SAngeloGioacchino Del Regno <&mmss_smmu 0x40e>, 15596fbc6c5SAngeloGioacchino Del Regno <&mmss_smmu 0x40f>, 15696fbc6c5SAngeloGioacchino Del Regno <&mmss_smmu 0x408>, 15796fbc6c5SAngeloGioacchino Del Regno <&mmss_smmu 0x409>, 15896fbc6c5SAngeloGioacchino Del Regno <&mmss_smmu 0x40b>, 15996fbc6c5SAngeloGioacchino Del Regno <&mmss_smmu 0x40c>, 16096fbc6c5SAngeloGioacchino Del Regno <&mmss_smmu 0x40d>, 16196fbc6c5SAngeloGioacchino Del Regno <&mmss_smmu 0x410>, 16296fbc6c5SAngeloGioacchino Del Regno <&mmss_smmu 0x421>, 16396fbc6c5SAngeloGioacchino Del Regno <&mmss_smmu 0x428>, 16496fbc6c5SAngeloGioacchino Del Regno <&mmss_smmu 0x429>, 16596fbc6c5SAngeloGioacchino Del Regno <&mmss_smmu 0x42b>, 16696fbc6c5SAngeloGioacchino Del Regno <&mmss_smmu 0x42c>, 16796fbc6c5SAngeloGioacchino Del Regno <&mmss_smmu 0x42d>, 16896fbc6c5SAngeloGioacchino Del Regno <&mmss_smmu 0x411>, 16996fbc6c5SAngeloGioacchino Del Regno <&mmss_smmu 0x431>; 17096fbc6c5SAngeloGioacchino Del Regno memory-region = <&venus_region>; 17196fbc6c5SAngeloGioacchino Del Regno power-domains = <&mmcc VENUS_GDSC>; 17296fbc6c5SAngeloGioacchino Del Regno 17396fbc6c5SAngeloGioacchino Del Regno video-decoder { 17496fbc6c5SAngeloGioacchino Del Regno compatible = "venus-decoder"; 17596fbc6c5SAngeloGioacchino Del Regno clocks = <&mmcc VIDEO_SUBCORE0_CLK>; 17696fbc6c5SAngeloGioacchino Del Regno clock-names = "vcodec0_core"; 17796fbc6c5SAngeloGioacchino Del Regno power-domains = <&mmcc VENUS_CORE0_GDSC>; 17896fbc6c5SAngeloGioacchino Del Regno }; 17996fbc6c5SAngeloGioacchino Del Regno 18096fbc6c5SAngeloGioacchino Del Regno video-encoder { 18196fbc6c5SAngeloGioacchino Del Regno compatible = "venus-encoder"; 18296fbc6c5SAngeloGioacchino Del Regno clocks = <&mmcc VIDEO_SUBCORE0_CLK>; 18396fbc6c5SAngeloGioacchino Del Regno clock-names = "vcodec0_core"; 18496fbc6c5SAngeloGioacchino Del Regno power-domains = <&mmcc VENUS_CORE0_GDSC>; 18596fbc6c5SAngeloGioacchino Del Regno }; 18696fbc6c5SAngeloGioacchino Del Regno }; 187