add dmaengine based s3c24xx dma driver
-----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (GNU/Linux) iQIcBAABAgAGBQJSZFAgAAoJEA0Cl+kVi2xq5KYP/3LS6mAaeusGUXi0e4x5WpDg FjxI2rKgugu/jLRua5WPbcHRwqkdpipctvHhMc8bEdoO3vY+2irXsbGiR7q8qc06 w5rPwIYmI98x36HUHUCBZPFk7N3NqYdg0fyIZ3e5SLYtbmGvpjbo93WBOReII6tU 41pW2MKiPHxKomKui1QIEVjpoV4y1KHgXPKHKOqXxxhP9oJJTuF2qp0vh8WiHtH2 X5oeqJeyTpRJUNtH3WuaZU5dvj934nayC5/j4BWJXGkfnbK2kJIa6imSCgLkT1eN 4n34ILekM9YM6WMJjEwdO3C0W5RM35Xr01/G2rcoRpBbpqubWHY4m3GaiAZ1HC4H g3gB2kGZSfbR6iPBwsURkQM2cra/IDfo1HBYqeTXz9s0km4xLzoWlTPn09kTpwTU CtsPivGXIIh2qrxTLtyuD4kz8ZZ/1zf+S60YIi6K1TcImUWSzEWHgsRBPSP9kwPk QOdIpWaU8VkT8o1kqe08fSDP7ywVW4UUZF7futEsyPILxBg+MuWbM318TXO7Qa6z ukHXZEwJDX2XUe/Bf0BimPRCuLs3zQghF5dHT1gdUYQovElwLWrtJwVYsDCk/RTV pgXSNt2+v7mm3BU0Y64GdTeqLFFLmqg+3+asxIP2IAPcMyvENFQr/DVCiXZwTXqE wpTLOjzPY7HEo1G2G1pO =WYJE -----END PGP SIGNATURE----- Merge tag 's3c24xx-dma' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung into next/drivers From Kukjin Kim, this branch adds device-tree support to the DMA controller on the older Samsung SoCs. It also adds support for one of the missing SoCs in the family (2410). The driver has been Ack:ed by Vinod Koul, but is merged through here due to dependencies with platform code. * tag 's3c24xx-dma' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung: ARM: S3C24XX: add dma pdata for s3c2410, s3c2440 and s3c2442 dmaengine: s3c24xx-dma: add support for the s3c2410 type of controller ARM: S3C24XX: Fix possible dma selection warning ARM: SAMSUNG: set s3c24xx_dma_filter for s3c64xx-spi0 device ARM: S3C24XX: add platform-devices for new dma driver for s3c2412 and s3c2443 dmaengine: add driver for Samsung s3c24xx SoCs ARM: S3C24XX: number the dma clocks + Linux 3.12-rc3 Signed-off-by: Olof Johansson <olof@lixom.net>
This commit is contained in:
commit
3316dee245
246 changed files with 3994 additions and 1263 deletions
46
include/linux/platform_data/dma-s3c24xx.h
Normal file
46
include/linux/platform_data/dma-s3c24xx.h
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
/*
|
||||
* S3C24XX DMA handling
|
||||
*
|
||||
* Copyright (c) 2013 Heiko Stuebner <heiko@sntech.de>
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
/* 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 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
|
||||
*/
|
||||
struct s3c24xx_dma_platdata {
|
||||
int num_phy_channels;
|
||||
struct s3c24xx_dma_channel *channels;
|
||||
int num_channels;
|
||||
};
|
||||
|
||||
struct dma_chan;
|
||||
bool s3c24xx_dma_filter(struct dma_chan *chan, void *param);
|
||||
Loading…
Add table
Add a link
Reference in a new issue