17e0fc507SBenjamin Gaignard# SPDX-License-Identifier: GPL-2.0-only
27e0fc507SBenjamin Gaignard%YAML 1.2
37e0fc507SBenjamin Gaignard---
47e0fc507SBenjamin Gaignard$id: http://devicetree.org/schemas/iommu/rockchip,iommu.yaml#
57e0fc507SBenjamin Gaignard$schema: http://devicetree.org/meta-schemas/core.yaml#
67e0fc507SBenjamin Gaignard
77e0fc507SBenjamin Gaignardtitle: Rockchip IOMMU
87e0fc507SBenjamin Gaignard
97e0fc507SBenjamin Gaignardmaintainers:
107e0fc507SBenjamin Gaignard  - Heiko Stuebner <heiko@sntech.de>
117e0fc507SBenjamin Gaignard
127e0fc507SBenjamin Gaignarddescription: |+
137e0fc507SBenjamin Gaignard  A Rockchip DRM iommu translates io virtual addresses to physical addresses for
147e0fc507SBenjamin Gaignard  its master device. Each slave device is bound to a single master device and
157e0fc507SBenjamin Gaignard  shares its clocks, power domain and irq.
167e0fc507SBenjamin Gaignard
177e0fc507SBenjamin Gaignard  For information on assigning IOMMU controller to its peripheral devices,
187e0fc507SBenjamin Gaignard  see generic IOMMU bindings.
197e0fc507SBenjamin Gaignard
207e0fc507SBenjamin Gaignardproperties:
217e0fc507SBenjamin Gaignard  compatible:
22*9e6f3cd5SBenjamin Gaignard    enum:
23*9e6f3cd5SBenjamin Gaignard      - rockchip,iommu
24*9e6f3cd5SBenjamin Gaignard      - rockchip,rk3568-iommu
257e0fc507SBenjamin Gaignard
267e0fc507SBenjamin Gaignard  reg:
277e0fc507SBenjamin Gaignard    items:
287e0fc507SBenjamin Gaignard      - description: configuration registers for MMU instance 0
297e0fc507SBenjamin Gaignard      - description: configuration registers for MMU instance 1
307e0fc507SBenjamin Gaignard    minItems: 1
317e0fc507SBenjamin Gaignard    maxItems: 2
327e0fc507SBenjamin Gaignard
337e0fc507SBenjamin Gaignard  interrupts:
347e0fc507SBenjamin Gaignard    items:
357e0fc507SBenjamin Gaignard      - description: interruption for MMU instance 0
367e0fc507SBenjamin Gaignard      - description: interruption for MMU instance 1
377e0fc507SBenjamin Gaignard    minItems: 1
387e0fc507SBenjamin Gaignard    maxItems: 2
397e0fc507SBenjamin Gaignard
407e0fc507SBenjamin Gaignard  clocks:
417e0fc507SBenjamin Gaignard    items:
427e0fc507SBenjamin Gaignard      - description: Core clock
437e0fc507SBenjamin Gaignard      - description: Interface clock
447e0fc507SBenjamin Gaignard
457e0fc507SBenjamin Gaignard  clock-names:
467e0fc507SBenjamin Gaignard    items:
477e0fc507SBenjamin Gaignard      - const: aclk
487e0fc507SBenjamin Gaignard      - const: iface
497e0fc507SBenjamin Gaignard
507e0fc507SBenjamin Gaignard  "#iommu-cells":
517e0fc507SBenjamin Gaignard    const: 0
527e0fc507SBenjamin Gaignard
53*9e6f3cd5SBenjamin Gaignard  power-domains:
54*9e6f3cd5SBenjamin Gaignard    maxItems: 1
55*9e6f3cd5SBenjamin Gaignard
567e0fc507SBenjamin Gaignard  rockchip,disable-mmu-reset:
577e0fc507SBenjamin Gaignard    $ref: /schemas/types.yaml#/definitions/flag
587e0fc507SBenjamin Gaignard    description: |
597e0fc507SBenjamin Gaignard      Do not use the mmu reset operation.
607e0fc507SBenjamin Gaignard      Some mmu instances may produce unexpected results
617e0fc507SBenjamin Gaignard      when the reset operation is used.
627e0fc507SBenjamin Gaignard
637e0fc507SBenjamin Gaignardrequired:
647e0fc507SBenjamin Gaignard  - compatible
657e0fc507SBenjamin Gaignard  - reg
667e0fc507SBenjamin Gaignard  - interrupts
677e0fc507SBenjamin Gaignard  - clocks
687e0fc507SBenjamin Gaignard  - clock-names
697e0fc507SBenjamin Gaignard  - "#iommu-cells"
707e0fc507SBenjamin Gaignard
717e0fc507SBenjamin GaignardadditionalProperties: false
727e0fc507SBenjamin Gaignard
737e0fc507SBenjamin Gaignardexamples:
747e0fc507SBenjamin Gaignard  - |
757e0fc507SBenjamin Gaignard    #include <dt-bindings/clock/rk3399-cru.h>
767e0fc507SBenjamin Gaignard    #include <dt-bindings/interrupt-controller/arm-gic.h>
777e0fc507SBenjamin Gaignard
787e0fc507SBenjamin Gaignard    vopl_mmu: iommu@ff940300 {
797e0fc507SBenjamin Gaignard      compatible = "rockchip,iommu";
807e0fc507SBenjamin Gaignard      reg = <0xff940300 0x100>;
817e0fc507SBenjamin Gaignard      interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
827e0fc507SBenjamin Gaignard      clocks = <&cru ACLK_VOP1>, <&cru HCLK_VOP1>;
837e0fc507SBenjamin Gaignard      clock-names = "aclk", "iface";
847e0fc507SBenjamin Gaignard      #iommu-cells = <0>;
857e0fc507SBenjamin Gaignard    };
86