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-07-04 02:02:55 +0100
commit6f56cb82102a519091b3672777e093a3c4a8af8f (patch)
treea9c392d5ad16692f7e3a70a30e3a1ad87b2ddf9a
parente3affb5d9a07c522e6c734b948f4ac677fbb44f8 (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.dtsi36
1 files changed, 36 insertions, 0 deletions
diff --git a/arch/arm64/boot/dts/qcom/msm8939.dtsi b/arch/arm64/boot/dts/qcom/msm8939.dtsi
index 7ed0fb5c7b39..d9cf042c4f59 100644
--- a/arch/arm64/boot/dts/qcom/msm8939.dtsi
+++ b/arch/arm64/boot/dts/qcom/msm8939.dtsi
@@ -1377,6 +1377,42 @@
};
};
+ venus: video-codec@1d00000 {
+ compatible = "qcom,msm8939-venus";
+ reg = <0x01d00000 0xff000>;
+ interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
+ power-domains = <&gcc VENUS_GDSC>,
+ <&gcc VENUS_CORE0_GDSC>,
+ <&gcc VENUS_CORE1_GDSC>;
+ power-domain-names = "venus", "vcodec0", "vcodec1";
+
+ clocks = <&gcc GCC_VENUS0_VCODEC0_CLK>,
+ <&gcc GCC_VENUS0_AHB_CLK>,
+ <&gcc GCC_VENUS0_AXI_CLK>,
+ <&gcc GCC_VENUS0_CORE0_VCODEC0_CLK>,
+ <&gcc GCC_VENUS0_CORE1_VCODEC0_CLK>;
+ clock-names = "core", "iface", "bus",
+ "vcodec0_core", "vcodec1_core";
+
+ 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";
+ };
+
+ video-encoder {
+ compatible = "venus-encoder";
+ };
+ };
+
apps_iommu: iommu@1ef0000 {
compatible = "qcom,msm8916-iommu", "qcom,msm-iommu-v1";
reg = <0x01ef0000 0x3000>;