dmaengine: Revert "dmaengine: remove s3c24xx driver"
This reverts cccc46ae3623 ("dmaengine: remove s3c24xx driver") as it causes regression due to missing header Signed-off-by: Vinod Koul <vkoul@kernel.org>
This commit is contained in:
parent
3a0c95b613
commit
25483dedd2
@ -610,6 +610,18 @@ config SPRD_DMA
|
||||
help
|
||||
Enable support for the on-chip DMA controller on Spreadtrum platform.
|
||||
|
||||
config S3C24XX_DMAC
|
||||
bool "Samsung S3C24XX DMA support"
|
||||
depends on ARCH_S3C24XX || COMPILE_TEST
|
||||
select DMA_ENGINE
|
||||
select DMA_VIRTUAL_CHANNELS
|
||||
help
|
||||
Support for the Samsung S3C24XX DMA controller driver. The
|
||||
DMA controller is having multiple DMA channels which can be
|
||||
configured for different peripherals like audio, UART, SPI.
|
||||
The DMA controller can transfer data from memory to peripheral,
|
||||
periphal to memory, periphal to periphal and memory to memory.
|
||||
|
||||
config TXX9_DMAC
|
||||
tristate "Toshiba TXx9 SoC DMA support"
|
||||
depends on MACH_TX49XX
|
||||
|
@ -70,6 +70,7 @@ obj-$(CONFIG_STM32_DMA) += stm32-dma.o
|
||||
obj-$(CONFIG_STM32_DMAMUX) += stm32-dmamux.o
|
||||
obj-$(CONFIG_STM32_MDMA) += stm32-mdma.o
|
||||
obj-$(CONFIG_SPRD_DMA) += sprd-dma.o
|
||||
obj-$(CONFIG_S3C24XX_DMAC) += s3c24xx-dma.o
|
||||
obj-$(CONFIG_TXX9_DMAC) += txx9dmac.o
|
||||
obj-$(CONFIG_TEGRA186_GPC_DMA) += tegra186-gpc-dma.o
|
||||
obj-$(CONFIG_TEGRA20_APB_DMA) += tegra20-apb-dma.o
|
||||
|
1428
drivers/dma/s3c24xx-dma.c
Normal file
1428
drivers/dma/s3c24xx-dma.c
Normal file
File diff suppressed because it is too large
Load Diff
48
include/linux/platform_data/dma-s3c24xx.h
Normal file
48
include/linux/platform_data/dma-s3c24xx.h
Normal file
@ -0,0 +1,48 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
/*
|
||||
* S3C24XX DMA handling
|
||||
*
|
||||
* Copyright (c) 2013 Heiko Stuebner <heiko@sntech.de>
|
||||
*/
|
||||
|
||||
/* Helper to encode the source selection constraints for early s3c socs. */
|
||||
#define S3C24XX_DMA_CHANREQ(src, chan) ((BIT(3) | src) << chan * 4)
|
||||
|
||||
enum s3c24xx_dma_bus {
|
||||
S3C24XX_DMA_APB,
|
||||
S3C24XX_DMA_AHB,
|
||||
};
|
||||
|
||||
/**
|
||||
* @bus: on which bus does the peripheral reside - AHB or APB.
|
||||
* @handshake: is a handshake with the peripheral necessary
|
||||
* @chansel: channel selection information, depending on variant; reqsel for
|
||||
* s3c2443 and later and channel-selection map for earlier SoCs
|
||||
* see CHANSEL doc in s3c2443-dma.c
|
||||
*/
|
||||
struct s3c24xx_dma_channel {
|
||||
enum s3c24xx_dma_bus bus;
|
||||
bool handshake;
|
||||
u16 chansel;
|
||||
};
|
||||
|
||||
struct dma_slave_map;
|
||||
|
||||
/**
|
||||
* struct s3c24xx_dma_platdata - platform specific settings
|
||||
* @num_phy_channels: number of physical channels
|
||||
* @channels: array of virtual channel descriptions
|
||||
* @num_channels: number of virtual channels
|
||||
* @slave_map: dma slave map matching table
|
||||
* @slavecnt: number of elements in slave_map
|
||||
*/
|
||||
struct s3c24xx_dma_platdata {
|
||||
int num_phy_channels;
|
||||
struct s3c24xx_dma_channel *channels;
|
||||
int num_channels;
|
||||
const struct dma_slave_map *slave_map;
|
||||
int slavecnt;
|
||||
};
|
||||
|
||||
struct dma_chan;
|
||||
bool s3c24xx_dma_filter(struct dma_chan *chan, void *param);
|
Loading…
x
Reference in New Issue
Block a user