blob: 6aea66b500dc407a9c34ab4c784b5eb9da627267 [file] [log] [blame]
* Qualcomm Technologies, Inc. MSM VPU
VPU (Video Processing Unit) applies high quality video post-processing
functions like noise reduction, deinterlacing, scaling, etc in real-time
on streaming video.
Required properties:
- compatible:
- "qcom,vpu"
- reg: Specify offset and length of the device register sets.
- reg-names: Names corresponding to the defined register sets.
- "vpu_csr": CSR registers
- "vpu_smem": Shared memory
- "vpu_vbif": VBIF registers (optional)
- interrupts: Specify the vpu interrupts.
- interrupt-names: Names corresponding to the defined interrupts list.
- "vpu_wdog": Watchdog interrupt
- "vpu_hfi": Firmware to Host interrupt
- clock-names: Array of clocks that the driver requires for the device.
The names here correspond to the clock names used in clk_get(<name>).
- qcom,bus-load-vector-tbl: Vectors of <load, ab, ib>. The (ab,ib) pairs are
ddr bus bandwidths to be requested at corresponding video processing load.
Vectors should be in ascending order of load, and their number is variable.
- vdd-supply: regulator that supplies the vpu.
Optional properties:
- qcom,enabled-iommu-maps: List of IOMMU maps to be enabled, defined by name.
If this property is not defined or invalid, then device assumes contiguous
buffers. Valid iommu names are:
- "vpu_nonsecure": IOMMU for accessing non-secure video buffers.
- "vpu_secure": IOMMU for accessing secure video buffers.
- "vpu_firmware": IOMMU for loading firmware image.
- qcom,vbif-reg-presets: List of offset-value pairs for VBIF registers to be
programmed. The offsets are from the base register specified in 'vpu_vbif'.
This is used to program default register values for QoS settings, etc.
Example:
qcom,vpu@fdc00000 {
compatible = "qcom,vpu";
reg = <0xfdc00000 0xff000>,
<0xbfe00000 0x100000>;
reg-names = "vpu_csr", "vpu_smem";
interrupts = <0 44 0>, <0 45 0>;
interrupt-names = "vpu_wdog", "vpu_hfi";
clock-names = "core_clk", "bus_clock", "iface_clk";
qcom,maple-clk-load-freq-tbl = <100000 50000000>,
<500000 400000000>;
qcom,vdp-clk-load-freq-tbl = <200000 100000000>,
<400000 320000000>;
qcom,bus-clk-load-freq-tbl = <100000 40000000>,
<200000 80000000>;
qcom,bus-load-vector-tbl = <0 0 0>,
<489600 536000 1600000>,
<979200 2024000 1600000>;
qcom,enabled-iommu-maps = "vpu_nonsecure", "vpu_secure";
qcom,vbif-reg-presets = <0xb0138 0x43ff>,
<0xb0178 0xff12350e>;
vdd-supply = <&gdsc_vpu>;
};