diff options
Diffstat (limited to 'include/linux/amba')
-rw-r--r-- | include/linux/amba/bus.h | 8 | ||||
-rw-r--r-- | include/linux/amba/mmci.h | 17 |
2 files changed, 23 insertions, 2 deletions
diff --git a/include/linux/amba/bus.h b/include/linux/amba/bus.h index 9e7f259346e1..fcbbe71a3cc1 100644 --- a/include/linux/amba/bus.h +++ b/include/linux/amba/bus.h | |||
@@ -43,12 +43,12 @@ struct amba_id { | |||
43 | 43 | ||
44 | struct amba_driver { | 44 | struct amba_driver { |
45 | struct device_driver drv; | 45 | struct device_driver drv; |
46 | int (*probe)(struct amba_device *, struct amba_id *); | 46 | int (*probe)(struct amba_device *, const struct amba_id *); |
47 | int (*remove)(struct amba_device *); | 47 | int (*remove)(struct amba_device *); |
48 | void (*shutdown)(struct amba_device *); | 48 | void (*shutdown)(struct amba_device *); |
49 | int (*suspend)(struct amba_device *, pm_message_t); | 49 | int (*suspend)(struct amba_device *, pm_message_t); |
50 | int (*resume)(struct amba_device *); | 50 | int (*resume)(struct amba_device *); |
51 | struct amba_id *id_table; | 51 | const struct amba_id *id_table; |
52 | }; | 52 | }; |
53 | 53 | ||
54 | enum amba_vendor { | 54 | enum amba_vendor { |
@@ -56,6 +56,10 @@ enum amba_vendor { | |||
56 | AMBA_VENDOR_ST = 0x80, | 56 | AMBA_VENDOR_ST = 0x80, |
57 | }; | 57 | }; |
58 | 58 | ||
59 | extern struct bus_type amba_bustype; | ||
60 | |||
61 | #define to_amba_device(d) container_of(d, struct amba_device, dev) | ||
62 | |||
59 | #define amba_get_drvdata(d) dev_get_drvdata(&d->dev) | 63 | #define amba_get_drvdata(d) dev_get_drvdata(&d->dev) |
60 | #define amba_set_drvdata(d,p) dev_set_drvdata(&d->dev, p) | 64 | #define amba_set_drvdata(d,p) dev_set_drvdata(&d->dev, p) |
61 | 65 | ||
diff --git a/include/linux/amba/mmci.h b/include/linux/amba/mmci.h index f4ee9acc9721..f60227088b7b 100644 --- a/include/linux/amba/mmci.h +++ b/include/linux/amba/mmci.h | |||
@@ -6,6 +6,9 @@ | |||
6 | 6 | ||
7 | #include <linux/mmc/host.h> | 7 | #include <linux/mmc/host.h> |
8 | 8 | ||
9 | /* Just some dummy forwarding */ | ||
10 | struct dma_chan; | ||
11 | |||
9 | /** | 12 | /** |
10 | * struct mmci_platform_data - platform configuration for the MMCI | 13 | * struct mmci_platform_data - platform configuration for the MMCI |
11 | * (also known as PL180) block. | 14 | * (also known as PL180) block. |
@@ -27,6 +30,17 @@ | |||
27 | * @cd_invert: true if the gpio_cd pin value is active low | 30 | * @cd_invert: true if the gpio_cd pin value is active low |
28 | * @capabilities: the capabilities of the block as implemented in | 31 | * @capabilities: the capabilities of the block as implemented in |
29 | * this platform, signify anything MMC_CAP_* from mmc/host.h | 32 | * this platform, signify anything MMC_CAP_* from mmc/host.h |
33 | * @dma_filter: function used to select an apropriate RX and TX | ||
34 | * DMA channel to be used for DMA, if and only if you're deploying the | ||
35 | * generic DMA engine | ||
36 | * @dma_rx_param: parameter passed to the DMA allocation | ||
37 | * filter in order to select an apropriate RX channel. If | ||
38 | * there is a bidirectional RX+TX channel, then just specify | ||
39 | * this and leave dma_tx_param set to NULL | ||
40 | * @dma_tx_param: parameter passed to the DMA allocation | ||
41 | * filter in order to select an apropriate TX channel. If this | ||
42 | * is NULL the driver will attempt to use the RX channel as a | ||
43 | * bidirectional channel | ||
30 | */ | 44 | */ |
31 | struct mmci_platform_data { | 45 | struct mmci_platform_data { |
32 | unsigned int f_max; | 46 | unsigned int f_max; |
@@ -38,6 +52,9 @@ struct mmci_platform_data { | |||
38 | int gpio_cd; | 52 | int gpio_cd; |
39 | bool cd_invert; | 53 | bool cd_invert; |
40 | unsigned long capabilities; | 54 | unsigned long capabilities; |
55 | bool (*dma_filter)(struct dma_chan *chan, void *filter_param); | ||
56 | void *dma_rx_param; | ||
57 | void *dma_tx_param; | ||
41 | }; | 58 | }; |
42 | 59 | ||
43 | #endif | 60 | #endif |