1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- * Qualcomm MSM IOMMU v1
- Required properties:
- - compatible : one of:
- - "qcom,msm-smmu-v1"
- - reg : offset and length of the register set for the device. Optional
- offset and length for clock register for additional clock that
- needs to be turned on for access to this IOMMU.
- - reg-names: "iommu_base", "clk_base" (optional)
- - label: name of this IOMMU instance.
- Optional properties:
- - qcom,iommu-secure-id : Secure identifier for the IOMMU block
- - qcom,secure-context : boolean indicating that a context is secure and
- programmed by the secure environment.
- - qcom,vdd-supply: Regulator needed to access IOMMU
- - qcom,alt-vdd-supply : Alternative regulator needed to access IOMMU
- configuration registers.
- - interrupts : should contain the performance monitor overflow interrupt number.
- - qcom,iommu-enable-halt : Enable halt of the IOMMU before programming certain 19
- registers
- - qcom,iommu-pmu-ngroups: Number of Performance Monitor Unit (PMU) groups.
- - qcom,iommu-pmu-ncounters: Number of PMU counters per group.
- - qcom,iommu-pmu-event-classes: List of event classes supported.
- - Bus scaling properties: See msm_bus.txt
- - List of sub nodes, one for each of the translation context banks supported.
- Each sub node has the following required properties:
- - compatible : "qcom,msm-smmu-v1-ctx"
- - reg : offset and length of the register set for the context bank.
- - interrupts : should contain the context bank interrupt. If this is
- a secure context bank, this should be a list of 2 3-tuples where
- the first is the non-secure interrupt, and the second is the
- secure interrupt.
- - qcom,iommu-ctx-sids : List of stream identifiers associated with this
- translation context.
- - label : Name of the context bank
- - vdd-supply : vdd-supply: phandle to GDSC regulator controlling this IOMMU.
- Optional properties:
- - qcom,needs-alt-core-clk : boolean to enable the secondary core clock for
- access to the IOMMU configuration registers
- - qcom,iommu-bfb-regs : An array of unsigned 32-bit integers corresponding to
- BFB register addresses that need to be configured for performance tuning
- purposes. If this property is present, the qcom,iommu-bfb-data must also be
- present. Register addresses are specified as an offset from the base of the
- IOMMU hardware block. This property may be omitted if no BFB register
- configuration needs to be done for a particular IOMMU hardware instance. The
- registers specified by this property shall fall within the IOMMU
- implementation-defined register region.
- - qcom,iommu-bfb-data : An array of unsigned 32-bit integers representing the
- values to be programmed into the corresponding registers given by the
- qcom,iommu-bfb-regs property. If this property is present, the
- qcom,iommu-bfb-regs property shall also be present, and the lengths of both
- properties shall be the same.
- - qcom,iommu-lpae-bfb-regs : See description for qcom,iommu-bfb-regs. This is
- the same property except this is for IOMMU with LPAE support.
- - qcom,iommu-lpae-bfb-data : See description for qcom,iommu-bfb-data. This is
- the same property except this is for IOMMU with LPAE support.
- Example:
- qcom,iommu@fda64000 {
- compatible = "qcom,msm-smmu-v1";
- reg = <0xfda64000 0x10000>;
- reg-names = "iommu_base";
- vdd-supply = <&gdsc_iommu>;
- qcom,iommu-bfb-regs = <0x204c 0x2050>;
- qcom,iommu-bfb-data = <0xffff 0xffce>;
- label = "iommu_0";
- qcom,iommu-pmu-ngroups = <1>;
- qcom,iommu-pmu-ncounters = <8>;
- qcom,iommu-pmu-event-classes = <0x00,
- 0x01>;
- qcom,iommu-ctx@fda6c000 {
- compatible = "qcom,msm-smmu-v1-ctx";
- reg = <0xfda6c000 0x1000>;
- interrupts = <0 70 0>;
- qcom,iommu-ctx-sids = <0 2>;
- label = "ctx_0";
- };
- qcom,iommu-ctx@fda6d000 {
- compatible = "qcom,msm-smmu-v1-ctx";
- reg = <0xfda6d000 0x1000>;
- interrupts = <0 71 0>;
- qcom,iommu-ctx-sids = <1>;
- label = "ctx_1";
- };
- };
|