Praneeth Paladugu | 4b73ec8 | 2012-02-08 12:55:59 -0800 | [diff] [blame] | 1 | * Qualcomm MSM VIDC |
| 2 | |
| 3 | Required properties: |
| 4 | - compatible : one of: |
| 5 | - "qcom,msm-vidc" |
Vinay Kalia | b6a3b9c | 2013-02-12 13:45:01 -0800 | [diff] [blame] | 6 | - qcom,hfi : supported Host-Firmware Interface, one of: |
Shalaj Jain | 7e488f0 | 2013-01-23 18:34:58 -0800 | [diff] [blame] | 7 | - "venus" |
| 8 | - "q6" |
Arun Menon | 0c5f965 | 2013-04-08 14:17:42 -0700 | [diff] [blame] | 9 | - qcom,max-hw-load: The maximum load the hardware can support expressed in units |
| 10 | of macroblocks per second. |
Arun Menon | 8e25dd4 | 2013-01-11 14:11:54 -0800 | [diff] [blame] | 11 | |
| 12 | Optional properties: |
Praneeth Paladugu | 4b73ec8 | 2012-02-08 12:55:59 -0800 | [diff] [blame] | 13 | - reg : offset and length of the register set for the device. |
| 14 | - interrupts : should contain the vidc interrupt. |
Vinay Kalia | b6a3b9c | 2013-02-12 13:45:01 -0800 | [diff] [blame] | 15 | - 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 Kalia | 39c9945 | 2013-02-12 14:09:38 -0800 | [diff] [blame] | 26 | - 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 Jain | c2feb4d | 2013-02-12 13:44:00 -0800 | [diff] [blame] | 36 | - 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 Kulkarni | c302996 | 2013-03-18 17:00:13 -0700 | [diff] [blame] | 39 | - qcom,has-ocmem: indicate the target has ocmem if this property exists |
Eric Ho | a00e2da | 2013-06-20 17:41:57 -0700 | [diff] [blame^] | 40 | - 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 Paladugu | 4b73ec8 | 2012-02-08 12:55:59 -0800 | [diff] [blame] | 61 | |
| 62 | Example: |
| 63 | |
Vinay Kalia | 68398a4 | 2012-06-22 18:36:12 -0700 | [diff] [blame] | 64 | |
Praneeth Paladugu | 4b73ec8 | 2012-02-08 12:55:59 -0800 | [diff] [blame] | 65 | qcom,vidc@fdc00000 { |
| 66 | compatible = "qcom,msm-vidc"; |
| 67 | reg = <0xfdc00000 0xff000>; |
| 68 | interrupts = <0 44 0>; |
Vinay Kalia | b6a3b9c | 2013-02-12 13:45:01 -0800 | [diff] [blame] | 69 | qcom,vidc-cp-map = <0x1000000 0x40000000>; |
| 70 | qcom,vidc-ns-map = <0x40000000 0x40000000>; |
| 71 | qcom,load-freq-tbl = <979200 410000000>, |
Vinay Kalia | 94b221b | 2012-06-25 18:50:13 -0700 | [diff] [blame] | 72 | <560145 266670000>, |
| 73 | <421161 200000000>, |
| 74 | <243000 133330000>, |
| 75 | <108000 100000000>, |
| 76 | <36000 50000000>; |
Ashray Kulkarni | c302996 | 2013-03-18 17:00:13 -0700 | [diff] [blame] | 77 | qcom,has-ocmem; |
Vinay Kalia | b6a3b9c | 2013-02-12 13:45:01 -0800 | [diff] [blame] | 78 | qcom,hfi = "venus"; |
| 79 | qcom,reg-presets = <0x80004 0x1>, |
Shalaj Jain | 7e488f0 | 2013-01-23 18:34:58 -0800 | [diff] [blame] | 80 | <0x80178 0x00001FFF>; |
Vinay Kalia | 39c9945 | 2013-02-12 14:09:38 -0800 | [diff] [blame] | 81 | 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 Jain | c2feb4d | 2013-02-12 13:44:00 -0800 | [diff] [blame] | 90 | qcom,buffer-type-tz-usage-table = <0x1 0x1>, |
| 91 | <0x1fe 0x2>; |
Deva Ramasubramanian | 74b1dda | 2013-03-27 13:16:17 -0700 | [diff] [blame] | 92 | qcom,max-hw-load = <1224450>; /* 4k @ 30 + 1080p @ 30*/ |
Eric Ho | a00e2da | 2013-06-20 17:41:57 -0700 | [diff] [blame^] | 93 | 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 Paladugu | 4b73ec8 | 2012-02-08 12:55:59 -0800 | [diff] [blame] | 106 | }; |