1*0e8011faSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*0e8011faSEmmanuel Vadot%YAML 1.2 3*0e8011faSEmmanuel Vadot--- 4*0e8011faSEmmanuel Vadot 5*0e8011faSEmmanuel Vadot$id: http://devicetree.org/schemas/iommu/qcom,apq8064-iommu.yaml# 6*0e8011faSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 7*0e8011faSEmmanuel Vadot 8*0e8011faSEmmanuel Vadottitle: Qualcomm APQ8064 IOMMU 9*0e8011faSEmmanuel Vadot 10*0e8011faSEmmanuel Vadotmaintainers: 11*0e8011faSEmmanuel Vadot - David Heidelberg <david@ixit.cz> 12*0e8011faSEmmanuel Vadot 13*0e8011faSEmmanuel Vadotdescription: 14*0e8011faSEmmanuel Vadot The MSM IOMMU is an implementation compatible with the ARM VMSA short 15*0e8011faSEmmanuel Vadot descriptor page tables. It provides address translation for bus masters 16*0e8011faSEmmanuel Vadot outside of the CPU, each connected to the IOMMU through a port called micro-TLB. 17*0e8011faSEmmanuel Vadot 18*0e8011faSEmmanuel Vadotproperties: 19*0e8011faSEmmanuel Vadot compatible: 20*0e8011faSEmmanuel Vadot const: qcom,apq8064-iommu 21*0e8011faSEmmanuel Vadot 22*0e8011faSEmmanuel Vadot clocks: 23*0e8011faSEmmanuel Vadot items: 24*0e8011faSEmmanuel Vadot - description: interface clock for register accesses 25*0e8011faSEmmanuel Vadot - description: functional clock for bus accesses 26*0e8011faSEmmanuel Vadot 27*0e8011faSEmmanuel Vadot clock-names: 28*0e8011faSEmmanuel Vadot items: 29*0e8011faSEmmanuel Vadot - const: smmu_pclk 30*0e8011faSEmmanuel Vadot - const: iommu_clk 31*0e8011faSEmmanuel Vadot 32*0e8011faSEmmanuel Vadot reg: 33*0e8011faSEmmanuel Vadot maxItems: 1 34*0e8011faSEmmanuel Vadot 35*0e8011faSEmmanuel Vadot interrupts: 36*0e8011faSEmmanuel Vadot description: Specifiers for the MMU fault interrupts. 37*0e8011faSEmmanuel Vadot minItems: 1 38*0e8011faSEmmanuel Vadot items: 39*0e8011faSEmmanuel Vadot - description: non-secure mode interrupt 40*0e8011faSEmmanuel Vadot - description: secure mode interrupt (for instances which supports it) 41*0e8011faSEmmanuel Vadot 42*0e8011faSEmmanuel Vadot "#iommu-cells": 43*0e8011faSEmmanuel Vadot const: 1 44*0e8011faSEmmanuel Vadot description: Each IOMMU specifier describes a single Stream ID. 45*0e8011faSEmmanuel Vadot 46*0e8011faSEmmanuel Vadot qcom,ncb: 47*0e8011faSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 48*0e8011faSEmmanuel Vadot description: The total number of context banks in the IOMMU. 49*0e8011faSEmmanuel Vadot minimum: 1 50*0e8011faSEmmanuel Vadot maximum: 4 51*0e8011faSEmmanuel Vadot 52*0e8011faSEmmanuel Vadotrequired: 53*0e8011faSEmmanuel Vadot - reg 54*0e8011faSEmmanuel Vadot - interrupts 55*0e8011faSEmmanuel Vadot - clocks 56*0e8011faSEmmanuel Vadot - clock-names 57*0e8011faSEmmanuel Vadot - qcom,ncb 58*0e8011faSEmmanuel Vadot 59*0e8011faSEmmanuel VadotadditionalProperties: false 60*0e8011faSEmmanuel Vadot 61*0e8011faSEmmanuel Vadotexamples: 62*0e8011faSEmmanuel Vadot - | 63*0e8011faSEmmanuel Vadot #include <dt-bindings/clock/qcom,mmcc-msm8960.h> 64*0e8011faSEmmanuel Vadot #include <dt-bindings/interrupt-controller/irq.h> 65*0e8011faSEmmanuel Vadot #include <dt-bindings/interrupt-controller/arm-gic.h> 66*0e8011faSEmmanuel Vadot 67*0e8011faSEmmanuel Vadot iommu@7500000 { 68*0e8011faSEmmanuel Vadot compatible = "qcom,apq8064-iommu"; 69*0e8011faSEmmanuel Vadot reg = <0x07500000 0x100000>; 70*0e8011faSEmmanuel Vadot interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>, 71*0e8011faSEmmanuel Vadot <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>; 72*0e8011faSEmmanuel Vadot clocks = <&clk SMMU_AHB_CLK>, 73*0e8011faSEmmanuel Vadot <&clk MDP_AXI_CLK>; 74*0e8011faSEmmanuel Vadot clock-names = "smmu_pclk", 75*0e8011faSEmmanuel Vadot "iommu_clk"; 76*0e8011faSEmmanuel Vadot #iommu-cells = <1>; 77*0e8011faSEmmanuel Vadot qcom,ncb = <2>; 78*0e8011faSEmmanuel Vadot }; 79