/* shmobile-ipmmu.h
 *
 * Copyright (C) 2012  Hideki EIRAKU
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; version 2 of the License.
 */

#ifndef __SHMOBILE_IPMMU_H__
#define __SHMOBILE_IPMMU_H__

struct shmobile_ipmmu {
	struct device *dev;
	void __iomem *ipmmu_base;
	int tlb_enabled;
	struct mutex flush_lock;
	const char * const *dev_names;
	unsigned int num_dev_names;
};

#ifdef CONFIG_SHMOBILE_IPMMU_TLB
void ipmmu_tlb_flush(struct shmobile_ipmmu *ipmmu);
void ipmmu_tlb_set(struct shmobile_ipmmu *ipmmu, unsigned long phys, int size,
		   int asid);
int ipmmu_iommu_init(struct shmobile_ipmmu *ipmmu);
#else
static inline int ipmmu_iommu_init(struct shmobile_ipmmu *ipmmu)
{
	return -EINVAL;
}
#endif

#endif /* __SHMOBILE_IPMMU_H__ */
