aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBryan O'Donoghue <bryan.odonoghue@linaro.org>2022-05-09 16:51:44 +0100
committerBryan O'Donoghue <bryan.odonoghue@linaro.org>2022-11-07 23:33:59 +0000
commit714973e14fa86c3f53b4ac00cf4e50d2638d5861 (patch)
tree1444cd322007bdafad576b29288c2130cdc22246
parente01933d9ef84e593b8975329c4f68714f9cdf556 (diff)
arm64: dts: Add msm8939 venus encoder/decoder hardware
The msm9836/msm8939 has two available encoder/decoder capable blocks. In upstream we support a dedicated encoder and a dedicated decoder. As far as I understand it, it would be feasible to have two decoders or two encoders for parallel work like say decoding a video stream to each of the DSI outputs. Here though we add-in as per the upstream standard of fixed encoder and fixed decoder at the first and second co-processor blocks. Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
-rw-r--r--arch/arm64/boot/dts/qcom/msm8939.dtsi35
1 files changed, 35 insertions, 0 deletions
diff --git a/arch/arm64/boot/dts/qcom/msm8939.dtsi b/arch/arm64/boot/dts/qcom/msm8939.dtsi
index 1385b2570c30..9023b89d4bed 100644
--- a/arch/arm64/boot/dts/qcom/msm8939.dtsi
+++ b/arch/arm64/boot/dts/qcom/msm8939.dtsi
@@ -1381,6 +1381,41 @@
};
};
+ venus: video-codec@1d00000 {
+ compatible = "qcom,msm8939-venus";
+ reg = <0x01d00000 0xff000>;
+ interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
+ power-domains = <&gcc VENUS_GDSC>;
+ clocks = <&gcc GCC_VENUS0_VCODEC0_CLK>,
+ <&gcc GCC_VENUS0_AHB_CLK>,
+ <&gcc GCC_VENUS0_AXI_CLK>;
+ clock-names = "core", "iface", "bus";
+
+ interconnects = <&bimc MASTER_AMPSS_M0 &pcnoc SLAVE_VENUS_CFG>,
+ <&snoc_mm MASTER_VIDEO_P0 &bimc SLAVE_EBI_CH0>;
+ interconnect-names = "cpu-cfg", "video-mem";
+
+ iommus = <&apps_iommu 5>;
+ memory-region = <&venus_mem>;
+
+ resets = <&gcc GCC_VENUS0_BCR>;
+ status = "okay";
+
+ video-decoder {
+ compatible = "venus-decoder";
+ clocks = <&gcc GCC_VENUS0_CORE0_VCODEC0_CLK>;
+ clock-names = "vcodec0_core";
+ power-domains = <&gcc VENUS_CORE0_GDSC>;
+ };
+
+ video-encoder {
+ compatible = "venus-encoder";
+ clocks = <&gcc GCC_VENUS0_CORE1_VCODEC0_CLK>;
+ clock-names = "vcodec1_core";
+ power-domains = <&gcc VENUS_CORE1_GDSC>;
+ };
+ };
+
apps_iommu: iommu@1ef0000 {
compatible = "qcom,msm8916-iommu", "qcom,msm-iommu-v1";
reg = <0x01ef0000 0x3000>;