123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- * 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.
- - vdd-supply : regulator to supply venus.
- - 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,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
- - qcom,vidc-iommu-domains: node containing individual domain nodes, each with:
- - a unique domain name for the domain node (e.g vidc,domain-ns)
- - qcom,vidc-domain-phandle: phandle for the domain as defined in
- <target>-iommu-domains.dtsi (e.g msm8974-v1-iommu-domains.dtsi)
- - qcom,vidc-partition-buffer-types: bitmap of buffer types that can
- be mapped into each IOMMU domain partition. There must be exactly
- one buffer bitmap per partition in the domain, with order of the
- bitmaps to be the same as the order of the respective partitions.
- - Buffer types are defined as the following:
- input = 0x1
- output = 0x2
- output2 = 0x4
- extradata input = 0x8
- extradata output = 0x10
- extradata output2 = 0x20
- internal scratch = 0x40
- internal scratch1 = 0x80
- internal scratch2 = 0x100
- internal persist = 0x200
- internal persist1 = 0x400
- internal cmd queue = 0x800
- Example:
- qcom,vidc@fdc00000 {
- compatible = "qcom,msm-vidc";
- reg = <0xfdc00000 0xff000>;
- interrupts = <0 44 0>;
- vdd-supply = <&gdsc_venus>;
- 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,buffer-type-tz-usage-table = <0x1 0x1>,
- <0x1fe 0x2>;
- qcom,max-hw-load = <1224450>; /* 4k @ 30 + 1080p @ 30*/
- qcom,vidc-iommu-domains {
- qcom,domain-ns {
- qcom,vidc-domain-phandle = <&venus_domain_ns>;
- qcom,vidc-partition-buffer-types = <0x7ff>,
- <0x800>;
- };
- qcom,domain-cp {
- qcom,vidc-domain-phandle = <&venus_domain_cp>;
- qcom,vidc-partition-buffer-types = <0x6>,
- <0x7c1>;
- };
- };
- };
|