]> git.karo-electronics.de Git - karo-tx-linux.git/blob - drivers/iommu/shmobile-ipmmu.h
Merge remote-tracking branches 'asoc/topic/simple', 'asoc/topic/ssm2518', 'asoc/topic...
[karo-tx-linux.git] / drivers / iommu / shmobile-ipmmu.h
1 /* shmobile-ipmmu.h
2  *
3  * Copyright (C) 2012  Hideki EIRAKU
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation; version 2 of the License.
8  */
9
10 #ifndef __SHMOBILE_IPMMU_H__
11 #define __SHMOBILE_IPMMU_H__
12
13 struct shmobile_ipmmu {
14         struct device *dev;
15         void __iomem *ipmmu_base;
16         int tlb_enabled;
17         spinlock_t flush_lock;
18         const char * const *dev_names;
19         unsigned int num_dev_names;
20 };
21
22 #ifdef CONFIG_SHMOBILE_IPMMU_TLB
23 void ipmmu_tlb_flush(struct shmobile_ipmmu *ipmmu);
24 void ipmmu_tlb_set(struct shmobile_ipmmu *ipmmu, unsigned long phys, int size,
25                    int asid);
26 int ipmmu_iommu_init(struct shmobile_ipmmu *ipmmu);
27 #else
28 static inline int ipmmu_iommu_init(struct shmobile_ipmmu *ipmmu)
29 {
30         return -EINVAL;
31 }
32 #endif
33
34 #endif /* __SHMOBILE_IPMMU_H__ */