| * 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>; |
| }; |