blob: 36ec9c8f6e161d59d56caafbbe92fe0d2239d3f9 [file] [log] [blame]
Benjamin Herrenschmidtc6dbaef2006-11-11 17:18:39 +11001/*
2 * Arch specific extensions to struct device
3 *
4 * This file is released under the GPLv2
5 */
Russell Kingab2c2152007-02-12 10:28:24 +00006#ifndef ASMARM_DEVICE_H
7#define ASMARM_DEVICE_H
Benjamin Herrenschmidtc6dbaef2006-11-11 17:18:39 +11008
Russell Kingab2c2152007-02-12 10:28:24 +00009struct dev_archdata {
10#ifdef CONFIG_DMABOUNCE
11 struct dmabounce_device_info *dmabounce;
12#endif
Ohad Ben-Cohencfb470b2011-10-13 12:53:18 +010013#ifdef CONFIG_IOMMU_API
14 void *iommu; /* private IOMMU data */
15#endif
Marek Szyprowski4ce63fc2012-05-16 15:48:21 +020016#ifdef CONFIG_ARM_DMA_USE_IOMMU
17 struct dma_iommu_mapping *mapping;
18#endif
Stefano Stabellinie0586322017-04-13 14:04:21 -070019#ifdef CONFIG_XEN
20 const struct dma_map_ops *dev_dma_ops;
21#endif
Stefano Stabellini3d5391a2014-11-20 10:41:40 +000022 bool dma_coherent;
Russell Kingab2c2152007-02-12 10:28:24 +000023};
24
Kevin Hilmanfbe01f52011-09-06 21:04:10 +010025struct omap_device;
26
Magnus Dammd7aacad2009-07-08 13:21:31 +020027struct pdev_archdata {
Kevin Hilmanfbe01f52011-09-06 21:04:10 +010028#ifdef CONFIG_ARCH_OMAP
29 struct omap_device *od;
30#endif
Magnus Dammd7aacad2009-07-08 13:21:31 +020031};
32
Hiroshi Doyufab112a2013-01-24 15:16:56 +020033#ifdef CONFIG_ARM_DMA_USE_IOMMU
34#define to_dma_iommu_mapping(dev) ((dev)->archdata.mapping)
35#else
36#define to_dma_iommu_mapping(dev) NULL
37#endif
38
Russell Kingab2c2152007-02-12 10:28:24 +000039#endif