Olav Haugan | 0e22c48 | 2013-01-28 17:39:36 -0800 | [diff] [blame] | 1 | * Qualcomm MSM IOMMU v1 |
Olav Haugan | 95d2416 | 2012-12-05 14:47:47 -0800 | [diff] [blame] | 2 | |
| 3 | Required properties: |
| 4 | - compatible : one of: |
Olav Haugan | 0e22c48 | 2013-01-28 17:39:36 -0800 | [diff] [blame] | 5 | - "qcom,msm-smmu-v1" |
Olav Haugan | 5416678 | 2013-01-28 16:59:51 -0800 | [diff] [blame] | 6 | - reg : offset and length of the register set for the device. Optional |
| 7 | offset and length for clock register for additional clock that |
| 8 | needs to be turned on for access to this IOMMU. |
| 9 | - reg-names: "iommu_base", "clk_base" (optional) |
| 10 | - label: name of this IOMMU instance. |
Olav Haugan | 95d2416 | 2012-12-05 14:47:47 -0800 | [diff] [blame] | 11 | |
| 12 | Optional properties: |
Olav Haugan | 5416678 | 2013-01-28 16:59:51 -0800 | [diff] [blame] | 13 | - qcom,iommu-secure-id : Secure identifier for the IOMMU block |
| 14 | - qcom,secure-context : boolean indicating that a context is secure and |
| 15 | programmed by the secure environment. |
| 16 | - qcom,alt-vdd-supply : Alternative regulator needed to access IOMMU |
| 17 | configuration registers. |
| 18 | - interrupts : should contain the performance monitor overflow interrupt number. |
Olav Haugan | cd93219 | 2013-01-31 18:30:15 -0800 | [diff] [blame] | 19 | - qcom,iommu-enable-halt : Enable halt of the IOMMU before programming certain 19 |
| 20 | registers |
Olav Haugan | 0c2d932 | 2013-01-31 18:35:30 -0800 | [diff] [blame^] | 21 | - qcom,iommu-pmu-ngroups: Number of Performance Monitor Unit (PMU) groups. |
| 22 | - qcom,iommu-pmu-ncounters: Number of PMU counters per group. |
| 23 | - qcom,iommu-pmu-event-classes: List of event classes supported. |
Olav Haugan | 5416678 | 2013-01-28 16:59:51 -0800 | [diff] [blame] | 24 | |
Olav Haugan | 95d2416 | 2012-12-05 14:47:47 -0800 | [diff] [blame] | 25 | - List of sub nodes, one for each of the translation context banks supported. |
| 26 | Each sub node has the following required properties: |
| 27 | |
| 28 | - reg : offset and length of the register set for the context bank. |
| 29 | - interrupts : should contain the context bank interrupt. |
Olav Haugan | 5416678 | 2013-01-28 16:59:51 -0800 | [diff] [blame] | 30 | - qcom,iommu-ctx-sids : List of stream identifiers associated with this |
Olav Haugan | 95d2416 | 2012-12-05 14:47:47 -0800 | [diff] [blame] | 31 | translation context. |
| 32 | - label : Name of the context bank |
Olav Haugan | 5416678 | 2013-01-28 16:59:51 -0800 | [diff] [blame] | 33 | - vdd-supply : vdd-supply: phandle to GDSC regulator controlling this IOMMU. |
Olav Haugan | 95d2416 | 2012-12-05 14:47:47 -0800 | [diff] [blame] | 34 | |
| 35 | Optional properties: |
Olav Haugan | 5416678 | 2013-01-28 16:59:51 -0800 | [diff] [blame] | 36 | - qcom,needs-alt-core-clk : boolean to enable the secondary core clock for |
| 37 | access to the IOMMU configuration registers |
| 38 | - qcom,iommu-bfb-regs : An array of unsigned 32-bit integers corresponding to |
| 39 | BFB register addresses that need to be configured for performance tuning |
| 40 | purposes. If this property is present, the qcom,iommu-bfb-data must also be |
| 41 | present. Register addresses are specified as an offset from the base of the |
| 42 | IOMMU hardware block. This property may be omitted if no BFB register |
| 43 | configuration needs to be done for a particular IOMMU hardware instance. The |
| 44 | registers specified by this property shall fall within the IOMMU |
| 45 | implementation-defined register region. |
| 46 | - qcom,iommu-bfb-data : An array of unsigned 32-bit integers representing the |
| 47 | values to be programmed into the corresponding registers given by the |
| 48 | qcom,iommu-bfb-regs property. If this property is present, the |
| 49 | qcom,iommu-bfb-regs property shall also be present, and the lengths of both |
| 50 | properties shall be the same. |
Olav Haugan | 95d2416 | 2012-12-05 14:47:47 -0800 | [diff] [blame] | 51 | |
| 52 | Example: |
| 53 | |
Olav Haugan | 5416678 | 2013-01-28 16:59:51 -0800 | [diff] [blame] | 54 | qcom,iommu@fda64000 { |
Olav Haugan | 0e22c48 | 2013-01-28 17:39:36 -0800 | [diff] [blame] | 55 | compatible = "qcom,msm-smmu-v1"; |
Olav Haugan | 5416678 | 2013-01-28 16:59:51 -0800 | [diff] [blame] | 56 | reg = <0xfda64000 0x10000>; |
| 57 | reg-names = "iommu_base"; |
| 58 | vdd-supply = <&gdsc_iommu>; |
| 59 | qcom,iommu-bfb-regs = <0x204c 0x2050>; |
| 60 | qcom,iommu-bfb-data = <0xffff 0xffce>; |
| 61 | label = "iommu_0"; |
Olav Haugan | 0c2d932 | 2013-01-31 18:35:30 -0800 | [diff] [blame^] | 62 | qcom,iommu-pmu-ngroups = <1>; |
| 63 | qcom,iommu-pmu-ncounters = <8>; |
| 64 | qcom,iommu-pmu-event-classes = <0x00, |
| 65 | 0x01>; |
Olav Haugan | 95d2416 | 2012-12-05 14:47:47 -0800 | [diff] [blame] | 66 | |
Olav Haugan | 5416678 | 2013-01-28 16:59:51 -0800 | [diff] [blame] | 67 | qcom,iommu-ctx@fda6c000 { |
| 68 | reg = <0xfda6c000 0x1000>; |
| 69 | interrupts = <0 70 0>; |
| 70 | qcom,iommu-ctx-sids = <0 2>; |
| 71 | label = "ctx_0"; |
Olav Haugan | 95d2416 | 2012-12-05 14:47:47 -0800 | [diff] [blame] | 72 | }; |
Olav Haugan | 5416678 | 2013-01-28 16:59:51 -0800 | [diff] [blame] | 73 | qcom,iommu-ctx@fda6d000 { |
| 74 | reg = <0xfda6d000 0x1000>; |
| 75 | interrupts = <0 71 0>; |
| 76 | qcom,iommu-ctx-sids = <1>; |
| 77 | label = "ctx_1"; |
| 78 | }; |
| 79 | }; |