1 /* 2 * omap iommu: main structures 3 * 4 * Copyright (C) 2008-2009 Nokia Corporation 5 * 6 * Written by Hiroshi DOYU <Hiroshi.DOYU@nokia.com> 7 * 8 * This program is free software; you can redistribute it and/or modify 9 * it under the terms of the GNU General Public License version 2 as 10 * published by the Free Software Foundation. 11 */ 12 13 #include <linux/platform_device.h> 14 15 #define MMU_REG_SIZE 256 16 17 /** 18 * struct iommu_arch_data - omap iommu private data 19 * @name: name of the iommu device 20 * @iommu_dev: handle of the iommu device 21 * 22 * This is an omap iommu private data object, which binds an iommu user 23 * to its iommu device. This object should be placed at the iommu user's 24 * dev_archdata so generic IOMMU API can be used without having to 25 * utilize omap-specific plumbing anymore. 26 */ 27 struct omap_iommu_arch_data { 28 const char *name; 29 struct omap_iommu *iommu_dev; 30 }; 31 32 /** 33 * struct omap_mmu_dev_attr - OMAP mmu device attributes for omap_hwmod 34 * @da_start: device address where the va space starts. 35 * @da_end: device address where the va space ends. 36 * @nr_tlb_entries: number of entries supported by the translation 37 * look-aside buffer (TLB). 38 */ 39 struct omap_mmu_dev_attr { 40 u32 da_start; 41 u32 da_end; 42 int nr_tlb_entries; 43 }; 44 45 struct iommu_platform_data { 46 const char *name; 47 const char *reset_name; 48 int nr_tlb_entries; 49 u32 da_start; 50 u32 da_end; 51 52 int (*assert_reset)(struct platform_device *pdev, const char *name); 53 int (*deassert_reset)(struct platform_device *pdev, const char *name); 54 }; 55