|
@@ -0,0 +1,107 @@
|
|
|
+* Qualcomm Venus video encoder/decoder accelerators
|
|
|
+
|
|
|
+- compatible:
|
|
|
+ Usage: required
|
|
|
+ Value type: <stringlist>
|
|
|
+ Definition: Value should contain one of:
|
|
|
+ - "qcom,msm8916-venus"
|
|
|
+ - "qcom,msm8996-venus"
|
|
|
+- reg:
|
|
|
+ Usage: required
|
|
|
+ Value type: <prop-encoded-array>
|
|
|
+ Definition: Register base address and length of the register map.
|
|
|
+- interrupts:
|
|
|
+ Usage: required
|
|
|
+ Value type: <prop-encoded-array>
|
|
|
+ Definition: Should contain interrupt line number.
|
|
|
+- clocks:
|
|
|
+ Usage: required
|
|
|
+ Value type: <prop-encoded-array>
|
|
|
+ Definition: A List of phandle and clock specifier pairs as listed
|
|
|
+ in clock-names property.
|
|
|
+- clock-names:
|
|
|
+ Usage: required for msm8916
|
|
|
+ Value type: <stringlist>
|
|
|
+ Definition: Should contain the following entries:
|
|
|
+ - "core" Core video accelerator clock
|
|
|
+ - "iface" Video accelerator AHB clock
|
|
|
+ - "bus" Video accelerator AXI clock
|
|
|
+- clock-names:
|
|
|
+ Usage: required for msm8996
|
|
|
+ Value type: <stringlist>
|
|
|
+ Definition: Should contain the following entries:
|
|
|
+ - "core" Core video accelerator clock
|
|
|
+ - "iface" Video accelerator AHB clock
|
|
|
+ - "bus" Video accelerator AXI clock
|
|
|
+ - "mbus" Video MAXI clock
|
|
|
+- power-domains:
|
|
|
+ Usage: required
|
|
|
+ Value type: <prop-encoded-array>
|
|
|
+ Definition: A phandle and power domain specifier pairs to the
|
|
|
+ power domain which is responsible for collapsing
|
|
|
+ and restoring power to the peripheral.
|
|
|
+- iommus:
|
|
|
+ Usage: required
|
|
|
+ Value type: <prop-encoded-array>
|
|
|
+ Definition: A list of phandle and IOMMU specifier pairs.
|
|
|
+- memory-region:
|
|
|
+ Usage: required
|
|
|
+ Value type: <phandle>
|
|
|
+ Definition: reference to the reserved-memory for the firmware
|
|
|
+ memory region.
|
|
|
+
|
|
|
+* Subnodes
|
|
|
+The Venus video-codec node must contain two subnodes representing
|
|
|
+video-decoder and video-encoder.
|
|
|
+
|
|
|
+Every of video-encoder or video-decoder subnode should have:
|
|
|
+
|
|
|
+- compatible:
|
|
|
+ Usage: required
|
|
|
+ Value type: <stringlist>
|
|
|
+ Definition: Value should contain "venus-decoder" or "venus-encoder"
|
|
|
+- clocks:
|
|
|
+ Usage: required for msm8996
|
|
|
+ Value type: <prop-encoded-array>
|
|
|
+ Definition: A List of phandle and clock specifier pairs as listed
|
|
|
+ in clock-names property.
|
|
|
+- clock-names:
|
|
|
+ Usage: required for msm8996
|
|
|
+ Value type: <stringlist>
|
|
|
+ Definition: Should contain the following entries:
|
|
|
+ - "core" Subcore video accelerator clock
|
|
|
+
|
|
|
+- power-domains:
|
|
|
+ Usage: required for msm8996
|
|
|
+ Value type: <prop-encoded-array>
|
|
|
+ Definition: A phandle and power domain specifier pairs to the
|
|
|
+ power domain which is responsible for collapsing
|
|
|
+ and restoring power to the subcore.
|
|
|
+
|
|
|
+* An Example
|
|
|
+ video-codec@1d00000 {
|
|
|
+ compatible = "qcom,msm8916-venus";
|
|
|
+ reg = <0x01d00000 0xff000>;
|
|
|
+ interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
|
|
|
+ clocks = <&gcc GCC_VENUS0_VCODEC0_CLK>,
|
|
|
+ <&gcc GCC_VENUS0_AHB_CLK>,
|
|
|
+ <&gcc GCC_VENUS0_AXI_CLK>;
|
|
|
+ clock-names = "core", "iface", "bus";
|
|
|
+ power-domains = <&gcc VENUS_GDSC>;
|
|
|
+ iommus = <&apps_iommu 5>;
|
|
|
+ memory-region = <&venus_mem>;
|
|
|
+
|
|
|
+ video-decoder {
|
|
|
+ compatible = "venus-decoder";
|
|
|
+ clocks = <&mmcc VIDEO_SUBCORE0_CLK>;
|
|
|
+ clock-names = "core";
|
|
|
+ power-domains = <&mmcc VENUS_CORE0_GDSC>;
|
|
|
+ };
|
|
|
+
|
|
|
+ video-encoder {
|
|
|
+ compatible = "venus-encoder";
|
|
|
+ clocks = <&mmcc VIDEO_SUBCORE1_CLK>;
|
|
|
+ clock-names = "core";
|
|
|
+ power-domains = <&mmcc VENUS_CORE1_GDSC>;
|
|
|
+ };
|
|
|
+ };
|