80 lines
3.2 KiB
Plaintext
80 lines
3.2 KiB
Plaintext
|
* Qualcomm MSM VIDC
|
||
|
|
||
|
Required properties:
|
||
|
- compatible : one of:
|
||
|
- "qcom,msm-vidc"
|
||
|
- qcom,hfi : supported Host-Firmware Interface, one of:
|
||
|
- "venus"
|
||
|
- "q6"
|
||
|
- qcom,max-hw-load: The maximum load the hardware can support expressed in units
|
||
|
of macroblocks per second.
|
||
|
|
||
|
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
|
||
|
- qcom,has-ocmem: indicate the target has ocmem if this property exists
|
||
|
|
||
|
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,has-ocmem;
|
||
|
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>;
|
||
|
qcom,max-hw-load = <1224450>; /* 4k @ 30 + 1080p @ 30*/
|
||
|
};
|