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 #define S5PV310_SYSMMU_TOTAL_IPNUM 16
17 #define S5P_SYSMMU_TOTAL_IPNUM S5PV310_SYSMMU_TOTAL_IPNUM
19 enum s5pv310_sysmmu_ips
{
38 static char *sysmmu_ips_name
[S5PV310_SYSMMU_TOTAL_IPNUM
] = {
57 typedef enum s5pv310_sysmmu_ips sysmmu_ips
;
59 struct sysmmu_tt_info
{
61 unsigned long pgd_paddr
;
65 struct sysmmu_controller
{
68 /* channels registers */
76 /* Translation Table Info. */
77 struct sysmmu_tt_info
*tt_info
;
82 /* SysMMU controller enable - true : enable */
87 * s5p_sysmmu_enable() - enable system mmu of ip
88 * @ips: The ip connected system mmu.
90 * This function enable system mmu to transfer address
91 * from virtual address to physical address
93 int s5p_sysmmu_enable(sysmmu_ips ips
);
96 * s5p_sysmmu_disable() - disable sysmmu mmu of ip
97 * @ips: The ip connected system mmu.
99 * This function disable system mmu to transfer address
100 * from virtual address to physical address
102 int s5p_sysmmu_disable(sysmmu_ips ips
);
105 * s5p_sysmmu_set_tablebase_pgd() - set page table base address to refer page table
106 * @ips: The ip connected system mmu.
107 * @pgd: The page table base address.
109 * This function set page table base address
110 * When system mmu transfer address from virtaul address to physical address,
111 * system mmu refer address information from page table
113 int s5p_sysmmu_set_tablebase_pgd(sysmmu_ips ips
, unsigned long pgd
);
116 * s5p_sysmmu_tlb_invalidate() - flush all TLB entry in system mmu
117 * @ips: The ip connected system mmu.
119 * This function flush all TLB entry in system mmu
121 int s5p_sysmmu_tlb_invalidate(sysmmu_ips ips
);
122 #endif /* __ASM_ARM_ARCH_SYSMMU_H */