@@ -13,6 +13,7 @@
#include <linux/platform_device.h>
#include <plat/iommu.h>
+#include <plat/irqs.h>
struct iommu_device {
resource_size_t base;
@@ -46,6 +47,31 @@ static struct iommu_device devices[] = {
};
#endif
+#ifdef CONFIG_ARCH_OMAP4
+static struct iommu_device devices[] = {
+ {
+ .base = OMAP4_MMU1_BASE,
+ .irq = INT_44XX_DUCATI_MMU_IRQ,
+ .pdata = {
+ .name = "ducati",
+ .nr_tlb_entries = 32,
+ .clk_name = "ducati_ick",
+ },
+ },
+#if defined(CONFIG_MPU_TESLA_IOMMU)
+ {
+ .base = OMAP4_MMU2_BASE,
+ .irq = INT_44XX_DSP_MMU,
+ .pdata = {
+ .name = "tesla",
+ .nr_tlb_entries = 32,
+ .clk_name = "tesla_ick",
+ },
+ },
+#endif
+};
+#endif
+
#define NR_IOMMU_DEVICES ARRAY_SIZE(devices)
static struct platform_device *omap_iommu_pdev[NR_IOMMU_DEVICES];
@@ -47,5 +47,8 @@
#define OMAP44XX_MAILBOX_BASE (L4_44XX_BASE + 0xF4000)
#define OMAP44XX_HSUSB_OTG_BASE (L4_44XX_BASE + 0xAB000)
+#define OMAP4_MMU1_BASE 0x55082000
+#define OMAP4_MMU2_BASE 0x4A066000
+
#endif /* __ASM_ARCH_OMAP44XX_H */