linux/include/linux/of_iommu.h
<<
>>
Prefs
   1#ifndef __OF_IOMMU_H
   2#define __OF_IOMMU_H
   3
   4#include <linux/device.h>
   5#include <linux/iommu.h>
   6#include <linux/of.h>
   7
   8#ifdef CONFIG_OF_IOMMU
   9
  10extern int of_get_dma_window(struct device_node *dn, const char *prefix,
  11                             int index, unsigned long *busno, dma_addr_t *addr,
  12                             size_t *size);
  13
  14extern void of_iommu_init(void);
  15extern struct iommu_ops *of_iommu_configure(struct device *dev,
  16                                        struct device_node *master_np);
  17
  18#else
  19
  20static inline int of_get_dma_window(struct device_node *dn, const char *prefix,
  21                            int index, unsigned long *busno, dma_addr_t *addr,
  22                            size_t *size)
  23{
  24        return -EINVAL;
  25}
  26
  27static inline void of_iommu_init(void) { }
  28static inline struct iommu_ops *of_iommu_configure(struct device *dev,
  29                                         struct device_node *master_np)
  30{
  31        return NULL;
  32}
  33
  34#endif  /* CONFIG_OF_IOMMU */
  35
  36void of_iommu_set_ops(struct device_node *np, struct iommu_ops *ops);
  37struct iommu_ops *of_iommu_get_ops(struct device_node *np);
  38
  39extern struct of_device_id __iommu_of_table;
  40
  41typedef int (*of_iommu_init_fn)(struct device_node *);
  42
  43#define IOMMU_OF_DECLARE(name, compat, fn) \
  44        _OF_DECLARE(iommu, name, compat, fn, of_iommu_init_fn)
  45
  46#endif /* __OF_IOMMU_H */
  47