1 /* linux/arch/arm/mach-s5pv310/include/mach/sysmmu.h
3 * Copyright (c) 2010 Samsung Electronics Co., Ltd.
4 * http://www.samsung.com/
6 * Samsung sysmmu driver for S5PV310
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.
13 #ifndef __ASM_ARM_ARCH_SYSMMU_H
14 #define __ASM_ARM_ARCH_SYSMMU_H __FILE__
16 enum s5pv310_sysmmu_ips {
35 static char *sysmmu_ips_name[S5P_SYSMMU_TOTAL_IPNUM] = {
54 typedef enum s5pv310_sysmmu_ips sysmmu_ips;
56 struct sysmmu_tt_info {
58 unsigned long pgd_paddr;
62 struct sysmmu_controller {
65 /* channels registers */
73 /* Translation Table Info. */
74 struct sysmmu_tt_info *tt_info;
79 /* SysMMU controller enable - true : enable */
84 * s5p_sysmmu_enable() - enable system mmu of ip
85 * @ips: The ip connected system mmu.
87 * This function enable system mmu to transfer address
88 * from virtual address to physical address
90 int s5p_sysmmu_enable(sysmmu_ips ips);
93 * s5p_sysmmu_disable() - disable sysmmu mmu of ip
94 * @ips: The ip connected system mmu.
96 * This function disable system mmu to transfer address
97 * from virtual address to physical address
99 int s5p_sysmmu_disable(sysmmu_ips ips);
102 * s5p_sysmmu_set_tablebase_pgd() - set page table base address to refer page table
103 * @ips: The ip connected system mmu.
104 * @pgd: The page table base address.
106 * This function set page table base address
107 * When system mmu transfer address from virtaul address to physical address,
108 * system mmu refer address information from page table
110 int s5p_sysmmu_set_tablebase_pgd(sysmmu_ips ips, unsigned long pgd);
113 * s5p_sysmmu_tlb_invalidate() - flush all TLB entry in system mmu
114 * @ips: The ip connected system mmu.
116 * This function flush all TLB entry in system mmu
118 int s5p_sysmmu_tlb_invalidate(sysmmu_ips ips);
119 #endif /* __ASM_ARM_ARCH_SYSMMU_H */