| /* |
| * 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); |
| }; |