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