| * Qualcomm Venus video encoder/decoder accelerators |
| |
| - compatible: |
| Usage: required |
| Value type: <stringlist> |
| Definition: Value should contain one of: |
| - "qcom,msm8916-venus" |
| - "qcom,msm8996-venus" |
| - "qcom,sdm845-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, and one optional firmware subnode. |
| Firmware subnode is needed when the platform does not have TrustZone. |
| |
| 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. |
| |
| The firmware subnode must have: |
| |
| - iommus: |
| Usage: required |
| Value type: <prop-encoded-array> |
| Definition: A list of phandle and IOMMU specifier pairs. |
| |
| * 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>; |
| }; |
| |
| video-firmware { |
| iommus = <&apps_iommu 0x10b2 0x0>; |
| }; |
| }; |