blob: 56f476746a907b30d333f0ecc0c28ce0a548eebe [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.
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 Haugancd932192013-01-31 18:30:15 -080019- qcom,iommu-enable-halt : Enable halt of the IOMMU before programming certain 19
20 registers
Olav Haugan0c2d9322013-01-31 18:35:30 -080021- 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 Haugan54166782013-01-28 16:59:51 -080024
Olav Haugan95d24162012-12-05 14:47:47 -080025- List of sub nodes, one for each of the translation context banks supported.
26 Each sub node has the following required properties:
27
Olav Hauganbca3ded2013-05-10 11:19:34 -070028 - compatible : "qcom,msm-smmu-v1-ctx"
Olav Haugan95d24162012-12-05 14:47:47 -080029 - reg : offset and length of the register set for the context bank.
30 - interrupts : should contain the context bank interrupt.
Olav Haugan54166782013-01-28 16:59:51 -080031 - qcom,iommu-ctx-sids : List of stream identifiers associated with this
Olav Haugan95d24162012-12-05 14:47:47 -080032 translation context.
33 - label : Name of the context bank
Olav Haugan54166782013-01-28 16:59:51 -080034 - vdd-supply : vdd-supply: phandle to GDSC regulator controlling this IOMMU.
Olav Haugan95d24162012-12-05 14:47:47 -080035
36Optional properties:
Olav Haugan54166782013-01-28 16:59:51 -080037- qcom,needs-alt-core-clk : boolean to enable the secondary core clock for
38 access to the IOMMU configuration registers
39- qcom,iommu-bfb-regs : An array of unsigned 32-bit integers corresponding to
40 BFB register addresses that need to be configured for performance tuning
41 purposes. If this property is present, the qcom,iommu-bfb-data must also be
42 present. Register addresses are specified as an offset from the base of the
43 IOMMU hardware block. This property may be omitted if no BFB register
44 configuration needs to be done for a particular IOMMU hardware instance. The
45 registers specified by this property shall fall within the IOMMU
46 implementation-defined register region.
47- qcom,iommu-bfb-data : An array of unsigned 32-bit integers representing the
48 values to be programmed into the corresponding registers given by the
49 qcom,iommu-bfb-regs property. If this property is present, the
50 qcom,iommu-bfb-regs property shall also be present, and the lengths of both
51 properties shall be the same.
Olav Haugan95d24162012-12-05 14:47:47 -080052
53Example:
54
Olav Haugan54166782013-01-28 16:59:51 -080055 qcom,iommu@fda64000 {
Olav Haugan0e22c482013-01-28 17:39:36 -080056 compatible = "qcom,msm-smmu-v1";
Olav Haugan54166782013-01-28 16:59:51 -080057 reg = <0xfda64000 0x10000>;
58 reg-names = "iommu_base";
59 vdd-supply = <&gdsc_iommu>;
60 qcom,iommu-bfb-regs = <0x204c 0x2050>;
61 qcom,iommu-bfb-data = <0xffff 0xffce>;
62 label = "iommu_0";
Olav Haugan0c2d9322013-01-31 18:35:30 -080063 qcom,iommu-pmu-ngroups = <1>;
64 qcom,iommu-pmu-ncounters = <8>;
65 qcom,iommu-pmu-event-classes = <0x00,
66 0x01>;
Olav Haugan95d24162012-12-05 14:47:47 -080067
Olav Haugan54166782013-01-28 16:59:51 -080068 qcom,iommu-ctx@fda6c000 {
Olav Hauganbca3ded2013-05-10 11:19:34 -070069 compatible = "qcom,msm-smmu-v1-ctx";
Olav Haugan54166782013-01-28 16:59:51 -080070 reg = <0xfda6c000 0x1000>;
71 interrupts = <0 70 0>;
72 qcom,iommu-ctx-sids = <0 2>;
73 label = "ctx_0";
Olav Haugan95d24162012-12-05 14:47:47 -080074 };
Olav Haugan54166782013-01-28 16:59:51 -080075 qcom,iommu-ctx@fda6d000 {
Olav Hauganbca3ded2013-05-10 11:19:34 -070076 compatible = "qcom,msm-smmu-v1-ctx";
Olav Haugan54166782013-01-28 16:59:51 -080077 reg = <0xfda6d000 0x1000>;
78 interrupts = <0 71 0>;
79 qcom,iommu-ctx-sids = <1>;
80 label = "ctx_1";
81 };
82 };