blob: f97e06381a1a4e9911aa416da19a08e9048c3991 [file] [log] [blame]
* Qualcomm MSM VIDC
Required properties:
- compatible : one of:
- "qcom,msm-vidc"
- qcom,hfi : supported Host-Firmware Interface, one of:
- "venus"
- "q6"
Optional properties:
- reg : offset and length of the register set for the device.
- interrupts : should contain the vidc interrupt.
- qcom,vidc-cp-map : start and size of device virtual address range for
secure buffers. Video hardware uses this address range to identify if
the buffers are secure or non-secure.
- qcom,vidc-ns-map : start and size of device virtual address range for
non-secure buffers. Video hardware uses this address range to identify
if the buffers are secure or non-secure.
- qcom,load-freq-tbl : load (in macroblocks/sec) and corresponding vcodec
clock required for optimal performance in descending order.
- qcom,reg-presets : list of offset-value pairs for registers to be written.
The offsets are from the base offset specified in 'reg'. This is mainly
used for QoS, vbif, etc. presets for video.
- qcom,bus-ports : number of bus ports supported by venus to access
ddr/ocmem.
- qcom,enc-ocmem-ab-ib : list of bus vectors (ab, ib pair) for ocmem
bandwidth request by different video encoder usecases.
- qcom,dec-ocmem-ab-ib : list of bus vectors(ab, ib pair) for ocmem
bandwidth request by different video decoder usecases.
- qcom,enc-ddr-ab-ib : list of bus vectors(ab,ib pair) for ddr bandwidth
request by different video encoder usecases.
- qcom,dec-ddr-ab-ib : list of bus vectors(ab, ib pair) for ddr bandwidth
request by different video decoder usecases.
- qcom,iommu-groups : list of IOMMU groups to be used. Groups are defined as
phandles in <target>-iommu-domains.dtsi (e.g msm8974-v1-iommu-domains.dtsi)
- qcom,iommu-group-buffer-types : bitmap of buffer types that can be mapped into
the corresponding IOMMU group. Buffer types are defined within the vidc driver
by "enum hal_buffer" in msm_smem.h
- qcom,buffer-type-tz-usage-table : a key-value pair, mapping a buffer type
(enum hal_buffer) to its corresponding TZ usage. The TZ usages are defined
as "enum cp_mem_usage" in include/linux/msm_ion.h
Example:
qcom,vidc@fdc00000 {
compatible = "qcom,msm-vidc";
reg = <0xfdc00000 0xff000>;
interrupts = <0 44 0>;
qcom,vidc-cp-map = <0x1000000 0x40000000>;
qcom,vidc-ns-map = <0x40000000 0x40000000>;
qcom,load-freq-tbl = <979200 410000000>,
<560145 266670000>,
<421161 200000000>,
<243000 133330000>,
<108000 100000000>,
<36000 50000000>;
qcom,hfi = "venus";
qcom,reg-presets = <0x80004 0x1>,
<0x80178 0x00001FFF>;
qcom,bus-ports = <1>;
qcom,enc-ocmem-ab-ib = <0 0>,
<138200 1222000>;
qcom,dec-ocmem-ab-ib = <0 0>,
<176900 1556640>;
qcom,enc-ddr-ab-ib = <0 0>,
<60000 664950>;
qcom,dec-ddr-ab-ib = <0 0>,
<110000 909000>;
qcom,iommu-groups = <&venus_domain_ns &venus_domain_cp>;
qcom,iommu-group-buffer-types = <0xfff 0x1ff>;
qcom,buffer-type-tz-usage-table = <0x1 0x1>,
<0x1fe 0x2>;
};