xref: /freebsd/sys/contrib/device-tree/Bindings/iommu/qcom,apq8064-iommu.yaml (revision 0e8011faf58b743cc652e3b2ad0f7671227610df)
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