diff options
author | Viresh Kumar <viresh.kumar@linaro.org> | 2012-10-16 06:19:18 +0200 |
---|---|---|
committer | Vinod Koul <vinod.koul@intel.com> | 2013-01-08 07:04:46 +0100 |
commit | f9965aa20706860077cfa093d04a6351c0c1e940 (patch) | |
tree | d1e039e70ace9c2f8d52caa64b2b4f4305089937 /arch/arm/mach-spear13xx/spear13xx.c | |
parent | dmaengine: dw_dmac: Enhance device tree support (diff) | |
download | linux-f9965aa20706860077cfa093d04a6351c0c1e940.tar.xz linux-f9965aa20706860077cfa093d04a6351c0c1e940.zip |
ARM: SPEAr13xx: Pass DW DMAC platform data from DT
This patch adds dw_dmac's platform data to DT node. It also creates slave info
node for SPEAr13xx, for the devices which were using dw_dmac.
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com>
Diffstat (limited to '')
-rw-r--r-- | arch/arm/mach-spear13xx/spear13xx.c | 55 |
1 files changed, 4 insertions, 51 deletions
diff --git a/arch/arm/mach-spear13xx/spear13xx.c b/arch/arm/mach-spear13xx/spear13xx.c index c4af775a8451..b074db8b109c 100644 --- a/arch/arm/mach-spear13xx/spear13xx.c +++ b/arch/arm/mach-spear13xx/spear13xx.c @@ -22,63 +22,16 @@ #include <asm/hardware/gic.h> #include <asm/mach/map.h> #include <asm/smp_twd.h> -#include <mach/dma.h> #include <mach/generic.h> #include <mach/spear.h> -/* common dw_dma filter routine to be used by peripherals */ -bool dw_dma_filter(struct dma_chan *chan, void *slave) -{ - struct dw_dma_slave *dws = (struct dw_dma_slave *)slave; - - if (chan->device->dev == dws->dma_dev) { - chan->private = slave; - return true; - } else { - return false; - } -} - /* ssp device registration */ -static struct dw_dma_slave ssp_dma_param[] = { - { - /* Tx */ - .cfg_hi = DWC_CFGH_DST_PER(DMA_REQ_SSP0_TX), - .cfg_lo = 0, - .src_master = DMA_MASTER_MEMORY, - .dst_master = DMA_MASTER_SSP0, - }, { - /* Rx */ - .cfg_hi = DWC_CFGH_SRC_PER(DMA_REQ_SSP0_RX), - .cfg_lo = 0, - .src_master = DMA_MASTER_SSP0, - .dst_master = DMA_MASTER_MEMORY, - } -}; - struct pl022_ssp_controller pl022_plat_data = { .enable_dma = 1, - .dma_filter = dw_dma_filter, - .dma_rx_param = &ssp_dma_param[1], - .dma_tx_param = &ssp_dma_param[0], -}; - -/* CF device registration */ -struct dw_dma_slave cf_dma_priv = { - .cfg_hi = 0, - .cfg_lo = 0, - .src_master = 0, - .dst_master = 0, -}; - -/* dmac device registeration */ -struct dw_dma_platform_data dmac_plat_data = { - .nr_channels = 8, - .chan_allocation_order = CHAN_ALLOCATION_DESCENDING, - .chan_priority = CHAN_PRIORITY_DESCENDING, - .block_size = 4095U, - .nr_masters = 2, - .data_width = { 3, 3, 0, 0 }, + .dma_filter = dw_dma_generic_filter, + .dma_rx_param = "ssp0_rx", + .dma_tx_param = "ssp0_tx", + .num_chipselect = 3, }; void __init spear13xx_l2x0_init(void) |