blob: 67fcd7f89d99a7bc41eafa32d3bc791dc46ba632 [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 */
Benjamin Herrenschmidt12d04ee2006-11-11 17:25:02 +11006#ifndef _ASM_POWERPC_DEVICE_H
7#define _ASM_POWERPC_DEVICE_H
Benjamin Herrenschmidtc6dbaef2006-11-11 17:18:39 +11008
FUJITA Tomonori45223c52009-08-04 19:08:25 +00009struct dma_map_ops;
Benjamin Herrenschmidt12d04ee2006-11-11 17:25:02 +110010struct device_node;
11
12struct dev_archdata {
13 /* Optional pointer to an OF device node */
14 struct device_node *of_node;
15
16 /* DMA operations on that device */
FUJITA Tomonori45223c52009-08-04 19:08:25 +000017 struct dma_map_ops *dma_ops;
Benjamin Herrenschmidt12d04ee2006-11-11 17:25:02 +110018 void *dma_data;
FUJITA Tomonori762afb72009-08-04 19:08:22 +000019#ifdef CONFIG_SWIOTLB
20 dma_addr_t max_direct_dma_addr;
21#endif
Benjamin Herrenschmidt12d04ee2006-11-11 17:25:02 +110022};
23
Anton Vorontsov3f3b1632008-11-28 09:13:23 +000024static inline void dev_archdata_set_node(struct dev_archdata *ad,
25 struct device_node *np)
26{
27 ad->of_node = np;
28}
29
30static inline struct device_node *
31dev_archdata_get_node(const struct dev_archdata *ad)
32{
33 return ad->of_node;
34}
35
Benjamin Herrenschmidt12d04ee2006-11-11 17:25:02 +110036#endif /* _ASM_POWERPC_DEVICE_H */