xref: /linux/arch/powerpc/include/asm/device.h (revision 0b9e31e9264f1bad89856afb96da1688292f13b4)
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