1*c66ec88fSEmmanuel VadotRockchip IOMMU 2*c66ec88fSEmmanuel Vadot============== 3*c66ec88fSEmmanuel Vadot 4*c66ec88fSEmmanuel VadotA Rockchip DRM iommu translates io virtual addresses to physical addresses for 5*c66ec88fSEmmanuel Vadotits master device. Each slave device is bound to a single master device, and 6*c66ec88fSEmmanuel Vadotshares its clocks, power domain and irq. 7*c66ec88fSEmmanuel Vadot 8*c66ec88fSEmmanuel VadotRequired properties: 9*c66ec88fSEmmanuel Vadot- compatible : Should be "rockchip,iommu" 10*c66ec88fSEmmanuel Vadot- reg : Address space for the configuration registers 11*c66ec88fSEmmanuel Vadot- interrupts : Interrupt specifier for the IOMMU instance 12*c66ec88fSEmmanuel Vadot- interrupt-names : Interrupt name for the IOMMU instance 13*c66ec88fSEmmanuel Vadot- #iommu-cells : Should be <0>. This indicates the iommu is a 14*c66ec88fSEmmanuel Vadot "single-master" device, and needs no additional information 15*c66ec88fSEmmanuel Vadot to associate with its master device. See: 16*c66ec88fSEmmanuel Vadot Documentation/devicetree/bindings/iommu/iommu.txt 17*c66ec88fSEmmanuel Vadot- clocks : A list of clocks required for the IOMMU to be accessible by 18*c66ec88fSEmmanuel Vadot the host CPU. 19*c66ec88fSEmmanuel Vadot- clock-names : Should contain the following: 20*c66ec88fSEmmanuel Vadot "iface" - Main peripheral bus clock (PCLK/HCL) (required) 21*c66ec88fSEmmanuel Vadot "aclk" - AXI bus clock (required) 22*c66ec88fSEmmanuel Vadot 23*c66ec88fSEmmanuel VadotOptional properties: 24*c66ec88fSEmmanuel Vadot- rockchip,disable-mmu-reset : Don't use the mmu reset operation. 25*c66ec88fSEmmanuel Vadot Some mmu instances may produce unexpected results 26*c66ec88fSEmmanuel Vadot when the reset operation is used. 27*c66ec88fSEmmanuel Vadot 28*c66ec88fSEmmanuel VadotExample: 29*c66ec88fSEmmanuel Vadot 30*c66ec88fSEmmanuel Vadot vopl_mmu: iommu@ff940300 { 31*c66ec88fSEmmanuel Vadot compatible = "rockchip,iommu"; 32*c66ec88fSEmmanuel Vadot reg = <0xff940300 0x100>; 33*c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>; 34*c66ec88fSEmmanuel Vadot interrupt-names = "vopl_mmu"; 35*c66ec88fSEmmanuel Vadot clocks = <&cru ACLK_VOP1>, <&cru HCLK_VOP1>; 36*c66ec88fSEmmanuel Vadot clock-names = "aclk", "iface"; 37*c66ec88fSEmmanuel Vadot #iommu-cells = <0>; 38*c66ec88fSEmmanuel Vadot }; 39