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