diff options
Diffstat (limited to 'include/linux/of_iommu.h')
-rw-r--r-- | include/linux/of_iommu.h | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/include/linux/of_iommu.h b/include/linux/of_iommu.h new file mode 100644 index 000000000..16f4b3e87 --- /dev/null +++ b/include/linux/of_iommu.h @@ -0,0 +1,37 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +#ifndef __OF_IOMMU_H +#define __OF_IOMMU_H + +#include <linux/device.h> +#include <linux/iommu.h> +#include <linux/of.h> + +#ifdef CONFIG_OF_IOMMU + +extern int of_get_dma_window(struct device_node *dn, const char *prefix, + int index, unsigned long *busno, dma_addr_t *addr, + size_t *size); + +extern const struct iommu_ops *of_iommu_configure(struct device *dev, + struct device_node *master_np, + const u32 *id); + +#else + +static inline int of_get_dma_window(struct device_node *dn, const char *prefix, + int index, unsigned long *busno, dma_addr_t *addr, + size_t *size) +{ + return -EINVAL; +} + +static inline const struct iommu_ops *of_iommu_configure(struct device *dev, + struct device_node *master_np, + const u32 *id) +{ + return NULL; +} + +#endif /* CONFIG_OF_IOMMU */ + +#endif /* __OF_IOMMU_H */ |