About Kernel Documentation Linux Kernel Contact Linux Resources Linux Blog

Documentation / devicetree / bindings / media / qcom,venus.txt


Based on kernel version 5.6.13. Page generated on 2020-05-15 16:46 EST.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120
* 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>;
		};
	};


About Kernel Documentation Linux Kernel Contact Linux Resources Linux Blog