1 /* 2 * Arch specific extensions to struct device 3 * 4 * This file is released under the GPLv2 5 */ 6 #ifndef _ASM_POWERPC_DEVICE_H 7 #define _ASM_POWERPC_DEVICE_H 8 9 struct dma_map_ops; 10 struct device_node; 11 12 struct dev_archdata { 13 /* Optional pointer to an OF device node */ 14 struct device_node *of_node; 15 16 /* DMA operations on that device */ 17 struct dma_map_ops *dma_ops; 18 19 /* 20 * When an iommu is in use, dma_data is used as a ptr to the base of the 21 * iommu_table. Otherwise, it is a simple numerical offset. 22 */ 23 union { 24 dma_addr_t dma_offset; 25 void *iommu_table_base; 26 } dma_data; 27 28 #ifdef CONFIG_SWIOTLB 29 dma_addr_t max_direct_dma_addr; 30 #endif 31 }; 32 33 static inline void dev_archdata_set_node(struct dev_archdata *ad, 34 struct device_node *np) 35 { 36 ad->of_node = np; 37 } 38 39 static inline struct device_node * 40 dev_archdata_get_node(const struct dev_archdata *ad) 41 { 42 return ad->of_node; 43 } 44 45 struct pdev_archdata { 46 }; 47 48 #endif /* _ASM_POWERPC_DEVICE_H */ 49