diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-03-23 20:36:29 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-03-23 20:36:29 -0400 |
| commit | 0d19eac12031680dc5f5402921fb0c388e42f619 (patch) | |
| tree | 57302fb8778b6527c35175cc1edf228dd9f7abb9 /include/linux/amba | |
| parent | 56c10bf82c10588b743e75a13a7949e11b9fc942 (diff) | |
| parent | bba1594d348b59d6172e02bf74fba837c8273989 (diff) | |
Merge branch 'amba' of git://git.linaro.org/people/rmk/linux-arm
Pull #2 ARM updates from Russell King:
"Further ARM AMBA primecell updates which aren't included directly in
the previous commit. I wanted to keep these separate as they're
touching stuff outside arch/arm/."
* 'amba' of git://git.linaro.org/people/rmk/linux-arm:
ARM: 7362/1: AMBA: Add module_amba_driver() helper macro for amba_driver
ARM: 7335/1: mach-u300: do away with MMC config files
ARM: 7280/1: mmc: mmci: Cache MMCICLOCK and MMCIPOWER register
ARM: 7309/1: realview: fix unconnected interrupts on EB11MP
ARM: 7230/1: mmc: mmci: Fix PIO read for small SDIO packets
ARM: 7227/1: mmc: mmci: Prepare for SDIO before setting up DMA job
ARM: 7223/1: mmc: mmci: Fixup use of runtime PM and use autosuspend
ARM: 7221/1: mmc: mmci: Change from using legacy suspend
ARM: 7219/1: mmc: mmci: Change vdd_handler to a generic ios_handler
ARM: 7218/1: mmc: mmci: Provide option to configure bus signal direction
ARM: 7217/1: mmc: mmci: Put power register deviations in variant data
ARM: 7216/1: mmc: mmci: Do not release spinlock in request_end
ARM: 7215/1: mmc: mmci: Increase max_segs from 16 to 128
Diffstat (limited to 'include/linux/amba')
| -rw-r--r-- | include/linux/amba/bus.h | 9 | ||||
| -rw-r--r-- | include/linux/amba/mmci.h | 22 |
2 files changed, 28 insertions, 3 deletions
diff --git a/include/linux/amba/bus.h b/include/linux/amba/bus.h index a9fab831caf8..7847e197730a 100644 --- a/include/linux/amba/bus.h +++ b/include/linux/amba/bus.h | |||
| @@ -125,4 +125,13 @@ struct amba_device name##_device = { \ | |||
| 125 | .periphid = id, \ | 125 | .periphid = id, \ |
| 126 | } | 126 | } |
| 127 | 127 | ||
| 128 | /* | ||
| 129 | * module_amba_driver() - Helper macro for drivers that don't do anything | ||
| 130 | * special in module init/exit. This eliminates a lot of boilerplate. Each | ||
| 131 | * module may only use this macro once, and calling it replaces module_init() | ||
| 132 | * and module_exit() | ||
| 133 | */ | ||
| 134 | #define module_amba_driver(__amba_drv) \ | ||
| 135 | module_driver(__amba_drv, amba_driver_register, amba_driver_unregister) | ||
| 136 | |||
| 128 | #endif | 137 | #endif |
diff --git a/include/linux/amba/mmci.h b/include/linux/amba/mmci.h index 0101e9c17fa1..32a89cf5ec45 100644 --- a/include/linux/amba/mmci.h +++ b/include/linux/amba/mmci.h | |||
| @@ -6,6 +6,19 @@ | |||
| 6 | 6 | ||
| 7 | #include <linux/mmc/host.h> | 7 | #include <linux/mmc/host.h> |
| 8 | 8 | ||
| 9 | |||
| 10 | /* | ||
| 11 | * These defines is places here due to access is needed from machine | ||
| 12 | * configuration files. The ST Micro version does not have ROD and | ||
| 13 | * reuse the voltage registers for direction settings. | ||
| 14 | */ | ||
| 15 | #define MCI_ST_DATA2DIREN (1 << 2) | ||
| 16 | #define MCI_ST_CMDDIREN (1 << 3) | ||
| 17 | #define MCI_ST_DATA0DIREN (1 << 4) | ||
| 18 | #define MCI_ST_DATA31DIREN (1 << 5) | ||
| 19 | #define MCI_ST_FBCLKEN (1 << 7) | ||
| 20 | #define MCI_ST_DATA74DIREN (1 << 8) | ||
| 21 | |||
| 9 | /* Just some dummy forwarding */ | 22 | /* Just some dummy forwarding */ |
| 10 | struct dma_chan; | 23 | struct dma_chan; |
| 11 | 24 | ||
| @@ -18,7 +31,8 @@ struct dma_chan; | |||
| 18 | * @ocr_mask: available voltages on the 4 pins from the block, this | 31 | * @ocr_mask: available voltages on the 4 pins from the block, this |
| 19 | * is ignored if a regulator is used, see the MMC_VDD_* masks in | 32 | * is ignored if a regulator is used, see the MMC_VDD_* masks in |
| 20 | * mmc/host.h | 33 | * mmc/host.h |
| 21 | * @vdd_handler: a callback function to translate a MMC_VDD_* | 34 | * @ios_handler: a callback function to act on specfic ios changes, |
| 35 | * used for example to control a levelshifter | ||
| 22 | * mask into a value to be binary (or set some other custom bits | 36 | * mask into a value to be binary (or set some other custom bits |
| 23 | * in MMCIPWR) or:ed and written into the MMCIPWR register of the | 37 | * in MMCIPWR) or:ed and written into the MMCIPWR register of the |
| 24 | * block. May also control external power based on the power_mode. | 38 | * block. May also control external power based on the power_mode. |
| @@ -31,6 +45,8 @@ struct dma_chan; | |||
| 31 | * @capabilities: the capabilities of the block as implemented in | 45 | * @capabilities: the capabilities of the block as implemented in |
| 32 | * this platform, signify anything MMC_CAP_* from mmc/host.h | 46 | * this platform, signify anything MMC_CAP_* from mmc/host.h |
| 33 | * @capabilities2: more capabilities, MMC_CAP2_* from mmc/host.h | 47 | * @capabilities2: more capabilities, MMC_CAP2_* from mmc/host.h |
| 48 | * @sigdir: a bit field indicating for what bits in the MMC bus the host | ||
| 49 | * should enable signal direction indication. | ||
| 34 | * @dma_filter: function used to select an appropriate RX and TX | 50 | * @dma_filter: function used to select an appropriate RX and TX |
| 35 | * DMA channel to be used for DMA, if and only if you're deploying the | 51 | * DMA channel to be used for DMA, if and only if you're deploying the |
| 36 | * generic DMA engine | 52 | * generic DMA engine |
| @@ -46,14 +62,14 @@ struct dma_chan; | |||
| 46 | struct mmci_platform_data { | 62 | struct mmci_platform_data { |
| 47 | unsigned int f_max; | 63 | unsigned int f_max; |
| 48 | unsigned int ocr_mask; | 64 | unsigned int ocr_mask; |
| 49 | u32 (*vdd_handler)(struct device *, unsigned int vdd, | 65 | int (*ios_handler)(struct device *, struct mmc_ios *); |
| 50 | unsigned char power_mode); | ||
| 51 | unsigned int (*status)(struct device *); | 66 | unsigned int (*status)(struct device *); |
| 52 | int gpio_wp; | 67 | int gpio_wp; |
| 53 | int gpio_cd; | 68 | int gpio_cd; |
| 54 | bool cd_invert; | 69 | bool cd_invert; |
| 55 | unsigned long capabilities; | 70 | unsigned long capabilities; |
| 56 | unsigned long capabilities2; | 71 | unsigned long capabilities2; |
| 72 | u32 sigdir; | ||
| 57 | bool (*dma_filter)(struct dma_chan *chan, void *filter_param); | 73 | bool (*dma_filter)(struct dma_chan *chan, void *filter_param); |
| 58 | void *dma_rx_param; | 74 | void *dma_rx_param; |
| 59 | void *dma_tx_param; | 75 | void *dma_tx_param; |
