mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-21 16:29:59 +00:00
![Thomas Gleixner](/assets/img/avatar_default.png)
Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 3029 file(s). Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Reviewed-by: Allison Randal <allison@lohutok.net> Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190527070032.746973796@linutronix.de Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
48 lines
1.3 KiB
C
48 lines
1.3 KiB
C
/* 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);
|