/* * omap iommu: main structures * * Copyright (C) 2008-2009 Nokia Corporation * * Written by Hiroshi DOYU <Hiroshi.DOYU@nokia.com> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. */ #include <linux/platform_device.h> #define MMU_REG_SIZE 256 /** * struct iommu_arch_data - omap iommu private data * @name: name of the iommu device * @iommu_dev: handle of the iommu device * * This is an omap iommu private data object, which binds an iommu user * to its iommu device. This object should be placed at the iommu user's * dev_archdata so generic IOMMU API can be used without having to * utilize omap-specific plumbing anymore. */ struct omap_iommu_arch_data { const char *name; struct omap_iommu *iommu_dev; }; /** * struct omap_mmu_dev_attr - OMAP mmu device attributes for omap_hwmod * @da_start: device address where the va space starts. * @da_end: device address where the va space ends. * @nr_tlb_entries: number of entries supported by the translation * look-aside buffer (TLB). */ struct omap_mmu_dev_attr { u32 da_start; u32 da_end; int nr_tlb_entries; }; struct iommu_platform_data { const char *name; const char *reset_name; int nr_tlb_entries; u32 da_start; u32 da_end; int (*assert_reset)(struct platform_device *pdev, const char *name); int (*deassert_reset)(struct platform_device *pdev, const char *name); };