blob: 2c47f74944f1ef4b3ca5ac9eb144c292de2da1f3 [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
28 - reg : offset and length of the register set for the context bank.
29 - interrupts : should contain the context bank interrupt.
Olav Haugan54166782013-01-28 16:59:51 -080030 - qcom,iommu-ctx-sids : List of stream identifiers associated with this
Olav Haugan95d24162012-12-05 14:47:47 -080031 translation context.
32 - label : Name of the context bank
Olav Haugan54166782013-01-28 16:59:51 -080033 - vdd-supply : vdd-supply: phandle to GDSC regulator controlling this IOMMU.
Olav Haugan95d24162012-12-05 14:47:47 -080034
35Optional properties:
Olav Haugan54166782013-01-28 16:59:51 -080036- 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 Haugan95d24162012-12-05 14:47:47 -080051
52Example:
53
Olav Haugan54166782013-01-28 16:59:51 -080054 qcom,iommu@fda64000 {
Olav Haugan0e22c482013-01-28 17:39:36 -080055 compatible = "qcom,msm-smmu-v1";
Olav Haugan54166782013-01-28 16:59:51 -080056 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 Haugan0c2d9322013-01-31 18:35:30 -080062 qcom,iommu-pmu-ngroups = <1>;
63 qcom,iommu-pmu-ncounters = <8>;
64 qcom,iommu-pmu-event-classes = <0x00,
65 0x01>;
Olav Haugan95d24162012-12-05 14:47:47 -080066
Olav Haugan54166782013-01-28 16:59:51 -080067 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 Haugan95d24162012-12-05 14:47:47 -080072 };
Olav Haugan54166782013-01-28 16:59:51 -080073 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 };