xref: /linux/Documentation/devicetree/bindings/iommu/verisilicon,iommu.yaml (revision b2128290c29902315e632ea59e0504d6bc9e9b42)
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/iommu/verisilicon,iommu.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Verisilicon IOMMU
8
9maintainers:
10  - Benjamin Gaignard <benjamin.gaignard@collabora.com>
11
12description: |+
13  A Versilicon iommu translates io virtual addresses to physical addresses for
14  its associated video decoder.
15
16properties:
17  compatible:
18    items:
19      - const: rockchip,rk3588-av1-iommu
20      - const: verisilicon,iommu-1.2
21
22  reg:
23    maxItems: 1
24
25  interrupts:
26    maxItems: 1
27
28  clocks:
29    items:
30      - description: Core clock
31      - description: Interface clock
32
33  clock-names:
34    items:
35      - const: core
36      - const: iface
37
38  "#iommu-cells":
39    const: 0
40
41  power-domains:
42    maxItems: 1
43
44required:
45  - compatible
46  - reg
47  - interrupts
48  - clocks
49  - clock-names
50  - "#iommu-cells"
51
52additionalProperties: false
53
54examples:
55  - |
56    #include <dt-bindings/clock/rockchip,rk3588-cru.h>
57    #include <dt-bindings/interrupt-controller/arm-gic.h>
58
59    bus {
60      #address-cells = <2>;
61      #size-cells = <2>;
62
63      iommu@fdca0000 {
64        compatible = "rockchip,rk3588-av1-iommu","verisilicon,iommu-1.2";
65        reg = <0x0 0xfdca0000 0x0 0x600>;
66        interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH 0>;
67        clocks = <&cru ACLK_AV1>, <&cru PCLK_AV1>;
68        clock-names = "core", "iface";
69        #iommu-cells = <0>;
70      };
71    };
72