Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

[media] doc: DT: venus: binding document for Qualcomm video driver

Add binding document for Venus video encoder/decoder driver

Cc: Rob Herring <robh+dt@kernel.org>
Cc: devicetree@vger.kernel.org
Acked-by: Rob Herring <robh@kernel.org>
Signed-off-by: Stanimir Varbanov <stanimir.varbanov@linaro.org>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>

authored by

Stanimir Varbanov and committed by
Mauro Carvalho Chehab
2f7c8e0e d4987564

+107
+107
Documentation/devicetree/bindings/media/qcom,venus.txt
··· 1 + * Qualcomm Venus video encoder/decoder accelerators 2 + 3 + - compatible: 4 + Usage: required 5 + Value type: <stringlist> 6 + Definition: Value should contain one of: 7 + - "qcom,msm8916-venus" 8 + - "qcom,msm8996-venus" 9 + - reg: 10 + Usage: required 11 + Value type: <prop-encoded-array> 12 + Definition: Register base address and length of the register map. 13 + - interrupts: 14 + Usage: required 15 + Value type: <prop-encoded-array> 16 + Definition: Should contain interrupt line number. 17 + - clocks: 18 + Usage: required 19 + Value type: <prop-encoded-array> 20 + Definition: A List of phandle and clock specifier pairs as listed 21 + in clock-names property. 22 + - clock-names: 23 + Usage: required for msm8916 24 + Value type: <stringlist> 25 + Definition: Should contain the following entries: 26 + - "core" Core video accelerator clock 27 + - "iface" Video accelerator AHB clock 28 + - "bus" Video accelerator AXI clock 29 + - clock-names: 30 + Usage: required for msm8996 31 + Value type: <stringlist> 32 + Definition: Should contain the following entries: 33 + - "core" Core video accelerator clock 34 + - "iface" Video accelerator AHB clock 35 + - "bus" Video accelerator AXI clock 36 + - "mbus" Video MAXI clock 37 + - power-domains: 38 + Usage: required 39 + Value type: <prop-encoded-array> 40 + Definition: A phandle and power domain specifier pairs to the 41 + power domain which is responsible for collapsing 42 + and restoring power to the peripheral. 43 + - iommus: 44 + Usage: required 45 + Value type: <prop-encoded-array> 46 + Definition: A list of phandle and IOMMU specifier pairs. 47 + - memory-region: 48 + Usage: required 49 + Value type: <phandle> 50 + Definition: reference to the reserved-memory for the firmware 51 + memory region. 52 + 53 + * Subnodes 54 + The Venus video-codec node must contain two subnodes representing 55 + video-decoder and video-encoder. 56 + 57 + Every of video-encoder or video-decoder subnode should have: 58 + 59 + - compatible: 60 + Usage: required 61 + Value type: <stringlist> 62 + Definition: Value should contain "venus-decoder" or "venus-encoder" 63 + - clocks: 64 + Usage: required for msm8996 65 + Value type: <prop-encoded-array> 66 + Definition: A List of phandle and clock specifier pairs as listed 67 + in clock-names property. 68 + - clock-names: 69 + Usage: required for msm8996 70 + Value type: <stringlist> 71 + Definition: Should contain the following entries: 72 + - "core" Subcore video accelerator clock 73 + 74 + - power-domains: 75 + Usage: required for msm8996 76 + Value type: <prop-encoded-array> 77 + Definition: A phandle and power domain specifier pairs to the 78 + power domain which is responsible for collapsing 79 + and restoring power to the subcore. 80 + 81 + * An Example 82 + video-codec@1d00000 { 83 + compatible = "qcom,msm8916-venus"; 84 + reg = <0x01d00000 0xff000>; 85 + interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>; 86 + clocks = <&gcc GCC_VENUS0_VCODEC0_CLK>, 87 + <&gcc GCC_VENUS0_AHB_CLK>, 88 + <&gcc GCC_VENUS0_AXI_CLK>; 89 + clock-names = "core", "iface", "bus"; 90 + power-domains = <&gcc VENUS_GDSC>; 91 + iommus = <&apps_iommu 5>; 92 + memory-region = <&venus_mem>; 93 + 94 + video-decoder { 95 + compatible = "venus-decoder"; 96 + clocks = <&mmcc VIDEO_SUBCORE0_CLK>; 97 + clock-names = "core"; 98 + power-domains = <&mmcc VENUS_CORE0_GDSC>; 99 + }; 100 + 101 + video-encoder { 102 + compatible = "venus-encoder"; 103 + clocks = <&mmcc VIDEO_SUBCORE1_CLK>; 104 + clock-names = "core"; 105 + power-domains = <&mmcc VENUS_CORE1_GDSC>; 106 + }; 107 + };