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 */