18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-only */
28c2ecf20Sopenharmony_ci/*
38c2ecf20Sopenharmony_ci * Arch specific extensions to struct device
48c2ecf20Sopenharmony_ci */
58c2ecf20Sopenharmony_ci#ifndef ASMARM_DEVICE_H
68c2ecf20Sopenharmony_ci#define ASMARM_DEVICE_H
78c2ecf20Sopenharmony_ci
88c2ecf20Sopenharmony_cistruct dev_archdata {
98c2ecf20Sopenharmony_ci#ifdef CONFIG_DMABOUNCE
108c2ecf20Sopenharmony_ci	struct dmabounce_device_info *dmabounce;
118c2ecf20Sopenharmony_ci#endif
128c2ecf20Sopenharmony_ci#ifdef CONFIG_ARM_DMA_USE_IOMMU
138c2ecf20Sopenharmony_ci	struct dma_iommu_mapping	*mapping;
148c2ecf20Sopenharmony_ci#endif
158c2ecf20Sopenharmony_ci	unsigned int dma_coherent:1;
168c2ecf20Sopenharmony_ci	unsigned int dma_ops_setup:1;
178c2ecf20Sopenharmony_ci};
188c2ecf20Sopenharmony_ci
198c2ecf20Sopenharmony_cistruct omap_device;
208c2ecf20Sopenharmony_ci
218c2ecf20Sopenharmony_cistruct pdev_archdata {
228c2ecf20Sopenharmony_ci#ifdef CONFIG_ARCH_OMAP
238c2ecf20Sopenharmony_ci	struct omap_device *od;
248c2ecf20Sopenharmony_ci#endif
258c2ecf20Sopenharmony_ci};
268c2ecf20Sopenharmony_ci
278c2ecf20Sopenharmony_ci#ifdef CONFIG_ARM_DMA_USE_IOMMU
288c2ecf20Sopenharmony_ci#define to_dma_iommu_mapping(dev) ((dev)->archdata.mapping)
298c2ecf20Sopenharmony_ci#else
308c2ecf20Sopenharmony_ci#define to_dma_iommu_mapping(dev) NULL
318c2ecf20Sopenharmony_ci#endif
328c2ecf20Sopenharmony_ci
338c2ecf20Sopenharmony_ci#endif
34