Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
pl08x.h
Go to the documentation of this file.
1 /*
2  * linux/amba/pl08x.h - ARM PrimeCell DMA Controller driver
3  *
4  * Copyright (C) 2005 ARM Ltd
5  * Copyright (C) 2010 ST-Ericsson SA
6  *
7  * This program is free software; you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License version 2 as
9  * published by the Free Software Foundation.
10  *
11  * pl08x information required by platform code
12  *
13  * Please credit ARM.com
14  * Documentation: ARM DDI 0196D
15  */
16 
17 #ifndef AMBA_PL08X_H
18 #define AMBA_PL08X_H
19 
20 /* We need sizes of structs from this header */
21 #include <linux/dmaengine.h>
22 #include <linux/interrupt.h>
23 
24 struct pl08x_driver_data;
25 struct pl08x_phy_chan;
26 struct pl08x_txd;
27 
28 /* Bitmasks for selecting AHB ports for DMA transfers */
29 enum {
30  PL08X_AHB1 = (1 << 0),
31  PL08X_AHB2 = (1 << 1)
32 };
33 
62  const char *bus_id;
68  bool single;
70 };
71 
90  unsigned int num_slave_channels;
92  int (*get_signal)(const struct pl08x_channel_data *);
93  void (*put_signal)(const struct pl08x_channel_data *, int);
96 };
97 
98 #ifdef CONFIG_AMBA_PL08X
99 bool pl08x_filter_id(struct dma_chan *chan, void *chan_id);
100 #else
101 static inline bool pl08x_filter_id(struct dma_chan *chan, void *chan_id)
102 {
103  return false;
104 }
105 #endif
106 
107 #endif /* AMBA_PL08X_H */