1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2%YAML 1.2 3--- 4$id: http://devicetree.org/schemas/iommu/qcom,iommu.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: Qualcomm Technologies legacy IOMMU implementations 8 9maintainers: 10 - Konrad Dybcio <konrad.dybcio@linaro.org> 11 12description: | 13 Qualcomm "B" family devices which are not compatible with arm-smmu have 14 a similar looking IOMMU, but without access to the global register space 15 and optionally requiring additional configuration to route context IRQs 16 to non-secure vs secure interrupt line. 17 18properties: 19 compatible: 20 items: 21 - enum: 22 - qcom,msm8916-iommu 23 - qcom,msm8953-iommu 24 - const: qcom,msm-iommu-v1 25 26 clocks: 27 items: 28 - description: Clock required for IOMMU register group access 29 - description: Clock required for underlying bus access 30 31 clock-names: 32 items: 33 - const: iface 34 - const: bus 35 36 power-domains: 37 maxItems: 1 38 39 reg: 40 maxItems: 1 41 42 ranges: true 43 44 qcom,iommu-secure-id: 45 $ref: /schemas/types.yaml#/definitions/uint32 46 description: 47 The SCM secure ID of the IOMMU instance. 48 49 '#address-cells': 50 const: 1 51 52 '#size-cells': 53 const: 1 54 55 '#iommu-cells': 56 const: 1 57 58patternProperties: 59 "^iommu-ctx@[0-9a-f]+$": 60 type: object 61 additionalProperties: false 62 properties: 63 compatible: 64 enum: 65 - qcom,msm-iommu-v1-ns 66 - qcom,msm-iommu-v1-sec 67 68 interrupts: 69 maxItems: 1 70 71 reg: 72 maxItems: 1 73 74 required: 75 - compatible 76 - interrupts 77 - reg 78 79required: 80 - compatible 81 - clocks 82 - clock-names 83 - ranges 84 - '#address-cells' 85 - '#size-cells' 86 - '#iommu-cells' 87 88additionalProperties: false 89 90examples: 91 - | 92 #include <dt-bindings/clock/qcom,gcc-msm8916.h> 93 #include <dt-bindings/interrupt-controller/arm-gic.h> 94 95 apps_iommu: iommu@1e20000 { 96 compatible = "qcom,msm8916-iommu", "qcom,msm-iommu-v1"; 97 reg = <0x01ef0000 0x3000>; 98 clocks = <&gcc GCC_SMMU_CFG_CLK>, 99 <&gcc GCC_APSS_TCU_CLK>; 100 clock-names = "iface", "bus"; 101 qcom,iommu-secure-id = <17>; 102 #address-cells = <1>; 103 #size-cells = <1>; 104 #iommu-cells = <1>; 105 ranges = <0 0x01e20000 0x40000>; 106 107 /* mdp_0: */ 108 iommu-ctx@4000 { 109 compatible = "qcom,msm-iommu-v1-ns"; 110 reg = <0x4000 0x1000>; 111 interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>; 112 }; 113 }; 114