blob: 9d3ee39738bd7a3d85318713d0a69b7a579cc85f [file] [log] [blame]
Olav Haugan0e22c482013-01-28 17:39:36 -08001* Qualcomm MSM IOMMU v1
Olav Haugan95d24162012-12-05 14:47:47 -08002
3Required properties:
4- compatible : one of:
Olav Haugan0e22c482013-01-28 17:39:36 -08005 - "qcom,msm-smmu-v1"
Olav Haugan54166782013-01-28 16:59:51 -08006- 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 Haugan95d24162012-12-05 14:47:47 -080011
12Optional properties:
Olav Haugan54166782013-01-28 16:59:51 -080013- 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 Haugan00082d92013-05-21 09:21:10 -070016- qcom,vdd-supply: Regulator needed to access IOMMU
Olav Haugan54166782013-01-28 16:59:51 -080017- qcom,alt-vdd-supply : Alternative regulator needed to access IOMMU
18 configuration registers.
19- interrupts : should contain the performance monitor overflow interrupt number.
Olav Haugancd932192013-01-31 18:30:15 -080020- qcom,iommu-enable-halt : Enable halt of the IOMMU before programming certain 19
21 registers
Olav Haugan0c2d9322013-01-31 18:35:30 -080022- 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 Haugan236970a2013-05-14 17:00:02 -070025- Bus scaling properties: See msm_bus.txt
Olav Haugan54166782013-01-28 16:59:51 -080026
Olav Haugan95d24162012-12-05 14:47:47 -080027- List of sub nodes, one for each of the translation context banks supported.
28 Each sub node has the following required properties:
29
Olav Hauganbca3ded2013-05-10 11:19:34 -070030 - compatible : "qcom,msm-smmu-v1-ctx"
Olav Haugan95d24162012-12-05 14:47:47 -080031 - reg : offset and length of the register set for the context bank.
Mitchel Humpherysf3b50912013-05-21 17:46:04 -070032 - 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 Haugan54166782013-01-28 16:59:51 -080036 - qcom,iommu-ctx-sids : List of stream identifiers associated with this
Olav Haugan95d24162012-12-05 14:47:47 -080037 translation context.
38 - label : Name of the context bank
Olav Haugan54166782013-01-28 16:59:51 -080039 - vdd-supply : vdd-supply: phandle to GDSC regulator controlling this IOMMU.
Olav Haugan95d24162012-12-05 14:47:47 -080040
41Optional properties:
Olav Haugan54166782013-01-28 16:59:51 -080042- 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 Haugan19307692013-06-20 09:04:25 -070057- 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 Haugan95d24162012-12-05 14:47:47 -080061
62Example:
63
Olav Haugan54166782013-01-28 16:59:51 -080064 qcom,iommu@fda64000 {
Olav Haugan0e22c482013-01-28 17:39:36 -080065 compatible = "qcom,msm-smmu-v1";
Olav Haugan54166782013-01-28 16:59:51 -080066 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 Haugan0c2d9322013-01-31 18:35:30 -080072 qcom,iommu-pmu-ngroups = <1>;
73 qcom,iommu-pmu-ncounters = <8>;
74 qcom,iommu-pmu-event-classes = <0x00,
75 0x01>;
Olav Haugan95d24162012-12-05 14:47:47 -080076
Olav Haugan54166782013-01-28 16:59:51 -080077 qcom,iommu-ctx@fda6c000 {
Olav Hauganbca3ded2013-05-10 11:19:34 -070078 compatible = "qcom,msm-smmu-v1-ctx";
Olav Haugan54166782013-01-28 16:59:51 -080079 reg = <0xfda6c000 0x1000>;
80 interrupts = <0 70 0>;
81 qcom,iommu-ctx-sids = <0 2>;
82 label = "ctx_0";
Olav Haugan95d24162012-12-05 14:47:47 -080083 };
Olav Haugan54166782013-01-28 16:59:51 -080084 qcom,iommu-ctx@fda6d000 {
Olav Hauganbca3ded2013-05-10 11:19:34 -070085 compatible = "qcom,msm-smmu-v1-ctx";
Olav Haugan54166782013-01-28 16:59:51 -080086 reg = <0xfda6d000 0x1000>;
87 interrupts = <0 71 0>;
88 qcom,iommu-ctx-sids = <1>;
89 label = "ctx_1";
90 };
91 };