blob: cc2506debd797c6777f3f35ee9d9a84f838b0481 [file] [log] [blame]
Praneeth Paladugu4b73ec82012-02-08 12:55:59 -08001* Qualcomm MSM VIDC
2
3Required properties:
4- compatible : one of:
5 - "qcom,msm-vidc"
Vinay Kaliab6a3b9c2013-02-12 13:45:01 -08006- qcom,hfi : supported Host-Firmware Interface, one of:
Shalaj Jain7e488f02013-01-23 18:34:58 -08007 - "venus"
8 - "q6"
Arun Menon0c5f9652013-04-08 14:17:42 -07009- qcom,max-hw-load: The maximum load the hardware can support expressed in units
10 of macroblocks per second.
Arun Menon8e25dd42013-01-11 14:11:54 -080011
12Optional properties:
Praneeth Paladugu4b73ec82012-02-08 12:55:59 -080013- reg : offset and length of the register set for the device.
14- interrupts : should contain the vidc interrupt.
Vinay Kaliab6a3b9c2013-02-12 13:45:01 -080015- qcom,vidc-cp-map : start and size of device virtual address range for
16 secure buffers. Video hardware uses this address range to identify if
17 the buffers are secure or non-secure.
18- qcom,vidc-ns-map : start and size of device virtual address range for
19 non-secure buffers. Video hardware uses this address range to identify
20 if the buffers are secure or non-secure.
21- qcom,load-freq-tbl : load (in macroblocks/sec) and corresponding vcodec
22 clock required for optimal performance in descending order.
23- qcom,reg-presets : list of offset-value pairs for registers to be written.
24 The offsets are from the base offset specified in 'reg'. This is mainly
25 used for QoS, vbif, etc. presets for video.
Vinay Kalia39c99452013-02-12 14:09:38 -080026- qcom,bus-ports : number of bus ports supported by venus to access
27 ddr/ocmem.
28- qcom,enc-ocmem-ab-ib : list of bus vectors (ab, ib pair) for ocmem
29 bandwidth request by different video encoder usecases.
30- qcom,dec-ocmem-ab-ib : list of bus vectors(ab, ib pair) for ocmem
31 bandwidth request by different video decoder usecases.
32- qcom,enc-ddr-ab-ib : list of bus vectors(ab,ib pair) for ddr bandwidth
33 request by different video encoder usecases.
34- qcom,dec-ddr-ab-ib : list of bus vectors(ab, ib pair) for ddr bandwidth
35 request by different video decoder usecases.
Shalaj Jainc2feb4d2013-02-12 13:44:00 -080036- qcom,buffer-type-tz-usage-table : a key-value pair, mapping a buffer type
37 (enum hal_buffer) to its corresponding TZ usage. The TZ usages are defined
38 as "enum cp_mem_usage" in include/linux/msm_ion.h
Ashray Kulkarnic3029962013-03-18 17:00:13 -070039- qcom,has-ocmem: indicate the target has ocmem if this property exists
Eric Hoa00e2da2013-06-20 17:41:57 -070040- qcom,vidc-iommu-domains: node containing individual domain nodes, each with:
41 - a unique domain name for the domain node (e.g vidc,domain-ns)
42 - qcom,vidc-domain-phandle: phandle for the domain as defined in
43 <target>-iommu-domains.dtsi (e.g msm8974-v1-iommu-domains.dtsi)
44 - qcom,vidc-partition-buffer-types: bitmap of buffer types that can
45 be mapped into each IOMMU domain partition. There must be exactly
46 one buffer bitmap per partition in the domain, with order of the
47 bitmaps to be the same as the order of the respective partitions.
48 - Buffer types are defined as the following:
49 input = 0x1
50 output = 0x2
51 output2 = 0x2
52 extradata input = 0x4
53 extradata output = 0x8
54 extradata output2 = 0x8
55 internal scratch = 0x10
56 internal scratch1 = 0x20
57 internal scratch2 = 0x40
58 internal persist = 0x80
59 internal persist1 = 0x100
60 internal cmd queue = 0x200
Praneeth Paladugu4b73ec82012-02-08 12:55:59 -080061
62Example:
63
Vinay Kalia68398a42012-06-22 18:36:12 -070064
Praneeth Paladugu4b73ec82012-02-08 12:55:59 -080065 qcom,vidc@fdc00000 {
66 compatible = "qcom,msm-vidc";
67 reg = <0xfdc00000 0xff000>;
68 interrupts = <0 44 0>;
Vinay Kaliab6a3b9c2013-02-12 13:45:01 -080069 qcom,vidc-cp-map = <0x1000000 0x40000000>;
70 qcom,vidc-ns-map = <0x40000000 0x40000000>;
71 qcom,load-freq-tbl = <979200 410000000>,
Vinay Kalia94b221b2012-06-25 18:50:13 -070072 <560145 266670000>,
73 <421161 200000000>,
74 <243000 133330000>,
75 <108000 100000000>,
76 <36000 50000000>;
Ashray Kulkarnic3029962013-03-18 17:00:13 -070077 qcom,has-ocmem;
Vinay Kaliab6a3b9c2013-02-12 13:45:01 -080078 qcom,hfi = "venus";
79 qcom,reg-presets = <0x80004 0x1>,
Shalaj Jain7e488f02013-01-23 18:34:58 -080080 <0x80178 0x00001FFF>;
Vinay Kalia39c99452013-02-12 14:09:38 -080081 qcom,bus-ports = <1>;
82 qcom,enc-ocmem-ab-ib = <0 0>,
83 <138200 1222000>;
84 qcom,dec-ocmem-ab-ib = <0 0>,
85 <176900 1556640>;
86 qcom,enc-ddr-ab-ib = <0 0>,
87 <60000 664950>;
88 qcom,dec-ddr-ab-ib = <0 0>,
89 <110000 909000>;
Shalaj Jainc2feb4d2013-02-12 13:44:00 -080090 qcom,buffer-type-tz-usage-table = <0x1 0x1>,
91 <0x1fe 0x2>;
Deva Ramasubramanian74b1dda2013-03-27 13:16:17 -070092 qcom,max-hw-load = <1224450>; /* 4k @ 30 + 1080p @ 30*/
Eric Hoa00e2da2013-06-20 17:41:57 -070093 qcom,vidc-iommu-domains {
94 qcom,domain-ns {
95 qcom,vidc-domain-phandle = <&venus_domain_ns>;
96 qcom,vidc-partition-buffer-types = <0x1ff>,
97 <0x200>;
98 };
99
100 qcom,domain-cp {
101 qcom,vidc-domain-phandle = <&venus_domain_cp>;
102 qcom,vidc-partition-buffer-types = <0x2>,
103 <0x1f1>;
104 };
105 };
Praneeth Paladugu4b73ec82012-02-08 12:55:59 -0800106 };